archive_string_composition.h 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351
  1. /*-
  2. * Copyright (c) 2011 libarchive Project
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions
  7. * are met:
  8. * 1. Redistributions of source code must retain the above copyright
  9. * notice, this list of conditions and the following disclaimer.
  10. * 2. Redistributions in binary form must reproduce the above copyright
  11. * notice, this list of conditions and the following disclaimer in the
  12. * documentation and/or other materials provided with the distribution.
  13. *
  14. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AS IS'' AND ANY EXPRESS OR
  15. * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  16. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  17. * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
  18. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  19. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  20. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  21. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  22. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  23. * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  24. *
  25. * $FreeBSD$
  26. *
  27. */
  28. /*
  29. * ATTENTION!
  30. * This file is generated by build/utils/gen_archive_string_composition_h.sh
  31. * from http://unicode.org/Public/UNIDATA/UnicodeData.txt
  32. *
  33. * See also http://unicode.org/report/tr15/
  34. */
  35. #ifndef __LIBARCHIVE_BUILD
  36. #error This header is only to be used internally to libarchive.
  37. #endif
  38. #ifndef ARCHIVE_STRING_COMPOSITION_H_INCLUDED
  39. #define ARCHIVE_STRING_COMPOSITION_H_INCLUDED
  40. struct unicode_composition_table {
  41. uint32_t cp1;
  42. uint32_t cp2;
  43. uint32_t nfc;
  44. };
  45. static const struct unicode_composition_table u_composition_table[] = {
  46. { 0x0003C , 0x00338 , 0x0226E },
  47. { 0x0003D , 0x00338 , 0x02260 },
  48. { 0x0003E , 0x00338 , 0x0226F },
  49. { 0x00041 , 0x00300 , 0x000C0 },
  50. { 0x00041 , 0x00301 , 0x000C1 },
  51. { 0x00041 , 0x00302 , 0x000C2 },
  52. { 0x00041 , 0x00303 , 0x000C3 },
  53. { 0x00041 , 0x00304 , 0x00100 },
  54. { 0x00041 , 0x00306 , 0x00102 },
  55. { 0x00041 , 0x00307 , 0x00226 },
  56. { 0x00041 , 0x00308 , 0x000C4 },
  57. { 0x00041 , 0x00309 , 0x01EA2 },
  58. { 0x00041 , 0x0030A , 0x000C5 },
  59. { 0x00041 , 0x0030C , 0x001CD },
  60. { 0x00041 , 0x0030F , 0x00200 },
  61. { 0x00041 , 0x00311 , 0x00202 },
  62. { 0x00041 , 0x00323 , 0x01EA0 },
  63. { 0x00041 , 0x00325 , 0x01E00 },
  64. { 0x00041 , 0x00328 , 0x00104 },
  65. { 0x00042 , 0x00307 , 0x01E02 },
  66. { 0x00042 , 0x00323 , 0x01E04 },
  67. { 0x00042 , 0x00331 , 0x01E06 },
  68. { 0x00043 , 0x00301 , 0x00106 },
  69. { 0x00043 , 0x00302 , 0x00108 },
  70. { 0x00043 , 0x00307 , 0x0010A },
  71. { 0x00043 , 0x0030C , 0x0010C },
  72. { 0x00043 , 0x00327 , 0x000C7 },
  73. { 0x00044 , 0x00307 , 0x01E0A },
  74. { 0x00044 , 0x0030C , 0x0010E },
  75. { 0x00044 , 0x00323 , 0x01E0C },
  76. { 0x00044 , 0x00327 , 0x01E10 },
  77. { 0x00044 , 0x0032D , 0x01E12 },
  78. { 0x00044 , 0x00331 , 0x01E0E },
  79. { 0x00045 , 0x00300 , 0x000C8 },
  80. { 0x00045 , 0x00301 , 0x000C9 },
  81. { 0x00045 , 0x00302 , 0x000CA },
  82. { 0x00045 , 0x00303 , 0x01EBC },
  83. { 0x00045 , 0x00304 , 0x00112 },
  84. { 0x00045 , 0x00306 , 0x00114 },
  85. { 0x00045 , 0x00307 , 0x00116 },
  86. { 0x00045 , 0x00308 , 0x000CB },
  87. { 0x00045 , 0x00309 , 0x01EBA },
  88. { 0x00045 , 0x0030C , 0x0011A },
  89. { 0x00045 , 0x0030F , 0x00204 },
  90. { 0x00045 , 0x00311 , 0x00206 },
  91. { 0x00045 , 0x00323 , 0x01EB8 },
  92. { 0x00045 , 0x00327 , 0x00228 },
  93. { 0x00045 , 0x00328 , 0x00118 },
  94. { 0x00045 , 0x0032D , 0x01E18 },
  95. { 0x00045 , 0x00330 , 0x01E1A },
  96. { 0x00046 , 0x00307 , 0x01E1E },
  97. { 0x00047 , 0x00301 , 0x001F4 },
  98. { 0x00047 , 0x00302 , 0x0011C },
  99. { 0x00047 , 0x00304 , 0x01E20 },
  100. { 0x00047 , 0x00306 , 0x0011E },
  101. { 0x00047 , 0x00307 , 0x00120 },
  102. { 0x00047 , 0x0030C , 0x001E6 },
  103. { 0x00047 , 0x00327 , 0x00122 },
  104. { 0x00048 , 0x00302 , 0x00124 },
  105. { 0x00048 , 0x00307 , 0x01E22 },
  106. { 0x00048 , 0x00308 , 0x01E26 },
  107. { 0x00048 , 0x0030C , 0x0021E },
  108. { 0x00048 , 0x00323 , 0x01E24 },
  109. { 0x00048 , 0x00327 , 0x01E28 },
  110. { 0x00048 , 0x0032E , 0x01E2A },
  111. { 0x00049 , 0x00300 , 0x000CC },
  112. { 0x00049 , 0x00301 , 0x000CD },
  113. { 0x00049 , 0x00302 , 0x000CE },
  114. { 0x00049 , 0x00303 , 0x00128 },
  115. { 0x00049 , 0x00304 , 0x0012A },
  116. { 0x00049 , 0x00306 , 0x0012C },
  117. { 0x00049 , 0x00307 , 0x00130 },
  118. { 0x00049 , 0x00308 , 0x000CF },
  119. { 0x00049 , 0x00309 , 0x01EC8 },
  120. { 0x00049 , 0x0030C , 0x001CF },
  121. { 0x00049 , 0x0030F , 0x00208 },
  122. { 0x00049 , 0x00311 , 0x0020A },
  123. { 0x00049 , 0x00323 , 0x01ECA },
  124. { 0x00049 , 0x00328 , 0x0012E },
  125. { 0x00049 , 0x00330 , 0x01E2C },
  126. { 0x0004A , 0x00302 , 0x00134 },
  127. { 0x0004B , 0x00301 , 0x01E30 },
  128. { 0x0004B , 0x0030C , 0x001E8 },
  129. { 0x0004B , 0x00323 , 0x01E32 },
  130. { 0x0004B , 0x00327 , 0x00136 },
  131. { 0x0004B , 0x00331 , 0x01E34 },
  132. { 0x0004C , 0x00301 , 0x00139 },
  133. { 0x0004C , 0x0030C , 0x0013D },
  134. { 0x0004C , 0x00323 , 0x01E36 },
  135. { 0x0004C , 0x00327 , 0x0013B },
  136. { 0x0004C , 0x0032D , 0x01E3C },
  137. { 0x0004C , 0x00331 , 0x01E3A },
  138. { 0x0004D , 0x00301 , 0x01E3E },
  139. { 0x0004D , 0x00307 , 0x01E40 },
  140. { 0x0004D , 0x00323 , 0x01E42 },
  141. { 0x0004E , 0x00300 , 0x001F8 },
  142. { 0x0004E , 0x00301 , 0x00143 },
  143. { 0x0004E , 0x00303 , 0x000D1 },
  144. { 0x0004E , 0x00307 , 0x01E44 },
  145. { 0x0004E , 0x0030C , 0x00147 },
  146. { 0x0004E , 0x00323 , 0x01E46 },
  147. { 0x0004E , 0x00327 , 0x00145 },
  148. { 0x0004E , 0x0032D , 0x01E4A },
  149. { 0x0004E , 0x00331 , 0x01E48 },
  150. { 0x0004F , 0x00300 , 0x000D2 },
  151. { 0x0004F , 0x00301 , 0x000D3 },
  152. { 0x0004F , 0x00302 , 0x000D4 },
  153. { 0x0004F , 0x00303 , 0x000D5 },
  154. { 0x0004F , 0x00304 , 0x0014C },
  155. { 0x0004F , 0x00306 , 0x0014E },
  156. { 0x0004F , 0x00307 , 0x0022E },
  157. { 0x0004F , 0x00308 , 0x000D6 },
  158. { 0x0004F , 0x00309 , 0x01ECE },
  159. { 0x0004F , 0x0030B , 0x00150 },
  160. { 0x0004F , 0x0030C , 0x001D1 },
  161. { 0x0004F , 0x0030F , 0x0020C },
  162. { 0x0004F , 0x00311 , 0x0020E },
  163. { 0x0004F , 0x0031B , 0x001A0 },
  164. { 0x0004F , 0x00323 , 0x01ECC },
  165. { 0x0004F , 0x00328 , 0x001EA },
  166. { 0x00050 , 0x00301 , 0x01E54 },
  167. { 0x00050 , 0x00307 , 0x01E56 },
  168. { 0x00052 , 0x00301 , 0x00154 },
  169. { 0x00052 , 0x00307 , 0x01E58 },
  170. { 0x00052 , 0x0030C , 0x00158 },
  171. { 0x00052 , 0x0030F , 0x00210 },
  172. { 0x00052 , 0x00311 , 0x00212 },
  173. { 0x00052 , 0x00323 , 0x01E5A },
  174. { 0x00052 , 0x00327 , 0x00156 },
  175. { 0x00052 , 0x00331 , 0x01E5E },
  176. { 0x00053 , 0x00301 , 0x0015A },
  177. { 0x00053 , 0x00302 , 0x0015C },
  178. { 0x00053 , 0x00307 , 0x01E60 },
  179. { 0x00053 , 0x0030C , 0x00160 },
  180. { 0x00053 , 0x00323 , 0x01E62 },
  181. { 0x00053 , 0x00326 , 0x00218 },
  182. { 0x00053 , 0x00327 , 0x0015E },
  183. { 0x00054 , 0x00307 , 0x01E6A },
  184. { 0x00054 , 0x0030C , 0x00164 },
  185. { 0x00054 , 0x00323 , 0x01E6C },
  186. { 0x00054 , 0x00326 , 0x0021A },
  187. { 0x00054 , 0x00327 , 0x00162 },
  188. { 0x00054 , 0x0032D , 0x01E70 },
  189. { 0x00054 , 0x00331 , 0x01E6E },
  190. { 0x00055 , 0x00300 , 0x000D9 },
  191. { 0x00055 , 0x00301 , 0x000DA },
  192. { 0x00055 , 0x00302 , 0x000DB },
  193. { 0x00055 , 0x00303 , 0x00168 },
  194. { 0x00055 , 0x00304 , 0x0016A },
  195. { 0x00055 , 0x00306 , 0x0016C },
  196. { 0x00055 , 0x00308 , 0x000DC },
  197. { 0x00055 , 0x00309 , 0x01EE6 },
  198. { 0x00055 , 0x0030A , 0x0016E },
  199. { 0x00055 , 0x0030B , 0x00170 },
  200. { 0x00055 , 0x0030C , 0x001D3 },
  201. { 0x00055 , 0x0030F , 0x00214 },
  202. { 0x00055 , 0x00311 , 0x00216 },
  203. { 0x00055 , 0x0031B , 0x001AF },
  204. { 0x00055 , 0x00323 , 0x01EE4 },
  205. { 0x00055 , 0x00324 , 0x01E72 },
  206. { 0x00055 , 0x00328 , 0x00172 },
  207. { 0x00055 , 0x0032D , 0x01E76 },
  208. { 0x00055 , 0x00330 , 0x01E74 },
  209. { 0x00056 , 0x00303 , 0x01E7C },
  210. { 0x00056 , 0x00323 , 0x01E7E },
  211. { 0x00057 , 0x00300 , 0x01E80 },
  212. { 0x00057 , 0x00301 , 0x01E82 },
  213. { 0x00057 , 0x00302 , 0x00174 },
  214. { 0x00057 , 0x00307 , 0x01E86 },
  215. { 0x00057 , 0x00308 , 0x01E84 },
  216. { 0x00057 , 0x00323 , 0x01E88 },
  217. { 0x00058 , 0x00307 , 0x01E8A },
  218. { 0x00058 , 0x00308 , 0x01E8C },
  219. { 0x00059 , 0x00300 , 0x01EF2 },
  220. { 0x00059 , 0x00301 , 0x000DD },
  221. { 0x00059 , 0x00302 , 0x00176 },
  222. { 0x00059 , 0x00303 , 0x01EF8 },
  223. { 0x00059 , 0x00304 , 0x00232 },
  224. { 0x00059 , 0x00307 , 0x01E8E },
  225. { 0x00059 , 0x00308 , 0x00178 },
  226. { 0x00059 , 0x00309 , 0x01EF6 },
  227. { 0x00059 , 0x00323 , 0x01EF4 },
  228. { 0x0005A , 0x00301 , 0x00179 },
  229. { 0x0005A , 0x00302 , 0x01E90 },
  230. { 0x0005A , 0x00307 , 0x0017B },
  231. { 0x0005A , 0x0030C , 0x0017D },
  232. { 0x0005A , 0x00323 , 0x01E92 },
  233. { 0x0005A , 0x00331 , 0x01E94 },
  234. { 0x00061 , 0x00300 , 0x000E0 },
  235. { 0x00061 , 0x00301 , 0x000E1 },
  236. { 0x00061 , 0x00302 , 0x000E2 },
  237. { 0x00061 , 0x00303 , 0x000E3 },
  238. { 0x00061 , 0x00304 , 0x00101 },
  239. { 0x00061 , 0x00306 , 0x00103 },
  240. { 0x00061 , 0x00307 , 0x00227 },
  241. { 0x00061 , 0x00308 , 0x000E4 },
  242. { 0x00061 , 0x00309 , 0x01EA3 },
  243. { 0x00061 , 0x0030A , 0x000E5 },
  244. { 0x00061 , 0x0030C , 0x001CE },
  245. { 0x00061 , 0x0030F , 0x00201 },
  246. { 0x00061 , 0x00311 , 0x00203 },
  247. { 0x00061 , 0x00323 , 0x01EA1 },
  248. { 0x00061 , 0x00325 , 0x01E01 },
  249. { 0x00061 , 0x00328 , 0x00105 },
  250. { 0x00062 , 0x00307 , 0x01E03 },
  251. { 0x00062 , 0x00323 , 0x01E05 },
  252. { 0x00062 , 0x00331 , 0x01E07 },
  253. { 0x00063 , 0x00301 , 0x00107 },
  254. { 0x00063 , 0x00302 , 0x00109 },
  255. { 0x00063 , 0x00307 , 0x0010B },
  256. { 0x00063 , 0x0030C , 0x0010D },
  257. { 0x00063 , 0x00327 , 0x000E7 },
  258. { 0x00064 , 0x00307 , 0x01E0B },
  259. { 0x00064 , 0x0030C , 0x0010F },
  260. { 0x00064 , 0x00323 , 0x01E0D },
  261. { 0x00064 , 0x00327 , 0x01E11 },
  262. { 0x00064 , 0x0032D , 0x01E13 },
  263. { 0x00064 , 0x00331 , 0x01E0F },
  264. { 0x00065 , 0x00300 , 0x000E8 },
  265. { 0x00065 , 0x00301 , 0x000E9 },
  266. { 0x00065 , 0x00302 , 0x000EA },
  267. { 0x00065 , 0x00303 , 0x01EBD },
  268. { 0x00065 , 0x00304 , 0x00113 },
  269. { 0x00065 , 0x00306 , 0x00115 },
  270. { 0x00065 , 0x00307 , 0x00117 },
  271. { 0x00065 , 0x00308 , 0x000EB },
  272. { 0x00065 , 0x00309 , 0x01EBB },
  273. { 0x00065 , 0x0030C , 0x0011B },
  274. { 0x00065 , 0x0030F , 0x00205 },
  275. { 0x00065 , 0x00311 , 0x00207 },
  276. { 0x00065 , 0x00323 , 0x01EB9 },
  277. { 0x00065 , 0x00327 , 0x00229 },
  278. { 0x00065 , 0x00328 , 0x00119 },
  279. { 0x00065 , 0x0032D , 0x01E19 },
  280. { 0x00065 , 0x00330 , 0x01E1B },
  281. { 0x00066 , 0x00307 , 0x01E1F },
  282. { 0x00067 , 0x00301 , 0x001F5 },
  283. { 0x00067 , 0x00302 , 0x0011D },
  284. { 0x00067 , 0x00304 , 0x01E21 },
  285. { 0x00067 , 0x00306 , 0x0011F },
  286. { 0x00067 , 0x00307 , 0x00121 },
  287. { 0x00067 , 0x0030C , 0x001E7 },
  288. { 0x00067 , 0x00327 , 0x00123 },
  289. { 0x00068 , 0x00302 , 0x00125 },
  290. { 0x00068 , 0x00307 , 0x01E23 },
  291. { 0x00068 , 0x00308 , 0x01E27 },
  292. { 0x00068 , 0x0030C , 0x0021F },
  293. { 0x00068 , 0x00323 , 0x01E25 },
  294. { 0x00068 , 0x00327 , 0x01E29 },
  295. { 0x00068 , 0x0032E , 0x01E2B },
  296. { 0x00068 , 0x00331 , 0x01E96 },
  297. { 0x00069 , 0x00300 , 0x000EC },
  298. { 0x00069 , 0x00301 , 0x000ED },
  299. { 0x00069 , 0x00302 , 0x000EE },
  300. { 0x00069 , 0x00303 , 0x00129 },
  301. { 0x00069 , 0x00304 , 0x0012B },
  302. { 0x00069 , 0x00306 , 0x0012D },
  303. { 0x00069 , 0x00308 , 0x000EF },
  304. { 0x00069 , 0x00309 , 0x01EC9 },
  305. { 0x00069 , 0x0030C , 0x001D0 },
  306. { 0x00069 , 0x0030F , 0x00209 },
  307. { 0x00069 , 0x00311 , 0x0020B },
  308. { 0x00069 , 0x00323 , 0x01ECB },
  309. { 0x00069 , 0x00328 , 0x0012F },
  310. { 0x00069 , 0x00330 , 0x01E2D },
  311. { 0x0006A , 0x00302 , 0x00135 },
  312. { 0x0006A , 0x0030C , 0x001F0 },
  313. { 0x0006B , 0x00301 , 0x01E31 },
  314. { 0x0006B , 0x0030C , 0x001E9 },
  315. { 0x0006B , 0x00323 , 0x01E33 },
  316. { 0x0006B , 0x00327 , 0x00137 },
  317. { 0x0006B , 0x00331 , 0x01E35 },
  318. { 0x0006C , 0x00301 , 0x0013A },
  319. { 0x0006C , 0x0030C , 0x0013E },
  320. { 0x0006C , 0x00323 , 0x01E37 },
  321. { 0x0006C , 0x00327 , 0x0013C },
  322. { 0x0006C , 0x0032D , 0x01E3D },
  323. { 0x0006C , 0x00331 , 0x01E3B },
  324. { 0x0006D , 0x00301 , 0x01E3F },
  325. { 0x0006D , 0x00307 , 0x01E41 },
  326. { 0x0006D , 0x00323 , 0x01E43 },
  327. { 0x0006E , 0x00300 , 0x001F9 },
  328. { 0x0006E , 0x00301 , 0x00144 },
  329. { 0x0006E , 0x00303 , 0x000F1 },
  330. { 0x0006E , 0x00307 , 0x01E45 },
  331. { 0x0006E , 0x0030C , 0x00148 },
  332. { 0x0006E , 0x00323 , 0x01E47 },
  333. { 0x0006E , 0x00327 , 0x00146 },
  334. { 0x0006E , 0x0032D , 0x01E4B },
  335. { 0x0006E , 0x00331 , 0x01E49 },
  336. { 0x0006F , 0x00300 , 0x000F2 },
  337. { 0x0006F , 0x00301 , 0x000F3 },
  338. { 0x0006F , 0x00302 , 0x000F4 },
  339. { 0x0006F , 0x00303 , 0x000F5 },
  340. { 0x0006F , 0x00304 , 0x0014D },
  341. { 0x0006F , 0x00306 , 0x0014F },
  342. { 0x0006F , 0x00307 , 0x0022F },
  343. { 0x0006F , 0x00308 , 0x000F6 },
  344. { 0x0006F , 0x00309 , 0x01ECF },
  345. { 0x0006F , 0x0030B , 0x00151 },
  346. { 0x0006F , 0x0030C , 0x001D2 },
  347. { 0x0006F , 0x0030F , 0x0020D },
  348. { 0x0006F , 0x00311 , 0x0020F },
  349. { 0x0006F , 0x0031B , 0x001A1 },
  350. { 0x0006F , 0x00323 , 0x01ECD },
  351. { 0x0006F , 0x00328 , 0x001EB },
  352. { 0x00070 , 0x00301 , 0x01E55 },
  353. { 0x00070 , 0x00307 , 0x01E57 },
  354. { 0x00072 , 0x00301 , 0x00155 },
  355. { 0x00072 , 0x00307 , 0x01E59 },
  356. { 0x00072 , 0x0030C , 0x00159 },
  357. { 0x00072 , 0x0030F , 0x00211 },
  358. { 0x00072 , 0x00311 , 0x00213 },
  359. { 0x00072 , 0x00323 , 0x01E5B },
  360. { 0x00072 , 0x00327 , 0x00157 },
  361. { 0x00072 , 0x00331 , 0x01E5F },
  362. { 0x00073 , 0x00301 , 0x0015B },
  363. { 0x00073 , 0x00302 , 0x0015D },
  364. { 0x00073 , 0x00307 , 0x01E61 },
  365. { 0x00073 , 0x0030C , 0x00161 },
  366. { 0x00073 , 0x00323 , 0x01E63 },
  367. { 0x00073 , 0x00326 , 0x00219 },
  368. { 0x00073 , 0x00327 , 0x0015F },
  369. { 0x00074 , 0x00307 , 0x01E6B },
  370. { 0x00074 , 0x00308 , 0x01E97 },
  371. { 0x00074 , 0x0030C , 0x00165 },
  372. { 0x00074 , 0x00323 , 0x01E6D },
  373. { 0x00074 , 0x00326 , 0x0021B },
  374. { 0x00074 , 0x00327 , 0x00163 },
  375. { 0x00074 , 0x0032D , 0x01E71 },
  376. { 0x00074 , 0x00331 , 0x01E6F },
  377. { 0x00075 , 0x00300 , 0x000F9 },
  378. { 0x00075 , 0x00301 , 0x000FA },
  379. { 0x00075 , 0x00302 , 0x000FB },
  380. { 0x00075 , 0x00303 , 0x00169 },
  381. { 0x00075 , 0x00304 , 0x0016B },
  382. { 0x00075 , 0x00306 , 0x0016D },
  383. { 0x00075 , 0x00308 , 0x000FC },
  384. { 0x00075 , 0x00309 , 0x01EE7 },
  385. { 0x00075 , 0x0030A , 0x0016F },
  386. { 0x00075 , 0x0030B , 0x00171 },
  387. { 0x00075 , 0x0030C , 0x001D4 },
  388. { 0x00075 , 0x0030F , 0x00215 },
  389. { 0x00075 , 0x00311 , 0x00217 },
  390. { 0x00075 , 0x0031B , 0x001B0 },
  391. { 0x00075 , 0x00323 , 0x01EE5 },
  392. { 0x00075 , 0x00324 , 0x01E73 },
  393. { 0x00075 , 0x00328 , 0x00173 },
  394. { 0x00075 , 0x0032D , 0x01E77 },
  395. { 0x00075 , 0x00330 , 0x01E75 },
  396. { 0x00076 , 0x00303 , 0x01E7D },
  397. { 0x00076 , 0x00323 , 0x01E7F },
  398. { 0x00077 , 0x00300 , 0x01E81 },
  399. { 0x00077 , 0x00301 , 0x01E83 },
  400. { 0x00077 , 0x00302 , 0x00175 },
  401. { 0x00077 , 0x00307 , 0x01E87 },
  402. { 0x00077 , 0x00308 , 0x01E85 },
  403. { 0x00077 , 0x0030A , 0x01E98 },
  404. { 0x00077 , 0x00323 , 0x01E89 },
  405. { 0x00078 , 0x00307 , 0x01E8B },
  406. { 0x00078 , 0x00308 , 0x01E8D },
  407. { 0x00079 , 0x00300 , 0x01EF3 },
  408. { 0x00079 , 0x00301 , 0x000FD },
  409. { 0x00079 , 0x00302 , 0x00177 },
  410. { 0x00079 , 0x00303 , 0x01EF9 },
  411. { 0x00079 , 0x00304 , 0x00233 },
  412. { 0x00079 , 0x00307 , 0x01E8F },
  413. { 0x00079 , 0x00308 , 0x000FF },
  414. { 0x00079 , 0x00309 , 0x01EF7 },
  415. { 0x00079 , 0x0030A , 0x01E99 },
  416. { 0x00079 , 0x00323 , 0x01EF5 },
  417. { 0x0007A , 0x00301 , 0x0017A },
  418. { 0x0007A , 0x00302 , 0x01E91 },
  419. { 0x0007A , 0x00307 , 0x0017C },
  420. { 0x0007A , 0x0030C , 0x0017E },
  421. { 0x0007A , 0x00323 , 0x01E93 },
  422. { 0x0007A , 0x00331 , 0x01E95 },
  423. { 0x000A8 , 0x00300 , 0x01FED },
  424. { 0x000A8 , 0x00301 , 0x00385 },
  425. { 0x000A8 , 0x00342 , 0x01FC1 },
  426. { 0x000C2 , 0x00300 , 0x01EA6 },
  427. { 0x000C2 , 0x00301 , 0x01EA4 },
  428. { 0x000C2 , 0x00303 , 0x01EAA },
  429. { 0x000C2 , 0x00309 , 0x01EA8 },
  430. { 0x000C4 , 0x00304 , 0x001DE },
  431. { 0x000C5 , 0x00301 , 0x001FA },
  432. { 0x000C6 , 0x00301 , 0x001FC },
  433. { 0x000C6 , 0x00304 , 0x001E2 },
  434. { 0x000C7 , 0x00301 , 0x01E08 },
  435. { 0x000CA , 0x00300 , 0x01EC0 },
  436. { 0x000CA , 0x00301 , 0x01EBE },
  437. { 0x000CA , 0x00303 , 0x01EC4 },
  438. { 0x000CA , 0x00309 , 0x01EC2 },
  439. { 0x000CF , 0x00301 , 0x01E2E },
  440. { 0x000D4 , 0x00300 , 0x01ED2 },
  441. { 0x000D4 , 0x00301 , 0x01ED0 },
  442. { 0x000D4 , 0x00303 , 0x01ED6 },
  443. { 0x000D4 , 0x00309 , 0x01ED4 },
  444. { 0x000D5 , 0x00301 , 0x01E4C },
  445. { 0x000D5 , 0x00304 , 0x0022C },
  446. { 0x000D5 , 0x00308 , 0x01E4E },
  447. { 0x000D6 , 0x00304 , 0x0022A },
  448. { 0x000D8 , 0x00301 , 0x001FE },
  449. { 0x000DC , 0x00300 , 0x001DB },
  450. { 0x000DC , 0x00301 , 0x001D7 },
  451. { 0x000DC , 0x00304 , 0x001D5 },
  452. { 0x000DC , 0x0030C , 0x001D9 },
  453. { 0x000E2 , 0x00300 , 0x01EA7 },
  454. { 0x000E2 , 0x00301 , 0x01EA5 },
  455. { 0x000E2 , 0x00303 , 0x01EAB },
  456. { 0x000E2 , 0x00309 , 0x01EA9 },
  457. { 0x000E4 , 0x00304 , 0x001DF },
  458. { 0x000E5 , 0x00301 , 0x001FB },
  459. { 0x000E6 , 0x00301 , 0x001FD },
  460. { 0x000E6 , 0x00304 , 0x001E3 },
  461. { 0x000E7 , 0x00301 , 0x01E09 },
  462. { 0x000EA , 0x00300 , 0x01EC1 },
  463. { 0x000EA , 0x00301 , 0x01EBF },
  464. { 0x000EA , 0x00303 , 0x01EC5 },
  465. { 0x000EA , 0x00309 , 0x01EC3 },
  466. { 0x000EF , 0x00301 , 0x01E2F },
  467. { 0x000F4 , 0x00300 , 0x01ED3 },
  468. { 0x000F4 , 0x00301 , 0x01ED1 },
  469. { 0x000F4 , 0x00303 , 0x01ED7 },
  470. { 0x000F4 , 0x00309 , 0x01ED5 },
  471. { 0x000F5 , 0x00301 , 0x01E4D },
  472. { 0x000F5 , 0x00304 , 0x0022D },
  473. { 0x000F5 , 0x00308 , 0x01E4F },
  474. { 0x000F6 , 0x00304 , 0x0022B },
  475. { 0x000F8 , 0x00301 , 0x001FF },
  476. { 0x000FC , 0x00300 , 0x001DC },
  477. { 0x000FC , 0x00301 , 0x001D8 },
  478. { 0x000FC , 0x00304 , 0x001D6 },
  479. { 0x000FC , 0x0030C , 0x001DA },
  480. { 0x00102 , 0x00300 , 0x01EB0 },
  481. { 0x00102 , 0x00301 , 0x01EAE },
  482. { 0x00102 , 0x00303 , 0x01EB4 },
  483. { 0x00102 , 0x00309 , 0x01EB2 },
  484. { 0x00103 , 0x00300 , 0x01EB1 },
  485. { 0x00103 , 0x00301 , 0x01EAF },
  486. { 0x00103 , 0x00303 , 0x01EB5 },
  487. { 0x00103 , 0x00309 , 0x01EB3 },
  488. { 0x00112 , 0x00300 , 0x01E14 },
  489. { 0x00112 , 0x00301 , 0x01E16 },
  490. { 0x00113 , 0x00300 , 0x01E15 },
  491. { 0x00113 , 0x00301 , 0x01E17 },
  492. { 0x0014C , 0x00300 , 0x01E50 },
  493. { 0x0014C , 0x00301 , 0x01E52 },
  494. { 0x0014D , 0x00300 , 0x01E51 },
  495. { 0x0014D , 0x00301 , 0x01E53 },
  496. { 0x0015A , 0x00307 , 0x01E64 },
  497. { 0x0015B , 0x00307 , 0x01E65 },
  498. { 0x00160 , 0x00307 , 0x01E66 },
  499. { 0x00161 , 0x00307 , 0x01E67 },
  500. { 0x00168 , 0x00301 , 0x01E78 },
  501. { 0x00169 , 0x00301 , 0x01E79 },
  502. { 0x0016A , 0x00308 , 0x01E7A },
  503. { 0x0016B , 0x00308 , 0x01E7B },
  504. { 0x0017F , 0x00307 , 0x01E9B },
  505. { 0x001A0 , 0x00300 , 0x01EDC },
  506. { 0x001A0 , 0x00301 , 0x01EDA },
  507. { 0x001A0 , 0x00303 , 0x01EE0 },
  508. { 0x001A0 , 0x00309 , 0x01EDE },
  509. { 0x001A0 , 0x00323 , 0x01EE2 },
  510. { 0x001A1 , 0x00300 , 0x01EDD },
  511. { 0x001A1 , 0x00301 , 0x01EDB },
  512. { 0x001A1 , 0x00303 , 0x01EE1 },
  513. { 0x001A1 , 0x00309 , 0x01EDF },
  514. { 0x001A1 , 0x00323 , 0x01EE3 },
  515. { 0x001AF , 0x00300 , 0x01EEA },
  516. { 0x001AF , 0x00301 , 0x01EE8 },
  517. { 0x001AF , 0x00303 , 0x01EEE },
  518. { 0x001AF , 0x00309 , 0x01EEC },
  519. { 0x001AF , 0x00323 , 0x01EF0 },
  520. { 0x001B0 , 0x00300 , 0x01EEB },
  521. { 0x001B0 , 0x00301 , 0x01EE9 },
  522. { 0x001B0 , 0x00303 , 0x01EEF },
  523. { 0x001B0 , 0x00309 , 0x01EED },
  524. { 0x001B0 , 0x00323 , 0x01EF1 },
  525. { 0x001B7 , 0x0030C , 0x001EE },
  526. { 0x001EA , 0x00304 , 0x001EC },
  527. { 0x001EB , 0x00304 , 0x001ED },
  528. { 0x00226 , 0x00304 , 0x001E0 },
  529. { 0x00227 , 0x00304 , 0x001E1 },
  530. { 0x00228 , 0x00306 , 0x01E1C },
  531. { 0x00229 , 0x00306 , 0x01E1D },
  532. { 0x0022E , 0x00304 , 0x00230 },
  533. { 0x0022F , 0x00304 , 0x00231 },
  534. { 0x00292 , 0x0030C , 0x001EF },
  535. { 0x00391 , 0x00300 , 0x01FBA },
  536. { 0x00391 , 0x00301 , 0x00386 },
  537. { 0x00391 , 0x00304 , 0x01FB9 },
  538. { 0x00391 , 0x00306 , 0x01FB8 },
  539. { 0x00391 , 0x00313 , 0x01F08 },
  540. { 0x00391 , 0x00314 , 0x01F09 },
  541. { 0x00391 , 0x00345 , 0x01FBC },
  542. { 0x00395 , 0x00300 , 0x01FC8 },
  543. { 0x00395 , 0x00301 , 0x00388 },
  544. { 0x00395 , 0x00313 , 0x01F18 },
  545. { 0x00395 , 0x00314 , 0x01F19 },
  546. { 0x00397 , 0x00300 , 0x01FCA },
  547. { 0x00397 , 0x00301 , 0x00389 },
  548. { 0x00397 , 0x00313 , 0x01F28 },
  549. { 0x00397 , 0x00314 , 0x01F29 },
  550. { 0x00397 , 0x00345 , 0x01FCC },
  551. { 0x00399 , 0x00300 , 0x01FDA },
  552. { 0x00399 , 0x00301 , 0x0038A },
  553. { 0x00399 , 0x00304 , 0x01FD9 },
  554. { 0x00399 , 0x00306 , 0x01FD8 },
  555. { 0x00399 , 0x00308 , 0x003AA },
  556. { 0x00399 , 0x00313 , 0x01F38 },
  557. { 0x00399 , 0x00314 , 0x01F39 },
  558. { 0x0039F , 0x00300 , 0x01FF8 },
  559. { 0x0039F , 0x00301 , 0x0038C },
  560. { 0x0039F , 0x00313 , 0x01F48 },
  561. { 0x0039F , 0x00314 , 0x01F49 },
  562. { 0x003A1 , 0x00314 , 0x01FEC },
  563. { 0x003A5 , 0x00300 , 0x01FEA },
  564. { 0x003A5 , 0x00301 , 0x0038E },
  565. { 0x003A5 , 0x00304 , 0x01FE9 },
  566. { 0x003A5 , 0x00306 , 0x01FE8 },
  567. { 0x003A5 , 0x00308 , 0x003AB },
  568. { 0x003A5 , 0x00314 , 0x01F59 },
  569. { 0x003A9 , 0x00300 , 0x01FFA },
  570. { 0x003A9 , 0x00301 , 0x0038F },
  571. { 0x003A9 , 0x00313 , 0x01F68 },
  572. { 0x003A9 , 0x00314 , 0x01F69 },
  573. { 0x003A9 , 0x00345 , 0x01FFC },
  574. { 0x003AC , 0x00345 , 0x01FB4 },
  575. { 0x003AE , 0x00345 , 0x01FC4 },
  576. { 0x003B1 , 0x00300 , 0x01F70 },
  577. { 0x003B1 , 0x00301 , 0x003AC },
  578. { 0x003B1 , 0x00304 , 0x01FB1 },
  579. { 0x003B1 , 0x00306 , 0x01FB0 },
  580. { 0x003B1 , 0x00313 , 0x01F00 },
  581. { 0x003B1 , 0x00314 , 0x01F01 },
  582. { 0x003B1 , 0x00342 , 0x01FB6 },
  583. { 0x003B1 , 0x00345 , 0x01FB3 },
  584. { 0x003B5 , 0x00300 , 0x01F72 },
  585. { 0x003B5 , 0x00301 , 0x003AD },
  586. { 0x003B5 , 0x00313 , 0x01F10 },
  587. { 0x003B5 , 0x00314 , 0x01F11 },
  588. { 0x003B7 , 0x00300 , 0x01F74 },
  589. { 0x003B7 , 0x00301 , 0x003AE },
  590. { 0x003B7 , 0x00313 , 0x01F20 },
  591. { 0x003B7 , 0x00314 , 0x01F21 },
  592. { 0x003B7 , 0x00342 , 0x01FC6 },
  593. { 0x003B7 , 0x00345 , 0x01FC3 },
  594. { 0x003B9 , 0x00300 , 0x01F76 },
  595. { 0x003B9 , 0x00301 , 0x003AF },
  596. { 0x003B9 , 0x00304 , 0x01FD1 },
  597. { 0x003B9 , 0x00306 , 0x01FD0 },
  598. { 0x003B9 , 0x00308 , 0x003CA },
  599. { 0x003B9 , 0x00313 , 0x01F30 },
  600. { 0x003B9 , 0x00314 , 0x01F31 },
  601. { 0x003B9 , 0x00342 , 0x01FD6 },
  602. { 0x003BF , 0x00300 , 0x01F78 },
  603. { 0x003BF , 0x00301 , 0x003CC },
  604. { 0x003BF , 0x00313 , 0x01F40 },
  605. { 0x003BF , 0x00314 , 0x01F41 },
  606. { 0x003C1 , 0x00313 , 0x01FE4 },
  607. { 0x003C1 , 0x00314 , 0x01FE5 },
  608. { 0x003C5 , 0x00300 , 0x01F7A },
  609. { 0x003C5 , 0x00301 , 0x003CD },
  610. { 0x003C5 , 0x00304 , 0x01FE1 },
  611. { 0x003C5 , 0x00306 , 0x01FE0 },
  612. { 0x003C5 , 0x00308 , 0x003CB },
  613. { 0x003C5 , 0x00313 , 0x01F50 },
  614. { 0x003C5 , 0x00314 , 0x01F51 },
  615. { 0x003C5 , 0x00342 , 0x01FE6 },
  616. { 0x003C9 , 0x00300 , 0x01F7C },
  617. { 0x003C9 , 0x00301 , 0x003CE },
  618. { 0x003C9 , 0x00313 , 0x01F60 },
  619. { 0x003C9 , 0x00314 , 0x01F61 },
  620. { 0x003C9 , 0x00342 , 0x01FF6 },
  621. { 0x003C9 , 0x00345 , 0x01FF3 },
  622. { 0x003CA , 0x00300 , 0x01FD2 },
  623. { 0x003CA , 0x00301 , 0x00390 },
  624. { 0x003CA , 0x00342 , 0x01FD7 },
  625. { 0x003CB , 0x00300 , 0x01FE2 },
  626. { 0x003CB , 0x00301 , 0x003B0 },
  627. { 0x003CB , 0x00342 , 0x01FE7 },
  628. { 0x003CE , 0x00345 , 0x01FF4 },
  629. { 0x003D2 , 0x00301 , 0x003D3 },
  630. { 0x003D2 , 0x00308 , 0x003D4 },
  631. { 0x00406 , 0x00308 , 0x00407 },
  632. { 0x00410 , 0x00306 , 0x004D0 },
  633. { 0x00410 , 0x00308 , 0x004D2 },
  634. { 0x00413 , 0x00301 , 0x00403 },
  635. { 0x00415 , 0x00300 , 0x00400 },
  636. { 0x00415 , 0x00306 , 0x004D6 },
  637. { 0x00415 , 0x00308 , 0x00401 },
  638. { 0x00416 , 0x00306 , 0x004C1 },
  639. { 0x00416 , 0x00308 , 0x004DC },
  640. { 0x00417 , 0x00308 , 0x004DE },
  641. { 0x00418 , 0x00300 , 0x0040D },
  642. { 0x00418 , 0x00304 , 0x004E2 },
  643. { 0x00418 , 0x00306 , 0x00419 },
  644. { 0x00418 , 0x00308 , 0x004E4 },
  645. { 0x0041A , 0x00301 , 0x0040C },
  646. { 0x0041E , 0x00308 , 0x004E6 },
  647. { 0x00423 , 0x00304 , 0x004EE },
  648. { 0x00423 , 0x00306 , 0x0040E },
  649. { 0x00423 , 0x00308 , 0x004F0 },
  650. { 0x00423 , 0x0030B , 0x004F2 },
  651. { 0x00427 , 0x00308 , 0x004F4 },
  652. { 0x0042B , 0x00308 , 0x004F8 },
  653. { 0x0042D , 0x00308 , 0x004EC },
  654. { 0x00430 , 0x00306 , 0x004D1 },
  655. { 0x00430 , 0x00308 , 0x004D3 },
  656. { 0x00433 , 0x00301 , 0x00453 },
  657. { 0x00435 , 0x00300 , 0x00450 },
  658. { 0x00435 , 0x00306 , 0x004D7 },
  659. { 0x00435 , 0x00308 , 0x00451 },
  660. { 0x00436 , 0x00306 , 0x004C2 },
  661. { 0x00436 , 0x00308 , 0x004DD },
  662. { 0x00437 , 0x00308 , 0x004DF },
  663. { 0x00438 , 0x00300 , 0x0045D },
  664. { 0x00438 , 0x00304 , 0x004E3 },
  665. { 0x00438 , 0x00306 , 0x00439 },
  666. { 0x00438 , 0x00308 , 0x004E5 },
  667. { 0x0043A , 0x00301 , 0x0045C },
  668. { 0x0043E , 0x00308 , 0x004E7 },
  669. { 0x00443 , 0x00304 , 0x004EF },
  670. { 0x00443 , 0x00306 , 0x0045E },
  671. { 0x00443 , 0x00308 , 0x004F1 },
  672. { 0x00443 , 0x0030B , 0x004F3 },
  673. { 0x00447 , 0x00308 , 0x004F5 },
  674. { 0x0044B , 0x00308 , 0x004F9 },
  675. { 0x0044D , 0x00308 , 0x004ED },
  676. { 0x00456 , 0x00308 , 0x00457 },
  677. { 0x00474 , 0x0030F , 0x00476 },
  678. { 0x00475 , 0x0030F , 0x00477 },
  679. { 0x004D8 , 0x00308 , 0x004DA },
  680. { 0x004D9 , 0x00308 , 0x004DB },
  681. { 0x004E8 , 0x00308 , 0x004EA },
  682. { 0x004E9 , 0x00308 , 0x004EB },
  683. { 0x00627 , 0x00653 , 0x00622 },
  684. { 0x00627 , 0x00654 , 0x00623 },
  685. { 0x00627 , 0x00655 , 0x00625 },
  686. { 0x00648 , 0x00654 , 0x00624 },
  687. { 0x0064A , 0x00654 , 0x00626 },
  688. { 0x006C1 , 0x00654 , 0x006C2 },
  689. { 0x006D2 , 0x00654 , 0x006D3 },
  690. { 0x006D5 , 0x00654 , 0x006C0 },
  691. { 0x00928 , 0x0093C , 0x00929 },
  692. { 0x00930 , 0x0093C , 0x00931 },
  693. { 0x00933 , 0x0093C , 0x00934 },
  694. { 0x009C7 , 0x009BE , 0x009CB },
  695. { 0x009C7 , 0x009D7 , 0x009CC },
  696. { 0x00B47 , 0x00B3E , 0x00B4B },
  697. { 0x00B47 , 0x00B56 , 0x00B48 },
  698. { 0x00B47 , 0x00B57 , 0x00B4C },
  699. { 0x00B92 , 0x00BD7 , 0x00B94 },
  700. { 0x00BC6 , 0x00BBE , 0x00BCA },
  701. { 0x00BC6 , 0x00BD7 , 0x00BCC },
  702. { 0x00BC7 , 0x00BBE , 0x00BCB },
  703. { 0x00C46 , 0x00C56 , 0x00C48 },
  704. { 0x00CBF , 0x00CD5 , 0x00CC0 },
  705. { 0x00CC6 , 0x00CC2 , 0x00CCA },
  706. { 0x00CC6 , 0x00CD5 , 0x00CC7 },
  707. { 0x00CC6 , 0x00CD6 , 0x00CC8 },
  708. { 0x00CCA , 0x00CD5 , 0x00CCB },
  709. { 0x00D46 , 0x00D3E , 0x00D4A },
  710. { 0x00D46 , 0x00D57 , 0x00D4C },
  711. { 0x00D47 , 0x00D3E , 0x00D4B },
  712. { 0x00DD9 , 0x00DCA , 0x00DDA },
  713. { 0x00DD9 , 0x00DCF , 0x00DDC },
  714. { 0x00DD9 , 0x00DDF , 0x00DDE },
  715. { 0x00DDC , 0x00DCA , 0x00DDD },
  716. { 0x01025 , 0x0102E , 0x01026 },
  717. { 0x01B05 , 0x01B35 , 0x01B06 },
  718. { 0x01B07 , 0x01B35 , 0x01B08 },
  719. { 0x01B09 , 0x01B35 , 0x01B0A },
  720. { 0x01B0B , 0x01B35 , 0x01B0C },
  721. { 0x01B0D , 0x01B35 , 0x01B0E },
  722. { 0x01B11 , 0x01B35 , 0x01B12 },
  723. { 0x01B3A , 0x01B35 , 0x01B3B },
  724. { 0x01B3C , 0x01B35 , 0x01B3D },
  725. { 0x01B3E , 0x01B35 , 0x01B40 },
  726. { 0x01B3F , 0x01B35 , 0x01B41 },
  727. { 0x01B42 , 0x01B35 , 0x01B43 },
  728. { 0x01E36 , 0x00304 , 0x01E38 },
  729. { 0x01E37 , 0x00304 , 0x01E39 },
  730. { 0x01E5A , 0x00304 , 0x01E5C },
  731. { 0x01E5B , 0x00304 , 0x01E5D },
  732. { 0x01E62 , 0x00307 , 0x01E68 },
  733. { 0x01E63 , 0x00307 , 0x01E69 },
  734. { 0x01EA0 , 0x00302 , 0x01EAC },
  735. { 0x01EA0 , 0x00306 , 0x01EB6 },
  736. { 0x01EA1 , 0x00302 , 0x01EAD },
  737. { 0x01EA1 , 0x00306 , 0x01EB7 },
  738. { 0x01EB8 , 0x00302 , 0x01EC6 },
  739. { 0x01EB9 , 0x00302 , 0x01EC7 },
  740. { 0x01ECC , 0x00302 , 0x01ED8 },
  741. { 0x01ECD , 0x00302 , 0x01ED9 },
  742. { 0x01F00 , 0x00300 , 0x01F02 },
  743. { 0x01F00 , 0x00301 , 0x01F04 },
  744. { 0x01F00 , 0x00342 , 0x01F06 },
  745. { 0x01F00 , 0x00345 , 0x01F80 },
  746. { 0x01F01 , 0x00300 , 0x01F03 },
  747. { 0x01F01 , 0x00301 , 0x01F05 },
  748. { 0x01F01 , 0x00342 , 0x01F07 },
  749. { 0x01F01 , 0x00345 , 0x01F81 },
  750. { 0x01F02 , 0x00345 , 0x01F82 },
  751. { 0x01F03 , 0x00345 , 0x01F83 },
  752. { 0x01F04 , 0x00345 , 0x01F84 },
  753. { 0x01F05 , 0x00345 , 0x01F85 },
  754. { 0x01F06 , 0x00345 , 0x01F86 },
  755. { 0x01F07 , 0x00345 , 0x01F87 },
  756. { 0x01F08 , 0x00300 , 0x01F0A },
  757. { 0x01F08 , 0x00301 , 0x01F0C },
  758. { 0x01F08 , 0x00342 , 0x01F0E },
  759. { 0x01F08 , 0x00345 , 0x01F88 },
  760. { 0x01F09 , 0x00300 , 0x01F0B },
  761. { 0x01F09 , 0x00301 , 0x01F0D },
  762. { 0x01F09 , 0x00342 , 0x01F0F },
  763. { 0x01F09 , 0x00345 , 0x01F89 },
  764. { 0x01F0A , 0x00345 , 0x01F8A },
  765. { 0x01F0B , 0x00345 , 0x01F8B },
  766. { 0x01F0C , 0x00345 , 0x01F8C },
  767. { 0x01F0D , 0x00345 , 0x01F8D },
  768. { 0x01F0E , 0x00345 , 0x01F8E },
  769. { 0x01F0F , 0x00345 , 0x01F8F },
  770. { 0x01F10 , 0x00300 , 0x01F12 },
  771. { 0x01F10 , 0x00301 , 0x01F14 },
  772. { 0x01F11 , 0x00300 , 0x01F13 },
  773. { 0x01F11 , 0x00301 , 0x01F15 },
  774. { 0x01F18 , 0x00300 , 0x01F1A },
  775. { 0x01F18 , 0x00301 , 0x01F1C },
  776. { 0x01F19 , 0x00300 , 0x01F1B },
  777. { 0x01F19 , 0x00301 , 0x01F1D },
  778. { 0x01F20 , 0x00300 , 0x01F22 },
  779. { 0x01F20 , 0x00301 , 0x01F24 },
  780. { 0x01F20 , 0x00342 , 0x01F26 },
  781. { 0x01F20 , 0x00345 , 0x01F90 },
  782. { 0x01F21 , 0x00300 , 0x01F23 },
  783. { 0x01F21 , 0x00301 , 0x01F25 },
  784. { 0x01F21 , 0x00342 , 0x01F27 },
  785. { 0x01F21 , 0x00345 , 0x01F91 },
  786. { 0x01F22 , 0x00345 , 0x01F92 },
  787. { 0x01F23 , 0x00345 , 0x01F93 },
  788. { 0x01F24 , 0x00345 , 0x01F94 },
  789. { 0x01F25 , 0x00345 , 0x01F95 },
  790. { 0x01F26 , 0x00345 , 0x01F96 },
  791. { 0x01F27 , 0x00345 , 0x01F97 },
  792. { 0x01F28 , 0x00300 , 0x01F2A },
  793. { 0x01F28 , 0x00301 , 0x01F2C },
  794. { 0x01F28 , 0x00342 , 0x01F2E },
  795. { 0x01F28 , 0x00345 , 0x01F98 },
  796. { 0x01F29 , 0x00300 , 0x01F2B },
  797. { 0x01F29 , 0x00301 , 0x01F2D },
  798. { 0x01F29 , 0x00342 , 0x01F2F },
  799. { 0x01F29 , 0x00345 , 0x01F99 },
  800. { 0x01F2A , 0x00345 , 0x01F9A },
  801. { 0x01F2B , 0x00345 , 0x01F9B },
  802. { 0x01F2C , 0x00345 , 0x01F9C },
  803. { 0x01F2D , 0x00345 , 0x01F9D },
  804. { 0x01F2E , 0x00345 , 0x01F9E },
  805. { 0x01F2F , 0x00345 , 0x01F9F },
  806. { 0x01F30 , 0x00300 , 0x01F32 },
  807. { 0x01F30 , 0x00301 , 0x01F34 },
  808. { 0x01F30 , 0x00342 , 0x01F36 },
  809. { 0x01F31 , 0x00300 , 0x01F33 },
  810. { 0x01F31 , 0x00301 , 0x01F35 },
  811. { 0x01F31 , 0x00342 , 0x01F37 },
  812. { 0x01F38 , 0x00300 , 0x01F3A },
  813. { 0x01F38 , 0x00301 , 0x01F3C },
  814. { 0x01F38 , 0x00342 , 0x01F3E },
  815. { 0x01F39 , 0x00300 , 0x01F3B },
  816. { 0x01F39 , 0x00301 , 0x01F3D },
  817. { 0x01F39 , 0x00342 , 0x01F3F },
  818. { 0x01F40 , 0x00300 , 0x01F42 },
  819. { 0x01F40 , 0x00301 , 0x01F44 },
  820. { 0x01F41 , 0x00300 , 0x01F43 },
  821. { 0x01F41 , 0x00301 , 0x01F45 },
  822. { 0x01F48 , 0x00300 , 0x01F4A },
  823. { 0x01F48 , 0x00301 , 0x01F4C },
  824. { 0x01F49 , 0x00300 , 0x01F4B },
  825. { 0x01F49 , 0x00301 , 0x01F4D },
  826. { 0x01F50 , 0x00300 , 0x01F52 },
  827. { 0x01F50 , 0x00301 , 0x01F54 },
  828. { 0x01F50 , 0x00342 , 0x01F56 },
  829. { 0x01F51 , 0x00300 , 0x01F53 },
  830. { 0x01F51 , 0x00301 , 0x01F55 },
  831. { 0x01F51 , 0x00342 , 0x01F57 },
  832. { 0x01F59 , 0x00300 , 0x01F5B },
  833. { 0x01F59 , 0x00301 , 0x01F5D },
  834. { 0x01F59 , 0x00342 , 0x01F5F },
  835. { 0x01F60 , 0x00300 , 0x01F62 },
  836. { 0x01F60 , 0x00301 , 0x01F64 },
  837. { 0x01F60 , 0x00342 , 0x01F66 },
  838. { 0x01F60 , 0x00345 , 0x01FA0 },
  839. { 0x01F61 , 0x00300 , 0x01F63 },
  840. { 0x01F61 , 0x00301 , 0x01F65 },
  841. { 0x01F61 , 0x00342 , 0x01F67 },
  842. { 0x01F61 , 0x00345 , 0x01FA1 },
  843. { 0x01F62 , 0x00345 , 0x01FA2 },
  844. { 0x01F63 , 0x00345 , 0x01FA3 },
  845. { 0x01F64 , 0x00345 , 0x01FA4 },
  846. { 0x01F65 , 0x00345 , 0x01FA5 },
  847. { 0x01F66 , 0x00345 , 0x01FA6 },
  848. { 0x01F67 , 0x00345 , 0x01FA7 },
  849. { 0x01F68 , 0x00300 , 0x01F6A },
  850. { 0x01F68 , 0x00301 , 0x01F6C },
  851. { 0x01F68 , 0x00342 , 0x01F6E },
  852. { 0x01F68 , 0x00345 , 0x01FA8 },
  853. { 0x01F69 , 0x00300 , 0x01F6B },
  854. { 0x01F69 , 0x00301 , 0x01F6D },
  855. { 0x01F69 , 0x00342 , 0x01F6F },
  856. { 0x01F69 , 0x00345 , 0x01FA9 },
  857. { 0x01F6A , 0x00345 , 0x01FAA },
  858. { 0x01F6B , 0x00345 , 0x01FAB },
  859. { 0x01F6C , 0x00345 , 0x01FAC },
  860. { 0x01F6D , 0x00345 , 0x01FAD },
  861. { 0x01F6E , 0x00345 , 0x01FAE },
  862. { 0x01F6F , 0x00345 , 0x01FAF },
  863. { 0x01F70 , 0x00345 , 0x01FB2 },
  864. { 0x01F74 , 0x00345 , 0x01FC2 },
  865. { 0x01F7C , 0x00345 , 0x01FF2 },
  866. { 0x01FB6 , 0x00345 , 0x01FB7 },
  867. { 0x01FBF , 0x00300 , 0x01FCD },
  868. { 0x01FBF , 0x00301 , 0x01FCE },
  869. { 0x01FBF , 0x00342 , 0x01FCF },
  870. { 0x01FC6 , 0x00345 , 0x01FC7 },
  871. { 0x01FF6 , 0x00345 , 0x01FF7 },
  872. { 0x01FFE , 0x00300 , 0x01FDD },
  873. { 0x01FFE , 0x00301 , 0x01FDE },
  874. { 0x01FFE , 0x00342 , 0x01FDF },
  875. { 0x02190 , 0x00338 , 0x0219A },
  876. { 0x02192 , 0x00338 , 0x0219B },
  877. { 0x02194 , 0x00338 , 0x021AE },
  878. { 0x021D0 , 0x00338 , 0x021CD },
  879. { 0x021D2 , 0x00338 , 0x021CF },
  880. { 0x021D4 , 0x00338 , 0x021CE },
  881. { 0x02203 , 0x00338 , 0x02204 },
  882. { 0x02208 , 0x00338 , 0x02209 },
  883. { 0x0220B , 0x00338 , 0x0220C },
  884. { 0x02223 , 0x00338 , 0x02224 },
  885. { 0x02225 , 0x00338 , 0x02226 },
  886. { 0x0223C , 0x00338 , 0x02241 },
  887. { 0x02243 , 0x00338 , 0x02244 },
  888. { 0x02245 , 0x00338 , 0x02247 },
  889. { 0x02248 , 0x00338 , 0x02249 },
  890. { 0x0224D , 0x00338 , 0x0226D },
  891. { 0x02261 , 0x00338 , 0x02262 },
  892. { 0x02264 , 0x00338 , 0x02270 },
  893. { 0x02265 , 0x00338 , 0x02271 },
  894. { 0x02272 , 0x00338 , 0x02274 },
  895. { 0x02273 , 0x00338 , 0x02275 },
  896. { 0x02276 , 0x00338 , 0x02278 },
  897. { 0x02277 , 0x00338 , 0x02279 },
  898. { 0x0227A , 0x00338 , 0x02280 },
  899. { 0x0227B , 0x00338 , 0x02281 },
  900. { 0x0227C , 0x00338 , 0x022E0 },
  901. { 0x0227D , 0x00338 , 0x022E1 },
  902. { 0x02282 , 0x00338 , 0x02284 },
  903. { 0x02283 , 0x00338 , 0x02285 },
  904. { 0x02286 , 0x00338 , 0x02288 },
  905. { 0x02287 , 0x00338 , 0x02289 },
  906. { 0x02291 , 0x00338 , 0x022E2 },
  907. { 0x02292 , 0x00338 , 0x022E3 },
  908. { 0x022A2 , 0x00338 , 0x022AC },
  909. { 0x022A8 , 0x00338 , 0x022AD },
  910. { 0x022A9 , 0x00338 , 0x022AE },
  911. { 0x022AB , 0x00338 , 0x022AF },
  912. { 0x022B2 , 0x00338 , 0x022EA },
  913. { 0x022B3 , 0x00338 , 0x022EB },
  914. { 0x022B4 , 0x00338 , 0x022EC },
  915. { 0x022B5 , 0x00338 , 0x022ED },
  916. { 0x03046 , 0x03099 , 0x03094 },
  917. { 0x0304B , 0x03099 , 0x0304C },
  918. { 0x0304D , 0x03099 , 0x0304E },
  919. { 0x0304F , 0x03099 , 0x03050 },
  920. { 0x03051 , 0x03099 , 0x03052 },
  921. { 0x03053 , 0x03099 , 0x03054 },
  922. { 0x03055 , 0x03099 , 0x03056 },
  923. { 0x03057 , 0x03099 , 0x03058 },
  924. { 0x03059 , 0x03099 , 0x0305A },
  925. { 0x0305B , 0x03099 , 0x0305C },
  926. { 0x0305D , 0x03099 , 0x0305E },
  927. { 0x0305F , 0x03099 , 0x03060 },
  928. { 0x03061 , 0x03099 , 0x03062 },
  929. { 0x03064 , 0x03099 , 0x03065 },
  930. { 0x03066 , 0x03099 , 0x03067 },
  931. { 0x03068 , 0x03099 , 0x03069 },
  932. { 0x0306F , 0x03099 , 0x03070 },
  933. { 0x0306F , 0x0309A , 0x03071 },
  934. { 0x03072 , 0x03099 , 0x03073 },
  935. { 0x03072 , 0x0309A , 0x03074 },
  936. { 0x03075 , 0x03099 , 0x03076 },
  937. { 0x03075 , 0x0309A , 0x03077 },
  938. { 0x03078 , 0x03099 , 0x03079 },
  939. { 0x03078 , 0x0309A , 0x0307A },
  940. { 0x0307B , 0x03099 , 0x0307C },
  941. { 0x0307B , 0x0309A , 0x0307D },
  942. { 0x0309D , 0x03099 , 0x0309E },
  943. { 0x030A6 , 0x03099 , 0x030F4 },
  944. { 0x030AB , 0x03099 , 0x030AC },
  945. { 0x030AD , 0x03099 , 0x030AE },
  946. { 0x030AF , 0x03099 , 0x030B0 },
  947. { 0x030B1 , 0x03099 , 0x030B2 },
  948. { 0x030B3 , 0x03099 , 0x030B4 },
  949. { 0x030B5 , 0x03099 , 0x030B6 },
  950. { 0x030B7 , 0x03099 , 0x030B8 },
  951. { 0x030B9 , 0x03099 , 0x030BA },
  952. { 0x030BB , 0x03099 , 0x030BC },
  953. { 0x030BD , 0x03099 , 0x030BE },
  954. { 0x030BF , 0x03099 , 0x030C0 },
  955. { 0x030C1 , 0x03099 , 0x030C2 },
  956. { 0x030C4 , 0x03099 , 0x030C5 },
  957. { 0x030C6 , 0x03099 , 0x030C7 },
  958. { 0x030C8 , 0x03099 , 0x030C9 },
  959. { 0x030CF , 0x03099 , 0x030D0 },
  960. { 0x030CF , 0x0309A , 0x030D1 },
  961. { 0x030D2 , 0x03099 , 0x030D3 },
  962. { 0x030D2 , 0x0309A , 0x030D4 },
  963. { 0x030D5 , 0x03099 , 0x030D6 },
  964. { 0x030D5 , 0x0309A , 0x030D7 },
  965. { 0x030D8 , 0x03099 , 0x030D9 },
  966. { 0x030D8 , 0x0309A , 0x030DA },
  967. { 0x030DB , 0x03099 , 0x030DC },
  968. { 0x030DB , 0x0309A , 0x030DD },
  969. { 0x030EF , 0x03099 , 0x030F7 },
  970. { 0x030F0 , 0x03099 , 0x030F8 },
  971. { 0x030F1 , 0x03099 , 0x030F9 },
  972. { 0x030F2 , 0x03099 , 0x030FA },
  973. { 0x030FD , 0x03099 , 0x030FE },
  974. { 0x11099 , 0x110BA , 0x1109A },
  975. { 0x1109B , 0x110BA , 0x1109C },
  976. { 0x110A5 , 0x110BA , 0x110AB },
  977. };
  978. #define CANONICAL_CLASS_MIN 0x0300
  979. #define CANONICAL_CLASS_MAX 0x1D244
  980. #define IS_DECOMPOSABLE_BLOCK(uc) \
  981. (((uc)>>8) <= 0x1D2 && u_decomposable_blocks[(uc)>>8])
  982. static const char u_decomposable_blocks[0x1D2+1] = {
  983. 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,0,0,
  984. 1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  985. 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,
  986. 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,
  987. 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,
  988. 0,0,0,0,0,0,1,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,
  989. 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
  990. 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,1,0,0,1,0,
  991. 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  992. 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,
  993. 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,
  994. 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,
  995. 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,
  996. 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,
  997. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
  998. };
  999. /* Get Canonical Combining Class(CCC). */
  1000. #define CCC(uc) \
  1001. (((uc) > 0x1D244)?0:\
  1002. ccc_val[ccc_val_index[ccc_index[(uc)>>8]][((uc)>>4)&0x0F]][(uc)&0x0F])
  1003. /* The table of the value of Canonical Cimbining Class */
  1004. static const unsigned char ccc_val[][16] = {
  1005. /* idx=0: XXXX0 - XXXXF */
  1006. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1007. /* idx=1: 00300 - 0030F */
  1008. {230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1009. /* idx=2: 00310 - 0031F */
  1010. {230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, 220 },
  1011. /* idx=3: 00320 - 0032F */
  1012. {220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220 },
  1013. /* idx=4: 00330 - 0033F */
  1014. {220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230 },
  1015. /* idx=5: 00340 - 0034F */
  1016. {230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, 230, 230, 220, 220, 0 },
  1017. /* idx=6: 00350 - 0035F */
  1018. {230, 230, 230, 220, 220, 220, 220, 230, 232, 220, 220, 230, 233, 234, 234, 233 },
  1019. /* idx=7: 00360 - 0036F */
  1020. {234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1021. /* idx=8: 00480 - 0048F */
  1022. {0, 0, 0, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0 },
  1023. /* idx=9: 00590 - 0059F */
  1024. {0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230 },
  1025. /* idx=10: 005A0 - 005AF */
  1026. {230, 230, 220, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, 228, 230 },
  1027. /* idx=11: 005B0 - 005BF */
  1028. {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 0, 23 },
  1029. /* idx=12: 005C0 - 005CF */
  1030. {0, 24, 25, 0, 230, 220, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0 },
  1031. /* idx=13: 00610 - 0061F */
  1032. {230, 230, 230, 230, 230, 230, 230, 230, 30, 31, 32, 0, 0, 0, 0, 0 },
  1033. /* idx=14: 00640 - 0064F */
  1034. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31 },
  1035. /* idx=15: 00650 - 0065F */
  1036. {32, 33, 34, 230, 230, 220, 220, 230, 230, 230, 230, 230, 220, 230, 230, 220 },
  1037. /* idx=16: 00670 - 0067F */
  1038. {35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1039. /* idx=17: 006D0 - 006DF */
  1040. {0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230 },
  1041. /* idx=18: 006E0 - 006EF */
  1042. {230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0 },
  1043. /* idx=19: 00710 - 0071F */
  1044. {0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1045. /* idx=20: 00730 - 0073F */
  1046. {230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230 },
  1047. /* idx=21: 00740 - 0074F */
  1048. {230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0 },
  1049. /* idx=22: 007E0 - 007EF */
  1050. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230 },
  1051. /* idx=23: 007F0 - 007FF */
  1052. {230, 230, 220, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1053. /* idx=24: 00810 - 0081F */
  1054. {0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 230, 230, 230, 230, 230 },
  1055. /* idx=25: 00820 - 0082F */
  1056. {230, 230, 230, 230, 0, 230, 230, 230, 0, 230, 230, 230, 230, 230, 0, 0 },
  1057. /* idx=26: 00850 - 0085F */
  1058. {0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 0, 0, 0, 0 },
  1059. /* idx=27: 00930 - 0093F */
  1060. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1061. /* idx=28: 00940 - 0094F */
  1062. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1063. /* idx=29: 00950 - 0095F */
  1064. {0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1065. /* idx=30: 009B0 - 009BF */
  1066. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1067. /* idx=31: 009C0 - 009CF */
  1068. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1069. /* idx=32: 00A30 - 00A3F */
  1070. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1071. /* idx=33: 00A40 - 00A4F */
  1072. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1073. /* idx=34: 00AB0 - 00ABF */
  1074. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1075. /* idx=35: 00AC0 - 00ACF */
  1076. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1077. /* idx=36: 00B30 - 00B3F */
  1078. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1079. /* idx=37: 00B40 - 00B4F */
  1080. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1081. /* idx=38: 00BC0 - 00BCF */
  1082. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1083. /* idx=39: 00C40 - 00C4F */
  1084. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1085. /* idx=40: 00C50 - 00C5F */
  1086. {0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1087. /* idx=41: 00CB0 - 00CBF */
  1088. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1089. /* idx=42: 00CC0 - 00CCF */
  1090. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1091. /* idx=43: 00D40 - 00D4F */
  1092. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1093. /* idx=44: 00DC0 - 00DCF */
  1094. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0 },
  1095. /* idx=45: 00E30 - 00E3F */
  1096. {0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0 },
  1097. /* idx=46: 00E40 - 00E4F */
  1098. {0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, 0 },
  1099. /* idx=47: 00EB0 - 00EBF */
  1100. {0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, 0, 0, 0, 0 },
  1101. /* idx=48: 00EC0 - 00ECF */
  1102. {0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0 },
  1103. /* idx=49: 00F10 - 00F1F */
  1104. {0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, 0 },
  1105. /* idx=50: 00F30 - 00F3F */
  1106. {0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0 },
  1107. /* idx=51: 00F70 - 00F7F */
  1108. {0, 129, 130, 0, 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0 },
  1109. /* idx=52: 00F80 - 00F8F */
  1110. {130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0 },
  1111. /* idx=53: 00FC0 - 00FCF */
  1112. {0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1113. /* idx=54: 01030 - 0103F */
  1114. {0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 9, 0, 0, 0, 0, 0 },
  1115. /* idx=55: 01080 - 0108F */
  1116. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0 },
  1117. /* idx=56: 01350 - 0135F */
  1118. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230 },
  1119. /* idx=57: 01710 - 0171F */
  1120. {0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1121. /* idx=58: 01730 - 0173F */
  1122. {0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1123. /* idx=59: 017D0 - 017DF */
  1124. {0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0 },
  1125. /* idx=60: 018A0 - 018AF */
  1126. {0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0 },
  1127. /* idx=61: 01930 - 0193F */
  1128. {0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 230, 220, 0, 0, 0, 0 },
  1129. /* idx=62: 01A10 - 01A1F */
  1130. {0, 0, 0, 0, 0, 0, 0, 230, 220, 0, 0, 0, 0, 0, 0, 0 },
  1131. /* idx=63: 01A60 - 01A6F */
  1132. {9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1133. /* idx=64: 01A70 - 01A7F */
  1134. {0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 220 },
  1135. /* idx=65: 01B30 - 01B3F */
  1136. {0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1137. /* idx=66: 01B40 - 01B4F */
  1138. {0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1139. /* idx=67: 01B60 - 01B6F */
  1140. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 230 },
  1141. /* idx=68: 01B70 - 01B7F */
  1142. {230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1143. /* idx=69: 01BA0 - 01BAF */
  1144. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0 },
  1145. /* idx=70: 01BE0 - 01BEF */
  1146. {0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1147. /* idx=71: 01BF0 - 01BFF */
  1148. {0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1149. /* idx=72: 01C30 - 01C3F */
  1150. {0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0 },
  1151. /* idx=73: 01CD0 - 01CDF */
  1152. {230, 230, 230, 0, 1, 220, 220, 220, 220, 220, 230, 230, 220, 220, 220, 220 },
  1153. /* idx=74: 01CE0 - 01CEF */
  1154. {230, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 220, 0, 0 },
  1155. /* idx=75: 01DC0 - 01DCF */
  1156. {230, 230, 220, 230, 230, 230, 230, 230, 230, 230, 220, 230, 230, 234, 214, 220 },
  1157. /* idx=76: 01DD0 - 01DDF */
  1158. {202, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1159. /* idx=77: 01DE0 - 01DEF */
  1160. {230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1161. /* idx=78: 01DF0 - 01DFF */
  1162. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 220, 230, 220 },
  1163. /* idx=79: 020D0 - 020DF */
  1164. {230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, 0, 0, 0 },
  1165. /* idx=80: 020E0 - 020EF */
  1166. {0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, 1, 220, 220, 220, 220 },
  1167. /* idx=81: 020F0 - 020FF */
  1168. {230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1169. /* idx=82: 02CE0 - 02CEF */
  1170. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230 },
  1171. /* idx=83: 02CF0 - 02CFF */
  1172. {230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1173. /* idx=84: 02D70 - 02D7F */
  1174. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
  1175. /* idx=85: 02DE0 - 02DEF */
  1176. {230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1177. /* idx=86: 02DF0 - 02DFF */
  1178. {230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1179. /* idx=87: 03020 - 0302F */
  1180. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, 224, 224 },
  1181. /* idx=88: 03090 - 0309F */
  1182. {0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0 },
  1183. /* idx=89: 0A660 - 0A66F */
  1184. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230 },
  1185. /* idx=90: 0A670 - 0A67F */
  1186. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 0, 0 },
  1187. /* idx=91: 0A6F0 - 0A6FF */
  1188. {230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1189. /* idx=92: 0A800 - 0A80F */
  1190. {0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1191. /* idx=93: 0A8C0 - 0A8CF */
  1192. {0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1193. /* idx=94: 0A8E0 - 0A8EF */
  1194. {230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1195. /* idx=95: 0A8F0 - 0A8FF */
  1196. {230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1197. /* idx=96: 0A920 - 0A92F */
  1198. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 0, 0 },
  1199. /* idx=97: 0A950 - 0A95F */
  1200. {0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1201. /* idx=98: 0A9B0 - 0A9BF */
  1202. {0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1203. /* idx=99: 0A9C0 - 0A9CF */
  1204. {9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1205. /* idx=100: 0AAB0 - 0AABF */
  1206. {230, 0, 230, 230, 220, 0, 0, 230, 230, 0, 0, 0, 0, 0, 230, 230 },
  1207. /* idx=101: 0AAC0 - 0AACF */
  1208. {0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1209. /* idx=102: 0ABE0 - 0ABEF */
  1210. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1211. /* idx=103: 0FB10 - 0FB1F */
  1212. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0 },
  1213. /* idx=104: 0FE20 - 0FE2F */
  1214. {230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1215. /* idx=105: 101F0 - 101FF */
  1216. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0 },
  1217. /* idx=106: 10A00 - 10A0F */
  1218. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 230 },
  1219. /* idx=107: 10A30 - 10A3F */
  1220. {0, 0, 0, 0, 0, 0, 0, 0, 230, 1, 220, 0, 0, 0, 0, 9 },
  1221. /* idx=108: 11040 - 1104F */
  1222. {0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1223. /* idx=109: 110B0 - 110BF */
  1224. {0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0 },
  1225. /* idx=110: 1D160 - 1D16F */
  1226. {0, 0, 0, 0, 0, 216, 216, 1, 1, 1, 0, 0, 0, 226, 216, 216 },
  1227. /* idx=111: 1D170 - 1D17F */
  1228. {216, 216, 216, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 220, 220 },
  1229. /* idx=112: 1D180 - 1D18F */
  1230. {220, 220, 220, 0, 0, 230, 230, 230, 230, 230, 220, 220, 0, 0, 0, 0 },
  1231. /* idx=113: 1D1A0 - 1D1AF */
  1232. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0 },
  1233. /* idx=114: 1D240 - 1D24F */
  1234. {0, 0, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1235. };
  1236. /* The index table to ccc_val[*][16] */
  1237. static const unsigned char ccc_val_index[][16] = {
  1238. /* idx=0: XXX00 - XXXFF */
  1239. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1240. /* idx=1: 00300 - 003FF */
  1241. { 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1242. /* idx=2: 00400 - 004FF */
  1243. { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0 },
  1244. /* idx=3: 00500 - 005FF */
  1245. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,10,11,12, 0, 0, 0 },
  1246. /* idx=4: 00600 - 006FF */
  1247. { 0,13, 0, 0,14,15, 0,16, 0, 0, 0, 0, 0,17,18, 0 },
  1248. /* idx=5: 00700 - 007FF */
  1249. { 0,19, 0,20,21, 0, 0, 0, 0, 0, 0, 0, 0, 0,22,23 },
  1250. /* idx=6: 00800 - 008FF */
  1251. { 0,24,25, 0, 0,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1252. /* idx=7: 00900 - 009FF */
  1253. { 0, 0, 0,27,28,29, 0, 0, 0, 0, 0,30,31, 0, 0, 0 },
  1254. /* idx=8: 00A00 - 00AFF */
  1255. { 0, 0, 0,32,33, 0, 0, 0, 0, 0, 0,34,35, 0, 0, 0 },
  1256. /* idx=9: 00B00 - 00BFF */
  1257. { 0, 0, 0,36,37, 0, 0, 0, 0, 0, 0, 0,38, 0, 0, 0 },
  1258. /* idx=10: 00C00 - 00CFF */
  1259. { 0, 0, 0, 0,39,40, 0, 0, 0, 0, 0,41,42, 0, 0, 0 },
  1260. /* idx=11: 00D00 - 00DFF */
  1261. { 0, 0, 0, 0,43, 0, 0, 0, 0, 0, 0, 0,44, 0, 0, 0 },
  1262. /* idx=12: 00E00 - 00EFF */
  1263. { 0, 0, 0,45,46, 0, 0, 0, 0, 0, 0,47,48, 0, 0, 0 },
  1264. /* idx=13: 00F00 - 00FFF */
  1265. { 0,49, 0,50, 0, 0, 0,51,52, 0, 0, 0,53, 0, 0, 0 },
  1266. /* idx=14: 01000 - 010FF */
  1267. { 0, 0, 0,54, 0, 0, 0, 0,55, 0, 0, 0, 0, 0, 0, 0 },
  1268. /* idx=15: 01300 - 013FF */
  1269. { 0, 0, 0, 0, 0,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1270. /* idx=16: 01700 - 017FF */
  1271. { 0,57, 0,58, 0, 0, 0, 0, 0, 0, 0, 0, 0,59, 0, 0 },
  1272. /* idx=17: 01800 - 018FF */
  1273. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,60, 0, 0, 0, 0, 0 },
  1274. /* idx=18: 01900 - 019FF */
  1275. { 0, 0, 0,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1276. /* idx=19: 01A00 - 01AFF */
  1277. { 0,62, 0, 0, 0, 0,63,64, 0, 0, 0, 0, 0, 0, 0, 0 },
  1278. /* idx=20: 01B00 - 01BFF */
  1279. { 0, 0, 0,65,66, 0,67,68, 0, 0,69, 0, 0, 0,70,71 },
  1280. /* idx=21: 01C00 - 01CFF */
  1281. { 0, 0, 0,72, 0, 0, 0, 0, 0, 0, 0, 0, 0,73,74, 0 },
  1282. /* idx=22: 01D00 - 01DFF */
  1283. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,75,76,77,78 },
  1284. /* idx=23: 02000 - 020FF */
  1285. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,79,80,81 },
  1286. /* idx=24: 02C00 - 02CFF */
  1287. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,82,83 },
  1288. /* idx=25: 02D00 - 02DFF */
  1289. { 0, 0, 0, 0, 0, 0, 0,84, 0, 0, 0, 0, 0, 0,85,86 },
  1290. /* idx=26: 03000 - 030FF */
  1291. { 0, 0,87, 0, 0, 0, 0, 0, 0,88, 0, 0, 0, 0, 0, 0 },
  1292. /* idx=27: 0A600 - 0A6FF */
  1293. { 0, 0, 0, 0, 0, 0,89,90, 0, 0, 0, 0, 0, 0, 0,91 },
  1294. /* idx=28: 0A800 - 0A8FF */
  1295. {92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,93, 0,94,95 },
  1296. /* idx=29: 0A900 - 0A9FF */
  1297. { 0, 0,96, 0, 0,97, 0, 0, 0, 0, 0,98,99, 0, 0, 0 },
  1298. /* idx=30: 0AA00 - 0AAFF */
  1299. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,101, 0, 0, 0 },
  1300. /* idx=31: 0AB00 - 0ABFF */
  1301. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 0 },
  1302. /* idx=32: 0FB00 - 0FBFF */
  1303. { 0,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1304. /* idx=33: 0FE00 - 0FEFF */
  1305. { 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1306. /* idx=34: 10100 - 101FF */
  1307. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105 },
  1308. /* idx=35: 10A00 - 10AFF */
  1309. {106, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1310. /* idx=36: 11000 - 110FF */
  1311. { 0, 0, 0, 0,108, 0, 0, 0, 0, 0, 0,109, 0, 0, 0, 0 },
  1312. /* idx=37: 1D100 - 1D1FF */
  1313. { 0, 0, 0, 0, 0, 0,110,111,112, 0,113, 0, 0, 0, 0, 0 },
  1314. /* idx=38: 1D200 - 1D2FF */
  1315. { 0, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1316. };
  1317. /* The index table to ccc_val_index[*][16] */
  1318. static const unsigned char ccc_index[] = {
  1319. 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, 0, 0,15, 0, 0, 0,16,
  1320. 17,18,19,20,21,22, 0, 0,23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,24,25, 0, 0,
  1321. 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1322. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1323. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1324. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1325. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,27, 0,
  1326. 28,29,30,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1327. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1328. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1329. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,32, 0, 0,33, 0, 0,34, 0, 0, 0, 0, 0, 0,
  1330. 0, 0,35, 0, 0, 0, 0, 0,36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1331. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1332. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1333. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1334. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1335. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1336. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1337. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1338. 0, 0, 0, 0, 0, 0, 0, 0, 0,37,38,};
  1339. #endif /* ARCHIVE_STRING_COMPOSITION_H_INCLUDED */