1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright (c) 1994 by Sun Microsystems, Inc. 23 */ 24 25 26 27 /*--------------------------------------------------------------*/ 28 /* Conversion table for initial and middle sound */ 29 /*--------------------------------------------------------------*/ 30 31 32 /* 7 bit Sound ---> 5 bit Combination Code */ 33 /* : give 5 bit combination code to each sound */ 34 35 short X32_19[32] = /* INITIAL SOUND */ 36 { -1, 37 0x0a, /* gi-ug */ 38 0x0b, /* double gi-ug */ 39 -1, /* */ 40 0x0c, /* ni-un */ 41 -1, /* */ 42 -1, /* */ 43 0x0d, /* di-gud */ 44 0x0e, /* double di-gud */ 45 0x0f, /* ri-ul */ 46 -1, /* */ 47 -1, /* */ 48 -1, /* */ 49 -1, /* */ 50 -1, /* */ 51 -1, /* */ 52 -1, /* */ 53 0x10, /* mi-um */ 54 0x11, /* bi-ub */ 55 0x12, /* double bi-ub */ 56 -1, /* */ 57 0x13, /* si-od */ 58 0x14, /* double si-od */ 59 0x15, /* i-ung */ 60 0x16, /* ji-ud */ 61 0x17, /* double ji-ud */ 62 0x18, /* chi-ud */ 63 0x19, /* ki-uk */ 64 0x1a, /* ti-ud */ 65 0x1b, /* pi-up */ 66 0x1c, /* hi-ud */ 67 -1, /* */ 68 } ; 69 70 short X32_21[32] = /* MIDDLE SOUND */ 71 { -1, /* */ 72 -1, /* FILL */ 73 0x02, /* a */ 74 0x03, /* a + i */ 75 0x05, /* ya */ 76 0x06, /* ya + i */ 77 0x07, /* eo */ 78 0x09, /* eo + i */ 79 -1, /* */ 80 -1, /* */ 81 0x0a, /* yeo */ 82 0x0b, /* yeo + i */ 83 0x0d, /* o */ 84 0x0e, /* o + a */ 85 0x0f, /* o + a + i */ 86 0x11, /* o + i */ 87 -1, /* */ 88 -1, /* */ 89 0x12, /* yo */ 90 0x13, /* u */ 91 0x15, /* u + eo */ 92 0x16, /* u + eo + i */ 93 0x17, /* u + i */ 94 0x19, /* yu */ 95 -1, /* */ 96 -1, /* */ 97 0x1a, /* _ */ 98 0x1b, /* _ + i */ 99 0x1d, /* i */ 100 -1, /* */ 101 -1, /* */ 102 -1, /* */ 103 }; 104 105 short X32_28[32] = /* FINAL SOUND */ 106 { -1, /* FILL */ 107 0x02, /* gi-ug */ 108 0x03, /* double gi-ug */ 109 0x04, /* gi-ug si-od */ 110 0x05, /* ni-un */ 111 0x06, /* ni-un ji-od */ 112 0x07, /* ni-un hi-ud */ 113 0x08, /* di-gud */ 114 -1, /* double di-gud */ 115 0x09, /* ri-ul */ 116 0x0a, /* ri-ul gi-ug */ 117 0x0b, /* ri-ul mi-um */ 118 0x0c, /* ri-ul bi-ub */ 119 0x0d, /* ri-ul si-od */ 120 0x0e, /* ri-ul ti-gud */ 121 0x0f, /* ri-ul pi-op */ 122 0x10, /* ri-ul hi-ud */ 123 0x11, /* mi-um */ 124 0x12, /* bi-ub */ 125 -1, /* double bi-ub */ 126 0x13, /* bi-ub si-od */ 127 0x14, /* si-od */ 128 0x15, /* double si-od */ 129 0x16, /* i-ung */ 130 0x17, /* ji-ud */ 131 -1, /* double ji-ud */ 132 0x18, /* chi-ud */ 133 0x19, /* ki-uk */ 134 0x1a, /* ti-ud */ 135 0x1b, /* pi-up */ 136 0x1c, /* hi-ud */ 137 -1, /* */ 138 } ; 139 140 141 /* 5 bit Combination Code ---> 7 bit code */ 142 /* : give 7 bit Code to each Sound */ 143 144 short Y19_32[20] = /* INITIAL SOUND */ 145 { 0x00, /* (Fill) */ 146 0x01, /* gi-uk */ 147 0x02, /* double gi-ug */ 148 0x04, /* ni-un */ 149 0x07, /* di-gud */ 150 0x08, /* double di-gud */ 151 0x09, /* ri-ul */ 152 0x11, /* mi-um */ 153 0x12, /* bi-ub */ 154 0x13, /* double bi-ub */ 155 0x15, /* si-od */ 156 0x16, /* double si-od */ 157 0x17, /* i-ung */ 158 0x18, /* ji-ud */ 159 0x19, /* double ji-ud */ 160 0x1a, /* chi-ud */ 161 0x1b, /* ki-uk */ 162 0x1c, /* ti-ud */ 163 0x1d, /* pi-up */ 164 0x1e, /* hi-ud */ 165 } ; 166 167 168 short Y21_32[32] = /* MIDDLE SOUND */ 169 { -1, /* */ 170 0x00, /* (FILL) */ 171 0x02, /* a */ 172 0x03, /* a + i */ 173 -1, /* */ 174 0x04, /* ya */ 175 0x05, /* ya + i */ 176 0x06, /* eo */ 177 -1, /* */ 178 0x07, /* eo + i */ 179 0x0a, /* yeo */ 180 0x0b, /* yeo + i */ 181 -1, /* */ 182 0x0c, /* o */ 183 0x0d, /* o + a */ 184 0x0e, /* o + a + i */ 185 -1, /* */ 186 0x0f, /* o + i */ 187 0x12, /* yo */ 188 0x13, /* u */ 189 -1, /* */ 190 0x14, /* u + eo */ 191 0x15, /* u + eo + i */ 192 0x16, /* u + i */ 193 -1, /* */ 194 0x17, /* yu */ 195 0x1a, /* _ */ 196 0x1b, /* _ + i */ 197 -1, /* */ 198 0x1c, /* i */ 199 -1, /* */ 200 -1, /* */ 201 } ; 202 203 short Y28_32[28] = /* FINAL SOUND */ 204 { 0x00, /* (FILL) */ 205 0x01, /* gi-ug */ 206 0x02, /* double gi-ug */ 207 0x03, /* gi-ug si-od */ 208 0x04, /* ni-un */ 209 0x05, /* ni-un ji-od */ 210 0x06, /* ni-un hi-ud */ 211 0x07, /* di-gud */ 212 0x09, /* ri-ul */ 213 0x0a, /* ri-ul gi-ug */ 214 0x0b, /* ri-ul mi-um */ 215 0x0c, /* ri-ul bi-ub */ 216 0x0d, /* ri-ul si-od */ 217 0x0e, /* ri-ul ti-gud */ 218 0x0f, /* ri-ul pi-op */ 219 0x10, /* ri-ul hi-ud */ 220 0x11, /* mi-um */ 221 0x12, /* bi-ub */ 222 0x14, /* bi-ub si-od */ 223 0x15, /* si-od */ 224 0x16, /* double si-od */ 225 0x17, /* i-ung */ 226 0x18, /* ji-ud */ 227 0x1a, /* chi-ud */ 228 0x1b, /* ki-uk */ 229 0x1c, /* ti-ud */ 230 0x1d, /* pi-up */ 231 0x1e, /* hi-ud */ 232 } ; 233 234 235 /* Bit map of all possible Hangul Character compositions. 236 * first sound = 19 consonants; 237 * middle sound = 21 vowels; 238 * final sound = 28 consonants; 239 * For each array element of first_sound and middle_sound, there is a bitmap 240 * of 28 final_sound in 32bits according to New Standard Code(87-3). 241 * Each map looks like 242 * left [...hi-ud...ri-ul..gi-ug..]right 243 */ 244 245 /* Appending Capital 'L' */ 246 long cmp_bitmap[19][21] = { 247 248 /* gi-ug */ 249 {0x1dfe0f26L, 0x760226L, 0x500226L, 0x222L, 0x1cf60b26L, 0x760222L, 0x476032eL, 0x140222L, 0xd72b26L, 0x560a26L, 0x640222L, 0x560226L, 0x140222L, 0xd70f26L, 0x600226L, 0x100002L, 0x160226L, 0x222L, 0x560726L, 0x2L, 0x8d60b26L}, 250 251 /* Double gi-ug */ 252 {0x4760a2eL, 0x760226L, 0x206L, 0x0L, 0x76022eL, 0x520026L, 0x4300222L, 0x2L, 0x1d602a6L, 0x600206L, 0x400006L, 0x460222L, 0x2L, 0xd70226L, 0x600202L, 0x260226L, 0x60222L, 0x2L, 0x4570aa6L, 0x0L, 0x560226L}, 253 254 /* ni-un */ 255 {0x15f60f2eL, 0x760226L, 0x420226L, 0x0L, 0x10761a36L, 0x760226L, 0x2660226L, 0x22L, 0x18560a26L, 0x200222L, 0x0L, 0x160222L, 0x540226L, 0x560326L, 0x200002L, 0x2L, 0x60222L, 0x460206L, 0x8d60e26L, 0x222L, 0x8560a26L}, 256 257 /* di-gud */ 258 {0x11f71f2eL, 0x760226L, 0x2L, 0x0L, 0x9561b2eL, 0x760226L, 0x600222L, 0x22L, 0x5562b26L, 0x222L, 0x200002L, 0x160222L, 0x2L, 0x560226L, 0x200002L, 0x400002L, 0x540222L, 0x420222L, 0x560b26L, 0x2L, 0xf60326L}, 259 260 /* Double di-gud */ 261 {0x10760226L, 0x760226L, 0x0L, 0x0L, 0x10761a26L, 0x760226L, 0x200002L, 0x0L, 0x400226L, 0x202L, 0x2L, 0x22L, 0x0L, 0x430226L, 0x0L, 0x2L, 0x460222L, 0x0L, 0x160326L, 0x60222L, 0x560222L}, 262 263 /* ri-ul */ 264 {0x18f60226L, 0x760226L, 0x500026L, 0x0L, 0x10760226L, 0x560226L, 0x760226L, 0x140022L, 0x560226L, 0x400022L, 0x200000L, 0x560222L, 0x540222L, 0x560226L, 0x200002L, 0x2L, 0x520226L, 0x560226L, 0xcd60226L, 0x0L, 0x560226L}, 265 266 /* mi-um */ 267 {0x14d60fa6L, 0xf60226L, 0x400206L, 0x0L, 0x10d60a26L, 0x760226L, 0x1700226L, 0x2L, 0x560a36L, 0x600022L, 0x0L, 0x540222L, 0x140222L, 0x14560f2eL, 0x140222L, 0x2L, 0x222L, 0x120222L, 0x120222L, 0x0L, 0x5760b26L}, 268 269 /* bi-ob */ 270 {0x4561f3eL, 0x4760226L, 0x40026L, 0x0L, 0xd60b26L, 0x760326L, 0x4740226L, 0x22L, 0x56022eL, 0x200022L, 0x200002L, 0x60226L, 0x22L, 0xc560f26L, 0x200202L, 0x2L, 0x400226L, 0x520222L, 0x160226L, 0x0L, 0x1d60a26L}, 271 272 /* Double bi-ob */ 273 {0x10760a26L, 0x760226L, 0x20006L, 0x0L, 0x720326L, 0x400002L, 0x760006L, 0x0L, 0x460226L, 0x0L, 0x0L, 0x2L, 0x400002L, 0x520226L, 0x0L, 0x0L, 0x0L, 0x400002L, 0x60222L, 0x0L, 0x560226L}, 274 275 /* si-od */ 276 {0x4760f36L, 0x760226L, 0x560226L, 0x420222L, 0x8761b3eL, 0x760226L, 0x760226L, 0x400222L, 0x4560a2eL, 0x400226L, 0x320222L, 0x160222L, 0x560226L, 0xd560326L, 0x200002L, 0x420226L, 0x560226L, 0x520206L, 0x560626L, 0x0L, 0x8570326L}, 277 278 /* Double si-od */ 279 {0x10660236L, 0x660226L, 0x400000L, 0x0L, 0x660a26L, 0x222L, 0x0L, 0x20L, 0x460b26L, 0x200026L, 0x200002L, 0x60222L, 0x2L, 0x460226L, 0x200002L, 0x2L, 0x22L, 0x400000L, 0x70a26L, 0x20222L, 0x560226L}, 280 281 /* i-ung */ 282 {0xc770ee6L, 0x760226L, 0x14561226L, 0x40222L, 0xafe0f66L, 0x560226L, 0x1c7e1a2eL, 0x360222L, 0x1572e26L, 0x760226L, 0x520026L, 0x560226L, 0x560226L, 0x560e26L, 0x660226L, 0x460226L, 0x560226L, 0x1560226L, 0x1fd68226L, 0x120222L, 0x8f70e26L}, 283 284 /* ji-od */ 285 {0xf60ba6L, 0x760226L, 0x4202a6L, 0x222L, 0xd60a26L, 0x560226L, 0x660222L, 0x2L, 0x11d60a26L, 0x540206L, 0x600002L, 0x560222L, 0x400026L, 0x560e26L, 0x200002L, 0x2L, 0x160226L, 0x20222L, 0x560226L, 0x0L, 0xcd60B26L}, 286 287 /* Double ji-od */ 288 {0x7612a6L, 0x760226L, 0x400022L, 0x0L, 0x760226L, 0x400002L, 0x200002L, 0x0L, 0x1560226L, 0x200206L, 0x200002L, 0x60222L, 0x400000L, 0x460226L, 0x600002L, 0x0L, 0x2L, 0x2L, 0x520002L, 0x0L, 0x10c60226L}, 289 290 /* chi-od */ 291 {0xf602a6L, 0x760226L, 0x4202a2L, 0x0L, 0x760226L, 0x560226L, 0x200022L, 0x400022L, 0x560226L, 0x400222L, 0x0L, 0x560222L, 0x20002L, 0x560226L, 0x200002L, 0x22L, 0x560222L, 0x420222L, 0x560226L, 0x0L, 0x560726L}, 292 293 /* ki-ug */ 294 {0x560226L, 0x760226L, 0x400006L, 0x0L, 0x760326L, 0x560226L, 0x760222L, 0x2L, 0x560226L, 0x420226L, 0x400002L, 0x202L, 0x2L, 0x560226L, 0x400222L, 0x400002L, 0x560226L, 0x20222L, 0x460226L, 0x0L, 0x560226L}, 295 296 /* ti-gud */ 297 {0x760626L, 0x760226L, 0x400002L, 0x0L, 0x760a26L, 0x560226L, 0x200022L, 0x22L, 0x8560226L, 0x22L, 0x2L, 0x500022L, 0x2L, 0x560226L, 0x200002L, 0x2L, 0x460226L, 0x420222L, 0x160b26L, 0x60222L, 0x560226L}, 298 299 /* pi-ob */ 300 {0x4760a2eL, 0x760226L, 0x6L, 0x0L, 0x760226L, 0x560226L, 0x660222L, 0x140202L, 0x560226L, 0x400002L, 0x0L, 0x22L, 0x140222L, 0x560b26L, 0x400002L, 0x0L, 0x120222L, 0x520222L, 0x160222L, 0x0L, 0x560226L}, 301 302 /* hi-ud */ 303 {0x564226L, 0x760226L, 0x400002L, 0x0L, 0x560a26L, 0x560226L, 0x760226L, 0x40222L, 0x4564226L, 0x500226L, 0x500026L, 0x540226L, 0x140222L, 0x524226L, 0x420222L, 0x400226L, 0x560226L, 0x520226L, 0x45607a6L, 0x460222L, 0x560226L} 304 }; 305 306 /* 307 * Each cmp_srctbl[i][j] has 2-byte compeletion code 308 * where i is initial_sound and j is middle_sound. 309 * So, cmp_srctbl[i][0] is the code for some initial_sound and 310 * the first of middle_sound(always 'a'). 311 */ 312 313 unsigned short cmp_srchtbl[19][21] = { 314 315 /* gi-ug */ 316 {0xb0a1, 0xb0b3, 0xb0bc, 0xb0c2, 0xb0c5, 0xb0d4, 0xb0dc, 0xb0e8, 0xb0ed, 0xb0fa, 0xb1a5, 0xb1ab, 0xb1b3, 0xb1b8, 0xb1c5, 0xb1cb, 0xb1cd, 0xb1d4, 0xb1d7, 0xb1e1, 0xb1e2}, 317 318 /* Double gi-ug */ 319 {0xb1ee, 0xb1fa, 0xb2a5, 0x0000, 0xb2a8, 0xb2b2, 0xb2b8, 0xb2be, 0xb2bf, 0xb2ca, 0xb2cf, 0xb2d2, 0xb2d8, 0xb2d9, 0xb2e3, 0xb2e7, 0xb2ee, 0xb2f3, 0xb2f4, 0x0000, 0xb3a2 }, 320 321 /* ni-un */ 322 {0xb3aa, 0xb3bb, 0xb3c4, 0x0000, 0xb3ca, 0xb3d7, 0xb3e0, 0xb3e9, 0xb3eb, 0xb3f6, 0x0000, 0xb3fa, 0xb4a2, 0xb4a9, 0xb4b2, 0xb4b4, 0xb4b5, 0xb4ba, 0xb4c0, 0xb4cc, 0xb4cf}, 323 324 /* di-gud */ 325 {0xb4d9, 0xb4eb, 0xb4f4, 0x0000, 0xb4f5, 0xb5a5, 0xb5ae, 0xb5b3, 0xb5b5, 0xb5c2, 0xb5c5, 0xb5c7, 0xb5cd, 0xb5ce, 0xb5d6, 0xb5d8, 0xb5da, 0xb5e0, 0xb5e5, 0xb5ef, 0xb5f0}, 326 327 /* Double di-gud */ 328 {0xb5fb, 0xb6a7, 0x0000, 0x0000, 0xb6b0, 0xb6bc, 0xb6c5, 0x0000, 0xb6c7, 0xb6cc, 0xb6ce, 0xb6cf, 0x0000, 0xb6d1, 0x0000, 0xb6d8, 0xb6d9, 0x0000, 0xb6df, 0xb6e7, 0xb6ec}, 329 330 /* ri-ul */ 331 {0xb6f3, 0xb7a1, 0xb7aa, 0x0000, 0xb7af, 0xb7b9, 0xb7c1, 0xb7ca, 0xb7ce, 0xb7d6, 0xb7d9, 0xb7da, 0xb7e1, 0xb7e7, 0xb7ef, 0xb7f1, 0xb7f2, 0xb7f9, 0xb8a3, 0x0000, 0xb8ae}, 332 333 /* mi-um */ 334 {0xb8b6, 0xb8c5, 0xb8cf, 0x0000, 0xb8d3, 0xb8de, 0xb8e7, 0xb8ef, 0xb8f0, 0xb8fa, 0x0000, 0xb8fe, 0xb9a6, 0xb9ab, 0xb9b9, 0xb9be, 0xb9bf, 0xb9c2, 0xb9c7, 0x0000, 0xb9cc}, 335 336 /* bi-ub */ 337 {0xb9d9, 0xb9e8, 0xb9f2, 0x0000, 0xb9f6, 0xbaa3, 0xbaad, 0xbab6, 0xbab8, 0xbac1, 0xbac4, 0xbac6, 0xbacc, 0xbace, 0xbadb, 0xbade, 0xbadf, 0xbae4, 0xbaea, 0x0000, 0xbaf1}, 338 339 /* Double bi-ub */ 340 {0xbafc, 0xbba9, 0xbbb2, 0x0000, 0xbbb5, 0xbbbe, 0xbbc0, 0x0000, 0xbbc7, 0x0000, 0x0000, 0xbbce, 0xbbcf, 0xbbd1, 0x0000, 0x0000, 0x0000, 0xbbd8, 0xbbda, 0x0000, 0xbbdf}, 341 342 /* si-os */ 343 {0xbbe7, 0xbbf5, 0xbbfe, 0xbca8, 0xbcad, 0xbcbc, 0xbcc5, 0xbcce, 0xbcd2, 0xbcdd, 0xbce2, 0xbce8, 0xbcee, 0xbcf6, 0xbda4, 0xbda6, 0xbdac, 0xbdb4, 0xbdba, 0x0000, 0xbdc3}, 344 345 /* Double si-os */ 346 {0xbdce, 0xbdd8, 0xbde0, 0x0000, 0xbde1, 0xbdea, 0x0000, 0xbded, 0xbdee, 0xbdf7, 0xbdfb, 0xbdfd, 0xbea4, 0xbea5, 0xbeac, 0xbeae, 0xbeaf, 0xbeb1, 0xbeb2, 0xbeba, 0xbebe}, 347 348 /* i-ung */ 349 {0xbec6, 0xbed6, 0xbedf, 0xbeea, 0xbeee, 0xbfa1, 0xbfa9, 0xbfb9, 0xbfc0, 0xbfcd, 0xbfd6, 0xbfdc, 0xbfe4, 0xbfec, 0xbff6, 0xbffe, 0xc0a7, 0xc0af, 0xc0b8, 0xc0c7, 0xc0cc}, 350 351 /* ji-od */ 352 {0xc0da, 0xc0e7, 0xc0f0, 0xc0f7, 0xc0fa, 0xc1a6, 0xc1ae, 0xc1b5, 0xc1b6, 0xc1c2, 0xc1c8, 0xc1cb, 0xc1d2, 0xc1d6, 0xc1e0, 0xc1e2, 0xc1e3, 0xc1ea, 0xc1ee, 0x0000, 0xc1f6}, 353 354 /* Double ji-od */ 355 {0xc2a5, 0xc2b0, 0xc2b9, 0x0000, 0xc2bc, 0xc2c5, 0xc2c7, 0x0000, 0xc2c9, 0xc2d2, 0xc2d6, 0xc2d8, 0xc2dd, 0xc2de, 0xc2e5, 0x0000, 0xc2e8, 0xc2e9, 0xc2ea, 0x0000, 0xc2ee}, 356 357 /* chi-od */ 358 {0xc2f7, 0xc3a4, 0xc3ad, 0x0000, 0xc3b3, 0xc3bc, 0xc3c4, 0xc3c7, 0xc3ca, 0xc3d2, 0x0000, 0xc3d6, 0xc3dd, 0xc3df, 0xc3e7, 0xc3e9, 0xc3eb, 0xc3f2, 0xc3f7, 0x0000, 0xc4a1}, 359 360 /* ki-ug */ 361 {0xc4ab, 0xc4b3, 0xc4bc, 0x0000, 0xc4bf, 0xc4c9, 0xc4d1, 0xc4d9, 0xc4da, 0xc4e2, 0xc4e8, 0xc4ea, 0xc4ec, 0xc4ed, 0xc4f5, 0xc4f9, 0xc4fb, 0xc5a5, 0xc5a9, 0x0000, 0xc5b0}, 362 363 /* ti-gud */ 364 {0xc5b8, 0xc5c2, 0xc5cb, 0x0000, 0xc5cd, 0xc5d7, 0xc5df, 0xc5e2, 0xc5e4, 0xc5ed, 0xc5ef, 0xc5f0, 0xc5f4, 0xc5f5, 0xc5fd, 0xc6a1, 0xc6a2, 0xc6a9, 0xc6ae, 0xc6b7, 0xc6bc}, 365 366 /* pi-ob */ 367 {0xc6c4, 0xc6d0, 0xc6d9, 0x0000, 0xc6db, 0xc6e4, 0xc6ec, 0xc6f3, 0xc6f7, 0xc7a1, 0x0000, 0xc7a3, 0xc7a5, 0xc7aa, 0xc7b4, 0x0000, 0xc7b6, 0xc7bb, 0xc7c1, 0x0000, 0xc7c7}, 368 369 /* hi-ud */ 370 {0xc7cf, 0xc7d8, 0xc7e1, 0x0000, 0xc7e3, 0xc7ec, 0xc7f4, 0xc7fd, 0xc8a3, 0xc8ad, 0xc8b3, 0xc8b8, 0xc8bf, 0xc8c4, 0xc8cc, 0xc8d1, 0xc8d6, 0xc8de, 0xc8e5, 0xc8f1, 0xc8f7} 371 372 }; 373