• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.tmp"
36 static const unsigned char _indic_syllable_machine_trans_keys[] = {
37 	1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u,
38 	5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u,
39 	16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
40 	6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
41 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u,
42 	7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u,
43 	5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u,
44 	4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u,
45 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
46 	1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u,
47 	5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u,
48 	16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
49 	6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
50 	4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u,
51 	5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u,
52 	7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
53 	6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u,
54 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
55 	4u, 14u, 5u, 7u, 5u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u,
56 	7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 1u, 16u, 13u, 13u, 4u, 4u, 6u, 6u,
57 	16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
58 	6u, 6u, 16u, 16u, 1u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u,
59 	3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u,
60 	3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 18u, 8u, 18u,
61 	5u, 10u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 18u, 3u, 18u, 8u, 18u,
62 	3u, 10u, 8u, 10u, 3u, 18u, 3u, 18u, 3u, 18u, 3u, 18u, 4u, 18u, 5u, 18u,
63 	3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u,
64 	6u, 18u, 3u, 18u, 1u, 18u, 4u, 31u, 4u, 18u, 3u, 31u, 3u, 31u, 1u, 18u,
65 	1u, 18u, 1u, 18u, 1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u,
66 	1u, 18u, 1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u, 1u, 18u,
67 	1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u, 1u, 18u, 1u, 18u,
68 	1u, 18u, 3u, 31u, 3u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u,
69 	3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u,
70 	3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 18u, 8u, 18u,
71 	5u, 10u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 18u, 3u, 18u, 8u, 18u,
72 	3u, 10u, 8u, 10u, 3u, 18u, 3u, 18u, 3u, 18u, 3u, 18u, 4u, 18u, 5u, 18u,
73 	3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u,
74 	6u, 18u, 3u, 18u, 1u, 18u, 4u, 31u, 4u, 18u, 3u, 31u, 3u, 31u, 1u, 18u,
75 	1u, 18u, 1u, 18u, 1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u,
76 	1u, 18u, 1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u, 1u, 18u,
77 	1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u, 1u, 18u, 1u, 18u,
78 	4u, 14u, 1u, 18u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u,
79 	4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u,
80 	4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 18u, 8u, 18u, 5u, 10u,
81 	9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 18u, 3u, 18u, 8u, 18u, 3u, 10u,
82 	8u, 10u, 3u, 18u, 3u, 18u, 3u, 18u, 3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u,
83 	4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u, 6u, 18u,
84 	3u, 18u, 1u, 18u, 4u, 31u, 4u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u,
85 	1u, 18u, 1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u, 1u, 18u,
86 	1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u, 1u, 18u, 1u, 18u,
87 	1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u, 1u, 18u, 1u, 18u, 1u, 18u,
88 	4u, 14u, 3u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u,
89 	3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u,
90 	3u, 31u, 4u, 31u, 1u, 18u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 18u, 8u, 18u,
91 	5u, 10u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 18u, 3u, 18u, 8u, 18u,
92 	3u, 10u, 8u, 10u, 3u, 18u, 3u, 18u, 3u, 18u, 3u, 18u, 4u, 18u, 5u, 18u,
93 	3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u,
94 	6u, 18u, 3u, 18u, 1u, 18u, 4u, 31u, 4u, 18u, 3u, 31u, 3u, 31u, 1u, 18u,
95 	1u, 18u, 1u, 18u, 1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u,
96 	1u, 18u, 1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u, 1u, 18u,
97 	1u, 18u, 1u, 18u, 3u, 31u, 3u, 31u, 1u, 18u, 1u, 18u, 1u, 18u, 1u, 18u,
98 	1u, 18u, 3u, 31u, 1u, 31u, 3u, 31u, 1u, 31u, 4u, 18u, 1u, 18u, 3u, 31u,
99 	3u, 31u, 4u, 31u, 5u, 10u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 10u,
100 	8u, 10u, 3u, 31u, 3u, 31u, 1u, 18u, 3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u,
101 	4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u, 5u, 18u, 3u, 18u, 4u, 18u, 8u, 18u,
102 	3u, 18u, 3u, 18u, 8u, 18u, 3u, 18u, 3u, 18u, 1u, 18u, 3u, 10u, 8u, 10u,
103 	5u, 10u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 0
104 };
105 
106 static const char _indic_syllable_machine_key_spans[] = {
107 	16, 1, 3, 3, 1, 3, 3, 1,
108 	3, 3, 1, 3, 3, 1, 1, 1,
109 	1, 4, 1, 1, 4, 1, 1, 4,
110 	1, 1, 11, 11, 11, 11, 11, 11,
111 	11, 11, 11, 11, 16, 1, 3, 3,
112 	1, 3, 3, 1, 3, 3, 1, 3,
113 	3, 1, 1, 1, 1, 4, 1, 1,
114 	4, 1, 1, 4, 1, 1, 11, 11,
115 	11, 11, 11, 11, 11, 11, 11, 11,
116 	16, 1, 3, 3, 1, 3, 3, 1,
117 	3, 3, 1, 3, 3, 1, 1, 1,
118 	1, 4, 1, 1, 4, 1, 1, 4,
119 	1, 1, 11, 11, 11, 11, 11, 11,
120 	11, 11, 11, 16, 1, 3, 3, 1,
121 	3, 3, 1, 3, 3, 1, 3, 3,
122 	1, 1, 1, 1, 4, 1, 1, 4,
123 	1, 1, 4, 1, 1, 11, 11, 11,
124 	11, 11, 11, 11, 11, 11, 11, 11,
125 	11, 3, 3, 3, 3, 1, 3, 3,
126 	1, 3, 3, 1, 16, 1, 1, 1,
127 	1, 4, 1, 1, 4, 1, 1, 4,
128 	1, 1, 31, 29, 29, 28, 18, 29,
129 	29, 28, 18, 29, 29, 28, 18, 29,
130 	29, 28, 18, 29, 29, 28, 14, 11,
131 	6, 2, 2, 1, 6, 16, 16, 11,
132 	8, 3, 16, 16, 16, 16, 15, 14,
133 	16, 15, 14, 16, 15, 14, 16, 15,
134 	13, 16, 18, 28, 15, 29, 29, 18,
135 	18, 18, 18, 18, 29, 29, 18, 18,
136 	18, 18, 18, 29, 29, 18, 18, 18,
137 	18, 18, 29, 29, 18, 18, 18, 18,
138 	18, 29, 29, 29, 29, 28, 18, 29,
139 	29, 28, 18, 29, 29, 28, 18, 29,
140 	29, 28, 18, 29, 29, 28, 14, 11,
141 	6, 2, 2, 1, 6, 16, 16, 11,
142 	8, 3, 16, 16, 16, 16, 15, 14,
143 	16, 15, 14, 16, 15, 14, 16, 15,
144 	13, 16, 18, 28, 15, 29, 29, 18,
145 	18, 18, 18, 18, 29, 29, 18, 18,
146 	18, 18, 18, 29, 29, 18, 18, 18,
147 	18, 18, 29, 29, 18, 18, 18, 18,
148 	11, 18, 29, 29, 28, 18, 29, 29,
149 	28, 18, 29, 29, 28, 18, 29, 29,
150 	28, 18, 29, 29, 28, 14, 11, 6,
151 	2, 2, 1, 6, 16, 16, 11, 8,
152 	3, 16, 16, 16, 16, 15, 14, 16,
153 	15, 14, 16, 15, 14, 16, 15, 13,
154 	16, 18, 28, 15, 29, 29, 18, 18,
155 	18, 18, 18, 29, 29, 18, 18, 18,
156 	18, 18, 29, 29, 18, 18, 18, 18,
157 	18, 29, 29, 18, 18, 18, 18, 18,
158 	11, 29, 11, 29, 29, 28, 18, 29,
159 	29, 28, 18, 29, 29, 28, 18, 29,
160 	29, 28, 18, 29, 29, 28, 14, 11,
161 	6, 2, 2, 1, 6, 16, 16, 11,
162 	8, 3, 16, 16, 16, 16, 15, 14,
163 	16, 15, 14, 16, 15, 14, 16, 15,
164 	13, 16, 18, 28, 15, 29, 29, 18,
165 	18, 18, 18, 18, 29, 29, 18, 18,
166 	18, 18, 18, 29, 29, 18, 18, 18,
167 	18, 18, 29, 29, 18, 18, 18, 18,
168 	18, 29, 31, 29, 31, 15, 18, 29,
169 	29, 28, 6, 2, 2, 1, 6, 8,
170 	3, 29, 29, 18, 16, 15, 14, 16,
171 	15, 14, 16, 15, 14, 16, 15, 11,
172 	16, 16, 11, 16, 16, 18, 8, 3,
173 	6, 2, 2, 1, 6
174 };
175 
176 static const short _indic_syllable_machine_index_offsets[] = {
177 	0, 17, 19, 23, 27, 29, 33, 37,
178 	39, 43, 47, 49, 53, 57, 59, 61,
179 	63, 65, 70, 72, 74, 79, 81, 83,
180 	88, 90, 92, 104, 116, 128, 140, 152,
181 	164, 176, 188, 200, 212, 229, 231, 235,
182 	239, 241, 245, 249, 251, 255, 259, 261,
183 	265, 269, 271, 273, 275, 277, 282, 284,
184 	286, 291, 293, 295, 300, 302, 304, 316,
185 	328, 340, 352, 364, 376, 388, 400, 412,
186 	424, 441, 443, 447, 451, 453, 457, 461,
187 	463, 467, 471, 473, 477, 481, 483, 485,
188 	487, 489, 494, 496, 498, 503, 505, 507,
189 	512, 514, 516, 528, 540, 552, 564, 576,
190 	588, 600, 612, 624, 641, 643, 647, 651,
191 	653, 657, 661, 663, 667, 671, 673, 677,
192 	681, 683, 685, 687, 689, 694, 696, 698,
193 	703, 705, 707, 712, 714, 716, 728, 740,
194 	752, 764, 776, 788, 800, 812, 824, 836,
195 	848, 860, 864, 868, 872, 876, 878, 882,
196 	886, 888, 892, 896, 898, 915, 917, 919,
197 	921, 923, 928, 930, 932, 937, 939, 941,
198 	946, 948, 950, 982, 1012, 1042, 1071, 1090,
199 	1120, 1150, 1179, 1198, 1228, 1258, 1287, 1306,
200 	1336, 1366, 1395, 1414, 1444, 1474, 1503, 1518,
201 	1530, 1537, 1540, 1543, 1545, 1552, 1569, 1586,
202 	1598, 1607, 1611, 1628, 1645, 1662, 1679, 1695,
203 	1710, 1727, 1743, 1758, 1775, 1791, 1806, 1823,
204 	1839, 1853, 1870, 1889, 1918, 1934, 1964, 1994,
205 	2013, 2032, 2051, 2070, 2089, 2119, 2149, 2168,
206 	2187, 2206, 2225, 2244, 2274, 2304, 2323, 2342,
207 	2361, 2380, 2399, 2429, 2459, 2478, 2497, 2516,
208 	2535, 2554, 2584, 2614, 2644, 2674, 2703, 2722,
209 	2752, 2782, 2811, 2830, 2860, 2890, 2919, 2938,
210 	2968, 2998, 3027, 3046, 3076, 3106, 3135, 3150,
211 	3162, 3169, 3172, 3175, 3177, 3184, 3201, 3218,
212 	3230, 3239, 3243, 3260, 3277, 3294, 3311, 3327,
213 	3342, 3359, 3375, 3390, 3407, 3423, 3438, 3455,
214 	3471, 3485, 3502, 3521, 3550, 3566, 3596, 3626,
215 	3645, 3664, 3683, 3702, 3721, 3751, 3781, 3800,
216 	3819, 3838, 3857, 3876, 3906, 3936, 3955, 3974,
217 	3993, 4012, 4031, 4061, 4091, 4110, 4129, 4148,
218 	4167, 4179, 4198, 4228, 4258, 4287, 4306, 4336,
219 	4366, 4395, 4414, 4444, 4474, 4503, 4522, 4552,
220 	4582, 4611, 4630, 4660, 4690, 4719, 4734, 4746,
221 	4753, 4756, 4759, 4761, 4768, 4785, 4802, 4814,
222 	4823, 4827, 4844, 4861, 4878, 4895, 4911, 4926,
223 	4943, 4959, 4974, 4991, 5007, 5022, 5039, 5055,
224 	5069, 5086, 5105, 5134, 5150, 5180, 5210, 5229,
225 	5248, 5267, 5286, 5305, 5335, 5365, 5384, 5403,
226 	5422, 5441, 5460, 5490, 5520, 5539, 5558, 5577,
227 	5596, 5615, 5645, 5675, 5694, 5713, 5732, 5751,
228 	5770, 5782, 5812, 5824, 5854, 5884, 5913, 5932,
229 	5962, 5992, 6021, 6040, 6070, 6100, 6129, 6148,
230 	6178, 6208, 6237, 6256, 6286, 6316, 6345, 6360,
231 	6372, 6379, 6382, 6385, 6387, 6394, 6411, 6428,
232 	6440, 6449, 6453, 6470, 6487, 6504, 6521, 6537,
233 	6552, 6569, 6585, 6600, 6617, 6633, 6648, 6665,
234 	6681, 6695, 6712, 6731, 6760, 6776, 6806, 6836,
235 	6855, 6874, 6893, 6912, 6931, 6961, 6991, 7010,
236 	7029, 7048, 7067, 7086, 7116, 7146, 7165, 7184,
237 	7203, 7222, 7241, 7271, 7301, 7320, 7339, 7358,
238 	7377, 7396, 7426, 7458, 7488, 7520, 7536, 7555,
239 	7585, 7615, 7644, 7651, 7654, 7657, 7659, 7666,
240 	7675, 7679, 7709, 7739, 7758, 7775, 7791, 7806,
241 	7823, 7839, 7854, 7871, 7887, 7902, 7919, 7935,
242 	7947, 7964, 7981, 7993, 8010, 8027, 8046, 8055,
243 	8059, 8066, 8069, 8072, 8074
244 };
245 
246 static const short _indic_syllable_machine_indicies[] = {
247 	1, 2, 0, 0, 0, 0, 0, 0,
248 	0, 0, 0, 0, 0, 0, 0, 1,
249 	0, 3, 0, 4, 4, 5, 0, 6,
250 	6, 5, 0, 5, 0, 7, 7, 8,
251 	0, 9, 9, 8, 0, 8, 0, 10,
252 	10, 11, 0, 12, 12, 11, 0, 11,
253 	0, 13, 13, 14, 0, 15, 15, 14,
254 	0, 14, 0, 16, 0, 17, 0, 18,
255 	0, 19, 13, 13, 14, 0, 20, 0,
256 	21, 0, 22, 10, 10, 11, 0, 23,
257 	0, 24, 0, 25, 7, 7, 8, 0,
258 	26, 0, 27, 0, 28, 4, 4, 5,
259 	0, 0, 0, 0, 0, 0, 28, 0,
260 	28, 4, 4, 5, 0, 0, 0, 0,
261 	0, 29, 28, 0, 30, 4, 4, 5,
262 	0, 0, 0, 0, 0, 0, 30, 0,
263 	30, 4, 4, 5, 0, 0, 0, 0,
264 	0, 31, 30, 0, 32, 4, 4, 5,
265 	0, 0, 0, 0, 0, 0, 32, 0,
266 	32, 4, 4, 5, 0, 0, 0, 0,
267 	0, 33, 32, 0, 34, 4, 4, 5,
268 	0, 0, 0, 0, 0, 0, 34, 0,
269 	34, 4, 4, 5, 0, 0, 0, 0,
270 	0, 35, 34, 0, 36, 4, 4, 5,
271 	0, 0, 0, 0, 0, 0, 36, 0,
272 	36, 4, 4, 5, 0, 0, 0, 0,
273 	0, 37, 36, 0, 39, 40, 38, 38,
274 	38, 38, 38, 38, 38, 38, 38, 38,
275 	38, 38, 38, 39, 38, 41, 38, 42,
276 	42, 43, 38, 44, 44, 43, 38, 43,
277 	38, 45, 45, 46, 38, 47, 47, 46,
278 	38, 46, 38, 48, 48, 49, 38, 50,
279 	50, 49, 38, 49, 38, 51, 51, 52,
280 	38, 53, 53, 52, 38, 52, 38, 54,
281 	38, 55, 38, 56, 38, 57, 51, 51,
282 	52, 38, 58, 38, 59, 38, 60, 48,
283 	48, 49, 38, 61, 38, 62, 38, 63,
284 	45, 45, 46, 38, 64, 38, 65, 38,
285 	66, 42, 42, 43, 38, 38, 38, 38,
286 	38, 38, 66, 38, 66, 42, 42, 43,
287 	38, 38, 38, 38, 38, 67, 66, 38,
288 	68, 42, 42, 43, 38, 38, 38, 38,
289 	38, 38, 68, 38, 68, 42, 42, 43,
290 	38, 38, 38, 38, 38, 69, 68, 38,
291 	70, 42, 42, 43, 38, 38, 38, 38,
292 	38, 38, 70, 38, 70, 42, 42, 43,
293 	38, 38, 38, 38, 38, 71, 70, 38,
294 	72, 42, 42, 43, 38, 38, 38, 38,
295 	38, 38, 72, 38, 72, 42, 42, 43,
296 	38, 38, 38, 38, 38, 73, 72, 38,
297 	74, 42, 42, 43, 38, 38, 38, 38,
298 	38, 38, 74, 38, 74, 42, 42, 43,
299 	38, 38, 38, 38, 38, 75, 74, 38,
300 	77, 78, 76, 76, 76, 76, 76, 76,
301 	76, 76, 76, 76, 76, 76, 76, 77,
302 	76, 79, 76, 80, 80, 81, 76, 83,
303 	83, 81, 82, 81, 82, 84, 84, 85,
304 	76, 86, 86, 85, 76, 85, 76, 87,
305 	87, 88, 76, 89, 89, 88, 76, 88,
306 	76, 90, 90, 91, 76, 92, 92, 91,
307 	76, 91, 76, 93, 76, 94, 76, 95,
308 	76, 96, 90, 90, 91, 76, 97, 76,
309 	98, 76, 99, 87, 87, 88, 76, 100,
310 	76, 101, 76, 102, 84, 84, 85, 76,
311 	103, 76, 104, 76, 105, 80, 80, 81,
312 	76, 76, 76, 76, 76, 76, 105, 76,
313 	105, 80, 80, 81, 76, 76, 76, 76,
314 	76, 106, 105, 76, 107, 80, 80, 81,
315 	76, 76, 76, 76, 76, 76, 107, 76,
316 	107, 80, 80, 81, 76, 76, 76, 76,
317 	76, 108, 107, 76, 109, 80, 80, 81,
318 	76, 76, 76, 76, 76, 76, 109, 76,
319 	109, 80, 80, 81, 76, 76, 76, 76,
320 	76, 110, 109, 76, 111, 80, 80, 81,
321 	82, 82, 82, 82, 82, 82, 111, 82,
322 	111, 80, 80, 81, 76, 76, 76, 76,
323 	76, 112, 111, 76, 113, 80, 80, 81,
324 	76, 76, 76, 76, 76, 76, 113, 76,
325 	115, 116, 114, 114, 114, 114, 114, 114,
326 	114, 114, 114, 114, 114, 114, 114, 115,
327 	114, 117, 114, 118, 118, 119, 114, 120,
328 	120, 119, 114, 119, 114, 121, 121, 122,
329 	114, 123, 123, 122, 114, 122, 114, 124,
330 	124, 125, 114, 126, 126, 125, 114, 125,
331 	114, 127, 127, 128, 114, 129, 129, 128,
332 	114, 128, 114, 130, 114, 131, 114, 132,
333 	114, 133, 127, 127, 128, 114, 134, 114,
334 	135, 114, 136, 124, 124, 125, 114, 137,
335 	114, 138, 114, 139, 121, 121, 122, 114,
336 	140, 114, 141, 114, 142, 118, 118, 119,
337 	114, 114, 114, 114, 114, 114, 142, 114,
338 	142, 118, 118, 119, 114, 114, 114, 114,
339 	114, 143, 142, 114, 144, 118, 118, 119,
340 	114, 114, 114, 114, 114, 114, 144, 114,
341 	144, 118, 118, 119, 114, 114, 114, 114,
342 	114, 145, 144, 114, 146, 118, 118, 119,
343 	114, 114, 114, 114, 114, 114, 146, 114,
344 	146, 118, 118, 119, 114, 114, 114, 114,
345 	114, 147, 146, 114, 148, 118, 118, 119,
346 	114, 114, 114, 114, 114, 114, 148, 114,
347 	148, 118, 118, 119, 114, 114, 114, 114,
348 	114, 149, 148, 114, 150, 118, 118, 119,
349 	114, 114, 114, 114, 114, 114, 150, 114,
350 	150, 118, 118, 119, 114, 114, 114, 114,
351 	114, 151, 150, 114, 113, 80, 80, 81,
352 	76, 76, 76, 76, 76, 152, 113, 76,
353 	111, 80, 80, 81, 0, 0, 0, 0,
354 	0, 153, 111, 0, 154, 154, 155, 0,
355 	6, 6, 155, 0, 156, 156, 157, 0,
356 	158, 158, 157, 0, 157, 0, 159, 159,
357 	160, 0, 161, 161, 160, 0, 160, 0,
358 	162, 162, 163, 0, 164, 164, 163, 0,
359 	163, 0, 165, 166, 0, 0, 0, 0,
360 	0, 0, 0, 0, 0, 0, 0, 0,
361 	0, 165, 0, 167, 0, 168, 0, 169,
362 	0, 170, 0, 171, 162, 162, 163, 0,
363 	172, 0, 173, 0, 174, 159, 159, 160,
364 	0, 175, 0, 176, 0, 177, 156, 156,
365 	157, 0, 178, 0, 179, 0, 181, 182,
366 	183, 184, 185, 186, 81, 187, 188, 189,
367 	190, 190, 152, 191, 192, 193, 194, 195,
368 	180, 180, 180, 180, 180, 180, 180, 180,
369 	180, 180, 180, 180, 196, 180, 198, 199,
370 	200, 201, 5, 202, 203, 204, 197, 197,
371 	37, 205, 197, 197, 206, 207, 197, 197,
372 	197, 197, 197, 197, 197, 197, 197, 197,
373 	197, 197, 208, 197, 209, 199, 210, 210,
374 	5, 202, 203, 204, 197, 197, 197, 205,
375 	197, 197, 206, 207, 197, 197, 197, 197,
376 	197, 197, 197, 197, 197, 197, 197, 197,
377 	208, 197, 199, 210, 210, 5, 202, 203,
378 	204, 197, 197, 197, 205, 197, 197, 206,
379 	207, 197, 197, 197, 197, 197, 197, 197,
380 	197, 197, 197, 197, 197, 208, 197, 211,
381 	197, 197, 197, 18, 212, 197, 202, 203,
382 	204, 197, 197, 197, 213, 197, 211, 197,
383 	207, 197, 214, 215, 216, 217, 5, 202,
384 	203, 204, 197, 197, 35, 218, 197, 197,
385 	206, 207, 197, 197, 197, 197, 197, 197,
386 	197, 197, 197, 197, 197, 197, 208, 197,
387 	219, 215, 220, 220, 5, 202, 203, 204,
388 	197, 197, 197, 218, 197, 197, 206, 207,
389 	197, 197, 197, 197, 197, 197, 197, 197,
390 	197, 197, 197, 197, 208, 197, 215, 220,
391 	220, 5, 202, 203, 204, 197, 197, 197,
392 	218, 197, 197, 206, 207, 197, 197, 197,
393 	197, 197, 197, 197, 197, 197, 197, 197,
394 	197, 208, 197, 221, 197, 197, 197, 18,
395 	222, 197, 202, 203, 204, 197, 197, 197,
396 	213, 197, 221, 197, 207, 197, 223, 224,
397 	225, 226, 5, 202, 203, 204, 197, 197,
398 	33, 227, 197, 197, 206, 207, 197, 197,
399 	197, 197, 197, 197, 197, 197, 197, 197,
400 	197, 197, 208, 197, 228, 224, 229, 229,
401 	5, 202, 203, 204, 197, 197, 197, 227,
402 	197, 197, 206, 207, 197, 197, 197, 197,
403 	197, 197, 197, 197, 197, 197, 197, 197,
404 	208, 197, 224, 229, 229, 5, 202, 203,
405 	204, 197, 197, 197, 227, 197, 197, 206,
406 	207, 197, 197, 197, 197, 197, 197, 197,
407 	197, 197, 197, 197, 197, 208, 197, 230,
408 	197, 197, 197, 18, 231, 197, 202, 203,
409 	204, 197, 197, 197, 213, 197, 230, 197,
410 	207, 197, 232, 233, 234, 235, 5, 202,
411 	203, 204, 197, 197, 31, 236, 197, 197,
412 	206, 207, 197, 197, 197, 197, 197, 197,
413 	197, 197, 197, 197, 197, 197, 208, 197,
414 	237, 233, 238, 238, 5, 202, 203, 204,
415 	197, 197, 197, 236, 197, 197, 206, 207,
416 	197, 197, 197, 197, 197, 197, 197, 197,
417 	197, 197, 197, 197, 208, 197, 233, 238,
418 	238, 5, 202, 203, 204, 197, 197, 197,
419 	236, 197, 197, 206, 207, 197, 197, 197,
420 	197, 197, 197, 197, 197, 197, 197, 197,
421 	197, 208, 197, 239, 197, 197, 197, 18,
422 	240, 197, 202, 203, 204, 197, 197, 197,
423 	213, 197, 239, 197, 207, 197, 241, 242,
424 	243, 244, 5, 202, 203, 204, 197, 197,
425 	29, 245, 197, 197, 206, 207, 197, 197,
426 	197, 197, 197, 197, 197, 197, 197, 197,
427 	197, 197, 208, 197, 246, 242, 247, 247,
428 	5, 202, 203, 204, 197, 197, 197, 245,
429 	197, 197, 206, 207, 197, 197, 197, 197,
430 	197, 197, 197, 197, 197, 197, 197, 197,
431 	208, 197, 242, 247, 247, 5, 202, 203,
432 	204, 197, 197, 197, 245, 197, 197, 206,
433 	207, 197, 197, 197, 197, 197, 197, 197,
434 	197, 197, 197, 197, 197, 208, 197, 18,
435 	248, 197, 202, 203, 204, 197, 197, 197,
436 	213, 197, 197, 197, 207, 197, 202, 203,
437 	204, 197, 197, 197, 213, 197, 197, 197,
438 	207, 197, 249, 197, 197, 250, 203, 204,
439 	197, 203, 204, 197, 203, 251, 197, 203,
440 	197, 249, 197, 197, 197, 203, 204, 197,
441 	252, 197, 253, 254, 197, 202, 203, 204,
442 	197, 197, 3, 197, 197, 197, 197, 207,
443 	197, 2, 197, 197, 197, 197, 202, 203,
444 	204, 197, 197, 197, 197, 197, 197, 197,
445 	207, 197, 202, 203, 204, 197, 197, 197,
446 	197, 197, 197, 197, 207, 197, 255, 197,
447 	197, 197, 197, 202, 203, 204, 197, 202,
448 	203, 204, 197, 252, 197, 197, 197, 197,
449 	202, 203, 204, 197, 197, 197, 197, 197,
450 	197, 197, 207, 197, 252, 197, 253, 197,
451 	197, 202, 203, 204, 197, 197, 3, 197,
452 	197, 197, 197, 207, 197, 18, 197, 256,
453 	256, 5, 202, 203, 204, 197, 197, 197,
454 	213, 197, 197, 197, 207, 197, 257, 27,
455 	258, 259, 8, 202, 203, 204, 197, 197,
456 	197, 213, 197, 197, 197, 207, 197, 27,
457 	258, 259, 8, 202, 203, 204, 197, 197,
458 	197, 213, 197, 197, 197, 207, 197, 258,
459 	258, 8, 202, 203, 204, 197, 197, 197,
460 	213, 197, 197, 197, 207, 197, 260, 24,
461 	261, 262, 11, 202, 203, 204, 197, 197,
462 	197, 213, 197, 197, 197, 207, 197, 24,
463 	261, 262, 11, 202, 203, 204, 197, 197,
464 	197, 213, 197, 197, 197, 207, 197, 261,
465 	261, 11, 202, 203, 204, 197, 197, 197,
466 	213, 197, 197, 197, 207, 197, 263, 21,
467 	264, 265, 14, 202, 203, 204, 197, 197,
468 	197, 213, 197, 197, 197, 207, 197, 21,
469 	264, 265, 14, 202, 203, 204, 197, 197,
470 	197, 213, 197, 197, 197, 207, 197, 264,
471 	264, 14, 202, 203, 204, 197, 197, 197,
472 	213, 197, 197, 197, 207, 197, 266, 18,
473 	197, 267, 197, 202, 203, 204, 197, 197,
474 	197, 213, 197, 197, 197, 207, 197, 18,
475 	197, 267, 197, 202, 203, 204, 197, 197,
476 	197, 213, 197, 197, 197, 207, 197, 268,
477 	197, 202, 203, 204, 197, 197, 197, 213,
478 	197, 197, 197, 207, 197, 18, 197, 197,
479 	197, 197, 202, 203, 204, 197, 197, 197,
480 	213, 197, 197, 197, 207, 197, 1, 2,
481 	197, 197, 18, 248, 197, 202, 203, 204,
482 	197, 197, 197, 213, 197, 1, 197, 207,
483 	197, 242, 247, 247, 5, 202, 203, 204,
484 	197, 197, 197, 245, 197, 197, 197, 207,
485 	197, 197, 197, 197, 197, 197, 197, 197,
486 	197, 197, 197, 197, 208, 197, 242, 247,
487 	247, 5, 202, 203, 204, 197, 197, 197,
488 	245, 197, 197, 197, 207, 197, 241, 242,
489 	247, 247, 5, 202, 203, 204, 197, 197,
490 	197, 245, 197, 197, 206, 207, 197, 197,
491 	197, 197, 197, 197, 197, 197, 197, 197,
492 	197, 197, 208, 197, 241, 242, 243, 247,
493 	5, 202, 203, 204, 197, 197, 29, 245,
494 	197, 197, 206, 207, 197, 197, 197, 197,
495 	197, 197, 197, 197, 197, 197, 197, 197,
496 	208, 197, 239, 197, 269, 197, 256, 256,
497 	5, 202, 203, 204, 197, 197, 197, 213,
498 	197, 239, 197, 207, 197, 239, 197, 197,
499 	197, 197, 197, 197, 202, 203, 204, 197,
500 	197, 197, 213, 197, 239, 197, 207, 197,
501 	239, 197, 197, 197, 197, 270, 197, 202,
502 	203, 204, 197, 197, 197, 213, 197, 239,
503 	197, 207, 197, 239, 197, 269, 197, 197,
504 	197, 197, 202, 203, 204, 197, 197, 197,
505 	213, 197, 239, 197, 207, 197, 239, 2,
506 	197, 197, 18, 240, 197, 202, 203, 204,
507 	197, 197, 197, 213, 197, 239, 197, 207,
508 	197, 232, 233, 238, 238, 5, 202, 203,
509 	204, 197, 197, 197, 236, 197, 197, 206,
510 	207, 197, 197, 197, 197, 197, 197, 197,
511 	197, 197, 197, 197, 197, 208, 197, 232,
512 	233, 234, 238, 5, 202, 203, 204, 197,
513 	197, 31, 236, 197, 197, 206, 207, 197,
514 	197, 197, 197, 197, 197, 197, 197, 197,
515 	197, 197, 197, 208, 197, 230, 197, 271,
516 	197, 256, 256, 5, 202, 203, 204, 197,
517 	197, 197, 213, 197, 230, 197, 207, 197,
518 	230, 197, 197, 197, 197, 197, 197, 202,
519 	203, 204, 197, 197, 197, 213, 197, 230,
520 	197, 207, 197, 230, 197, 197, 197, 197,
521 	272, 197, 202, 203, 204, 197, 197, 197,
522 	213, 197, 230, 197, 207, 197, 230, 197,
523 	271, 197, 197, 197, 197, 202, 203, 204,
524 	197, 197, 197, 213, 197, 230, 197, 207,
525 	197, 230, 2, 197, 197, 18, 231, 197,
526 	202, 203, 204, 197, 197, 197, 213, 197,
527 	230, 197, 207, 197, 223, 224, 229, 229,
528 	5, 202, 203, 204, 197, 197, 197, 227,
529 	197, 197, 206, 207, 197, 197, 197, 197,
530 	197, 197, 197, 197, 197, 197, 197, 197,
531 	208, 197, 223, 224, 225, 229, 5, 202,
532 	203, 204, 197, 197, 33, 227, 197, 197,
533 	206, 207, 197, 197, 197, 197, 197, 197,
534 	197, 197, 197, 197, 197, 197, 208, 197,
535 	221, 197, 273, 197, 256, 256, 5, 202,
536 	203, 204, 197, 197, 197, 213, 197, 221,
537 	197, 207, 197, 221, 197, 197, 197, 197,
538 	197, 197, 202, 203, 204, 197, 197, 197,
539 	213, 197, 221, 197, 207, 197, 221, 197,
540 	197, 197, 197, 274, 197, 202, 203, 204,
541 	197, 197, 197, 213, 197, 221, 197, 207,
542 	197, 221, 197, 273, 197, 197, 197, 197,
543 	202, 203, 204, 197, 197, 197, 213, 197,
544 	221, 197, 207, 197, 221, 2, 197, 197,
545 	18, 222, 197, 202, 203, 204, 197, 197,
546 	197, 213, 197, 221, 197, 207, 197, 214,
547 	215, 220, 220, 5, 202, 203, 204, 197,
548 	197, 197, 218, 197, 197, 206, 207, 197,
549 	197, 197, 197, 197, 197, 197, 197, 197,
550 	197, 197, 197, 208, 197, 214, 215, 216,
551 	220, 5, 202, 203, 204, 197, 197, 35,
552 	218, 197, 197, 206, 207, 197, 197, 197,
553 	197, 197, 197, 197, 197, 197, 197, 197,
554 	197, 208, 197, 211, 197, 275, 197, 256,
555 	256, 5, 202, 203, 204, 197, 197, 197,
556 	213, 197, 211, 197, 207, 197, 211, 197,
557 	197, 197, 197, 197, 197, 202, 203, 204,
558 	197, 197, 197, 213, 197, 211, 197, 207,
559 	197, 211, 197, 197, 197, 197, 276, 197,
560 	202, 203, 204, 197, 197, 197, 213, 197,
561 	211, 197, 207, 197, 211, 197, 275, 197,
562 	197, 197, 197, 202, 203, 204, 197, 197,
563 	197, 213, 197, 211, 197, 207, 197, 211,
564 	2, 197, 197, 18, 212, 197, 202, 203,
565 	204, 197, 197, 197, 213, 197, 211, 197,
566 	207, 197, 198, 199, 210, 210, 5, 202,
567 	203, 204, 197, 197, 197, 205, 197, 197,
568 	206, 207, 197, 197, 197, 197, 197, 197,
569 	197, 197, 197, 197, 197, 197, 208, 197,
570 	198, 199, 200, 210, 5, 202, 203, 204,
571 	197, 197, 37, 205, 197, 197, 206, 207,
572 	197, 197, 197, 197, 197, 197, 197, 197,
573 	197, 197, 197, 197, 208, 197, 278, 279,
574 	280, 281, 43, 282, 283, 284, 277, 277,
575 	75, 285, 277, 277, 286, 287, 277, 277,
576 	277, 277, 277, 277, 277, 277, 277, 277,
577 	277, 277, 288, 277, 289, 279, 290, 281,
578 	43, 282, 283, 284, 277, 277, 277, 285,
579 	277, 277, 286, 287, 277, 277, 277, 277,
580 	277, 277, 277, 277, 277, 277, 277, 277,
581 	288, 277, 279, 290, 281, 43, 282, 283,
582 	284, 277, 277, 277, 285, 277, 277, 286,
583 	287, 277, 277, 277, 277, 277, 277, 277,
584 	277, 277, 277, 277, 277, 288, 277, 291,
585 	277, 277, 277, 56, 292, 277, 282, 283,
586 	284, 277, 277, 277, 293, 277, 291, 277,
587 	287, 277, 294, 295, 296, 297, 43, 282,
588 	283, 284, 277, 277, 73, 298, 277, 277,
589 	286, 287, 277, 277, 277, 277, 277, 277,
590 	277, 277, 277, 277, 277, 277, 288, 277,
591 	299, 295, 300, 300, 43, 282, 283, 284,
592 	277, 277, 277, 298, 277, 277, 286, 287,
593 	277, 277, 277, 277, 277, 277, 277, 277,
594 	277, 277, 277, 277, 288, 277, 295, 300,
595 	300, 43, 282, 283, 284, 277, 277, 277,
596 	298, 277, 277, 286, 287, 277, 277, 277,
597 	277, 277, 277, 277, 277, 277, 277, 277,
598 	277, 288, 277, 301, 277, 277, 277, 56,
599 	302, 277, 282, 283, 284, 277, 277, 277,
600 	293, 277, 301, 277, 287, 277, 303, 304,
601 	305, 306, 43, 282, 283, 284, 277, 277,
602 	71, 307, 277, 277, 286, 287, 277, 277,
603 	277, 277, 277, 277, 277, 277, 277, 277,
604 	277, 277, 288, 277, 308, 304, 309, 309,
605 	43, 282, 283, 284, 277, 277, 277, 307,
606 	277, 277, 286, 287, 277, 277, 277, 277,
607 	277, 277, 277, 277, 277, 277, 277, 277,
608 	288, 277, 304, 309, 309, 43, 282, 283,
609 	284, 277, 277, 277, 307, 277, 277, 286,
610 	287, 277, 277, 277, 277, 277, 277, 277,
611 	277, 277, 277, 277, 277, 288, 277, 310,
612 	277, 277, 277, 56, 311, 277, 282, 283,
613 	284, 277, 277, 277, 293, 277, 310, 277,
614 	287, 277, 312, 313, 314, 315, 43, 282,
615 	283, 284, 277, 277, 69, 316, 277, 277,
616 	286, 287, 277, 277, 277, 277, 277, 277,
617 	277, 277, 277, 277, 277, 277, 288, 277,
618 	317, 313, 318, 318, 43, 282, 283, 284,
619 	277, 277, 277, 316, 277, 277, 286, 287,
620 	277, 277, 277, 277, 277, 277, 277, 277,
621 	277, 277, 277, 277, 288, 277, 313, 318,
622 	318, 43, 282, 283, 284, 277, 277, 277,
623 	316, 277, 277, 286, 287, 277, 277, 277,
624 	277, 277, 277, 277, 277, 277, 277, 277,
625 	277, 288, 277, 319, 277, 277, 277, 56,
626 	320, 277, 282, 283, 284, 277, 277, 277,
627 	293, 277, 319, 277, 287, 277, 321, 322,
628 	323, 324, 43, 282, 283, 284, 277, 277,
629 	67, 325, 277, 277, 286, 287, 277, 277,
630 	277, 277, 277, 277, 277, 277, 277, 277,
631 	277, 277, 288, 277, 326, 322, 327, 327,
632 	43, 282, 283, 284, 277, 277, 277, 325,
633 	277, 277, 286, 287, 277, 277, 277, 277,
634 	277, 277, 277, 277, 277, 277, 277, 277,
635 	288, 277, 322, 327, 327, 43, 282, 283,
636 	284, 277, 277, 277, 325, 277, 277, 286,
637 	287, 277, 277, 277, 277, 277, 277, 277,
638 	277, 277, 277, 277, 277, 288, 277, 56,
639 	328, 277, 282, 283, 284, 277, 277, 277,
640 	293, 277, 277, 277, 287, 277, 282, 283,
641 	284, 277, 277, 277, 293, 277, 277, 277,
642 	287, 277, 329, 277, 277, 330, 283, 284,
643 	277, 283, 284, 277, 283, 331, 277, 283,
644 	277, 329, 277, 277, 277, 283, 284, 277,
645 	332, 277, 333, 334, 277, 282, 283, 284,
646 	277, 277, 41, 277, 277, 277, 277, 287,
647 	277, 40, 277, 277, 277, 277, 282, 283,
648 	284, 277, 277, 277, 277, 277, 277, 277,
649 	287, 277, 282, 283, 284, 277, 277, 277,
650 	277, 277, 277, 277, 287, 277, 335, 277,
651 	277, 277, 277, 282, 283, 284, 277, 282,
652 	283, 284, 277, 332, 277, 277, 277, 277,
653 	282, 283, 284, 277, 277, 277, 277, 277,
654 	277, 277, 287, 277, 332, 277, 333, 277,
655 	277, 282, 283, 284, 277, 277, 41, 277,
656 	277, 277, 277, 287, 277, 56, 277, 336,
657 	336, 43, 282, 283, 284, 277, 277, 277,
658 	293, 277, 277, 277, 287, 277, 337, 65,
659 	338, 339, 46, 282, 283, 284, 277, 277,
660 	277, 293, 277, 277, 277, 287, 277, 65,
661 	338, 339, 46, 282, 283, 284, 277, 277,
662 	277, 293, 277, 277, 277, 287, 277, 338,
663 	338, 46, 282, 283, 284, 277, 277, 277,
664 	293, 277, 277, 277, 287, 277, 340, 62,
665 	341, 342, 49, 282, 283, 284, 277, 277,
666 	277, 293, 277, 277, 277, 287, 277, 62,
667 	341, 342, 49, 282, 283, 284, 277, 277,
668 	277, 293, 277, 277, 277, 287, 277, 341,
669 	341, 49, 282, 283, 284, 277, 277, 277,
670 	293, 277, 277, 277, 287, 277, 343, 59,
671 	344, 345, 52, 282, 283, 284, 277, 277,
672 	277, 293, 277, 277, 277, 287, 277, 59,
673 	344, 345, 52, 282, 283, 284, 277, 277,
674 	277, 293, 277, 277, 277, 287, 277, 344,
675 	344, 52, 282, 283, 284, 277, 277, 277,
676 	293, 277, 277, 277, 287, 277, 346, 56,
677 	277, 347, 277, 282, 283, 284, 277, 277,
678 	277, 293, 277, 277, 277, 287, 277, 56,
679 	277, 347, 277, 282, 283, 284, 277, 277,
680 	277, 293, 277, 277, 277, 287, 277, 348,
681 	277, 282, 283, 284, 277, 277, 277, 293,
682 	277, 277, 277, 287, 277, 56, 277, 277,
683 	277, 277, 282, 283, 284, 277, 277, 277,
684 	293, 277, 277, 277, 287, 277, 39, 40,
685 	277, 277, 56, 328, 277, 282, 283, 284,
686 	277, 277, 277, 293, 277, 39, 277, 287,
687 	277, 322, 327, 327, 43, 282, 283, 284,
688 	277, 277, 277, 325, 277, 277, 277, 287,
689 	277, 277, 277, 277, 277, 277, 277, 277,
690 	277, 277, 277, 277, 288, 277, 322, 327,
691 	327, 43, 282, 283, 284, 277, 277, 277,
692 	325, 277, 277, 277, 287, 277, 321, 322,
693 	327, 327, 43, 282, 283, 284, 277, 277,
694 	277, 325, 277, 277, 286, 287, 277, 277,
695 	277, 277, 277, 277, 277, 277, 277, 277,
696 	277, 277, 288, 277, 321, 322, 323, 327,
697 	43, 282, 283, 284, 277, 277, 67, 325,
698 	277, 277, 286, 287, 277, 277, 277, 277,
699 	277, 277, 277, 277, 277, 277, 277, 277,
700 	288, 277, 319, 277, 349, 277, 336, 336,
701 	43, 282, 283, 284, 277, 277, 277, 293,
702 	277, 319, 277, 287, 277, 319, 277, 277,
703 	277, 277, 277, 277, 282, 283, 284, 277,
704 	277, 277, 293, 277, 319, 277, 287, 277,
705 	319, 277, 277, 277, 277, 350, 277, 282,
706 	283, 284, 277, 277, 277, 293, 277, 319,
707 	277, 287, 277, 319, 277, 349, 277, 277,
708 	277, 277, 282, 283, 284, 277, 277, 277,
709 	293, 277, 319, 277, 287, 277, 319, 40,
710 	277, 277, 56, 320, 277, 282, 283, 284,
711 	277, 277, 277, 293, 277, 319, 277, 287,
712 	277, 312, 313, 318, 318, 43, 282, 283,
713 	284, 277, 277, 277, 316, 277, 277, 286,
714 	287, 277, 277, 277, 277, 277, 277, 277,
715 	277, 277, 277, 277, 277, 288, 277, 312,
716 	313, 314, 318, 43, 282, 283, 284, 277,
717 	277, 69, 316, 277, 277, 286, 287, 277,
718 	277, 277, 277, 277, 277, 277, 277, 277,
719 	277, 277, 277, 288, 277, 310, 277, 351,
720 	277, 336, 336, 43, 282, 283, 284, 277,
721 	277, 277, 293, 277, 310, 277, 287, 277,
722 	310, 277, 277, 277, 277, 277, 277, 282,
723 	283, 284, 277, 277, 277, 293, 277, 310,
724 	277, 287, 277, 310, 277, 277, 277, 277,
725 	352, 277, 282, 283, 284, 277, 277, 277,
726 	293, 277, 310, 277, 287, 277, 310, 277,
727 	351, 277, 277, 277, 277, 282, 283, 284,
728 	277, 277, 277, 293, 277, 310, 277, 287,
729 	277, 310, 40, 277, 277, 56, 311, 277,
730 	282, 283, 284, 277, 277, 277, 293, 277,
731 	310, 277, 287, 277, 303, 304, 309, 309,
732 	43, 282, 283, 284, 277, 277, 277, 307,
733 	277, 277, 286, 287, 277, 277, 277, 277,
734 	277, 277, 277, 277, 277, 277, 277, 277,
735 	288, 277, 303, 304, 305, 309, 43, 282,
736 	283, 284, 277, 277, 71, 307, 277, 277,
737 	286, 287, 277, 277, 277, 277, 277, 277,
738 	277, 277, 277, 277, 277, 277, 288, 277,
739 	301, 277, 353, 277, 336, 336, 43, 282,
740 	283, 284, 277, 277, 277, 293, 277, 301,
741 	277, 287, 277, 301, 277, 277, 277, 277,
742 	277, 277, 282, 283, 284, 277, 277, 277,
743 	293, 277, 301, 277, 287, 277, 301, 277,
744 	277, 277, 277, 354, 277, 282, 283, 284,
745 	277, 277, 277, 293, 277, 301, 277, 287,
746 	277, 301, 277, 353, 277, 277, 277, 277,
747 	282, 283, 284, 277, 277, 277, 293, 277,
748 	301, 277, 287, 277, 301, 40, 277, 277,
749 	56, 302, 277, 282, 283, 284, 277, 277,
750 	277, 293, 277, 301, 277, 287, 277, 294,
751 	295, 300, 300, 43, 282, 283, 284, 277,
752 	277, 277, 298, 277, 277, 286, 287, 277,
753 	277, 277, 277, 277, 277, 277, 277, 277,
754 	277, 277, 277, 288, 277, 294, 295, 296,
755 	300, 43, 282, 283, 284, 277, 277, 73,
756 	298, 277, 277, 286, 287, 277, 277, 277,
757 	277, 277, 277, 277, 277, 277, 277, 277,
758 	277, 288, 277, 291, 277, 355, 277, 336,
759 	336, 43, 282, 283, 284, 277, 277, 277,
760 	293, 277, 291, 277, 287, 277, 291, 277,
761 	277, 277, 277, 277, 277, 282, 283, 284,
762 	277, 277, 277, 293, 277, 291, 277, 287,
763 	277, 291, 277, 277, 277, 277, 356, 277,
764 	282, 283, 284, 277, 277, 277, 293, 277,
765 	291, 277, 287, 277, 291, 277, 355, 277,
766 	277, 277, 277, 282, 283, 284, 277, 277,
767 	277, 293, 277, 291, 277, 287, 277, 74,
768 	42, 42, 43, 277, 277, 277, 277, 277,
769 	277, 74, 277, 291, 40, 277, 277, 56,
770 	292, 277, 282, 283, 284, 277, 277, 277,
771 	293, 277, 291, 277, 287, 277, 278, 279,
772 	290, 281, 43, 282, 283, 284, 277, 277,
773 	277, 285, 277, 277, 286, 287, 277, 277,
774 	277, 277, 277, 277, 277, 277, 277, 277,
775 	277, 277, 288, 277, 358, 184, 359, 359,
776 	81, 187, 188, 189, 357, 357, 357, 191,
777 	357, 357, 194, 360, 357, 357, 357, 357,
778 	357, 357, 357, 357, 357, 357, 357, 357,
779 	196, 357, 184, 359, 359, 81, 187, 188,
780 	189, 357, 357, 357, 191, 357, 357, 194,
781 	360, 357, 357, 357, 357, 357, 357, 357,
782 	357, 357, 357, 357, 357, 196, 357, 361,
783 	357, 357, 357, 95, 362, 357, 187, 188,
784 	189, 357, 357, 357, 363, 357, 361, 357,
785 	360, 357, 364, 365, 366, 367, 81, 187,
786 	188, 189, 357, 357, 112, 368, 357, 357,
787 	194, 360, 357, 357, 357, 357, 357, 357,
788 	357, 357, 357, 357, 357, 357, 196, 357,
789 	369, 365, 370, 370, 81, 187, 188, 189,
790 	357, 357, 357, 368, 357, 357, 194, 360,
791 	357, 357, 357, 357, 357, 357, 357, 357,
792 	357, 357, 357, 357, 196, 357, 365, 370,
793 	370, 81, 187, 188, 189, 357, 357, 357,
794 	368, 357, 357, 194, 360, 357, 357, 357,
795 	357, 357, 357, 357, 357, 357, 357, 357,
796 	357, 196, 357, 371, 357, 357, 357, 95,
797 	372, 357, 187, 188, 189, 357, 357, 357,
798 	363, 357, 371, 357, 360, 357, 373, 374,
799 	375, 376, 81, 187, 188, 189, 357, 357,
800 	110, 377, 357, 357, 194, 360, 357, 357,
801 	357, 357, 357, 357, 357, 357, 357, 357,
802 	357, 357, 196, 357, 378, 374, 379, 379,
803 	81, 187, 188, 189, 357, 357, 357, 377,
804 	357, 357, 194, 360, 357, 357, 357, 357,
805 	357, 357, 357, 357, 357, 357, 357, 357,
806 	196, 357, 374, 379, 379, 81, 187, 188,
807 	189, 357, 357, 357, 377, 357, 357, 194,
808 	360, 357, 357, 357, 357, 357, 357, 357,
809 	357, 357, 357, 357, 357, 196, 357, 380,
810 	357, 357, 357, 95, 381, 357, 187, 188,
811 	189, 357, 357, 357, 363, 357, 380, 357,
812 	360, 357, 382, 383, 384, 385, 81, 187,
813 	188, 189, 357, 357, 108, 386, 357, 357,
814 	194, 360, 357, 357, 357, 357, 357, 357,
815 	357, 357, 357, 357, 357, 357, 196, 357,
816 	387, 383, 388, 388, 81, 187, 188, 189,
817 	357, 357, 357, 386, 357, 357, 194, 360,
818 	357, 357, 357, 357, 357, 357, 357, 357,
819 	357, 357, 357, 357, 196, 357, 383, 388,
820 	388, 81, 187, 188, 189, 357, 357, 357,
821 	386, 357, 357, 194, 360, 357, 357, 357,
822 	357, 357, 357, 357, 357, 357, 357, 357,
823 	357, 196, 357, 389, 357, 357, 357, 95,
824 	390, 357, 187, 188, 189, 357, 357, 357,
825 	363, 357, 389, 357, 360, 357, 391, 392,
826 	393, 394, 81, 187, 188, 189, 357, 357,
827 	106, 395, 357, 357, 194, 360, 357, 357,
828 	357, 357, 357, 357, 357, 357, 357, 357,
829 	357, 357, 196, 357, 396, 392, 397, 397,
830 	81, 187, 188, 189, 357, 357, 357, 395,
831 	357, 357, 194, 360, 357, 357, 357, 357,
832 	357, 357, 357, 357, 357, 357, 357, 357,
833 	196, 357, 392, 397, 397, 81, 187, 188,
834 	189, 357, 357, 357, 395, 357, 357, 194,
835 	360, 357, 357, 357, 357, 357, 357, 357,
836 	357, 357, 357, 357, 357, 196, 357, 95,
837 	398, 357, 187, 188, 189, 357, 357, 357,
838 	363, 357, 357, 357, 360, 357, 187, 188,
839 	189, 357, 357, 357, 363, 357, 357, 357,
840 	360, 357, 399, 357, 357, 400, 188, 189,
841 	357, 188, 189, 357, 188, 401, 357, 188,
842 	357, 399, 357, 357, 357, 188, 189, 357,
843 	402, 357, 403, 404, 357, 187, 188, 189,
844 	357, 357, 79, 357, 357, 357, 357, 360,
845 	357, 78, 357, 357, 357, 357, 187, 188,
846 	189, 357, 357, 357, 357, 357, 357, 357,
847 	360, 357, 187, 188, 189, 357, 357, 357,
848 	357, 357, 357, 357, 360, 357, 405, 357,
849 	357, 357, 357, 187, 188, 189, 357, 187,
850 	188, 189, 357, 402, 357, 357, 357, 357,
851 	187, 188, 189, 357, 357, 357, 357, 357,
852 	357, 357, 360, 357, 402, 357, 403, 357,
853 	357, 187, 188, 189, 357, 357, 79, 357,
854 	357, 357, 357, 360, 357, 95, 357, 406,
855 	406, 81, 187, 188, 189, 357, 357, 357,
856 	363, 357, 357, 357, 360, 357, 407, 104,
857 	408, 409, 85, 187, 188, 189, 357, 357,
858 	357, 363, 357, 357, 357, 360, 357, 104,
859 	408, 409, 85, 187, 188, 189, 357, 357,
860 	357, 363, 357, 357, 357, 360, 357, 408,
861 	408, 85, 187, 188, 189, 357, 357, 357,
862 	363, 357, 357, 357, 360, 357, 410, 101,
863 	411, 412, 88, 187, 188, 189, 357, 357,
864 	357, 363, 357, 357, 357, 360, 357, 101,
865 	411, 412, 88, 187, 188, 189, 357, 357,
866 	357, 363, 357, 357, 357, 360, 357, 411,
867 	411, 88, 187, 188, 189, 357, 357, 357,
868 	363, 357, 357, 357, 360, 357, 413, 98,
869 	414, 415, 91, 187, 188, 189, 357, 357,
870 	357, 363, 357, 357, 357, 360, 357, 98,
871 	414, 415, 91, 187, 188, 189, 357, 357,
872 	357, 363, 357, 357, 357, 360, 357, 414,
873 	414, 91, 187, 188, 189, 357, 357, 357,
874 	363, 357, 357, 357, 360, 357, 416, 95,
875 	357, 417, 357, 187, 188, 189, 357, 357,
876 	357, 363, 357, 357, 357, 360, 357, 95,
877 	357, 417, 357, 187, 188, 189, 357, 357,
878 	357, 363, 357, 357, 357, 360, 357, 418,
879 	357, 187, 188, 189, 357, 357, 357, 363,
880 	357, 357, 357, 360, 357, 95, 357, 357,
881 	357, 357, 187, 188, 189, 357, 357, 357,
882 	363, 357, 357, 357, 360, 357, 77, 78,
883 	357, 357, 95, 398, 357, 187, 188, 189,
884 	357, 357, 357, 363, 357, 77, 357, 360,
885 	357, 392, 397, 397, 81, 187, 188, 189,
886 	357, 357, 357, 395, 357, 357, 357, 360,
887 	357, 357, 357, 357, 357, 357, 357, 357,
888 	357, 357, 357, 357, 196, 357, 392, 397,
889 	397, 81, 187, 188, 189, 357, 357, 357,
890 	395, 357, 357, 357, 360, 357, 391, 392,
891 	397, 397, 81, 187, 188, 189, 357, 357,
892 	357, 395, 357, 357, 194, 360, 357, 357,
893 	357, 357, 357, 357, 357, 357, 357, 357,
894 	357, 357, 196, 357, 391, 392, 393, 397,
895 	81, 187, 188, 189, 357, 357, 106, 395,
896 	357, 357, 194, 360, 357, 357, 357, 357,
897 	357, 357, 357, 357, 357, 357, 357, 357,
898 	196, 357, 389, 357, 419, 357, 406, 406,
899 	81, 187, 188, 189, 357, 357, 357, 363,
900 	357, 389, 357, 360, 357, 389, 357, 357,
901 	357, 357, 357, 357, 187, 188, 189, 357,
902 	357, 357, 363, 357, 389, 357, 360, 357,
903 	389, 357, 357, 357, 357, 420, 357, 187,
904 	188, 189, 357, 357, 357, 363, 357, 389,
905 	357, 360, 357, 389, 357, 419, 357, 357,
906 	357, 357, 187, 188, 189, 357, 357, 357,
907 	363, 357, 389, 357, 360, 357, 389, 78,
908 	357, 357, 95, 390, 357, 187, 188, 189,
909 	357, 357, 357, 363, 357, 389, 357, 360,
910 	357, 382, 383, 388, 388, 81, 187, 188,
911 	189, 357, 357, 357, 386, 357, 357, 194,
912 	360, 357, 357, 357, 357, 357, 357, 357,
913 	357, 357, 357, 357, 357, 196, 357, 382,
914 	383, 384, 388, 81, 187, 188, 189, 357,
915 	357, 108, 386, 357, 357, 194, 360, 357,
916 	357, 357, 357, 357, 357, 357, 357, 357,
917 	357, 357, 357, 196, 357, 380, 357, 421,
918 	357, 406, 406, 81, 187, 188, 189, 357,
919 	357, 357, 363, 357, 380, 357, 360, 357,
920 	380, 357, 357, 357, 357, 357, 357, 187,
921 	188, 189, 357, 357, 357, 363, 357, 380,
922 	357, 360, 357, 380, 357, 357, 357, 357,
923 	422, 357, 187, 188, 189, 357, 357, 357,
924 	363, 357, 380, 357, 360, 357, 380, 357,
925 	421, 357, 357, 357, 357, 187, 188, 189,
926 	357, 357, 357, 363, 357, 380, 357, 360,
927 	357, 380, 78, 357, 357, 95, 381, 357,
928 	187, 188, 189, 357, 357, 357, 363, 357,
929 	380, 357, 360, 357, 373, 374, 379, 379,
930 	81, 187, 188, 189, 357, 357, 357, 377,
931 	357, 357, 194, 360, 357, 357, 357, 357,
932 	357, 357, 357, 357, 357, 357, 357, 357,
933 	196, 357, 373, 374, 375, 379, 81, 187,
934 	188, 189, 357, 357, 110, 377, 357, 357,
935 	194, 360, 357, 357, 357, 357, 357, 357,
936 	357, 357, 357, 357, 357, 357, 196, 357,
937 	371, 357, 423, 357, 406, 406, 81, 187,
938 	188, 189, 357, 357, 357, 363, 357, 371,
939 	357, 360, 357, 371, 357, 357, 357, 357,
940 	357, 357, 187, 188, 189, 357, 357, 357,
941 	363, 357, 371, 357, 360, 357, 371, 357,
942 	357, 357, 357, 424, 357, 187, 188, 189,
943 	357, 357, 357, 363, 357, 371, 357, 360,
944 	357, 371, 357, 423, 357, 357, 357, 357,
945 	187, 188, 189, 357, 357, 357, 363, 357,
946 	371, 357, 360, 357, 371, 78, 357, 357,
947 	95, 372, 357, 187, 188, 189, 357, 357,
948 	357, 363, 357, 371, 357, 360, 357, 364,
949 	365, 370, 370, 81, 187, 188, 189, 357,
950 	357, 357, 368, 357, 357, 194, 360, 357,
951 	357, 357, 357, 357, 357, 357, 357, 357,
952 	357, 357, 357, 196, 357, 364, 365, 366,
953 	370, 81, 187, 188, 189, 357, 357, 112,
954 	368, 357, 357, 194, 360, 357, 357, 357,
955 	357, 357, 357, 357, 357, 357, 357, 357,
956 	357, 196, 357, 361, 357, 425, 357, 406,
957 	406, 81, 187, 188, 189, 357, 357, 357,
958 	363, 357, 361, 357, 360, 357, 361, 357,
959 	357, 357, 357, 357, 357, 187, 188, 189,
960 	357, 357, 357, 363, 357, 361, 357, 360,
961 	357, 361, 357, 357, 357, 357, 426, 357,
962 	187, 188, 189, 357, 357, 357, 363, 357,
963 	361, 357, 360, 357, 361, 357, 425, 357,
964 	357, 357, 357, 187, 188, 189, 357, 357,
965 	357, 363, 357, 361, 357, 360, 357, 361,
966 	78, 357, 357, 95, 362, 357, 187, 188,
967 	189, 357, 357, 357, 363, 357, 361, 357,
968 	360, 357, 113, 80, 80, 81, 427, 427,
969 	427, 427, 427, 152, 113, 427, 183, 184,
970 	359, 359, 81, 187, 188, 189, 357, 357,
971 	357, 191, 357, 357, 194, 360, 357, 357,
972 	357, 357, 357, 357, 357, 357, 357, 357,
973 	357, 357, 196, 357, 113, 80, 80, 81,
974 	427, 427, 427, 427, 427, 427, 113, 427,
975 	429, 430, 431, 432, 119, 433, 434, 435,
976 	428, 428, 151, 436, 428, 428, 437, 438,
977 	428, 428, 428, 428, 428, 428, 428, 428,
978 	428, 428, 428, 428, 439, 428, 440, 430,
979 	432, 432, 119, 433, 434, 435, 428, 428,
980 	428, 436, 428, 428, 437, 438, 428, 428,
981 	428, 428, 428, 428, 428, 428, 428, 428,
982 	428, 428, 439, 428, 430, 432, 432, 119,
983 	433, 434, 435, 428, 428, 428, 436, 428,
984 	428, 437, 438, 428, 428, 428, 428, 428,
985 	428, 428, 428, 428, 428, 428, 428, 439,
986 	428, 441, 428, 428, 428, 132, 442, 428,
987 	433, 434, 435, 428, 428, 428, 443, 428,
988 	441, 428, 438, 428, 444, 445, 446, 447,
989 	119, 433, 434, 435, 428, 428, 149, 448,
990 	428, 428, 437, 438, 428, 428, 428, 428,
991 	428, 428, 428, 428, 428, 428, 428, 428,
992 	439, 428, 449, 445, 450, 450, 119, 433,
993 	434, 435, 428, 428, 428, 448, 428, 428,
994 	437, 438, 428, 428, 428, 428, 428, 428,
995 	428, 428, 428, 428, 428, 428, 439, 428,
996 	445, 450, 450, 119, 433, 434, 435, 428,
997 	428, 428, 448, 428, 428, 437, 438, 428,
998 	428, 428, 428, 428, 428, 428, 428, 428,
999 	428, 428, 428, 439, 428, 451, 428, 428,
1000 	428, 132, 452, 428, 433, 434, 435, 428,
1001 	428, 428, 443, 428, 451, 428, 438, 428,
1002 	453, 454, 455, 456, 119, 433, 434, 435,
1003 	428, 428, 147, 457, 428, 428, 437, 438,
1004 	428, 428, 428, 428, 428, 428, 428, 428,
1005 	428, 428, 428, 428, 439, 428, 458, 454,
1006 	459, 459, 119, 433, 434, 435, 428, 428,
1007 	428, 457, 428, 428, 437, 438, 428, 428,
1008 	428, 428, 428, 428, 428, 428, 428, 428,
1009 	428, 428, 439, 428, 454, 459, 459, 119,
1010 	433, 434, 435, 428, 428, 428, 457, 428,
1011 	428, 437, 438, 428, 428, 428, 428, 428,
1012 	428, 428, 428, 428, 428, 428, 428, 439,
1013 	428, 460, 428, 428, 428, 132, 461, 428,
1014 	433, 434, 435, 428, 428, 428, 443, 428,
1015 	460, 428, 438, 428, 462, 463, 464, 465,
1016 	119, 433, 434, 435, 428, 428, 145, 466,
1017 	428, 428, 437, 438, 428, 428, 428, 428,
1018 	428, 428, 428, 428, 428, 428, 428, 428,
1019 	439, 428, 467, 463, 468, 468, 119, 433,
1020 	434, 435, 428, 428, 428, 466, 428, 428,
1021 	437, 438, 428, 428, 428, 428, 428, 428,
1022 	428, 428, 428, 428, 428, 428, 439, 428,
1023 	463, 468, 468, 119, 433, 434, 435, 428,
1024 	428, 428, 466, 428, 428, 437, 438, 428,
1025 	428, 428, 428, 428, 428, 428, 428, 428,
1026 	428, 428, 428, 439, 428, 469, 428, 428,
1027 	428, 132, 470, 428, 433, 434, 435, 428,
1028 	428, 428, 443, 428, 469, 428, 438, 428,
1029 	471, 472, 473, 474, 119, 433, 434, 435,
1030 	428, 428, 143, 475, 428, 428, 437, 438,
1031 	428, 428, 428, 428, 428, 428, 428, 428,
1032 	428, 428, 428, 428, 439, 428, 476, 472,
1033 	477, 477, 119, 433, 434, 435, 428, 428,
1034 	428, 475, 428, 428, 437, 438, 428, 428,
1035 	428, 428, 428, 428, 428, 428, 428, 428,
1036 	428, 428, 439, 428, 472, 477, 477, 119,
1037 	433, 434, 435, 428, 428, 428, 475, 428,
1038 	428, 437, 438, 428, 428, 428, 428, 428,
1039 	428, 428, 428, 428, 428, 428, 428, 439,
1040 	428, 132, 478, 428, 433, 434, 435, 428,
1041 	428, 428, 443, 428, 428, 428, 438, 428,
1042 	433, 434, 435, 428, 428, 428, 443, 428,
1043 	428, 428, 438, 428, 479, 428, 428, 480,
1044 	434, 435, 428, 434, 435, 428, 434, 481,
1045 	428, 434, 428, 479, 428, 428, 428, 434,
1046 	435, 428, 482, 428, 483, 484, 428, 433,
1047 	434, 435, 428, 428, 117, 428, 428, 428,
1048 	428, 438, 428, 116, 428, 428, 428, 428,
1049 	433, 434, 435, 428, 428, 428, 428, 428,
1050 	428, 428, 438, 428, 433, 434, 435, 428,
1051 	428, 428, 428, 428, 428, 428, 438, 428,
1052 	485, 428, 428, 428, 428, 433, 434, 435,
1053 	428, 433, 434, 435, 428, 482, 428, 428,
1054 	428, 428, 433, 434, 435, 428, 428, 428,
1055 	428, 428, 428, 428, 438, 428, 482, 428,
1056 	483, 428, 428, 433, 434, 435, 428, 428,
1057 	117, 428, 428, 428, 428, 438, 428, 132,
1058 	428, 486, 486, 119, 433, 434, 435, 428,
1059 	428, 428, 443, 428, 428, 428, 438, 428,
1060 	487, 141, 488, 489, 122, 433, 434, 435,
1061 	428, 428, 428, 443, 428, 428, 428, 438,
1062 	428, 141, 488, 489, 122, 433, 434, 435,
1063 	428, 428, 428, 443, 428, 428, 428, 438,
1064 	428, 488, 488, 122, 433, 434, 435, 428,
1065 	428, 428, 443, 428, 428, 428, 438, 428,
1066 	490, 138, 491, 492, 125, 433, 434, 435,
1067 	428, 428, 428, 443, 428, 428, 428, 438,
1068 	428, 138, 491, 492, 125, 433, 434, 435,
1069 	428, 428, 428, 443, 428, 428, 428, 438,
1070 	428, 491, 491, 125, 433, 434, 435, 428,
1071 	428, 428, 443, 428, 428, 428, 438, 428,
1072 	493, 135, 494, 495, 128, 433, 434, 435,
1073 	428, 428, 428, 443, 428, 428, 428, 438,
1074 	428, 135, 494, 495, 128, 433, 434, 435,
1075 	428, 428, 428, 443, 428, 428, 428, 438,
1076 	428, 494, 494, 128, 433, 434, 435, 428,
1077 	428, 428, 443, 428, 428, 428, 438, 428,
1078 	496, 132, 428, 497, 428, 433, 434, 435,
1079 	428, 428, 428, 443, 428, 428, 428, 438,
1080 	428, 132, 428, 497, 428, 433, 434, 435,
1081 	428, 428, 428, 443, 428, 428, 428, 438,
1082 	428, 498, 428, 433, 434, 435, 428, 428,
1083 	428, 443, 428, 428, 428, 438, 428, 132,
1084 	428, 428, 428, 428, 433, 434, 435, 428,
1085 	428, 428, 443, 428, 428, 428, 438, 428,
1086 	115, 116, 428, 428, 132, 478, 428, 433,
1087 	434, 435, 428, 428, 428, 443, 428, 115,
1088 	428, 438, 428, 472, 477, 477, 119, 433,
1089 	434, 435, 428, 428, 428, 475, 428, 428,
1090 	428, 438, 428, 428, 428, 428, 428, 428,
1091 	428, 428, 428, 428, 428, 428, 439, 428,
1092 	472, 477, 477, 119, 433, 434, 435, 428,
1093 	428, 428, 475, 428, 428, 428, 438, 428,
1094 	471, 472, 477, 477, 119, 433, 434, 435,
1095 	428, 428, 428, 475, 428, 428, 437, 438,
1096 	428, 428, 428, 428, 428, 428, 428, 428,
1097 	428, 428, 428, 428, 439, 428, 471, 472,
1098 	473, 477, 119, 433, 434, 435, 428, 428,
1099 	143, 475, 428, 428, 437, 438, 428, 428,
1100 	428, 428, 428, 428, 428, 428, 428, 428,
1101 	428, 428, 439, 428, 469, 428, 499, 428,
1102 	486, 486, 119, 433, 434, 435, 428, 428,
1103 	428, 443, 428, 469, 428, 438, 428, 469,
1104 	428, 428, 428, 428, 428, 428, 433, 434,
1105 	435, 428, 428, 428, 443, 428, 469, 428,
1106 	438, 428, 469, 428, 428, 428, 428, 500,
1107 	428, 433, 434, 435, 428, 428, 428, 443,
1108 	428, 469, 428, 438, 428, 469, 428, 499,
1109 	428, 428, 428, 428, 433, 434, 435, 428,
1110 	428, 428, 443, 428, 469, 428, 438, 428,
1111 	469, 116, 428, 428, 132, 470, 428, 433,
1112 	434, 435, 428, 428, 428, 443, 428, 469,
1113 	428, 438, 428, 462, 463, 468, 468, 119,
1114 	433, 434, 435, 428, 428, 428, 466, 428,
1115 	428, 437, 438, 428, 428, 428, 428, 428,
1116 	428, 428, 428, 428, 428, 428, 428, 439,
1117 	428, 462, 463, 464, 468, 119, 433, 434,
1118 	435, 428, 428, 145, 466, 428, 428, 437,
1119 	438, 428, 428, 428, 428, 428, 428, 428,
1120 	428, 428, 428, 428, 428, 439, 428, 460,
1121 	428, 501, 428, 486, 486, 119, 433, 434,
1122 	435, 428, 428, 428, 443, 428, 460, 428,
1123 	438, 428, 460, 428, 428, 428, 428, 428,
1124 	428, 433, 434, 435, 428, 428, 428, 443,
1125 	428, 460, 428, 438, 428, 460, 428, 428,
1126 	428, 428, 502, 428, 433, 434, 435, 428,
1127 	428, 428, 443, 428, 460, 428, 438, 428,
1128 	460, 428, 501, 428, 428, 428, 428, 433,
1129 	434, 435, 428, 428, 428, 443, 428, 460,
1130 	428, 438, 428, 460, 116, 428, 428, 132,
1131 	461, 428, 433, 434, 435, 428, 428, 428,
1132 	443, 428, 460, 428, 438, 428, 453, 454,
1133 	459, 459, 119, 433, 434, 435, 428, 428,
1134 	428, 457, 428, 428, 437, 438, 428, 428,
1135 	428, 428, 428, 428, 428, 428, 428, 428,
1136 	428, 428, 439, 428, 453, 454, 455, 459,
1137 	119, 433, 434, 435, 428, 428, 147, 457,
1138 	428, 428, 437, 438, 428, 428, 428, 428,
1139 	428, 428, 428, 428, 428, 428, 428, 428,
1140 	439, 428, 451, 428, 503, 428, 486, 486,
1141 	119, 433, 434, 435, 428, 428, 428, 443,
1142 	428, 451, 428, 438, 428, 451, 428, 428,
1143 	428, 428, 428, 428, 433, 434, 435, 428,
1144 	428, 428, 443, 428, 451, 428, 438, 428,
1145 	451, 428, 428, 428, 428, 504, 428, 433,
1146 	434, 435, 428, 428, 428, 443, 428, 451,
1147 	428, 438, 428, 451, 428, 503, 428, 428,
1148 	428, 428, 433, 434, 435, 428, 428, 428,
1149 	443, 428, 451, 428, 438, 428, 451, 116,
1150 	428, 428, 132, 452, 428, 433, 434, 435,
1151 	428, 428, 428, 443, 428, 451, 428, 438,
1152 	428, 444, 445, 450, 450, 119, 433, 434,
1153 	435, 428, 428, 428, 448, 428, 428, 437,
1154 	438, 428, 428, 428, 428, 428, 428, 428,
1155 	428, 428, 428, 428, 428, 439, 428, 444,
1156 	445, 446, 450, 119, 433, 434, 435, 428,
1157 	428, 149, 448, 428, 428, 437, 438, 428,
1158 	428, 428, 428, 428, 428, 428, 428, 428,
1159 	428, 428, 428, 439, 428, 441, 428, 505,
1160 	428, 486, 486, 119, 433, 434, 435, 428,
1161 	428, 428, 443, 428, 441, 428, 438, 428,
1162 	441, 428, 428, 428, 428, 428, 428, 433,
1163 	434, 435, 428, 428, 428, 443, 428, 441,
1164 	428, 438, 428, 441, 428, 428, 428, 428,
1165 	506, 428, 433, 434, 435, 428, 428, 428,
1166 	443, 428, 441, 428, 438, 428, 441, 428,
1167 	505, 428, 428, 428, 428, 433, 434, 435,
1168 	428, 428, 428, 443, 428, 441, 428, 438,
1169 	428, 441, 116, 428, 428, 132, 442, 428,
1170 	433, 434, 435, 428, 428, 428, 443, 428,
1171 	441, 428, 438, 428, 429, 430, 432, 432,
1172 	119, 433, 434, 435, 428, 428, 428, 436,
1173 	428, 428, 437, 438, 428, 428, 428, 428,
1174 	428, 428, 428, 428, 428, 428, 428, 428,
1175 	439, 428, 181, 182, 183, 184, 507, 359,
1176 	81, 187, 188, 189, 190, 190, 152, 191,
1177 	357, 181, 194, 360, 357, 357, 357, 357,
1178 	357, 357, 357, 357, 357, 357, 357, 357,
1179 	196, 357, 198, 508, 200, 201, 5, 202,
1180 	203, 204, 197, 197, 37, 205, 197, 197,
1181 	206, 207, 197, 197, 197, 197, 197, 197,
1182 	197, 197, 197, 197, 197, 197, 208, 197,
1183 	211, 182, 183, 184, 509, 510, 81, 511,
1184 	203, 512, 190, 190, 152, 513, 197, 211,
1185 	194, 514, 197, 197, 197, 197, 197, 197,
1186 	197, 197, 197, 197, 197, 197, 196, 197,
1187 	113, 80, 80, 81, 202, 203, 204, 197,
1188 	197, 152, 515, 197, 197, 197, 207, 197,
1189 	516, 2, 357, 357, 357, 426, 357, 187,
1190 	188, 189, 357, 357, 357, 363, 357, 516,
1191 	357, 360, 357, 517, 365, 518, 519, 81,
1192 	511, 203, 512, 197, 197, 153, 368, 197,
1193 	197, 194, 514, 197, 197, 197, 197, 197,
1194 	197, 197, 197, 197, 197, 197, 197, 196,
1195 	197, 520, 365, 370, 370, 81, 511, 203,
1196 	512, 197, 197, 197, 368, 197, 197, 194,
1197 	514, 197, 197, 197, 197, 197, 197, 197,
1198 	197, 197, 197, 197, 197, 196, 197, 365,
1199 	370, 370, 81, 511, 203, 512, 197, 197,
1200 	197, 368, 197, 197, 194, 514, 197, 197,
1201 	197, 197, 197, 197, 197, 197, 197, 197,
1202 	197, 197, 196, 197, 521, 197, 197, 522,
1203 	203, 512, 197, 203, 512, 197, 203, 523,
1204 	197, 203, 197, 521, 197, 197, 197, 203,
1205 	512, 197, 524, 197, 197, 197, 197, 511,
1206 	203, 512, 197, 511, 203, 512, 197, 517,
1207 	365, 370, 370, 81, 511, 203, 512, 197,
1208 	197, 197, 368, 197, 197, 194, 514, 197,
1209 	197, 197, 197, 197, 197, 197, 197, 197,
1210 	197, 197, 197, 196, 197, 517, 365, 518,
1211 	370, 81, 511, 203, 512, 197, 197, 153,
1212 	368, 197, 197, 194, 514, 197, 197, 197,
1213 	197, 197, 197, 197, 197, 197, 197, 197,
1214 	197, 196, 197, 211, 197, 275, 113, 525,
1215 	525, 155, 202, 203, 204, 197, 197, 197,
1216 	515, 197, 211, 197, 207, 197, 526, 179,
1217 	527, 528, 157, 511, 203, 512, 197, 197,
1218 	197, 529, 197, 197, 197, 514, 197, 179,
1219 	527, 528, 157, 511, 203, 512, 197, 197,
1220 	197, 529, 197, 197, 197, 514, 197, 527,
1221 	527, 157, 511, 203, 512, 197, 197, 197,
1222 	529, 197, 197, 197, 514, 197, 530, 176,
1223 	531, 532, 160, 511, 203, 512, 197, 197,
1224 	197, 529, 197, 197, 197, 514, 197, 176,
1225 	531, 532, 160, 511, 203, 512, 197, 197,
1226 	197, 529, 197, 197, 197, 514, 197, 531,
1227 	531, 160, 511, 203, 512, 197, 197, 197,
1228 	529, 197, 197, 197, 514, 197, 533, 173,
1229 	534, 535, 163, 511, 203, 512, 197, 197,
1230 	197, 529, 197, 197, 197, 514, 197, 173,
1231 	534, 535, 163, 511, 203, 512, 197, 197,
1232 	197, 529, 197, 197, 197, 514, 197, 534,
1233 	534, 163, 511, 203, 512, 197, 197, 197,
1234 	529, 197, 197, 197, 514, 197, 536, 170,
1235 	197, 537, 197, 511, 203, 512, 197, 197,
1236 	197, 529, 197, 197, 197, 514, 197, 170,
1237 	197, 537, 197, 511, 203, 512, 197, 197,
1238 	197, 529, 197, 197, 197, 514, 197, 511,
1239 	203, 512, 197, 197, 197, 529, 197, 197,
1240 	197, 514, 197, 538, 197, 539, 540, 197,
1241 	511, 203, 512, 197, 197, 167, 197, 197,
1242 	197, 197, 514, 197, 166, 197, 197, 197,
1243 	197, 511, 203, 512, 197, 197, 197, 197,
1244 	197, 197, 197, 514, 197, 511, 203, 512,
1245 	197, 197, 197, 197, 197, 197, 197, 514,
1246 	197, 538, 197, 197, 197, 197, 511, 203,
1247 	512, 197, 197, 197, 197, 197, 197, 197,
1248 	514, 197, 538, 197, 539, 197, 197, 511,
1249 	203, 512, 197, 197, 167, 197, 197, 197,
1250 	197, 514, 197, 516, 166, 357, 357, 95,
1251 	362, 357, 187, 188, 189, 357, 357, 357,
1252 	363, 357, 516, 357, 360, 357, 542, 541,
1253 	541, 541, 541, 543, 544, 545, 541, 543,
1254 	544, 545, 541, 546, 541, 541, 547, 544,
1255 	545, 541, 544, 545, 541, 544, 548, 541,
1256 	544, 541, 546, 541, 541, 541, 544, 545,
1257 	541, 0
1258 };
1259 
1260 static const short _indic_syllable_machine_trans_targs[] = {
1261 	170, 197, 199, 202, 3, 205, 4, 6,
1262 	208, 7, 9, 211, 10, 12, 214, 13,
1263 	15, 16, 191, 18, 19, 213, 21, 22,
1264 	210, 24, 25, 207, 216, 221, 225, 228,
1265 	232, 235, 239, 242, 246, 249, 170, 277,
1266 	279, 282, 39, 285, 40, 42, 288, 43,
1267 	45, 291, 46, 48, 294, 49, 51, 52,
1268 	271, 54, 55, 293, 57, 58, 290, 60,
1269 	61, 287, 296, 301, 305, 308, 312, 315,
1270 	319, 322, 326, 330, 170, 356, 358, 361,
1271 	75, 364, 170, 76, 78, 367, 79, 81,
1272 	370, 82, 84, 373, 85, 87, 88, 350,
1273 	90, 91, 372, 93, 94, 369, 96, 97,
1274 	366, 375, 380, 384, 387, 391, 394, 398,
1275 	401, 405, 170, 437, 439, 442, 110, 445,
1276 	111, 113, 448, 114, 116, 451, 117, 119,
1277 	454, 120, 122, 123, 431, 125, 126, 453,
1278 	128, 129, 450, 131, 132, 447, 456, 461,
1279 	465, 468, 472, 475, 479, 482, 486, 489,
1280 	409, 505, 146, 508, 148, 511, 149, 151,
1281 	514, 152, 154, 517, 155, 520, 522, 523,
1282 	159, 160, 519, 162, 163, 516, 165, 166,
1283 	513, 168, 169, 510, 170, 171, 251, 331,
1284 	333, 408, 410, 351, 170, 353, 411, 407,
1285 	490, 491, 378, 526, 379, 170, 172, 174,
1286 	35, 250, 192, 170, 194, 248, 219, 200,
1287 	220, 173, 34, 175, 244, 0, 176, 178,
1288 	33, 243, 241, 177, 32, 179, 237, 180,
1289 	182, 31, 236, 234, 181, 30, 183, 230,
1290 	184, 186, 29, 229, 227, 185, 28, 187,
1291 	223, 188, 190, 27, 222, 218, 189, 26,
1292 	204, 193, 196, 195, 198, 1, 203, 201,
1293 	2, 206, 5, 23, 209, 8, 20, 212,
1294 	11, 17, 215, 14, 217, 224, 226, 231,
1295 	233, 238, 240, 245, 247, 170, 252, 254,
1296 	71, 328, 272, 170, 274, 329, 299, 280,
1297 	300, 253, 70, 255, 324, 36, 256, 258,
1298 	69, 323, 321, 257, 68, 259, 317, 260,
1299 	262, 67, 316, 314, 261, 66, 263, 310,
1300 	264, 266, 65, 309, 307, 265, 64, 267,
1301 	303, 268, 270, 63, 302, 298, 269, 62,
1302 	284, 273, 276, 275, 278, 37, 283, 281,
1303 	38, 286, 41, 59, 289, 44, 56, 292,
1304 	47, 53, 295, 50, 297, 304, 306, 311,
1305 	313, 318, 320, 325, 327, 170, 332, 106,
1306 	359, 334, 403, 72, 335, 337, 105, 402,
1307 	400, 336, 104, 338, 396, 339, 341, 103,
1308 	395, 393, 340, 102, 342, 389, 343, 345,
1309 	101, 388, 386, 344, 100, 346, 382, 347,
1310 	349, 99, 381, 377, 348, 98, 363, 352,
1311 	355, 354, 357, 73, 362, 360, 74, 365,
1312 	77, 95, 368, 80, 92, 371, 83, 89,
1313 	374, 86, 376, 383, 385, 390, 392, 397,
1314 	399, 404, 406, 170, 170, 412, 414, 142,
1315 	141, 432, 170, 434, 488, 459, 440, 460,
1316 	413, 415, 484, 107, 416, 418, 140, 483,
1317 	481, 417, 139, 419, 477, 420, 422, 138,
1318 	476, 474, 421, 137, 423, 470, 424, 426,
1319 	136, 469, 467, 425, 135, 427, 463, 428,
1320 	430, 134, 462, 458, 429, 133, 444, 433,
1321 	436, 435, 438, 108, 443, 441, 109, 446,
1322 	112, 130, 449, 115, 127, 452, 118, 124,
1323 	455, 121, 457, 464, 466, 471, 473, 478,
1324 	480, 485, 487, 143, 492, 493, 507, 498,
1325 	500, 525, 503, 494, 495, 496, 144, 506,
1326 	497, 499, 502, 501, 504, 145, 509, 147,
1327 	167, 156, 512, 150, 164, 515, 153, 161,
1328 	518, 158, 521, 157, 524, 170, 527, 528,
1329 	170, 530, 529, 532, 531
1330 };
1331 
1332 static const char _indic_syllable_machine_trans_actions[] = {
1333 	1, 2, 0, 0, 0, 2, 0, 0,
1334 	2, 0, 0, 2, 0, 0, 2, 0,
1335 	0, 0, 2, 0, 0, 2, 0, 0,
1336 	2, 0, 0, 2, 2, 2, 2, 2,
1337 	2, 2, 2, 2, 2, 2, 3, 2,
1338 	0, 0, 0, 2, 0, 0, 2, 0,
1339 	0, 2, 0, 0, 2, 0, 0, 0,
1340 	2, 0, 0, 2, 0, 0, 2, 0,
1341 	0, 2, 2, 2, 2, 2, 2, 2,
1342 	2, 2, 2, 2, 4, 2, 0, 0,
1343 	0, 2, 5, 0, 0, 2, 0, 0,
1344 	2, 0, 0, 2, 0, 0, 0, 2,
1345 	0, 0, 2, 0, 0, 2, 0, 0,
1346 	2, 2, 6, 2, 6, 2, 6, 2,
1347 	6, 2, 7, 2, 0, 0, 0, 2,
1348 	0, 0, 2, 0, 0, 2, 0, 0,
1349 	2, 0, 0, 0, 2, 0, 0, 2,
1350 	0, 0, 2, 0, 0, 2, 2, 2,
1351 	2, 2, 2, 2, 2, 2, 2, 2,
1352 	6, 8, 0, 2, 0, 2, 0, 0,
1353 	2, 0, 0, 2, 0, 2, 0, 0,
1354 	0, 0, 2, 0, 0, 2, 0, 0,
1355 	2, 0, 0, 2, 11, 2, 2, 6,
1356 	2, 12, 12, 0, 13, 0, 2, 2,
1357 	6, 2, 6, 0, 6, 14, 2, 2,
1358 	0, 2, 0, 15, 0, 2, 2, 0,
1359 	2, 2, 0, 2, 2, 0, 2, 2,
1360 	0, 2, 2, 2, 0, 2, 2, 2,
1361 	2, 0, 2, 2, 2, 0, 2, 2,
1362 	2, 2, 0, 2, 2, 2, 0, 2,
1363 	2, 2, 2, 0, 2, 2, 2, 0,
1364 	2, 0, 0, 0, 0, 0, 2, 0,
1365 	0, 2, 0, 0, 2, 0, 0, 2,
1366 	0, 0, 2, 0, 2, 2, 2, 2,
1367 	2, 2, 2, 2, 2, 16, 2, 2,
1368 	0, 2, 0, 17, 0, 2, 2, 0,
1369 	2, 2, 0, 2, 2, 0, 2, 2,
1370 	0, 2, 2, 2, 0, 2, 2, 2,
1371 	2, 0, 2, 2, 2, 0, 2, 2,
1372 	2, 2, 0, 2, 2, 2, 0, 2,
1373 	2, 2, 2, 0, 2, 2, 2, 0,
1374 	2, 0, 0, 0, 0, 0, 2, 0,
1375 	0, 2, 0, 0, 2, 0, 0, 2,
1376 	0, 0, 2, 0, 2, 2, 2, 2,
1377 	2, 2, 2, 2, 2, 18, 6, 0,
1378 	0, 6, 6, 0, 6, 2, 0, 6,
1379 	2, 6, 0, 6, 6, 6, 2, 0,
1380 	6, 2, 6, 0, 6, 6, 6, 2,
1381 	0, 6, 2, 6, 0, 6, 6, 6,
1382 	2, 0, 6, 2, 6, 0, 6, 0,
1383 	0, 0, 0, 0, 2, 0, 0, 2,
1384 	0, 0, 2, 0, 0, 2, 0, 0,
1385 	2, 0, 2, 2, 2, 2, 2, 2,
1386 	2, 2, 2, 19, 20, 2, 2, 0,
1387 	0, 0, 21, 0, 2, 2, 0, 2,
1388 	2, 2, 2, 0, 2, 2, 0, 2,
1389 	2, 2, 0, 2, 2, 2, 2, 0,
1390 	2, 2, 2, 0, 2, 2, 2, 2,
1391 	0, 2, 2, 2, 0, 2, 2, 2,
1392 	2, 0, 2, 2, 2, 0, 2, 0,
1393 	0, 0, 0, 0, 2, 0, 0, 2,
1394 	0, 0, 2, 0, 0, 2, 0, 0,
1395 	2, 0, 2, 2, 2, 2, 2, 2,
1396 	2, 2, 2, 0, 0, 8, 2, 0,
1397 	0, 2, 0, 2, 8, 8, 0, 8,
1398 	8, 0, 0, 0, 0, 0, 2, 0,
1399 	0, 0, 2, 0, 0, 2, 0, 0,
1400 	2, 0, 0, 0, 2, 22, 0, 0,
1401 	23, 0, 0, 0, 0
1402 };
1403 
1404 static const char _indic_syllable_machine_to_state_actions[] = {
1405 	0, 0, 0, 0, 0, 0, 0, 0,
1406 	0, 0, 0, 0, 0, 0, 0, 0,
1407 	0, 0, 0, 0, 0, 0, 0, 0,
1408 	0, 0, 0, 0, 0, 0, 0, 0,
1409 	0, 0, 0, 0, 0, 0, 0, 0,
1410 	0, 0, 0, 0, 0, 0, 0, 0,
1411 	0, 0, 0, 0, 0, 0, 0, 0,
1412 	0, 0, 0, 0, 0, 0, 0, 0,
1413 	0, 0, 0, 0, 0, 0, 0, 0,
1414 	0, 0, 0, 0, 0, 0, 0, 0,
1415 	0, 0, 0, 0, 0, 0, 0, 0,
1416 	0, 0, 0, 0, 0, 0, 0, 0,
1417 	0, 0, 0, 0, 0, 0, 0, 0,
1418 	0, 0, 0, 0, 0, 0, 0, 0,
1419 	0, 0, 0, 0, 0, 0, 0, 0,
1420 	0, 0, 0, 0, 0, 0, 0, 0,
1421 	0, 0, 0, 0, 0, 0, 0, 0,
1422 	0, 0, 0, 0, 0, 0, 0, 0,
1423 	0, 0, 0, 0, 0, 0, 0, 0,
1424 	0, 0, 0, 0, 0, 0, 0, 0,
1425 	0, 0, 0, 0, 0, 0, 0, 0,
1426 	0, 0, 9, 0, 0, 0, 0, 0,
1427 	0, 0, 0, 0, 0, 0, 0, 0,
1428 	0, 0, 0, 0, 0, 0, 0, 0,
1429 	0, 0, 0, 0, 0, 0, 0, 0,
1430 	0, 0, 0, 0, 0, 0, 0, 0,
1431 	0, 0, 0, 0, 0, 0, 0, 0,
1432 	0, 0, 0, 0, 0, 0, 0, 0,
1433 	0, 0, 0, 0, 0, 0, 0, 0,
1434 	0, 0, 0, 0, 0, 0, 0, 0,
1435 	0, 0, 0, 0, 0, 0, 0, 0,
1436 	0, 0, 0, 0, 0, 0, 0, 0,
1437 	0, 0, 0, 0, 0, 0, 0, 0,
1438 	0, 0, 0, 0, 0, 0, 0, 0,
1439 	0, 0, 0, 0, 0, 0, 0, 0,
1440 	0, 0, 0, 0, 0, 0, 0, 0,
1441 	0, 0, 0, 0, 0, 0, 0, 0,
1442 	0, 0, 0, 0, 0, 0, 0, 0,
1443 	0, 0, 0, 0, 0, 0, 0, 0,
1444 	0, 0, 0, 0, 0, 0, 0, 0,
1445 	0, 0, 0, 0, 0, 0, 0, 0,
1446 	0, 0, 0, 0, 0, 0, 0, 0,
1447 	0, 0, 0, 0, 0, 0, 0, 0,
1448 	0, 0, 0, 0, 0, 0, 0, 0,
1449 	0, 0, 0, 0, 0, 0, 0, 0,
1450 	0, 0, 0, 0, 0, 0, 0, 0,
1451 	0, 0, 0, 0, 0, 0, 0, 0,
1452 	0, 0, 0, 0, 0, 0, 0, 0,
1453 	0, 0, 0, 0, 0, 0, 0, 0,
1454 	0, 0, 0, 0, 0, 0, 0, 0,
1455 	0, 0, 0, 0, 0, 0, 0, 0,
1456 	0, 0, 0, 0, 0, 0, 0, 0,
1457 	0, 0, 0, 0, 0, 0, 0, 0,
1458 	0, 0, 0, 0, 0, 0, 0, 0,
1459 	0, 0, 0, 0, 0, 0, 0, 0,
1460 	0, 0, 0, 0, 0, 0, 0, 0,
1461 	0, 0, 0, 0, 0, 0, 0, 0,
1462 	0, 0, 0, 0, 0, 0, 0, 0,
1463 	0, 0, 0, 0, 0, 0, 0, 0,
1464 	0, 0, 0, 0, 0, 0, 0, 0,
1465 	0, 0, 0, 0, 0, 0, 0, 0,
1466 	0, 0, 0, 0, 0, 0, 0, 0,
1467 	0, 0, 0, 0, 0, 0, 0, 0,
1468 	0, 0, 0, 0, 0, 0, 0, 0,
1469 	0, 0, 0, 0, 0, 0, 0, 0,
1470 	0, 0, 0, 0, 0, 0, 0, 0,
1471 	0, 0, 0, 0, 0
1472 };
1473 
1474 static const char _indic_syllable_machine_from_state_actions[] = {
1475 	0, 0, 0, 0, 0, 0, 0, 0,
1476 	0, 0, 0, 0, 0, 0, 0, 0,
1477 	0, 0, 0, 0, 0, 0, 0, 0,
1478 	0, 0, 0, 0, 0, 0, 0, 0,
1479 	0, 0, 0, 0, 0, 0, 0, 0,
1480 	0, 0, 0, 0, 0, 0, 0, 0,
1481 	0, 0, 0, 0, 0, 0, 0, 0,
1482 	0, 0, 0, 0, 0, 0, 0, 0,
1483 	0, 0, 0, 0, 0, 0, 0, 0,
1484 	0, 0, 0, 0, 0, 0, 0, 0,
1485 	0, 0, 0, 0, 0, 0, 0, 0,
1486 	0, 0, 0, 0, 0, 0, 0, 0,
1487 	0, 0, 0, 0, 0, 0, 0, 0,
1488 	0, 0, 0, 0, 0, 0, 0, 0,
1489 	0, 0, 0, 0, 0, 0, 0, 0,
1490 	0, 0, 0, 0, 0, 0, 0, 0,
1491 	0, 0, 0, 0, 0, 0, 0, 0,
1492 	0, 0, 0, 0, 0, 0, 0, 0,
1493 	0, 0, 0, 0, 0, 0, 0, 0,
1494 	0, 0, 0, 0, 0, 0, 0, 0,
1495 	0, 0, 0, 0, 0, 0, 0, 0,
1496 	0, 0, 10, 0, 0, 0, 0, 0,
1497 	0, 0, 0, 0, 0, 0, 0, 0,
1498 	0, 0, 0, 0, 0, 0, 0, 0,
1499 	0, 0, 0, 0, 0, 0, 0, 0,
1500 	0, 0, 0, 0, 0, 0, 0, 0,
1501 	0, 0, 0, 0, 0, 0, 0, 0,
1502 	0, 0, 0, 0, 0, 0, 0, 0,
1503 	0, 0, 0, 0, 0, 0, 0, 0,
1504 	0, 0, 0, 0, 0, 0, 0, 0,
1505 	0, 0, 0, 0, 0, 0, 0, 0,
1506 	0, 0, 0, 0, 0, 0, 0, 0,
1507 	0, 0, 0, 0, 0, 0, 0, 0,
1508 	0, 0, 0, 0, 0, 0, 0, 0,
1509 	0, 0, 0, 0, 0, 0, 0, 0,
1510 	0, 0, 0, 0, 0, 0, 0, 0,
1511 	0, 0, 0, 0, 0, 0, 0, 0,
1512 	0, 0, 0, 0, 0, 0, 0, 0,
1513 	0, 0, 0, 0, 0, 0, 0, 0,
1514 	0, 0, 0, 0, 0, 0, 0, 0,
1515 	0, 0, 0, 0, 0, 0, 0, 0,
1516 	0, 0, 0, 0, 0, 0, 0, 0,
1517 	0, 0, 0, 0, 0, 0, 0, 0,
1518 	0, 0, 0, 0, 0, 0, 0, 0,
1519 	0, 0, 0, 0, 0, 0, 0, 0,
1520 	0, 0, 0, 0, 0, 0, 0, 0,
1521 	0, 0, 0, 0, 0, 0, 0, 0,
1522 	0, 0, 0, 0, 0, 0, 0, 0,
1523 	0, 0, 0, 0, 0, 0, 0, 0,
1524 	0, 0, 0, 0, 0, 0, 0, 0,
1525 	0, 0, 0, 0, 0, 0, 0, 0,
1526 	0, 0, 0, 0, 0, 0, 0, 0,
1527 	0, 0, 0, 0, 0, 0, 0, 0,
1528 	0, 0, 0, 0, 0, 0, 0, 0,
1529 	0, 0, 0, 0, 0, 0, 0, 0,
1530 	0, 0, 0, 0, 0, 0, 0, 0,
1531 	0, 0, 0, 0, 0, 0, 0, 0,
1532 	0, 0, 0, 0, 0, 0, 0, 0,
1533 	0, 0, 0, 0, 0, 0, 0, 0,
1534 	0, 0, 0, 0, 0, 0, 0, 0,
1535 	0, 0, 0, 0, 0, 0, 0, 0,
1536 	0, 0, 0, 0, 0, 0, 0, 0,
1537 	0, 0, 0, 0, 0, 0, 0, 0,
1538 	0, 0, 0, 0, 0, 0, 0, 0,
1539 	0, 0, 0, 0, 0, 0, 0, 0,
1540 	0, 0, 0, 0, 0, 0, 0, 0,
1541 	0, 0, 0, 0, 0
1542 };
1543 
1544 static const short _indic_syllable_machine_eof_trans[] = {
1545 	1, 1, 1, 1, 1, 1, 1, 1,
1546 	1, 1, 1, 1, 1, 1, 1, 1,
1547 	1, 1, 1, 1, 1, 1, 1, 1,
1548 	1, 1, 1, 1, 1, 1, 1, 1,
1549 	1, 1, 1, 1, 39, 39, 39, 39,
1550 	39, 39, 39, 39, 39, 39, 39, 39,
1551 	39, 39, 39, 39, 39, 39, 39, 39,
1552 	39, 39, 39, 39, 39, 39, 39, 39,
1553 	39, 39, 39, 39, 39, 39, 39, 39,
1554 	77, 77, 77, 83, 83, 77, 77, 77,
1555 	77, 77, 77, 77, 77, 77, 77, 77,
1556 	77, 77, 77, 77, 77, 77, 77, 77,
1557 	77, 77, 77, 77, 77, 77, 77, 77,
1558 	83, 77, 77, 115, 115, 115, 115, 115,
1559 	115, 115, 115, 115, 115, 115, 115, 115,
1560 	115, 115, 115, 115, 115, 115, 115, 115,
1561 	115, 115, 115, 115, 115, 115, 115, 115,
1562 	115, 115, 115, 115, 115, 115, 115, 77,
1563 	1, 1, 1, 1, 1, 1, 1, 1,
1564 	1, 1, 1, 1, 1, 1, 1, 1,
1565 	1, 1, 1, 1, 1, 1, 1, 1,
1566 	1, 1, 0, 198, 198, 198, 198, 198,
1567 	198, 198, 198, 198, 198, 198, 198, 198,
1568 	198, 198, 198, 198, 198, 198, 198, 198,
1569 	198, 198, 198, 198, 198, 198, 198, 198,
1570 	198, 198, 198, 198, 198, 198, 198, 198,
1571 	198, 198, 198, 198, 198, 198, 198, 198,
1572 	198, 198, 198, 198, 198, 198, 198, 198,
1573 	198, 198, 198, 198, 198, 198, 198, 198,
1574 	198, 198, 198, 198, 198, 198, 198, 198,
1575 	198, 198, 198, 198, 198, 198, 198, 198,
1576 	198, 198, 198, 278, 278, 278, 278, 278,
1577 	278, 278, 278, 278, 278, 278, 278, 278,
1578 	278, 278, 278, 278, 278, 278, 278, 278,
1579 	278, 278, 278, 278, 278, 278, 278, 278,
1580 	278, 278, 278, 278, 278, 278, 278, 278,
1581 	278, 278, 278, 278, 278, 278, 278, 278,
1582 	278, 278, 278, 278, 278, 278, 278, 278,
1583 	278, 278, 278, 278, 278, 278, 278, 278,
1584 	278, 278, 278, 278, 278, 278, 278, 278,
1585 	278, 278, 278, 278, 278, 278, 278, 278,
1586 	278, 278, 278, 358, 358, 358, 358, 358,
1587 	358, 358, 358, 358, 358, 358, 358, 358,
1588 	358, 358, 358, 358, 358, 358, 358, 358,
1589 	358, 358, 358, 358, 358, 358, 358, 358,
1590 	358, 358, 358, 358, 358, 358, 358, 358,
1591 	358, 358, 358, 358, 358, 358, 358, 358,
1592 	358, 358, 358, 358, 358, 358, 358, 358,
1593 	358, 358, 358, 358, 358, 358, 358, 358,
1594 	358, 358, 358, 358, 358, 358, 358, 358,
1595 	358, 358, 358, 358, 358, 358, 358, 358,
1596 	428, 358, 428, 429, 429, 429, 429, 429,
1597 	429, 429, 429, 429, 429, 429, 429, 429,
1598 	429, 429, 429, 429, 429, 429, 429, 429,
1599 	429, 429, 429, 429, 429, 429, 429, 429,
1600 	429, 429, 429, 429, 429, 429, 429, 429,
1601 	429, 429, 429, 429, 429, 429, 429, 429,
1602 	429, 429, 429, 429, 429, 429, 429, 429,
1603 	429, 429, 429, 429, 429, 429, 429, 429,
1604 	429, 429, 429, 429, 429, 429, 429, 429,
1605 	429, 429, 429, 429, 429, 429, 429, 429,
1606 	429, 429, 358, 198, 198, 198, 358, 198,
1607 	198, 198, 198, 198, 198, 198, 198, 198,
1608 	198, 198, 198, 198, 198, 198, 198, 198,
1609 	198, 198, 198, 198, 198, 198, 198, 198,
1610 	198, 198, 198, 198, 198, 358, 542, 542,
1611 	542, 542, 542, 542, 542
1612 };
1613 
1614 static const int indic_syllable_machine_start = 170;
1615 static const int indic_syllable_machine_first_final = 170;
1616 static const int indic_syllable_machine_error = -1;
1617 
1618 static const int indic_syllable_machine_en_main = 170;
1619 
1620 
1621 #line 36 "hb-ot-shape-complex-indic-machine.rl"
1622 
1623 
1624 
1625 #line 98 "hb-ot-shape-complex-indic-machine.rl"
1626 
1627 
1628 #define found_syllable(syllable_type) \
1629   HB_STMT_START { \
1630     if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
1631     for (unsigned int i = last; i < p+1; i++) \
1632       info[i].syllable() = (syllable_serial << 4) | syllable_type; \
1633     last = p+1; \
1634     syllable_serial++; \
1635     if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
1636   } HB_STMT_END
1637 
1638 static void
find_syllables(hb_buffer_t * buffer)1639 find_syllables (hb_buffer_t *buffer)
1640 {
1641   unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED;
1642   int cs;
1643   hb_glyph_info_t *info = buffer->info;
1644 
1645 #line 1646 "hb-ot-shape-complex-indic-machine.hh.tmp"
1646 	{
1647 	cs = indic_syllable_machine_start;
1648 	ts = 0;
1649 	te = 0;
1650 	act = 0;
1651 	}
1652 
1653 #line 119 "hb-ot-shape-complex-indic-machine.rl"
1654 
1655 
1656   p = 0;
1657   pe = eof = buffer->len;
1658 
1659   unsigned int last = 0;
1660   unsigned int syllable_serial = 1;
1661 
1662 #line 1663 "hb-ot-shape-complex-indic-machine.hh.tmp"
1663 	{
1664 	int _slen;
1665 	int _trans;
1666 	const unsigned char *_keys;
1667 	const short *_inds;
1668 	if ( p == pe )
1669 		goto _test_eof;
1670 _resume:
1671 	switch ( _indic_syllable_machine_from_state_actions[cs] ) {
1672 	case 10:
1673 #line 1 "NONE"
1674 	{ts = p;}
1675 	break;
1676 #line 1677 "hb-ot-shape-complex-indic-machine.hh.tmp"
1677 	}
1678 
1679 	_keys = _indic_syllable_machine_trans_keys + (cs<<1);
1680 	_inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
1681 
1682 	_slen = _indic_syllable_machine_key_spans[cs];
1683 	_trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
1684 		( info[p].indic_category()) <= _keys[1] ?
1685 		( info[p].indic_category()) - _keys[0] : _slen ];
1686 
1687 _eof_trans:
1688 	cs = _indic_syllable_machine_trans_targs[_trans];
1689 
1690 	if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
1691 		goto _again;
1692 
1693 	switch ( _indic_syllable_machine_trans_actions[_trans] ) {
1694 	case 2:
1695 #line 1 "NONE"
1696 	{te = p+1;}
1697 	break;
1698 	case 15:
1699 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1700 	{te = p+1;{ found_syllable (consonant_syllable); }}
1701 	break;
1702 	case 17:
1703 #line 90 "hb-ot-shape-complex-indic-machine.rl"
1704 	{te = p+1;{ found_syllable (vowel_syllable); }}
1705 	break;
1706 	case 21:
1707 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1708 	{te = p+1;{ found_syllable (standalone_cluster); }}
1709 	break;
1710 	case 23:
1711 #line 92 "hb-ot-shape-complex-indic-machine.rl"
1712 	{te = p+1;{ found_syllable (avagraha_cluster); }}
1713 	break;
1714 	case 13:
1715 #line 93 "hb-ot-shape-complex-indic-machine.rl"
1716 	{te = p+1;{ found_syllable (broken_cluster); }}
1717 	break;
1718 	case 11:
1719 #line 94 "hb-ot-shape-complex-indic-machine.rl"
1720 	{te = p+1;{ found_syllable (non_indic_cluster); }}
1721 	break;
1722 	case 14:
1723 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1724 	{te = p;p--;{ found_syllable (consonant_syllable); }}
1725 	break;
1726 	case 16:
1727 #line 90 "hb-ot-shape-complex-indic-machine.rl"
1728 	{te = p;p--;{ found_syllable (vowel_syllable); }}
1729 	break;
1730 	case 20:
1731 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1732 	{te = p;p--;{ found_syllable (standalone_cluster); }}
1733 	break;
1734 	case 22:
1735 #line 92 "hb-ot-shape-complex-indic-machine.rl"
1736 	{te = p;p--;{ found_syllable (avagraha_cluster); }}
1737 	break;
1738 	case 18:
1739 #line 93 "hb-ot-shape-complex-indic-machine.rl"
1740 	{te = p;p--;{ found_syllable (broken_cluster); }}
1741 	break;
1742 	case 19:
1743 #line 94 "hb-ot-shape-complex-indic-machine.rl"
1744 	{te = p;p--;{ found_syllable (non_indic_cluster); }}
1745 	break;
1746 	case 1:
1747 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1748 	{{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
1749 	break;
1750 	case 3:
1751 #line 90 "hb-ot-shape-complex-indic-machine.rl"
1752 	{{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
1753 	break;
1754 	case 7:
1755 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1756 	{{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
1757 	break;
1758 	case 4:
1759 #line 93 "hb-ot-shape-complex-indic-machine.rl"
1760 	{{p = ((te))-1;}{ found_syllable (broken_cluster); }}
1761 	break;
1762 	case 5:
1763 #line 1 "NONE"
1764 	{	switch( act ) {
1765 	case 1:
1766 	{{p = ((te))-1;} found_syllable (consonant_syllable); }
1767 	break;
1768 	case 5:
1769 	{{p = ((te))-1;} found_syllable (broken_cluster); }
1770 	break;
1771 	case 6:
1772 	{{p = ((te))-1;} found_syllable (non_indic_cluster); }
1773 	break;
1774 	}
1775 	}
1776 	break;
1777 	case 8:
1778 #line 1 "NONE"
1779 	{te = p+1;}
1780 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1781 	{act = 1;}
1782 	break;
1783 	case 6:
1784 #line 1 "NONE"
1785 	{te = p+1;}
1786 #line 93 "hb-ot-shape-complex-indic-machine.rl"
1787 	{act = 5;}
1788 	break;
1789 	case 12:
1790 #line 1 "NONE"
1791 	{te = p+1;}
1792 #line 94 "hb-ot-shape-complex-indic-machine.rl"
1793 	{act = 6;}
1794 	break;
1795 #line 1796 "hb-ot-shape-complex-indic-machine.hh.tmp"
1796 	}
1797 
1798 _again:
1799 	switch ( _indic_syllable_machine_to_state_actions[cs] ) {
1800 	case 9:
1801 #line 1 "NONE"
1802 	{ts = 0;}
1803 	break;
1804 #line 1805 "hb-ot-shape-complex-indic-machine.hh.tmp"
1805 	}
1806 
1807 	if ( ++p != pe )
1808 		goto _resume;
1809 	_test_eof: {}
1810 	if ( p == eof )
1811 	{
1812 	if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
1813 		_trans = _indic_syllable_machine_eof_trans[cs] - 1;
1814 		goto _eof_trans;
1815 	}
1816 	}
1817 
1818 	}
1819 
1820 #line 128 "hb-ot-shape-complex-indic-machine.rl"
1821 
1822 }
1823 
1824 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
1825