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