1 
2 #line 1 "hb-ot-shape-complex-indic-machine.rl"
3 /*
4  * Copyright © 2011,2012  Google, Inc.
5  *
6  *  This is part of HarfBuzz, a text shaping library.
7  *
8  * Permission is hereby granted, without written agreement and without
9  * license or royalty fees, to use, copy, modify, and distribute this
10  * software and its documentation for any purpose, provided that the
11  * above copyright notice and the following two paragraphs appear in
12  * all copies of this software.
13  *
14  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
18  * DAMAGE.
19  *
20  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
23  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
25  *
26  * Google Author(s): Behdad Esfahbod
27  */
28 
29 #ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
30 #define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
31 
32 #include "hb-private.hh"
33 
34 
35 #line 36 "hb-ot-shape-complex-indic-machine.hh"
36 static const unsigned char _indic_syllable_machine_trans_keys[] = {
37 	8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
38 	7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u,
39 	6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
40 	4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
41 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u,
42 	5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
43 	7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
44 	6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
45 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
46 	4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u,
47 	5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
48 	7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
49 	6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u,
50 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u,
51 	8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
52 	5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u,
53 	4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
54 	16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
55 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 5u, 8u, 4u, 14u, 4u, 14u, 5u, 8u,
56 	5u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
57 	5u, 7u, 7u, 7u, 8u, 8u, 1u, 16u, 8u, 13u, 4u, 8u, 6u, 6u, 16u, 16u,
58 	4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
59 	16u, 16u, 8u, 8u, 1u, 18u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
60 	3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
61 	3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u,
62 	5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
63 	3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
64 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
65 	5u, 14u, 3u, 14u, 1u, 16u, 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u,
66 	1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
67 	1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
68 	1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
69 	3u, 17u, 3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
70 	4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
71 	4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u,
72 	9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u,
73 	5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
74 	4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
75 	3u, 14u, 1u, 16u, 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
76 	1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
77 	1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
78 	3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 1u, 16u,
79 	3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
80 	3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
81 	3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u, 9u, 10u, 9u, 9u,
82 	9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u,
83 	3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
84 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 1u, 16u,
85 	4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
86 	3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
87 	3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u,
88 	1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 3u, 17u, 4u, 14u,
89 	3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
90 	3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
91 	3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u, 9u, 10u, 9u, 9u,
92 	9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u,
93 	3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
94 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 1u, 16u,
95 	4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
96 	3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
97 	3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u,
98 	1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 1u, 17u, 3u, 17u,
99 	1u, 17u, 4u, 14u, 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u,
100 	5u, 10u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 3u, 17u, 3u, 17u, 1u, 16u,
101 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
102 	5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u,
103 	3u, 13u, 1u, 16u, 3u, 10u, 5u, 10u, 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u,
104 	9u, 10u, 9u, 9u, 5u, 10u, 0
105 };
106 
107 static const char _indic_syllable_machine_key_spans[] = {
108 	1, 16, 6, 4, 3, 1, 4, 3,
109 	1, 4, 3, 1, 4, 3, 1, 5,
110 	1, 1, 5, 1, 1, 5, 1, 1,
111 	5, 1, 1, 11, 11, 11, 11, 11,
112 	11, 11, 11, 11, 11, 1, 16, 6,
113 	4, 3, 1, 4, 3, 1, 4, 3,
114 	1, 4, 3, 1, 5, 1, 1, 5,
115 	1, 1, 5, 1, 1, 5, 1, 1,
116 	11, 11, 11, 11, 11, 11, 11, 11,
117 	11, 11, 1, 16, 6, 4, 3, 1,
118 	4, 3, 1, 4, 3, 1, 4, 3,
119 	1, 5, 1, 1, 5, 1, 1, 5,
120 	1, 1, 5, 1, 1, 11, 11, 11,
121 	11, 11, 11, 11, 11, 11, 1, 16,
122 	6, 4, 3, 1, 4, 3, 1, 4,
123 	3, 1, 4, 3, 1, 5, 1, 1,
124 	5, 1, 1, 5, 1, 1, 5, 1,
125 	1, 11, 11, 11, 11, 11, 11, 11,
126 	11, 11, 11, 11, 4, 11, 11, 4,
127 	3, 4, 3, 1, 4, 3, 1, 4,
128 	3, 1, 1, 16, 6, 5, 1, 1,
129 	5, 1, 1, 5, 1, 1, 5, 1,
130 	1, 1, 18, 15, 15, 14, 16, 15,
131 	15, 14, 16, 15, 15, 14, 16, 15,
132 	15, 14, 16, 15, 15, 14, 10, 10,
133 	6, 2, 1, 2, 2, 1, 6, 11,
134 	8, 6, 8, 11, 12, 12, 11, 10,
135 	12, 11, 10, 12, 11, 10, 12, 11,
136 	10, 12, 16, 11, 15, 15, 16, 16,
137 	16, 16, 16, 15, 15, 16, 16, 16,
138 	16, 16, 15, 15, 16, 16, 16, 16,
139 	16, 15, 15, 16, 16, 16, 16, 16,
140 	15, 15, 15, 15, 14, 16, 15, 15,
141 	14, 16, 15, 15, 14, 16, 15, 15,
142 	14, 16, 15, 15, 14, 10, 10, 6,
143 	2, 1, 2, 2, 1, 6, 11, 8,
144 	6, 8, 11, 12, 12, 11, 10, 12,
145 	11, 10, 12, 11, 10, 12, 11, 10,
146 	12, 16, 11, 15, 15, 16, 16, 16,
147 	16, 16, 15, 15, 16, 16, 16, 16,
148 	16, 15, 15, 16, 16, 16, 16, 16,
149 	15, 15, 16, 16, 16, 16, 11, 16,
150 	15, 15, 14, 16, 15, 15, 14, 16,
151 	15, 15, 14, 16, 15, 15, 14, 16,
152 	15, 15, 14, 10, 10, 6, 2, 1,
153 	2, 2, 1, 6, 11, 8, 6, 8,
154 	11, 12, 12, 11, 10, 12, 11, 10,
155 	12, 11, 10, 12, 11, 10, 12, 16,
156 	11, 15, 15, 16, 16, 16, 16, 16,
157 	15, 15, 16, 16, 16, 16, 16, 15,
158 	15, 16, 16, 16, 16, 16, 15, 15,
159 	16, 16, 16, 16, 16, 11, 15, 11,
160 	15, 15, 14, 16, 15, 15, 14, 16,
161 	15, 15, 14, 16, 15, 15, 14, 16,
162 	15, 15, 14, 10, 10, 6, 2, 1,
163 	2, 2, 1, 6, 11, 8, 6, 8,
164 	11, 12, 12, 11, 10, 12, 11, 10,
165 	12, 11, 10, 12, 11, 10, 12, 16,
166 	11, 15, 15, 16, 16, 16, 16, 16,
167 	15, 15, 16, 16, 16, 16, 16, 15,
168 	15, 16, 16, 16, 16, 16, 15, 15,
169 	16, 16, 16, 16, 16, 15, 17, 15,
170 	17, 11, 6, 2, 1, 2, 2, 1,
171 	6, 16, 15, 15, 14, 15, 15, 16,
172 	12, 11, 10, 12, 11, 10, 12, 11,
173 	10, 12, 11, 10, 11, 8, 6, 8,
174 	11, 16, 8, 6, 6, 2, 1, 2,
175 	2, 1, 6
176 };
177 
178 static const short _indic_syllable_machine_index_offsets[] = {
179 	0, 2, 19, 26, 31, 35, 37, 42,
180 	46, 48, 53, 57, 59, 64, 68, 70,
181 	76, 78, 80, 86, 88, 90, 96, 98,
182 	100, 106, 108, 110, 122, 134, 146, 158,
183 	170, 182, 194, 206, 218, 230, 232, 249,
184 	256, 261, 265, 267, 272, 276, 278, 283,
185 	287, 289, 294, 298, 300, 306, 308, 310,
186 	316, 318, 320, 326, 328, 330, 336, 338,
187 	340, 352, 364, 376, 388, 400, 412, 424,
188 	436, 448, 460, 462, 479, 486, 491, 495,
189 	497, 502, 506, 508, 513, 517, 519, 524,
190 	528, 530, 536, 538, 540, 546, 548, 550,
191 	556, 558, 560, 566, 568, 570, 582, 594,
192 	606, 618, 630, 642, 654, 666, 678, 680,
193 	697, 704, 709, 713, 715, 720, 724, 726,
194 	731, 735, 737, 742, 746, 748, 754, 756,
195 	758, 764, 766, 768, 774, 776, 778, 784,
196 	786, 788, 800, 812, 824, 836, 848, 860,
197 	872, 884, 896, 908, 920, 925, 937, 949,
198 	954, 958, 963, 967, 969, 974, 978, 980,
199 	985, 989, 991, 993, 1010, 1017, 1023, 1025,
200 	1027, 1033, 1035, 1037, 1043, 1045, 1047, 1053,
201 	1055, 1057, 1059, 1078, 1094, 1110, 1125, 1142,
202 	1158, 1174, 1189, 1206, 1222, 1238, 1253, 1270,
203 	1286, 1302, 1317, 1334, 1350, 1366, 1381, 1392,
204 	1403, 1410, 1413, 1415, 1418, 1421, 1423, 1430,
205 	1442, 1451, 1458, 1467, 1479, 1492, 1505, 1517,
206 	1528, 1541, 1553, 1564, 1577, 1589, 1600, 1613,
207 	1625, 1636, 1649, 1666, 1678, 1694, 1710, 1727,
208 	1744, 1761, 1778, 1795, 1811, 1827, 1844, 1861,
209 	1878, 1895, 1912, 1928, 1944, 1961, 1978, 1995,
210 	2012, 2029, 2045, 2061, 2078, 2095, 2112, 2129,
211 	2146, 2162, 2178, 2194, 2210, 2225, 2242, 2258,
212 	2274, 2289, 2306, 2322, 2338, 2353, 2370, 2386,
213 	2402, 2417, 2434, 2450, 2466, 2481, 2492, 2503,
214 	2510, 2513, 2515, 2518, 2521, 2523, 2530, 2542,
215 	2551, 2558, 2567, 2579, 2592, 2605, 2617, 2628,
216 	2641, 2653, 2664, 2677, 2689, 2700, 2713, 2725,
217 	2736, 2749, 2766, 2778, 2794, 2810, 2827, 2844,
218 	2861, 2878, 2895, 2911, 2927, 2944, 2961, 2978,
219 	2995, 3012, 3028, 3044, 3061, 3078, 3095, 3112,
220 	3129, 3145, 3161, 3178, 3195, 3212, 3229, 3241,
221 	3258, 3274, 3290, 3305, 3322, 3338, 3354, 3369,
222 	3386, 3402, 3418, 3433, 3450, 3466, 3482, 3497,
223 	3514, 3530, 3546, 3561, 3572, 3583, 3590, 3593,
224 	3595, 3598, 3601, 3603, 3610, 3622, 3631, 3638,
225 	3647, 3659, 3672, 3685, 3697, 3708, 3721, 3733,
226 	3744, 3757, 3769, 3780, 3793, 3805, 3816, 3829,
227 	3846, 3858, 3874, 3890, 3907, 3924, 3941, 3958,
228 	3975, 3991, 4007, 4024, 4041, 4058, 4075, 4092,
229 	4108, 4124, 4141, 4158, 4175, 4192, 4209, 4225,
230 	4241, 4258, 4275, 4292, 4309, 4326, 4338, 4354,
231 	4366, 4382, 4398, 4413, 4430, 4446, 4462, 4477,
232 	4494, 4510, 4526, 4541, 4558, 4574, 4590, 4605,
233 	4622, 4638, 4654, 4669, 4680, 4691, 4698, 4701,
234 	4703, 4706, 4709, 4711, 4718, 4730, 4739, 4746,
235 	4755, 4767, 4780, 4793, 4805, 4816, 4829, 4841,
236 	4852, 4865, 4877, 4888, 4901, 4913, 4924, 4937,
237 	4954, 4966, 4982, 4998, 5015, 5032, 5049, 5066,
238 	5083, 5099, 5115, 5132, 5149, 5166, 5183, 5200,
239 	5216, 5232, 5249, 5266, 5283, 5300, 5317, 5333,
240 	5349, 5366, 5383, 5400, 5417, 5434, 5450, 5468,
241 	5484, 5502, 5514, 5521, 5524, 5526, 5529, 5532,
242 	5534, 5541, 5558, 5574, 5590, 5605, 5621, 5637,
243 	5654, 5667, 5679, 5690, 5703, 5715, 5726, 5739,
244 	5751, 5762, 5775, 5787, 5798, 5810, 5819, 5826,
245 	5835, 5847, 5864, 5873, 5880, 5887, 5890, 5892,
246 	5895, 5898, 5900
247 };
248 
249 static const short _indic_syllable_machine_indicies[] = {
250 	1, 0, 2, 3, 0, 0, 0, 0,
251 	0, 0, 0, 0, 0, 0, 0, 0,
252 	0, 2, 0, 1, 0, 0, 0, 0,
253 	4, 0, 5, 5, 6, 1, 0, 7,
254 	7, 6, 0, 6, 0, 8, 8, 9,
255 	1, 0, 10, 10, 9, 0, 9, 0,
256 	11, 11, 12, 1, 0, 13, 13, 12,
257 	0, 12, 0, 14, 14, 15, 1, 0,
258 	16, 16, 15, 0, 15, 0, 17, 0,
259 	0, 0, 1, 0, 18, 0, 19, 0,
260 	20, 14, 14, 15, 1, 0, 21, 0,
261 	22, 0, 23, 11, 11, 12, 1, 0,
262 	24, 0, 25, 0, 26, 8, 8, 9,
263 	1, 0, 27, 0, 28, 0, 29, 5,
264 	5, 6, 1, 0, 0, 0, 0, 0,
265 	29, 0, 29, 5, 5, 6, 1, 0,
266 	0, 0, 0, 30, 29, 0, 31, 5,
267 	5, 6, 1, 0, 0, 0, 0, 0,
268 	31, 0, 31, 5, 5, 6, 1, 0,
269 	0, 0, 0, 32, 31, 0, 33, 5,
270 	5, 6, 1, 0, 0, 0, 0, 0,
271 	33, 0, 33, 5, 5, 6, 1, 0,
272 	0, 0, 0, 34, 33, 0, 35, 5,
273 	5, 6, 1, 0, 0, 0, 0, 0,
274 	35, 0, 35, 5, 5, 6, 1, 0,
275 	0, 0, 0, 36, 35, 0, 37, 5,
276 	5, 6, 1, 0, 0, 0, 0, 0,
277 	37, 0, 37, 5, 5, 6, 1, 0,
278 	0, 0, 0, 38, 37, 0, 40, 39,
279 	41, 42, 39, 39, 39, 39, 39, 39,
280 	39, 39, 39, 39, 39, 39, 39, 41,
281 	39, 40, 39, 39, 39, 39, 43, 39,
282 	44, 44, 45, 40, 39, 46, 46, 45,
283 	39, 45, 39, 47, 47, 48, 40, 39,
284 	49, 49, 48, 39, 48, 39, 50, 50,
285 	51, 40, 39, 52, 52, 51, 39, 51,
286 	39, 53, 53, 54, 40, 39, 55, 55,
287 	54, 39, 54, 39, 56, 39, 39, 39,
288 	40, 39, 57, 39, 58, 39, 59, 53,
289 	53, 54, 40, 39, 60, 39, 61, 39,
290 	62, 50, 50, 51, 40, 39, 63, 39,
291 	64, 39, 65, 47, 47, 48, 40, 39,
292 	66, 39, 67, 39, 68, 44, 44, 45,
293 	40, 39, 39, 39, 39, 39, 68, 39,
294 	68, 44, 44, 45, 40, 39, 39, 39,
295 	39, 69, 68, 39, 70, 44, 44, 45,
296 	40, 39, 39, 39, 39, 39, 70, 39,
297 	70, 44, 44, 45, 40, 39, 39, 39,
298 	39, 71, 70, 39, 72, 44, 44, 45,
299 	40, 39, 39, 39, 39, 39, 72, 39,
300 	72, 44, 44, 45, 40, 39, 39, 39,
301 	39, 73, 72, 39, 74, 44, 44, 45,
302 	40, 39, 39, 39, 39, 39, 74, 39,
303 	74, 44, 44, 45, 40, 39, 39, 39,
304 	39, 75, 74, 39, 76, 44, 44, 45,
305 	40, 39, 39, 39, 39, 39, 76, 39,
306 	76, 44, 44, 45, 40, 39, 39, 39,
307 	39, 77, 76, 39, 79, 78, 80, 81,
308 	78, 78, 78, 78, 78, 78, 78, 78,
309 	78, 78, 78, 78, 78, 80, 78, 79,
310 	78, 78, 78, 78, 82, 78, 83, 83,
311 	84, 79, 78, 86, 86, 84, 85, 84,
312 	85, 87, 87, 88, 79, 78, 89, 89,
313 	88, 78, 88, 78, 90, 90, 91, 79,
314 	78, 92, 92, 91, 78, 91, 78, 93,
315 	93, 94, 79, 78, 95, 95, 94, 78,
316 	94, 78, 96, 78, 78, 78, 79, 78,
317 	97, 78, 98, 78, 99, 93, 93, 94,
318 	79, 78, 100, 78, 101, 78, 102, 90,
319 	90, 91, 79, 78, 103, 78, 104, 78,
320 	105, 87, 87, 88, 79, 78, 106, 78,
321 	107, 78, 108, 83, 83, 84, 79, 78,
322 	78, 78, 78, 78, 108, 78, 108, 83,
323 	83, 84, 79, 78, 78, 78, 78, 109,
324 	108, 78, 110, 83, 83, 84, 79, 78,
325 	78, 78, 78, 78, 110, 78, 110, 83,
326 	83, 84, 79, 78, 78, 78, 78, 111,
327 	110, 78, 112, 83, 83, 84, 79, 78,
328 	78, 78, 78, 78, 112, 78, 112, 83,
329 	83, 84, 79, 78, 78, 78, 78, 113,
330 	112, 78, 114, 83, 83, 84, 79, 78,
331 	78, 78, 78, 78, 114, 78, 114, 83,
332 	83, 84, 79, 78, 78, 78, 78, 115,
333 	114, 78, 116, 83, 83, 84, 79, 78,
334 	78, 78, 78, 78, 116, 78, 118, 117,
335 	119, 120, 117, 117, 117, 117, 117, 117,
336 	117, 117, 117, 117, 117, 117, 117, 119,
337 	117, 118, 117, 117, 117, 117, 121, 117,
338 	122, 122, 123, 118, 117, 124, 124, 123,
339 	117, 123, 117, 125, 125, 126, 118, 117,
340 	127, 127, 126, 117, 126, 117, 128, 128,
341 	129, 118, 117, 130, 130, 129, 117, 129,
342 	117, 131, 131, 132, 118, 117, 133, 133,
343 	132, 117, 132, 117, 134, 117, 117, 117,
344 	118, 117, 135, 117, 136, 117, 137, 131,
345 	131, 132, 118, 117, 138, 117, 139, 117,
346 	140, 128, 128, 129, 118, 117, 141, 117,
347 	142, 117, 143, 125, 125, 126, 118, 117,
348 	144, 117, 145, 117, 146, 122, 122, 123,
349 	118, 117, 117, 117, 117, 117, 146, 117,
350 	146, 122, 122, 123, 118, 117, 117, 117,
351 	117, 147, 146, 117, 148, 122, 122, 123,
352 	118, 117, 117, 117, 117, 117, 148, 117,
353 	148, 122, 122, 123, 118, 117, 117, 117,
354 	117, 149, 148, 117, 150, 122, 122, 123,
355 	118, 117, 117, 117, 117, 117, 150, 117,
356 	150, 122, 122, 123, 118, 117, 117, 117,
357 	117, 151, 150, 117, 152, 122, 122, 123,
358 	118, 117, 117, 117, 117, 117, 152, 117,
359 	152, 122, 122, 123, 118, 117, 117, 117,
360 	117, 153, 152, 117, 154, 122, 122, 123,
361 	118, 117, 117, 117, 117, 117, 154, 117,
362 	154, 122, 122, 123, 118, 117, 117, 117,
363 	117, 155, 154, 117, 116, 83, 83, 84,
364 	79, 78, 78, 78, 78, 156, 116, 78,
365 	86, 86, 84, 1, 0, 114, 83, 83,
366 	84, 157, 0, 0, 0, 0, 0, 114,
367 	0, 114, 83, 83, 84, 157, 0, 0,
368 	0, 0, 158, 114, 0, 159, 159, 160,
369 	1, 0, 7, 7, 160, 0, 161, 161,
370 	162, 157, 0, 163, 163, 162, 0, 162,
371 	0, 164, 164, 165, 157, 0, 166, 166,
372 	165, 0, 165, 0, 167, 167, 168, 157,
373 	0, 169, 169, 168, 0, 168, 0, 157,
374 	0, 170, 171, 0, 0, 0, 0, 0,
375 	0, 0, 0, 0, 0, 0, 0, 0,
376 	170, 0, 157, 0, 0, 0, 0, 172,
377 	0, 173, 0, 0, 0, 157, 0, 174,
378 	0, 175, 0, 176, 167, 167, 168, 157,
379 	0, 177, 0, 178, 0, 179, 164, 164,
380 	165, 157, 0, 180, 0, 181, 0, 182,
381 	161, 161, 162, 157, 0, 183, 0, 184,
382 	0, 186, 185, 188, 189, 190, 191, 192,
383 	193, 84, 79, 194, 195, 196, 196, 156,
384 	197, 198, 199, 200, 201, 187, 203, 204,
385 	205, 206, 6, 1, 207, 208, 202, 202,
386 	38, 209, 202, 202, 210, 202, 211, 204,
387 	212, 212, 6, 1, 207, 208, 202, 202,
388 	202, 209, 202, 202, 210, 202, 204, 212,
389 	212, 6, 1, 207, 208, 202, 202, 202,
390 	209, 202, 202, 210, 202, 213, 202, 202,
391 	202, 19, 214, 202, 1, 207, 208, 202,
392 	202, 202, 215, 202, 213, 202, 216, 217,
393 	218, 219, 6, 1, 207, 208, 202, 202,
394 	36, 220, 202, 202, 210, 202, 221, 217,
395 	222, 222, 6, 1, 207, 208, 202, 202,
396 	202, 220, 202, 202, 210, 202, 217, 222,
397 	222, 6, 1, 207, 208, 202, 202, 202,
398 	220, 202, 202, 210, 202, 223, 202, 202,
399 	202, 19, 224, 202, 1, 207, 208, 202,
400 	202, 202, 215, 202, 223, 202, 225, 226,
401 	227, 228, 6, 1, 207, 208, 202, 202,
402 	34, 229, 202, 202, 210, 202, 230, 226,
403 	231, 231, 6, 1, 207, 208, 202, 202,
404 	202, 229, 202, 202, 210, 202, 226, 231,
405 	231, 6, 1, 207, 208, 202, 202, 202,
406 	229, 202, 202, 210, 202, 232, 202, 202,
407 	202, 19, 233, 202, 1, 207, 208, 202,
408 	202, 202, 215, 202, 232, 202, 234, 235,
409 	236, 237, 6, 1, 207, 208, 202, 202,
410 	32, 238, 202, 202, 210, 202, 239, 235,
411 	240, 240, 6, 1, 207, 208, 202, 202,
412 	202, 238, 202, 202, 210, 202, 235, 240,
413 	240, 6, 1, 207, 208, 202, 202, 202,
414 	238, 202, 202, 210, 202, 241, 202, 202,
415 	202, 19, 242, 202, 1, 207, 208, 202,
416 	202, 202, 215, 202, 241, 202, 243, 244,
417 	245, 246, 6, 1, 207, 208, 202, 202,
418 	30, 247, 202, 202, 210, 202, 248, 244,
419 	249, 249, 6, 1, 207, 208, 202, 202,
420 	202, 247, 202, 202, 210, 202, 244, 249,
421 	249, 6, 1, 207, 208, 202, 202, 202,
422 	247, 202, 202, 210, 202, 19, 250, 202,
423 	1, 207, 208, 202, 202, 202, 215, 202,
424 	251, 251, 202, 1, 207, 208, 202, 202,
425 	202, 215, 202, 252, 202, 202, 253, 207,
426 	208, 202, 207, 208, 202, 254, 202, 207,
427 	255, 202, 207, 256, 202, 207, 202, 252,
428 	202, 202, 202, 207, 208, 202, 257, 202,
429 	258, 259, 202, 1, 207, 208, 202, 202,
430 	4, 202, 3, 202, 251, 251, 202, 1,
431 	207, 208, 202, 251, 251, 202, 1, 207,
432 	208, 202, 257, 202, 251, 251, 202, 1,
433 	207, 208, 202, 257, 202, 258, 251, 202,
434 	1, 207, 208, 202, 202, 4, 202, 19,
435 	202, 260, 260, 6, 1, 207, 208, 202,
436 	202, 202, 215, 202, 261, 28, 262, 263,
437 	9, 1, 207, 208, 202, 202, 202, 215,
438 	202, 28, 262, 263, 9, 1, 207, 208,
439 	202, 202, 202, 215, 202, 262, 262, 9,
440 	1, 207, 208, 202, 202, 202, 215, 202,
441 	264, 25, 265, 266, 12, 1, 207, 208,
442 	202, 202, 202, 215, 202, 25, 265, 266,
443 	12, 1, 207, 208, 202, 202, 202, 215,
444 	202, 265, 265, 12, 1, 207, 208, 202,
445 	202, 202, 215, 202, 267, 22, 268, 269,
446 	15, 1, 207, 208, 202, 202, 202, 215,
447 	202, 22, 268, 269, 15, 1, 207, 208,
448 	202, 202, 202, 215, 202, 268, 268, 15,
449 	1, 207, 208, 202, 202, 202, 215, 202,
450 	270, 19, 251, 271, 202, 1, 207, 208,
451 	202, 202, 202, 215, 202, 19, 251, 271,
452 	202, 1, 207, 208, 202, 202, 202, 215,
453 	202, 251, 272, 202, 1, 207, 208, 202,
454 	202, 202, 215, 202, 19, 202, 251, 251,
455 	202, 1, 207, 208, 202, 202, 202, 215,
456 	202, 2, 3, 202, 202, 19, 250, 202,
457 	1, 207, 208, 202, 202, 202, 215, 202,
458 	2, 202, 244, 249, 249, 6, 1, 207,
459 	208, 202, 202, 202, 247, 202, 243, 244,
460 	249, 249, 6, 1, 207, 208, 202, 202,
461 	202, 247, 202, 202, 210, 202, 243, 244,
462 	245, 249, 6, 1, 207, 208, 202, 202,
463 	30, 247, 202, 202, 210, 202, 241, 202,
464 	273, 202, 260, 260, 6, 1, 207, 208,
465 	202, 202, 202, 215, 202, 241, 202, 241,
466 	202, 202, 202, 251, 251, 202, 1, 207,
467 	208, 202, 202, 202, 215, 202, 241, 202,
468 	241, 202, 202, 202, 251, 274, 202, 1,
469 	207, 208, 202, 202, 202, 215, 202, 241,
470 	202, 241, 202, 273, 202, 251, 251, 202,
471 	1, 207, 208, 202, 202, 202, 215, 202,
472 	241, 202, 241, 3, 202, 202, 19, 242,
473 	202, 1, 207, 208, 202, 202, 202, 215,
474 	202, 241, 202, 234, 235, 240, 240, 6,
475 	1, 207, 208, 202, 202, 202, 238, 202,
476 	202, 210, 202, 234, 235, 236, 240, 6,
477 	1, 207, 208, 202, 202, 32, 238, 202,
478 	202, 210, 202, 232, 202, 275, 202, 260,
479 	260, 6, 1, 207, 208, 202, 202, 202,
480 	215, 202, 232, 202, 232, 202, 202, 202,
481 	251, 251, 202, 1, 207, 208, 202, 202,
482 	202, 215, 202, 232, 202, 232, 202, 202,
483 	202, 251, 276, 202, 1, 207, 208, 202,
484 	202, 202, 215, 202, 232, 202, 232, 202,
485 	275, 202, 251, 251, 202, 1, 207, 208,
486 	202, 202, 202, 215, 202, 232, 202, 232,
487 	3, 202, 202, 19, 233, 202, 1, 207,
488 	208, 202, 202, 202, 215, 202, 232, 202,
489 	225, 226, 231, 231, 6, 1, 207, 208,
490 	202, 202, 202, 229, 202, 202, 210, 202,
491 	225, 226, 227, 231, 6, 1, 207, 208,
492 	202, 202, 34, 229, 202, 202, 210, 202,
493 	223, 202, 277, 202, 260, 260, 6, 1,
494 	207, 208, 202, 202, 202, 215, 202, 223,
495 	202, 223, 202, 202, 202, 251, 251, 202,
496 	1, 207, 208, 202, 202, 202, 215, 202,
497 	223, 202, 223, 202, 202, 202, 251, 278,
498 	202, 1, 207, 208, 202, 202, 202, 215,
499 	202, 223, 202, 223, 202, 277, 202, 251,
500 	251, 202, 1, 207, 208, 202, 202, 202,
501 	215, 202, 223, 202, 223, 3, 202, 202,
502 	19, 224, 202, 1, 207, 208, 202, 202,
503 	202, 215, 202, 223, 202, 216, 217, 222,
504 	222, 6, 1, 207, 208, 202, 202, 202,
505 	220, 202, 202, 210, 202, 216, 217, 218,
506 	222, 6, 1, 207, 208, 202, 202, 36,
507 	220, 202, 202, 210, 202, 213, 202, 279,
508 	202, 260, 260, 6, 1, 207, 208, 202,
509 	202, 202, 215, 202, 213, 202, 213, 202,
510 	202, 202, 251, 251, 202, 1, 207, 208,
511 	202, 202, 202, 215, 202, 213, 202, 213,
512 	202, 202, 202, 251, 280, 202, 1, 207,
513 	208, 202, 202, 202, 215, 202, 213, 202,
514 	213, 202, 279, 202, 251, 251, 202, 1,
515 	207, 208, 202, 202, 202, 215, 202, 213,
516 	202, 213, 3, 202, 202, 19, 214, 202,
517 	1, 207, 208, 202, 202, 202, 215, 202,
518 	213, 202, 203, 204, 212, 212, 6, 1,
519 	207, 208, 202, 202, 202, 209, 202, 202,
520 	210, 202, 203, 204, 205, 212, 6, 1,
521 	207, 208, 202, 202, 38, 209, 202, 202,
522 	210, 202, 282, 283, 284, 285, 45, 40,
523 	286, 287, 281, 281, 77, 288, 281, 281,
524 	289, 281, 290, 283, 291, 285, 45, 40,
525 	286, 287, 281, 281, 281, 288, 281, 281,
526 	289, 281, 283, 291, 285, 45, 40, 286,
527 	287, 281, 281, 281, 288, 281, 281, 289,
528 	281, 292, 281, 281, 281, 58, 293, 281,
529 	40, 286, 287, 281, 281, 281, 294, 281,
530 	292, 281, 295, 296, 297, 298, 45, 40,
531 	286, 287, 281, 281, 75, 299, 281, 281,
532 	289, 281, 300, 296, 301, 301, 45, 40,
533 	286, 287, 281, 281, 281, 299, 281, 281,
534 	289, 281, 296, 301, 301, 45, 40, 286,
535 	287, 281, 281, 281, 299, 281, 281, 289,
536 	281, 302, 281, 281, 281, 58, 303, 281,
537 	40, 286, 287, 281, 281, 281, 294, 281,
538 	302, 281, 304, 305, 306, 307, 45, 40,
539 	286, 287, 281, 281, 73, 308, 281, 281,
540 	289, 281, 309, 305, 310, 310, 45, 40,
541 	286, 287, 281, 281, 281, 308, 281, 281,
542 	289, 281, 305, 310, 310, 45, 40, 286,
543 	287, 281, 281, 281, 308, 281, 281, 289,
544 	281, 311, 281, 281, 281, 58, 312, 281,
545 	40, 286, 287, 281, 281, 281, 294, 281,
546 	311, 281, 313, 314, 315, 316, 45, 40,
547 	286, 287, 281, 281, 71, 317, 281, 281,
548 	289, 281, 318, 314, 319, 319, 45, 40,
549 	286, 287, 281, 281, 281, 317, 281, 281,
550 	289, 281, 314, 319, 319, 45, 40, 286,
551 	287, 281, 281, 281, 317, 281, 281, 289,
552 	281, 320, 281, 281, 281, 58, 321, 281,
553 	40, 286, 287, 281, 281, 281, 294, 281,
554 	320, 281, 322, 323, 324, 325, 45, 40,
555 	286, 287, 281, 281, 69, 326, 281, 281,
556 	289, 281, 327, 323, 328, 328, 45, 40,
557 	286, 287, 281, 281, 281, 326, 281, 281,
558 	289, 281, 323, 328, 328, 45, 40, 286,
559 	287, 281, 281, 281, 326, 281, 281, 289,
560 	281, 58, 329, 281, 40, 286, 287, 281,
561 	281, 281, 294, 281, 330, 330, 281, 40,
562 	286, 287, 281, 281, 281, 294, 281, 331,
563 	281, 281, 332, 286, 287, 281, 286, 287,
564 	281, 333, 281, 286, 334, 281, 286, 335,
565 	281, 286, 281, 331, 281, 281, 281, 286,
566 	287, 281, 336, 281, 337, 338, 281, 40,
567 	286, 287, 281, 281, 43, 281, 42, 281,
568 	330, 330, 281, 40, 286, 287, 281, 330,
569 	330, 281, 40, 286, 287, 281, 336, 281,
570 	330, 330, 281, 40, 286, 287, 281, 336,
571 	281, 337, 330, 281, 40, 286, 287, 281,
572 	281, 43, 281, 58, 281, 339, 339, 45,
573 	40, 286, 287, 281, 281, 281, 294, 281,
574 	340, 67, 341, 342, 48, 40, 286, 287,
575 	281, 281, 281, 294, 281, 67, 341, 342,
576 	48, 40, 286, 287, 281, 281, 281, 294,
577 	281, 341, 341, 48, 40, 286, 287, 281,
578 	281, 281, 294, 281, 343, 64, 344, 345,
579 	51, 40, 286, 287, 281, 281, 281, 294,
580 	281, 64, 344, 345, 51, 40, 286, 287,
581 	281, 281, 281, 294, 281, 344, 344, 51,
582 	40, 286, 287, 281, 281, 281, 294, 281,
583 	346, 61, 347, 348, 54, 40, 286, 287,
584 	281, 281, 281, 294, 281, 61, 347, 348,
585 	54, 40, 286, 287, 281, 281, 281, 294,
586 	281, 347, 347, 54, 40, 286, 287, 281,
587 	281, 281, 294, 281, 349, 58, 330, 350,
588 	281, 40, 286, 287, 281, 281, 281, 294,
589 	281, 58, 330, 350, 281, 40, 286, 287,
590 	281, 281, 281, 294, 281, 330, 351, 281,
591 	40, 286, 287, 281, 281, 281, 294, 281,
592 	58, 281, 330, 330, 281, 40, 286, 287,
593 	281, 281, 281, 294, 281, 41, 42, 281,
594 	281, 58, 329, 281, 40, 286, 287, 281,
595 	281, 281, 294, 281, 41, 281, 323, 328,
596 	328, 45, 40, 286, 287, 281, 281, 281,
597 	326, 281, 322, 323, 328, 328, 45, 40,
598 	286, 287, 281, 281, 281, 326, 281, 281,
599 	289, 281, 322, 323, 324, 328, 45, 40,
600 	286, 287, 281, 281, 69, 326, 281, 281,
601 	289, 281, 320, 281, 352, 281, 339, 339,
602 	45, 40, 286, 287, 281, 281, 281, 294,
603 	281, 320, 281, 320, 281, 281, 281, 330,
604 	330, 281, 40, 286, 287, 281, 281, 281,
605 	294, 281, 320, 281, 320, 281, 281, 281,
606 	330, 353, 281, 40, 286, 287, 281, 281,
607 	281, 294, 281, 320, 281, 320, 281, 352,
608 	281, 330, 330, 281, 40, 286, 287, 281,
609 	281, 281, 294, 281, 320, 281, 320, 42,
610 	281, 281, 58, 321, 281, 40, 286, 287,
611 	281, 281, 281, 294, 281, 320, 281, 313,
612 	314, 319, 319, 45, 40, 286, 287, 281,
613 	281, 281, 317, 281, 281, 289, 281, 313,
614 	314, 315, 319, 45, 40, 286, 287, 281,
615 	281, 71, 317, 281, 281, 289, 281, 311,
616 	281, 354, 281, 339, 339, 45, 40, 286,
617 	287, 281, 281, 281, 294, 281, 311, 281,
618 	311, 281, 281, 281, 330, 330, 281, 40,
619 	286, 287, 281, 281, 281, 294, 281, 311,
620 	281, 311, 281, 281, 281, 330, 355, 281,
621 	40, 286, 287, 281, 281, 281, 294, 281,
622 	311, 281, 311, 281, 354, 281, 330, 330,
623 	281, 40, 286, 287, 281, 281, 281, 294,
624 	281, 311, 281, 311, 42, 281, 281, 58,
625 	312, 281, 40, 286, 287, 281, 281, 281,
626 	294, 281, 311, 281, 304, 305, 310, 310,
627 	45, 40, 286, 287, 281, 281, 281, 308,
628 	281, 281, 289, 281, 304, 305, 306, 310,
629 	45, 40, 286, 287, 281, 281, 73, 308,
630 	281, 281, 289, 281, 302, 281, 356, 281,
631 	339, 339, 45, 40, 286, 287, 281, 281,
632 	281, 294, 281, 302, 281, 302, 281, 281,
633 	281, 330, 330, 281, 40, 286, 287, 281,
634 	281, 281, 294, 281, 302, 281, 302, 281,
635 	281, 281, 330, 357, 281, 40, 286, 287,
636 	281, 281, 281, 294, 281, 302, 281, 302,
637 	281, 356, 281, 330, 330, 281, 40, 286,
638 	287, 281, 281, 281, 294, 281, 302, 281,
639 	302, 42, 281, 281, 58, 303, 281, 40,
640 	286, 287, 281, 281, 281, 294, 281, 302,
641 	281, 295, 296, 301, 301, 45, 40, 286,
642 	287, 281, 281, 281, 299, 281, 281, 289,
643 	281, 295, 296, 297, 301, 45, 40, 286,
644 	287, 281, 281, 75, 299, 281, 281, 289,
645 	281, 292, 281, 358, 281, 339, 339, 45,
646 	40, 286, 287, 281, 281, 281, 294, 281,
647 	292, 281, 292, 281, 281, 281, 330, 330,
648 	281, 40, 286, 287, 281, 281, 281, 294,
649 	281, 292, 281, 292, 281, 281, 281, 330,
650 	359, 281, 40, 286, 287, 281, 281, 281,
651 	294, 281, 292, 281, 292, 281, 358, 281,
652 	330, 330, 281, 40, 286, 287, 281, 281,
653 	281, 294, 281, 292, 281, 76, 44, 44,
654 	45, 40, 281, 281, 281, 281, 281, 76,
655 	281, 292, 42, 281, 281, 58, 293, 281,
656 	40, 286, 287, 281, 281, 281, 294, 281,
657 	292, 281, 282, 283, 291, 285, 45, 40,
658 	286, 287, 281, 281, 281, 288, 281, 281,
659 	289, 281, 361, 191, 362, 362, 84, 79,
660 	194, 195, 360, 360, 360, 197, 360, 360,
661 	200, 360, 191, 362, 362, 84, 79, 194,
662 	195, 360, 360, 360, 197, 360, 360, 200,
663 	360, 363, 360, 360, 360, 98, 364, 360,
664 	79, 194, 195, 360, 360, 360, 365, 360,
665 	363, 360, 366, 367, 368, 369, 84, 79,
666 	194, 195, 360, 360, 115, 370, 360, 360,
667 	200, 360, 371, 367, 372, 372, 84, 79,
668 	194, 195, 360, 360, 360, 370, 360, 360,
669 	200, 360, 367, 372, 372, 84, 79, 194,
670 	195, 360, 360, 360, 370, 360, 360, 200,
671 	360, 373, 360, 360, 360, 98, 374, 360,
672 	79, 194, 195, 360, 360, 360, 365, 360,
673 	373, 360, 375, 376, 377, 378, 84, 79,
674 	194, 195, 360, 360, 113, 379, 360, 360,
675 	200, 360, 380, 376, 381, 381, 84, 79,
676 	194, 195, 360, 360, 360, 379, 360, 360,
677 	200, 360, 376, 381, 381, 84, 79, 194,
678 	195, 360, 360, 360, 379, 360, 360, 200,
679 	360, 382, 360, 360, 360, 98, 383, 360,
680 	79, 194, 195, 360, 360, 360, 365, 360,
681 	382, 360, 384, 385, 386, 387, 84, 79,
682 	194, 195, 360, 360, 111, 388, 360, 360,
683 	200, 360, 389, 385, 390, 390, 84, 79,
684 	194, 195, 360, 360, 360, 388, 360, 360,
685 	200, 360, 385, 390, 390, 84, 79, 194,
686 	195, 360, 360, 360, 388, 360, 360, 200,
687 	360, 391, 360, 360, 360, 98, 392, 360,
688 	79, 194, 195, 360, 360, 360, 365, 360,
689 	391, 360, 393, 394, 395, 396, 84, 79,
690 	194, 195, 360, 360, 109, 397, 360, 360,
691 	200, 360, 398, 394, 399, 399, 84, 79,
692 	194, 195, 360, 360, 360, 397, 360, 360,
693 	200, 360, 394, 399, 399, 84, 79, 194,
694 	195, 360, 360, 360, 397, 360, 360, 200,
695 	360, 98, 400, 360, 79, 194, 195, 360,
696 	360, 360, 365, 360, 401, 401, 360, 79,
697 	194, 195, 360, 360, 360, 365, 360, 402,
698 	360, 360, 403, 194, 195, 360, 194, 195,
699 	360, 404, 360, 194, 405, 360, 194, 406,
700 	360, 194, 360, 402, 360, 360, 360, 194,
701 	195, 360, 407, 360, 408, 409, 360, 79,
702 	194, 195, 360, 360, 82, 360, 81, 360,
703 	401, 401, 360, 79, 194, 195, 360, 401,
704 	401, 360, 79, 194, 195, 360, 407, 360,
705 	401, 401, 360, 79, 194, 195, 360, 407,
706 	360, 408, 401, 360, 79, 194, 195, 360,
707 	360, 82, 360, 98, 360, 410, 410, 84,
708 	79, 194, 195, 360, 360, 360, 365, 360,
709 	411, 107, 412, 413, 88, 79, 194, 195,
710 	360, 360, 360, 365, 360, 107, 412, 413,
711 	88, 79, 194, 195, 360, 360, 360, 365,
712 	360, 412, 412, 88, 79, 194, 195, 360,
713 	360, 360, 365, 360, 414, 104, 415, 416,
714 	91, 79, 194, 195, 360, 360, 360, 365,
715 	360, 104, 415, 416, 91, 79, 194, 195,
716 	360, 360, 360, 365, 360, 415, 415, 91,
717 	79, 194, 195, 360, 360, 360, 365, 360,
718 	417, 101, 418, 419, 94, 79, 194, 195,
719 	360, 360, 360, 365, 360, 101, 418, 419,
720 	94, 79, 194, 195, 360, 360, 360, 365,
721 	360, 418, 418, 94, 79, 194, 195, 360,
722 	360, 360, 365, 360, 420, 98, 401, 421,
723 	360, 79, 194, 195, 360, 360, 360, 365,
724 	360, 98, 401, 421, 360, 79, 194, 195,
725 	360, 360, 360, 365, 360, 401, 422, 360,
726 	79, 194, 195, 360, 360, 360, 365, 360,
727 	98, 360, 401, 401, 360, 79, 194, 195,
728 	360, 360, 360, 365, 360, 80, 81, 360,
729 	360, 98, 400, 360, 79, 194, 195, 360,
730 	360, 360, 365, 360, 80, 360, 394, 399,
731 	399, 84, 79, 194, 195, 360, 360, 360,
732 	397, 360, 393, 394, 399, 399, 84, 79,
733 	194, 195, 360, 360, 360, 397, 360, 360,
734 	200, 360, 393, 394, 395, 399, 84, 79,
735 	194, 195, 360, 360, 109, 397, 360, 360,
736 	200, 360, 391, 360, 423, 360, 410, 410,
737 	84, 79, 194, 195, 360, 360, 360, 365,
738 	360, 391, 360, 391, 360, 360, 360, 401,
739 	401, 360, 79, 194, 195, 360, 360, 360,
740 	365, 360, 391, 360, 391, 360, 360, 360,
741 	401, 424, 360, 79, 194, 195, 360, 360,
742 	360, 365, 360, 391, 360, 391, 360, 423,
743 	360, 401, 401, 360, 79, 194, 195, 360,
744 	360, 360, 365, 360, 391, 360, 391, 81,
745 	360, 360, 98, 392, 360, 79, 194, 195,
746 	360, 360, 360, 365, 360, 391, 360, 384,
747 	385, 390, 390, 84, 79, 194, 195, 360,
748 	360, 360, 388, 360, 360, 200, 360, 384,
749 	385, 386, 390, 84, 79, 194, 195, 360,
750 	360, 111, 388, 360, 360, 200, 360, 382,
751 	360, 425, 360, 410, 410, 84, 79, 194,
752 	195, 360, 360, 360, 365, 360, 382, 360,
753 	382, 360, 360, 360, 401, 401, 360, 79,
754 	194, 195, 360, 360, 360, 365, 360, 382,
755 	360, 382, 360, 360, 360, 401, 426, 360,
756 	79, 194, 195, 360, 360, 360, 365, 360,
757 	382, 360, 382, 360, 425, 360, 401, 401,
758 	360, 79, 194, 195, 360, 360, 360, 365,
759 	360, 382, 360, 382, 81, 360, 360, 98,
760 	383, 360, 79, 194, 195, 360, 360, 360,
761 	365, 360, 382, 360, 375, 376, 381, 381,
762 	84, 79, 194, 195, 360, 360, 360, 379,
763 	360, 360, 200, 360, 375, 376, 377, 381,
764 	84, 79, 194, 195, 360, 360, 113, 379,
765 	360, 360, 200, 360, 373, 360, 427, 360,
766 	410, 410, 84, 79, 194, 195, 360, 360,
767 	360, 365, 360, 373, 360, 373, 360, 360,
768 	360, 401, 401, 360, 79, 194, 195, 360,
769 	360, 360, 365, 360, 373, 360, 373, 360,
770 	360, 360, 401, 428, 360, 79, 194, 195,
771 	360, 360, 360, 365, 360, 373, 360, 373,
772 	360, 427, 360, 401, 401, 360, 79, 194,
773 	195, 360, 360, 360, 365, 360, 373, 360,
774 	373, 81, 360, 360, 98, 374, 360, 79,
775 	194, 195, 360, 360, 360, 365, 360, 373,
776 	360, 366, 367, 372, 372, 84, 79, 194,
777 	195, 360, 360, 360, 370, 360, 360, 200,
778 	360, 366, 367, 368, 372, 84, 79, 194,
779 	195, 360, 360, 115, 370, 360, 360, 200,
780 	360, 363, 360, 429, 360, 410, 410, 84,
781 	79, 194, 195, 360, 360, 360, 365, 360,
782 	363, 360, 363, 360, 360, 360, 401, 401,
783 	360, 79, 194, 195, 360, 360, 360, 365,
784 	360, 363, 360, 363, 360, 360, 360, 401,
785 	430, 360, 79, 194, 195, 360, 360, 360,
786 	365, 360, 363, 360, 363, 360, 429, 360,
787 	401, 401, 360, 79, 194, 195, 360, 360,
788 	360, 365, 360, 363, 360, 363, 81, 360,
789 	360, 98, 364, 360, 79, 194, 195, 360,
790 	360, 360, 365, 360, 363, 360, 116, 83,
791 	83, 84, 79, 431, 431, 431, 431, 156,
792 	116, 431, 190, 191, 362, 362, 84, 79,
793 	194, 195, 360, 360, 360, 197, 360, 360,
794 	200, 360, 116, 83, 83, 84, 79, 431,
795 	431, 431, 431, 431, 116, 431, 433, 434,
796 	435, 436, 123, 118, 437, 438, 432, 432,
797 	155, 439, 432, 432, 440, 432, 441, 434,
798 	436, 436, 123, 118, 437, 438, 432, 432,
799 	432, 439, 432, 432, 440, 432, 434, 436,
800 	436, 123, 118, 437, 438, 432, 432, 432,
801 	439, 432, 432, 440, 432, 442, 432, 432,
802 	432, 136, 443, 432, 118, 437, 438, 432,
803 	432, 432, 444, 432, 442, 432, 445, 446,
804 	447, 448, 123, 118, 437, 438, 432, 432,
805 	153, 449, 432, 432, 440, 432, 450, 446,
806 	451, 451, 123, 118, 437, 438, 432, 432,
807 	432, 449, 432, 432, 440, 432, 446, 451,
808 	451, 123, 118, 437, 438, 432, 432, 432,
809 	449, 432, 432, 440, 432, 452, 432, 432,
810 	432, 136, 453, 432, 118, 437, 438, 432,
811 	432, 432, 444, 432, 452, 432, 454, 455,
812 	456, 457, 123, 118, 437, 438, 432, 432,
813 	151, 458, 432, 432, 440, 432, 459, 455,
814 	460, 460, 123, 118, 437, 438, 432, 432,
815 	432, 458, 432, 432, 440, 432, 455, 460,
816 	460, 123, 118, 437, 438, 432, 432, 432,
817 	458, 432, 432, 440, 432, 461, 432, 432,
818 	432, 136, 462, 432, 118, 437, 438, 432,
819 	432, 432, 444, 432, 461, 432, 463, 464,
820 	465, 466, 123, 118, 437, 438, 432, 432,
821 	149, 467, 432, 432, 440, 432, 468, 464,
822 	469, 469, 123, 118, 437, 438, 432, 432,
823 	432, 467, 432, 432, 440, 432, 464, 469,
824 	469, 123, 118, 437, 438, 432, 432, 432,
825 	467, 432, 432, 440, 432, 470, 432, 432,
826 	432, 136, 471, 432, 118, 437, 438, 432,
827 	432, 432, 444, 432, 470, 432, 472, 473,
828 	474, 475, 123, 118, 437, 438, 432, 432,
829 	147, 476, 432, 432, 440, 432, 477, 473,
830 	478, 478, 123, 118, 437, 438, 432, 432,
831 	432, 476, 432, 432, 440, 432, 473, 478,
832 	478, 123, 118, 437, 438, 432, 432, 432,
833 	476, 432, 432, 440, 432, 136, 479, 432,
834 	118, 437, 438, 432, 432, 432, 444, 432,
835 	480, 480, 432, 118, 437, 438, 432, 432,
836 	432, 444, 432, 481, 432, 432, 482, 437,
837 	438, 432, 437, 438, 432, 483, 432, 437,
838 	484, 432, 437, 485, 432, 437, 432, 481,
839 	432, 432, 432, 437, 438, 432, 486, 432,
840 	487, 488, 432, 118, 437, 438, 432, 432,
841 	121, 432, 120, 432, 480, 480, 432, 118,
842 	437, 438, 432, 480, 480, 432, 118, 437,
843 	438, 432, 486, 432, 480, 480, 432, 118,
844 	437, 438, 432, 486, 432, 487, 480, 432,
845 	118, 437, 438, 432, 432, 121, 432, 136,
846 	432, 489, 489, 123, 118, 437, 438, 432,
847 	432, 432, 444, 432, 490, 145, 491, 492,
848 	126, 118, 437, 438, 432, 432, 432, 444,
849 	432, 145, 491, 492, 126, 118, 437, 438,
850 	432, 432, 432, 444, 432, 491, 491, 126,
851 	118, 437, 438, 432, 432, 432, 444, 432,
852 	493, 142, 494, 495, 129, 118, 437, 438,
853 	432, 432, 432, 444, 432, 142, 494, 495,
854 	129, 118, 437, 438, 432, 432, 432, 444,
855 	432, 494, 494, 129, 118, 437, 438, 432,
856 	432, 432, 444, 432, 496, 139, 497, 498,
857 	132, 118, 437, 438, 432, 432, 432, 444,
858 	432, 139, 497, 498, 132, 118, 437, 438,
859 	432, 432, 432, 444, 432, 497, 497, 132,
860 	118, 437, 438, 432, 432, 432, 444, 432,
861 	499, 136, 480, 500, 432, 118, 437, 438,
862 	432, 432, 432, 444, 432, 136, 480, 500,
863 	432, 118, 437, 438, 432, 432, 432, 444,
864 	432, 480, 501, 432, 118, 437, 438, 432,
865 	432, 432, 444, 432, 136, 432, 480, 480,
866 	432, 118, 437, 438, 432, 432, 432, 444,
867 	432, 119, 120, 432, 432, 136, 479, 432,
868 	118, 437, 438, 432, 432, 432, 444, 432,
869 	119, 432, 473, 478, 478, 123, 118, 437,
870 	438, 432, 432, 432, 476, 432, 472, 473,
871 	478, 478, 123, 118, 437, 438, 432, 432,
872 	432, 476, 432, 432, 440, 432, 472, 473,
873 	474, 478, 123, 118, 437, 438, 432, 432,
874 	147, 476, 432, 432, 440, 432, 470, 432,
875 	502, 432, 489, 489, 123, 118, 437, 438,
876 	432, 432, 432, 444, 432, 470, 432, 470,
877 	432, 432, 432, 480, 480, 432, 118, 437,
878 	438, 432, 432, 432, 444, 432, 470, 432,
879 	470, 432, 432, 432, 480, 503, 432, 118,
880 	437, 438, 432, 432, 432, 444, 432, 470,
881 	432, 470, 432, 502, 432, 480, 480, 432,
882 	118, 437, 438, 432, 432, 432, 444, 432,
883 	470, 432, 470, 120, 432, 432, 136, 471,
884 	432, 118, 437, 438, 432, 432, 432, 444,
885 	432, 470, 432, 463, 464, 469, 469, 123,
886 	118, 437, 438, 432, 432, 432, 467, 432,
887 	432, 440, 432, 463, 464, 465, 469, 123,
888 	118, 437, 438, 432, 432, 149, 467, 432,
889 	432, 440, 432, 461, 432, 504, 432, 489,
890 	489, 123, 118, 437, 438, 432, 432, 432,
891 	444, 432, 461, 432, 461, 432, 432, 432,
892 	480, 480, 432, 118, 437, 438, 432, 432,
893 	432, 444, 432, 461, 432, 461, 432, 432,
894 	432, 480, 505, 432, 118, 437, 438, 432,
895 	432, 432, 444, 432, 461, 432, 461, 432,
896 	504, 432, 480, 480, 432, 118, 437, 438,
897 	432, 432, 432, 444, 432, 461, 432, 461,
898 	120, 432, 432, 136, 462, 432, 118, 437,
899 	438, 432, 432, 432, 444, 432, 461, 432,
900 	454, 455, 460, 460, 123, 118, 437, 438,
901 	432, 432, 432, 458, 432, 432, 440, 432,
902 	454, 455, 456, 460, 123, 118, 437, 438,
903 	432, 432, 151, 458, 432, 432, 440, 432,
904 	452, 432, 506, 432, 489, 489, 123, 118,
905 	437, 438, 432, 432, 432, 444, 432, 452,
906 	432, 452, 432, 432, 432, 480, 480, 432,
907 	118, 437, 438, 432, 432, 432, 444, 432,
908 	452, 432, 452, 432, 432, 432, 480, 507,
909 	432, 118, 437, 438, 432, 432, 432, 444,
910 	432, 452, 432, 452, 432, 506, 432, 480,
911 	480, 432, 118, 437, 438, 432, 432, 432,
912 	444, 432, 452, 432, 452, 120, 432, 432,
913 	136, 453, 432, 118, 437, 438, 432, 432,
914 	432, 444, 432, 452, 432, 445, 446, 451,
915 	451, 123, 118, 437, 438, 432, 432, 432,
916 	449, 432, 432, 440, 432, 445, 446, 447,
917 	451, 123, 118, 437, 438, 432, 432, 153,
918 	449, 432, 432, 440, 432, 442, 432, 508,
919 	432, 489, 489, 123, 118, 437, 438, 432,
920 	432, 432, 444, 432, 442, 432, 442, 432,
921 	432, 432, 480, 480, 432, 118, 437, 438,
922 	432, 432, 432, 444, 432, 442, 432, 442,
923 	432, 432, 432, 480, 509, 432, 118, 437,
924 	438, 432, 432, 432, 444, 432, 442, 432,
925 	442, 432, 508, 432, 480, 480, 432, 118,
926 	437, 438, 432, 432, 432, 444, 432, 442,
927 	432, 442, 120, 432, 432, 136, 443, 432,
928 	118, 437, 438, 432, 432, 432, 444, 432,
929 	442, 432, 433, 434, 436, 436, 123, 118,
930 	437, 438, 432, 432, 432, 439, 432, 432,
931 	440, 432, 188, 189, 190, 191, 510, 362,
932 	84, 79, 194, 195, 196, 196, 156, 197,
933 	360, 188, 200, 360, 203, 511, 205, 206,
934 	6, 1, 207, 208, 202, 202, 38, 209,
935 	202, 202, 210, 202, 213, 189, 190, 191,
936 	512, 513, 84, 157, 514, 515, 202, 196,
937 	156, 516, 202, 213, 200, 202, 116, 517,
938 	517, 84, 157, 207, 208, 202, 202, 156,
939 	518, 202, 519, 202, 202, 520, 514, 515,
940 	202, 514, 515, 202, 254, 202, 514, 521,
941 	202, 514, 522, 202, 514, 202, 519, 202,
942 	202, 202, 514, 515, 202, 523, 3, 360,
943 	360, 401, 430, 360, 79, 194, 195, 360,
944 	360, 360, 365, 360, 523, 360, 524, 367,
945 	525, 526, 84, 157, 514, 515, 202, 202,
946 	158, 370, 202, 202, 200, 202, 527, 367,
947 	528, 528, 84, 157, 514, 515, 202, 202,
948 	202, 370, 202, 202, 200, 202, 367, 528,
949 	528, 84, 157, 514, 515, 202, 202, 202,
950 	370, 202, 202, 200, 202, 524, 367, 528,
951 	528, 84, 157, 514, 515, 202, 202, 202,
952 	370, 202, 202, 200, 202, 524, 367, 525,
953 	528, 84, 157, 514, 515, 202, 202, 158,
954 	370, 202, 202, 200, 202, 213, 202, 279,
955 	116, 529, 529, 160, 157, 207, 208, 202,
956 	202, 202, 518, 202, 213, 202, 530, 184,
957 	531, 532, 162, 157, 514, 515, 202, 202,
958 	202, 533, 202, 184, 531, 532, 162, 157,
959 	514, 515, 202, 202, 202, 533, 202, 531,
960 	531, 162, 157, 514, 515, 202, 202, 202,
961 	533, 202, 534, 181, 535, 536, 165, 157,
962 	514, 515, 202, 202, 202, 533, 202, 181,
963 	535, 536, 165, 157, 514, 515, 202, 202,
964 	202, 533, 202, 535, 535, 165, 157, 514,
965 	515, 202, 202, 202, 533, 202, 537, 178,
966 	538, 539, 168, 157, 514, 515, 202, 202,
967 	202, 533, 202, 178, 538, 539, 168, 157,
968 	514, 515, 202, 202, 202, 533, 202, 538,
969 	538, 168, 157, 514, 515, 202, 202, 202,
970 	533, 202, 540, 175, 541, 542, 202, 157,
971 	514, 515, 202, 202, 202, 533, 202, 175,
972 	541, 542, 202, 157, 514, 515, 202, 202,
973 	202, 533, 202, 541, 541, 202, 157, 514,
974 	515, 202, 202, 202, 533, 202, 543, 202,
975 	544, 545, 202, 157, 514, 515, 202, 202,
976 	172, 202, 171, 202, 541, 541, 202, 157,
977 	514, 515, 202, 541, 541, 202, 157, 514,
978 	515, 202, 543, 202, 541, 541, 202, 157,
979 	514, 515, 202, 543, 202, 544, 541, 202,
980 	157, 514, 515, 202, 202, 172, 202, 523,
981 	171, 360, 360, 98, 364, 360, 79, 194,
982 	195, 360, 360, 360, 365, 360, 523, 360,
983 	547, 546, 548, 548, 546, 186, 549, 550,
984 	546, 548, 548, 546, 186, 549, 550, 546,
985 	551, 546, 546, 552, 549, 550, 546, 549,
986 	550, 546, 553, 546, 549, 554, 546, 549,
987 	555, 546, 549, 546, 551, 546, 546, 546,
988 	549, 550, 546, 0
989 };
990 
991 static const short _indic_syllable_machine_trans_targs[] = {
992 	178, 200, 207, 209, 210, 4, 213, 5,
993 	7, 216, 8, 10, 219, 11, 13, 222,
994 	14, 16, 17, 199, 19, 20, 221, 22,
995 	23, 218, 25, 26, 215, 224, 228, 232,
996 	235, 239, 242, 246, 249, 253, 256, 178,
997 	279, 286, 288, 289, 41, 292, 42, 44,
998 	295, 45, 47, 298, 48, 50, 301, 51,
999 	53, 54, 278, 56, 57, 300, 59, 60,
1000 	297, 62, 63, 294, 303, 307, 311, 314,
1001 	318, 321, 325, 328, 332, 336, 178, 357,
1002 	364, 366, 367, 78, 370, 178, 79, 81,
1003 	373, 82, 84, 376, 85, 87, 379, 88,
1004 	90, 91, 356, 93, 94, 378, 96, 97,
1005 	375, 99, 100, 372, 381, 385, 389, 392,
1006 	396, 399, 403, 406, 410, 178, 437, 444,
1007 	446, 447, 114, 450, 115, 117, 453, 118,
1008 	120, 456, 121, 123, 459, 124, 126, 127,
1009 	436, 129, 130, 458, 132, 133, 455, 135,
1010 	136, 452, 461, 465, 469, 472, 476, 479,
1011 	483, 486, 490, 493, 414, 498, 509, 152,
1012 	512, 154, 515, 155, 157, 518, 158, 160,
1013 	521, 161, 524, 526, 527, 166, 167, 523,
1014 	169, 170, 520, 172, 173, 517, 175, 176,
1015 	514, 178, 532, 178, 179, 258, 337, 339,
1016 	413, 415, 359, 360, 416, 412, 494, 495,
1017 	384, 530, 178, 180, 182, 36, 257, 202,
1018 	203, 255, 227, 181, 35, 183, 251, 1,
1019 	184, 186, 34, 250, 248, 185, 33, 187,
1020 	244, 188, 190, 32, 243, 241, 189, 31,
1021 	191, 237, 192, 194, 30, 236, 234, 193,
1022 	29, 195, 230, 196, 198, 28, 229, 226,
1023 	197, 27, 212, 0, 201, 206, 178, 204,
1024 	205, 208, 2, 211, 3, 214, 6, 24,
1025 	217, 9, 21, 220, 12, 18, 223, 15,
1026 	225, 231, 233, 238, 240, 245, 247, 252,
1027 	254, 178, 259, 261, 73, 334, 281, 282,
1028 	335, 306, 260, 72, 262, 330, 38, 263,
1029 	265, 71, 329, 327, 264, 70, 266, 323,
1030 	267, 269, 69, 322, 320, 268, 68, 270,
1031 	316, 271, 273, 67, 315, 313, 272, 66,
1032 	274, 309, 275, 277, 65, 308, 305, 276,
1033 	64, 291, 37, 280, 285, 178, 283, 284,
1034 	287, 39, 290, 40, 293, 43, 61, 296,
1035 	46, 58, 299, 49, 55, 302, 52, 304,
1036 	310, 312, 317, 319, 324, 326, 331, 333,
1037 	178, 338, 109, 340, 408, 75, 341, 343,
1038 	108, 407, 405, 342, 107, 344, 401, 345,
1039 	347, 106, 400, 398, 346, 105, 348, 394,
1040 	349, 351, 104, 393, 391, 350, 103, 352,
1041 	387, 353, 355, 102, 386, 383, 354, 101,
1042 	369, 74, 358, 363, 178, 361, 362, 365,
1043 	76, 368, 77, 371, 80, 98, 374, 83,
1044 	95, 377, 86, 92, 380, 89, 382, 388,
1045 	390, 395, 397, 402, 404, 409, 411, 178,
1046 	178, 417, 419, 146, 145, 439, 440, 492,
1047 	464, 418, 420, 488, 111, 421, 423, 144,
1048 	487, 485, 422, 143, 424, 481, 425, 427,
1049 	142, 480, 478, 426, 141, 428, 474, 429,
1050 	431, 140, 473, 471, 430, 139, 432, 467,
1051 	433, 435, 138, 466, 463, 434, 137, 449,
1052 	110, 438, 443, 178, 441, 442, 445, 112,
1053 	448, 113, 451, 116, 134, 454, 119, 131,
1054 	457, 122, 128, 460, 125, 462, 468, 470,
1055 	475, 477, 482, 484, 489, 491, 147, 496,
1056 	497, 511, 500, 501, 529, 148, 505, 499,
1057 	504, 502, 503, 506, 507, 150, 510, 508,
1058 	149, 151, 513, 153, 174, 163, 516, 156,
1059 	171, 519, 159, 168, 522, 162, 165, 525,
1060 	164, 528, 178, 531, 177, 534, 535, 533,
1061 	538, 178, 536, 537
1062 };
1063 
1064 static const char _indic_syllable_machine_trans_actions[] = {
1065 	1, 0, 2, 2, 2, 0, 2, 0,
1066 	0, 2, 0, 0, 2, 0, 0, 2,
1067 	0, 0, 0, 2, 0, 0, 2, 0,
1068 	0, 2, 0, 0, 2, 2, 2, 2,
1069 	2, 2, 2, 2, 2, 2, 2, 3,
1070 	0, 2, 2, 2, 0, 2, 0, 0,
1071 	2, 0, 0, 2, 0, 0, 2, 0,
1072 	0, 0, 2, 0, 0, 2, 0, 0,
1073 	2, 0, 0, 2, 2, 2, 2, 2,
1074 	2, 2, 2, 2, 2, 2, 4, 0,
1075 	2, 2, 2, 0, 2, 5, 0, 0,
1076 	2, 0, 0, 2, 0, 0, 2, 0,
1077 	0, 0, 2, 0, 0, 2, 0, 0,
1078 	2, 0, 0, 2, 2, 6, 2, 6,
1079 	2, 6, 2, 6, 2, 7, 0, 2,
1080 	2, 2, 0, 2, 0, 0, 2, 0,
1081 	0, 2, 0, 0, 2, 0, 0, 0,
1082 	2, 0, 0, 2, 0, 0, 2, 0,
1083 	0, 2, 2, 2, 2, 2, 2, 2,
1084 	2, 2, 2, 2, 6, 0, 8, 0,
1085 	2, 0, 2, 0, 0, 2, 0, 0,
1086 	2, 0, 2, 2, 2, 0, 0, 2,
1087 	0, 0, 2, 0, 0, 2, 0, 0,
1088 	2, 9, 0, 12, 2, 2, 6, 2,
1089 	13, 13, 0, 0, 2, 2, 6, 2,
1090 	6, 2, 14, 2, 2, 0, 2, 0,
1091 	0, 2, 2, 2, 0, 2, 2, 0,
1092 	2, 2, 0, 2, 2, 2, 0, 2,
1093 	2, 2, 2, 0, 2, 2, 2, 0,
1094 	2, 2, 2, 2, 0, 2, 2, 2,
1095 	0, 2, 2, 2, 2, 0, 2, 2,
1096 	2, 0, 2, 0, 0, 0, 15, 0,
1097 	0, 2, 0, 2, 0, 2, 0, 0,
1098 	2, 0, 0, 2, 0, 0, 2, 0,
1099 	2, 2, 2, 2, 2, 2, 2, 2,
1100 	2, 16, 2, 2, 0, 2, 0, 0,
1101 	2, 2, 2, 0, 2, 2, 0, 2,
1102 	2, 0, 2, 2, 2, 0, 2, 2,
1103 	2, 2, 0, 2, 2, 2, 0, 2,
1104 	2, 2, 2, 0, 2, 2, 2, 0,
1105 	2, 2, 2, 2, 0, 2, 2, 2,
1106 	0, 2, 0, 0, 0, 17, 0, 0,
1107 	2, 0, 2, 0, 2, 0, 0, 2,
1108 	0, 0, 2, 0, 0, 2, 0, 2,
1109 	2, 2, 2, 2, 2, 2, 2, 2,
1110 	18, 6, 0, 6, 6, 0, 6, 2,
1111 	0, 6, 2, 6, 0, 6, 6, 6,
1112 	2, 0, 6, 2, 6, 0, 6, 6,
1113 	6, 2, 0, 6, 2, 6, 0, 6,
1114 	6, 6, 2, 0, 6, 2, 6, 0,
1115 	6, 0, 0, 0, 19, 0, 0, 2,
1116 	0, 2, 0, 2, 0, 0, 2, 0,
1117 	0, 2, 0, 0, 2, 0, 2, 2,
1118 	2, 2, 2, 2, 2, 2, 2, 20,
1119 	21, 2, 2, 0, 0, 0, 0, 2,
1120 	2, 2, 2, 2, 0, 2, 2, 0,
1121 	2, 2, 2, 0, 2, 2, 2, 2,
1122 	0, 2, 2, 2, 0, 2, 2, 2,
1123 	2, 0, 2, 2, 2, 0, 2, 2,
1124 	2, 2, 0, 2, 2, 2, 0, 2,
1125 	0, 0, 0, 22, 0, 0, 2, 0,
1126 	2, 0, 2, 0, 0, 2, 0, 0,
1127 	2, 0, 0, 2, 0, 2, 2, 2,
1128 	2, 2, 2, 2, 2, 2, 0, 0,
1129 	8, 2, 0, 0, 2, 0, 2, 0,
1130 	0, 0, 0, 8, 8, 0, 8, 8,
1131 	0, 0, 2, 0, 0, 0, 2, 0,
1132 	0, 2, 0, 0, 2, 0, 0, 2,
1133 	0, 2, 23, 2, 0, 0, 0, 0,
1134 	0, 24, 0, 0
1135 };
1136 
1137 static const char _indic_syllable_machine_to_state_actions[] = {
1138 	0, 0, 0, 0, 0, 0, 0, 0,
1139 	0, 0, 0, 0, 0, 0, 0, 0,
1140 	0, 0, 0, 0, 0, 0, 0, 0,
1141 	0, 0, 0, 0, 0, 0, 0, 0,
1142 	0, 0, 0, 0, 0, 0, 0, 0,
1143 	0, 0, 0, 0, 0, 0, 0, 0,
1144 	0, 0, 0, 0, 0, 0, 0, 0,
1145 	0, 0, 0, 0, 0, 0, 0, 0,
1146 	0, 0, 0, 0, 0, 0, 0, 0,
1147 	0, 0, 0, 0, 0, 0, 0, 0,
1148 	0, 0, 0, 0, 0, 0, 0, 0,
1149 	0, 0, 0, 0, 0, 0, 0, 0,
1150 	0, 0, 0, 0, 0, 0, 0, 0,
1151 	0, 0, 0, 0, 0, 0, 0, 0,
1152 	0, 0, 0, 0, 0, 0, 0, 0,
1153 	0, 0, 0, 0, 0, 0, 0, 0,
1154 	0, 0, 0, 0, 0, 0, 0, 0,
1155 	0, 0, 0, 0, 0, 0, 0, 0,
1156 	0, 0, 0, 0, 0, 0, 0, 0,
1157 	0, 0, 0, 0, 0, 0, 0, 0,
1158 	0, 0, 0, 0, 0, 0, 0, 0,
1159 	0, 0, 0, 0, 0, 0, 0, 0,
1160 	0, 0, 10, 0, 0, 0, 0, 0,
1161 	0, 0, 0, 0, 0, 0, 0, 0,
1162 	0, 0, 0, 0, 0, 0, 0, 0,
1163 	0, 0, 0, 0, 0, 0, 0, 0,
1164 	0, 0, 0, 0, 0, 0, 0, 0,
1165 	0, 0, 0, 0, 0, 0, 0, 0,
1166 	0, 0, 0, 0, 0, 0, 0, 0,
1167 	0, 0, 0, 0, 0, 0, 0, 0,
1168 	0, 0, 0, 0, 0, 0, 0, 0,
1169 	0, 0, 0, 0, 0, 0, 0, 0,
1170 	0, 0, 0, 0, 0, 0, 0, 0,
1171 	0, 0, 0, 0, 0, 0, 0, 0,
1172 	0, 0, 0, 0, 0, 0, 0, 0,
1173 	0, 0, 0, 0, 0, 0, 0, 0,
1174 	0, 0, 0, 0, 0, 0, 0, 0,
1175 	0, 0, 0, 0, 0, 0, 0, 0,
1176 	0, 0, 0, 0, 0, 0, 0, 0,
1177 	0, 0, 0, 0, 0, 0, 0, 0,
1178 	0, 0, 0, 0, 0, 0, 0, 0,
1179 	0, 0, 0, 0, 0, 0, 0, 0,
1180 	0, 0, 0, 0, 0, 0, 0, 0,
1181 	0, 0, 0, 0, 0, 0, 0, 0,
1182 	0, 0, 0, 0, 0, 0, 0, 0,
1183 	0, 0, 0, 0, 0, 0, 0, 0,
1184 	0, 0, 0, 0, 0, 0, 0, 0,
1185 	0, 0, 0, 0, 0, 0, 0, 0,
1186 	0, 0, 0, 0, 0, 0, 0, 0,
1187 	0, 0, 0, 0, 0, 0, 0, 0,
1188 	0, 0, 0, 0, 0, 0, 0, 0,
1189 	0, 0, 0, 0, 0, 0, 0, 0,
1190 	0, 0, 0, 0, 0, 0, 0, 0,
1191 	0, 0, 0, 0, 0, 0, 0, 0,
1192 	0, 0, 0, 0, 0, 0, 0, 0,
1193 	0, 0, 0, 0, 0, 0, 0, 0,
1194 	0, 0, 0, 0, 0, 0, 0, 0,
1195 	0, 0, 0, 0, 0, 0, 0, 0,
1196 	0, 0, 0, 0, 0, 0, 0, 0,
1197 	0, 0, 0, 0, 0, 0, 0, 0,
1198 	0, 0, 0, 0, 0, 0, 0, 0,
1199 	0, 0, 0, 0, 0, 0, 0, 0,
1200 	0, 0, 0, 0, 0, 0, 0, 0,
1201 	0, 0, 0, 0, 0, 0, 0, 0,
1202 	0, 0, 0, 0, 0, 0, 0, 0,
1203 	0, 0, 0, 0, 0, 0, 0, 0,
1204 	0, 0, 0, 0, 0, 0, 0, 0,
1205 	0, 0, 0
1206 };
1207 
1208 static const char _indic_syllable_machine_from_state_actions[] = {
1209 	0, 0, 0, 0, 0, 0, 0, 0,
1210 	0, 0, 0, 0, 0, 0, 0, 0,
1211 	0, 0, 0, 0, 0, 0, 0, 0,
1212 	0, 0, 0, 0, 0, 0, 0, 0,
1213 	0, 0, 0, 0, 0, 0, 0, 0,
1214 	0, 0, 0, 0, 0, 0, 0, 0,
1215 	0, 0, 0, 0, 0, 0, 0, 0,
1216 	0, 0, 0, 0, 0, 0, 0, 0,
1217 	0, 0, 0, 0, 0, 0, 0, 0,
1218 	0, 0, 0, 0, 0, 0, 0, 0,
1219 	0, 0, 0, 0, 0, 0, 0, 0,
1220 	0, 0, 0, 0, 0, 0, 0, 0,
1221 	0, 0, 0, 0, 0, 0, 0, 0,
1222 	0, 0, 0, 0, 0, 0, 0, 0,
1223 	0, 0, 0, 0, 0, 0, 0, 0,
1224 	0, 0, 0, 0, 0, 0, 0, 0,
1225 	0, 0, 0, 0, 0, 0, 0, 0,
1226 	0, 0, 0, 0, 0, 0, 0, 0,
1227 	0, 0, 0, 0, 0, 0, 0, 0,
1228 	0, 0, 0, 0, 0, 0, 0, 0,
1229 	0, 0, 0, 0, 0, 0, 0, 0,
1230 	0, 0, 0, 0, 0, 0, 0, 0,
1231 	0, 0, 11, 0, 0, 0, 0, 0,
1232 	0, 0, 0, 0, 0, 0, 0, 0,
1233 	0, 0, 0, 0, 0, 0, 0, 0,
1234 	0, 0, 0, 0, 0, 0, 0, 0,
1235 	0, 0, 0, 0, 0, 0, 0, 0,
1236 	0, 0, 0, 0, 0, 0, 0, 0,
1237 	0, 0, 0, 0, 0, 0, 0, 0,
1238 	0, 0, 0, 0, 0, 0, 0, 0,
1239 	0, 0, 0, 0, 0, 0, 0, 0,
1240 	0, 0, 0, 0, 0, 0, 0, 0,
1241 	0, 0, 0, 0, 0, 0, 0, 0,
1242 	0, 0, 0, 0, 0, 0, 0, 0,
1243 	0, 0, 0, 0, 0, 0, 0, 0,
1244 	0, 0, 0, 0, 0, 0, 0, 0,
1245 	0, 0, 0, 0, 0, 0, 0, 0,
1246 	0, 0, 0, 0, 0, 0, 0, 0,
1247 	0, 0, 0, 0, 0, 0, 0, 0,
1248 	0, 0, 0, 0, 0, 0, 0, 0,
1249 	0, 0, 0, 0, 0, 0, 0, 0,
1250 	0, 0, 0, 0, 0, 0, 0, 0,
1251 	0, 0, 0, 0, 0, 0, 0, 0,
1252 	0, 0, 0, 0, 0, 0, 0, 0,
1253 	0, 0, 0, 0, 0, 0, 0, 0,
1254 	0, 0, 0, 0, 0, 0, 0, 0,
1255 	0, 0, 0, 0, 0, 0, 0, 0,
1256 	0, 0, 0, 0, 0, 0, 0, 0,
1257 	0, 0, 0, 0, 0, 0, 0, 0,
1258 	0, 0, 0, 0, 0, 0, 0, 0,
1259 	0, 0, 0, 0, 0, 0, 0, 0,
1260 	0, 0, 0, 0, 0, 0, 0, 0,
1261 	0, 0, 0, 0, 0, 0, 0, 0,
1262 	0, 0, 0, 0, 0, 0, 0, 0,
1263 	0, 0, 0, 0, 0, 0, 0, 0,
1264 	0, 0, 0, 0, 0, 0, 0, 0,
1265 	0, 0, 0, 0, 0, 0, 0, 0,
1266 	0, 0, 0, 0, 0, 0, 0, 0,
1267 	0, 0, 0, 0, 0, 0, 0, 0,
1268 	0, 0, 0, 0, 0, 0, 0, 0,
1269 	0, 0, 0, 0, 0, 0, 0, 0,
1270 	0, 0, 0, 0, 0, 0, 0, 0,
1271 	0, 0, 0, 0, 0, 0, 0, 0,
1272 	0, 0, 0, 0, 0, 0, 0, 0,
1273 	0, 0, 0, 0, 0, 0, 0, 0,
1274 	0, 0, 0, 0, 0, 0, 0, 0,
1275 	0, 0, 0, 0, 0, 0, 0, 0,
1276 	0, 0, 0
1277 };
1278 
1279 static const short _indic_syllable_machine_eof_trans[] = {
1280 	1, 1, 1, 1, 1, 1, 1, 1,
1281 	1, 1, 1, 1, 1, 1, 1, 1,
1282 	1, 1, 1, 1, 1, 1, 1, 1,
1283 	1, 1, 1, 1, 1, 1, 1, 1,
1284 	1, 1, 1, 1, 1, 40, 40, 40,
1285 	40, 40, 40, 40, 40, 40, 40, 40,
1286 	40, 40, 40, 40, 40, 40, 40, 40,
1287 	40, 40, 40, 40, 40, 40, 40, 40,
1288 	40, 40, 40, 40, 40, 40, 40, 40,
1289 	40, 40, 79, 79, 79, 79, 86, 86,
1290 	79, 79, 79, 79, 79, 79, 79, 79,
1291 	79, 79, 79, 79, 79, 79, 79, 79,
1292 	79, 79, 79, 79, 79, 79, 79, 79,
1293 	79, 79, 79, 79, 79, 79, 118, 118,
1294 	118, 118, 118, 118, 118, 118, 118, 118,
1295 	118, 118, 118, 118, 118, 118, 118, 118,
1296 	118, 118, 118, 118, 118, 118, 118, 118,
1297 	118, 118, 118, 118, 118, 118, 118, 118,
1298 	118, 118, 118, 79, 1, 1, 1, 1,
1299 	1, 1, 1, 1, 1, 1, 1, 1,
1300 	1, 1, 1, 1, 1, 1, 1, 1,
1301 	1, 1, 1, 1, 1, 1, 1, 1,
1302 	1, 186, 0, 203, 203, 203, 203, 203,
1303 	203, 203, 203, 203, 203, 203, 203, 203,
1304 	203, 203, 203, 203, 203, 203, 203, 203,
1305 	203, 203, 203, 203, 203, 203, 203, 203,
1306 	203, 203, 203, 203, 203, 203, 203, 203,
1307 	203, 203, 203, 203, 203, 203, 203, 203,
1308 	203, 203, 203, 203, 203, 203, 203, 203,
1309 	203, 203, 203, 203, 203, 203, 203, 203,
1310 	203, 203, 203, 203, 203, 203, 203, 203,
1311 	203, 203, 203, 203, 203, 203, 203, 203,
1312 	203, 203, 282, 282, 282, 282, 282, 282,
1313 	282, 282, 282, 282, 282, 282, 282, 282,
1314 	282, 282, 282, 282, 282, 282, 282, 282,
1315 	282, 282, 282, 282, 282, 282, 282, 282,
1316 	282, 282, 282, 282, 282, 282, 282, 282,
1317 	282, 282, 282, 282, 282, 282, 282, 282,
1318 	282, 282, 282, 282, 282, 282, 282, 282,
1319 	282, 282, 282, 282, 282, 282, 282, 282,
1320 	282, 282, 282, 282, 282, 282, 282, 282,
1321 	282, 282, 282, 282, 282, 282, 282, 282,
1322 	282, 361, 361, 361, 361, 361, 361, 361,
1323 	361, 361, 361, 361, 361, 361, 361, 361,
1324 	361, 361, 361, 361, 361, 361, 361, 361,
1325 	361, 361, 361, 361, 361, 361, 361, 361,
1326 	361, 361, 361, 361, 361, 361, 361, 361,
1327 	361, 361, 361, 361, 361, 361, 361, 361,
1328 	361, 361, 361, 361, 361, 361, 361, 361,
1329 	361, 361, 361, 361, 361, 361, 361, 361,
1330 	361, 361, 361, 361, 361, 361, 361, 361,
1331 	361, 361, 361, 361, 361, 432, 361, 432,
1332 	433, 433, 433, 433, 433, 433, 433, 433,
1333 	433, 433, 433, 433, 433, 433, 433, 433,
1334 	433, 433, 433, 433, 433, 433, 433, 433,
1335 	433, 433, 433, 433, 433, 433, 433, 433,
1336 	433, 433, 433, 433, 433, 433, 433, 433,
1337 	433, 433, 433, 433, 433, 433, 433, 433,
1338 	433, 433, 433, 433, 433, 433, 433, 433,
1339 	433, 433, 433, 433, 433, 433, 433, 433,
1340 	433, 433, 433, 433, 433, 433, 433, 433,
1341 	433, 433, 433, 433, 433, 433, 361, 203,
1342 	203, 203, 203, 203, 203, 203, 203, 203,
1343 	203, 361, 203, 203, 203, 203, 203, 203,
1344 	203, 203, 203, 203, 203, 203, 203, 203,
1345 	203, 203, 203, 203, 203, 203, 203, 203,
1346 	203, 361, 547, 547, 547, 547, 547, 547,
1347 	547, 547, 547
1348 };
1349 
1350 static const int indic_syllable_machine_start = 178;
1351 static const int indic_syllable_machine_first_final = 178;
1352 static const int indic_syllable_machine_error = -1;
1353 
1354 static const int indic_syllable_machine_en_main = 178;
1355 
1356 
1357 #line 36 "hb-ot-shape-complex-indic-machine.rl"
1358 
1359 
1360 
1361 #line 96 "hb-ot-shape-complex-indic-machine.rl"
1362 
1363 
1364 #define found_syllable(syllable_type) \
1365   HB_STMT_START { \
1366     if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
1367     for (unsigned int i = last; i < p+1; i++) \
1368       info[i].syllable() = (syllable_serial << 4) | syllable_type; \
1369     last = p+1; \
1370     syllable_serial++; \
1371     if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
1372   } HB_STMT_END
1373 
1374 static void
find_syllables(hb_buffer_t * buffer)1375 find_syllables (hb_buffer_t *buffer)
1376 {
1377   unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED;
1378   int cs;
1379   hb_glyph_info_t *info = buffer->info;
1380 
1381 #line 1382 "hb-ot-shape-complex-indic-machine.hh"
1382 	{
1383 	cs = indic_syllable_machine_start;
1384 	ts = 0;
1385 	te = 0;
1386 	act = 0;
1387 	}
1388 
1389 #line 117 "hb-ot-shape-complex-indic-machine.rl"
1390 
1391 
1392   p = 0;
1393   pe = eof = buffer->len;
1394 
1395   unsigned int last = 0;
1396   unsigned int syllable_serial = 1;
1397 
1398 #line 1399 "hb-ot-shape-complex-indic-machine.hh"
1399 	{
1400 	int _slen;
1401 	int _trans;
1402 	const unsigned char *_keys;
1403 	const short *_inds;
1404 	if ( p == pe )
1405 		goto _test_eof;
1406 _resume:
1407 	switch ( _indic_syllable_machine_from_state_actions[cs] ) {
1408 	case 11:
1409 #line 1 "NONE"
1410 	{ts = p;}
1411 	break;
1412 #line 1413 "hb-ot-shape-complex-indic-machine.hh"
1413 	}
1414 
1415 	_keys = _indic_syllable_machine_trans_keys + (cs<<1);
1416 	_inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
1417 
1418 	_slen = _indic_syllable_machine_key_spans[cs];
1419 	_trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
1420 		( info[p].indic_category()) <= _keys[1] ?
1421 		( info[p].indic_category()) - _keys[0] : _slen ];
1422 
1423 _eof_trans:
1424 	cs = _indic_syllable_machine_trans_targs[_trans];
1425 
1426 	if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
1427 		goto _again;
1428 
1429 	switch ( _indic_syllable_machine_trans_actions[_trans] ) {
1430 	case 2:
1431 #line 1 "NONE"
1432 	{te = p+1;}
1433 	break;
1434 	case 15:
1435 #line 87 "hb-ot-shape-complex-indic-machine.rl"
1436 	{te = p+1;{ found_syllable (consonant_syllable); }}
1437 	break;
1438 	case 17:
1439 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1440 	{te = p+1;{ found_syllable (vowel_syllable); }}
1441 	break;
1442 	case 22:
1443 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1444 	{te = p+1;{ found_syllable (standalone_cluster); }}
1445 	break;
1446 	case 24:
1447 #line 90 "hb-ot-shape-complex-indic-machine.rl"
1448 	{te = p+1;{ found_syllable (symbol_cluster); }}
1449 	break;
1450 	case 19:
1451 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1452 	{te = p+1;{ found_syllable (broken_cluster); }}
1453 	break;
1454 	case 12:
1455 #line 92 "hb-ot-shape-complex-indic-machine.rl"
1456 	{te = p+1;{ found_syllable (non_indic_cluster); }}
1457 	break;
1458 	case 14:
1459 #line 87 "hb-ot-shape-complex-indic-machine.rl"
1460 	{te = p;p--;{ found_syllable (consonant_syllable); }}
1461 	break;
1462 	case 16:
1463 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1464 	{te = p;p--;{ found_syllable (vowel_syllable); }}
1465 	break;
1466 	case 21:
1467 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1468 	{te = p;p--;{ found_syllable (standalone_cluster); }}
1469 	break;
1470 	case 23:
1471 #line 90 "hb-ot-shape-complex-indic-machine.rl"
1472 	{te = p;p--;{ found_syllable (symbol_cluster); }}
1473 	break;
1474 	case 18:
1475 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1476 	{te = p;p--;{ found_syllable (broken_cluster); }}
1477 	break;
1478 	case 20:
1479 #line 92 "hb-ot-shape-complex-indic-machine.rl"
1480 	{te = p;p--;{ found_syllable (non_indic_cluster); }}
1481 	break;
1482 	case 1:
1483 #line 87 "hb-ot-shape-complex-indic-machine.rl"
1484 	{{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
1485 	break;
1486 	case 3:
1487 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1488 	{{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
1489 	break;
1490 	case 7:
1491 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1492 	{{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
1493 	break;
1494 	case 9:
1495 #line 90 "hb-ot-shape-complex-indic-machine.rl"
1496 	{{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
1497 	break;
1498 	case 4:
1499 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1500 	{{p = ((te))-1;}{ found_syllable (broken_cluster); }}
1501 	break;
1502 	case 5:
1503 #line 1 "NONE"
1504 	{	switch( act ) {
1505 	case 1:
1506 	{{p = ((te))-1;} found_syllable (consonant_syllable); }
1507 	break;
1508 	case 5:
1509 	{{p = ((te))-1;} found_syllable (broken_cluster); }
1510 	break;
1511 	case 6:
1512 	{{p = ((te))-1;} found_syllable (non_indic_cluster); }
1513 	break;
1514 	}
1515 	}
1516 	break;
1517 	case 8:
1518 #line 1 "NONE"
1519 	{te = p+1;}
1520 #line 87 "hb-ot-shape-complex-indic-machine.rl"
1521 	{act = 1;}
1522 	break;
1523 	case 6:
1524 #line 1 "NONE"
1525 	{te = p+1;}
1526 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1527 	{act = 5;}
1528 	break;
1529 	case 13:
1530 #line 1 "NONE"
1531 	{te = p+1;}
1532 #line 92 "hb-ot-shape-complex-indic-machine.rl"
1533 	{act = 6;}
1534 	break;
1535 #line 1536 "hb-ot-shape-complex-indic-machine.hh"
1536 	}
1537 
1538 _again:
1539 	switch ( _indic_syllable_machine_to_state_actions[cs] ) {
1540 	case 10:
1541 #line 1 "NONE"
1542 	{ts = 0;}
1543 	break;
1544 #line 1545 "hb-ot-shape-complex-indic-machine.hh"
1545 	}
1546 
1547 	if ( ++p != pe )
1548 		goto _resume;
1549 	_test_eof: {}
1550 	if ( p == eof )
1551 	{
1552 	if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
1553 		_trans = _indic_syllable_machine_eof_trans[cs] - 1;
1554 		goto _eof_trans;
1555 	}
1556 	}
1557 
1558 	}
1559 
1560 #line 126 "hb-ot-shape-complex-indic-machine.rl"
1561 
1562 }
1563 
1564 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
1565