1 /* 2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * 4 * This code is free software; you can redistribute it and/or modify it 5 * under the terms of the GNU General Public License version 2 only, as 6 * published by the Free Software Foundation. Oracle designates this 7 * particular file as subject to the "Classpath" exception as provided 8 * by Oracle in the LICENSE file that accompanied this code. 9 * 10 * This code is distributed in the hope that it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13 * version 2 for more details (a copy is included in the LICENSE file that 14 * accompanied this code). 15 * 16 * You should have received a copy of the GNU General Public License version 17 * 2 along with this work; if not, write to the Free Software Foundation, 18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 19 * 20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 21 * or visit www.oracle.com if you need additional information or have any 22 * questions. 23 */ 24 25 // This file is available under and governed by the GNU General Public 26 // License version 2 only, as published by the Free Software Foundation. 27 // However, the following notice accompanied the original version of this 28 // file: 29 // 30 31 #line 1 "hb-ot-shape-complex-indic-machine.rl" 32 /* 33 * Copyright © 2011,2012 Google, Inc. 34 * 35 * This is part of HarfBuzz, a text shaping library. 36 * 37 * Permission is hereby granted, without written agreement and without 38 * license or royalty fees, to use, copy, modify, and distribute this 39 * software and its documentation for any purpose, provided that the 40 * above copyright notice and the following two paragraphs appear in 41 * all copies of this software. 42 * 43 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 44 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 45 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 46 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 47 * DAMAGE. 48 * 49 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 50 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 51 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 52 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 53 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 54 * 55 * Google Author(s): Behdad Esfahbod 56 */ 57 58 #ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH 59 #define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH 60 61 #include "hb-private.hh" 62 63 64 #line 36 "hb-ot-shape-complex-indic-machine.hh" 65 static const unsigned char _indic_syllable_machine_trans_keys[] = { 66 8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 67 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 68 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 69 4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 70 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u, 71 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 72 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 73 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 74 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 75 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 76 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 77 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 78 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 79 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 80 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 81 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 82 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 83 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 84 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 5u, 8u, 4u, 14u, 4u, 14u, 5u, 8u, 85 5u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 86 5u, 7u, 7u, 7u, 8u, 8u, 1u, 16u, 8u, 13u, 4u, 8u, 6u, 6u, 16u, 16u, 87 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 88 16u, 16u, 8u, 8u, 1u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 89 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 90 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 91 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 92 3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 93 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 94 5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 95 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 96 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 97 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 98 1u, 16u, 3u, 31u, 3u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 99 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 100 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 101 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 102 3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 103 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 104 5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 105 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 106 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 107 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 108 4u, 14u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 109 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 110 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 5u, 10u, 111 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 112 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 113 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 114 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 115 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 116 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 117 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 118 4u, 14u, 3u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 119 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 120 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 121 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 122 3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 123 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 124 5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 125 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 126 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 127 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 128 1u, 16u, 3u, 31u, 1u, 31u, 3u, 31u, 1u, 31u, 4u, 14u, 5u, 10u, 9u, 10u, 129 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 1u, 16u, 3u, 31u, 3u, 31u, 130 4u, 31u, 3u, 31u, 3u, 31u, 1u, 16u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 131 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 132 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 3u, 10u, 5u, 10u, 133 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 0 134 }; 135 136 static const char _indic_syllable_machine_key_spans[] = { 137 1, 16, 6, 4, 3, 1, 4, 3, 138 1, 4, 3, 1, 4, 3, 1, 5, 139 1, 1, 5, 1, 1, 5, 1, 1, 140 5, 1, 1, 11, 11, 11, 11, 11, 141 11, 11, 11, 11, 11, 1, 16, 6, 142 4, 3, 1, 4, 3, 1, 4, 3, 143 1, 4, 3, 1, 5, 1, 1, 5, 144 1, 1, 5, 1, 1, 5, 1, 1, 145 11, 11, 11, 11, 11, 11, 11, 11, 146 11, 11, 1, 16, 6, 4, 3, 1, 147 4, 3, 1, 4, 3, 1, 4, 3, 148 1, 5, 1, 1, 5, 1, 1, 5, 149 1, 1, 5, 1, 1, 11, 11, 11, 150 11, 11, 11, 11, 11, 11, 1, 16, 151 6, 4, 3, 1, 4, 3, 1, 4, 152 3, 1, 4, 3, 1, 5, 1, 1, 153 5, 1, 1, 5, 1, 1, 5, 1, 154 1, 11, 11, 11, 11, 11, 11, 11, 155 11, 11, 11, 11, 4, 11, 11, 4, 156 3, 4, 3, 1, 4, 3, 1, 4, 157 3, 1, 1, 16, 6, 5, 1, 1, 158 5, 1, 1, 5, 1, 1, 5, 1, 159 1, 1, 31, 29, 29, 28, 16, 29, 160 29, 28, 16, 29, 29, 28, 16, 29, 161 29, 28, 16, 29, 29, 28, 10, 10, 162 6, 2, 1, 2, 2, 1, 6, 11, 163 8, 6, 8, 11, 12, 12, 11, 10, 164 12, 11, 10, 12, 11, 10, 12, 11, 165 10, 12, 16, 28, 11, 29, 29, 16, 166 16, 16, 16, 16, 29, 29, 16, 16, 167 16, 16, 16, 29, 29, 16, 16, 16, 168 16, 16, 29, 29, 16, 16, 16, 16, 169 16, 29, 29, 29, 29, 28, 16, 29, 170 29, 28, 16, 29, 29, 28, 16, 29, 171 29, 28, 16, 29, 29, 28, 10, 10, 172 6, 2, 1, 2, 2, 1, 6, 11, 173 8, 6, 8, 11, 12, 12, 11, 10, 174 12, 11, 10, 12, 11, 10, 12, 11, 175 10, 12, 16, 28, 11, 29, 29, 16, 176 16, 16, 16, 16, 29, 29, 16, 16, 177 16, 16, 16, 29, 29, 16, 16, 16, 178 16, 16, 29, 29, 16, 16, 16, 16, 179 11, 16, 29, 29, 28, 16, 29, 29, 180 28, 16, 29, 29, 28, 16, 29, 29, 181 28, 16, 29, 29, 28, 10, 10, 6, 182 2, 1, 2, 2, 1, 6, 11, 8, 183 6, 8, 11, 12, 12, 11, 10, 12, 184 11, 10, 12, 11, 10, 12, 11, 10, 185 12, 16, 28, 11, 29, 29, 16, 16, 186 16, 16, 16, 29, 29, 16, 16, 16, 187 16, 16, 29, 29, 16, 16, 16, 16, 188 16, 29, 29, 16, 16, 16, 16, 16, 189 11, 29, 11, 29, 29, 28, 16, 29, 190 29, 28, 16, 29, 29, 28, 16, 29, 191 29, 28, 16, 29, 29, 28, 10, 10, 192 6, 2, 1, 2, 2, 1, 6, 11, 193 8, 6, 8, 11, 12, 12, 11, 10, 194 12, 11, 10, 12, 11, 10, 12, 11, 195 10, 12, 16, 28, 11, 29, 29, 16, 196 16, 16, 16, 16, 29, 29, 16, 16, 197 16, 16, 16, 29, 29, 16, 16, 16, 198 16, 16, 29, 29, 16, 16, 16, 16, 199 16, 29, 31, 29, 31, 11, 6, 2, 200 1, 2, 2, 1, 6, 16, 29, 29, 201 28, 29, 29, 16, 12, 11, 10, 12, 202 11, 10, 12, 11, 10, 12, 11, 10, 203 11, 8, 6, 8, 11, 16, 8, 6, 204 6, 2, 1, 2, 2, 1, 6 205 }; 206 207 static const short _indic_syllable_machine_index_offsets[] = { 208 0, 2, 19, 26, 31, 35, 37, 42, 209 46, 48, 53, 57, 59, 64, 68, 70, 210 76, 78, 80, 86, 88, 90, 96, 98, 211 100, 106, 108, 110, 122, 134, 146, 158, 212 170, 182, 194, 206, 218, 230, 232, 249, 213 256, 261, 265, 267, 272, 276, 278, 283, 214 287, 289, 294, 298, 300, 306, 308, 310, 215 316, 318, 320, 326, 328, 330, 336, 338, 216 340, 352, 364, 376, 388, 400, 412, 424, 217 436, 448, 460, 462, 479, 486, 491, 495, 218 497, 502, 506, 508, 513, 517, 519, 524, 219 528, 530, 536, 538, 540, 546, 548, 550, 220 556, 558, 560, 566, 568, 570, 582, 594, 221 606, 618, 630, 642, 654, 666, 678, 680, 222 697, 704, 709, 713, 715, 720, 724, 726, 223 731, 735, 737, 742, 746, 748, 754, 756, 224 758, 764, 766, 768, 774, 776, 778, 784, 225 786, 788, 800, 812, 824, 836, 848, 860, 226 872, 884, 896, 908, 920, 925, 937, 949, 227 954, 958, 963, 967, 969, 974, 978, 980, 228 985, 989, 991, 993, 1010, 1017, 1023, 1025, 229 1027, 1033, 1035, 1037, 1043, 1045, 1047, 1053, 230 1055, 1057, 1059, 1091, 1121, 1151, 1180, 1197, 231 1227, 1257, 1286, 1303, 1333, 1363, 1392, 1409, 232 1439, 1469, 1498, 1515, 1545, 1575, 1604, 1615, 233 1626, 1633, 1636, 1638, 1641, 1644, 1646, 1653, 234 1665, 1674, 1681, 1690, 1702, 1715, 1728, 1740, 235 1751, 1764, 1776, 1787, 1800, 1812, 1823, 1836, 236 1848, 1859, 1872, 1889, 1918, 1930, 1960, 1990, 237 2007, 2024, 2041, 2058, 2075, 2105, 2135, 2152, 238 2169, 2186, 2203, 2220, 2250, 2280, 2297, 2314, 239 2331, 2348, 2365, 2395, 2425, 2442, 2459, 2476, 240 2493, 2510, 2540, 2570, 2600, 2630, 2659, 2676, 241 2706, 2736, 2765, 2782, 2812, 2842, 2871, 2888, 242 2918, 2948, 2977, 2994, 3024, 3054, 3083, 3094, 243 3105, 3112, 3115, 3117, 3120, 3123, 3125, 3132, 244 3144, 3153, 3160, 3169, 3181, 3194, 3207, 3219, 245 3230, 3243, 3255, 3266, 3279, 3291, 3302, 3315, 246 3327, 3338, 3351, 3368, 3397, 3409, 3439, 3469, 247 3486, 3503, 3520, 3537, 3554, 3584, 3614, 3631, 248 3648, 3665, 3682, 3699, 3729, 3759, 3776, 3793, 249 3810, 3827, 3844, 3874, 3904, 3921, 3938, 3955, 250 3972, 3984, 4001, 4031, 4061, 4090, 4107, 4137, 251 4167, 4196, 4213, 4243, 4273, 4302, 4319, 4349, 252 4379, 4408, 4425, 4455, 4485, 4514, 4525, 4536, 253 4543, 4546, 4548, 4551, 4554, 4556, 4563, 4575, 254 4584, 4591, 4600, 4612, 4625, 4638, 4650, 4661, 255 4674, 4686, 4697, 4710, 4722, 4733, 4746, 4758, 256 4769, 4782, 4799, 4828, 4840, 4870, 4900, 4917, 257 4934, 4951, 4968, 4985, 5015, 5045, 5062, 5079, 258 5096, 5113, 5130, 5160, 5190, 5207, 5224, 5241, 259 5258, 5275, 5305, 5335, 5352, 5369, 5386, 5403, 260 5420, 5432, 5462, 5474, 5504, 5534, 5563, 5580, 261 5610, 5640, 5669, 5686, 5716, 5746, 5775, 5792, 262 5822, 5852, 5881, 5898, 5928, 5958, 5987, 5998, 263 6009, 6016, 6019, 6021, 6024, 6027, 6029, 6036, 264 6048, 6057, 6064, 6073, 6085, 6098, 6111, 6123, 265 6134, 6147, 6159, 6170, 6183, 6195, 6206, 6219, 266 6231, 6242, 6255, 6272, 6301, 6313, 6343, 6373, 267 6390, 6407, 6424, 6441, 6458, 6488, 6518, 6535, 268 6552, 6569, 6586, 6603, 6633, 6663, 6680, 6697, 269 6714, 6731, 6748, 6778, 6808, 6825, 6842, 6859, 270 6876, 6893, 6923, 6955, 6985, 7017, 7029, 7036, 271 7039, 7041, 7044, 7047, 7049, 7056, 7073, 7103, 272 7133, 7162, 7192, 7222, 7239, 7252, 7264, 7275, 273 7288, 7300, 7311, 7324, 7336, 7347, 7360, 7372, 274 7383, 7395, 7404, 7411, 7420, 7432, 7449, 7458, 275 7465, 7472, 7475, 7477, 7480, 7483, 7485 276 }; 277 278 static const short _indic_syllable_machine_indicies[] = { 279 1, 0, 2, 3, 0, 0, 0, 0, 280 0, 0, 0, 0, 0, 0, 0, 0, 281 0, 2, 0, 1, 0, 0, 0, 0, 282 4, 0, 5, 5, 6, 1, 0, 7, 283 7, 6, 0, 6, 0, 8, 8, 9, 284 1, 0, 10, 10, 9, 0, 9, 0, 285 11, 11, 12, 1, 0, 13, 13, 12, 286 0, 12, 0, 14, 14, 15, 1, 0, 287 16, 16, 15, 0, 15, 0, 17, 0, 288 0, 0, 1, 0, 18, 0, 19, 0, 289 20, 14, 14, 15, 1, 0, 21, 0, 290 22, 0, 23, 11, 11, 12, 1, 0, 291 24, 0, 25, 0, 26, 8, 8, 9, 292 1, 0, 27, 0, 28, 0, 29, 5, 293 5, 6, 1, 0, 0, 0, 0, 0, 294 29, 0, 29, 5, 5, 6, 1, 0, 295 0, 0, 0, 30, 29, 0, 31, 5, 296 5, 6, 1, 0, 0, 0, 0, 0, 297 31, 0, 31, 5, 5, 6, 1, 0, 298 0, 0, 0, 32, 31, 0, 33, 5, 299 5, 6, 1, 0, 0, 0, 0, 0, 300 33, 0, 33, 5, 5, 6, 1, 0, 301 0, 0, 0, 34, 33, 0, 35, 5, 302 5, 6, 1, 0, 0, 0, 0, 0, 303 35, 0, 35, 5, 5, 6, 1, 0, 304 0, 0, 0, 36, 35, 0, 37, 5, 305 5, 6, 1, 0, 0, 0, 0, 0, 306 37, 0, 37, 5, 5, 6, 1, 0, 307 0, 0, 0, 38, 37, 0, 40, 39, 308 41, 42, 39, 39, 39, 39, 39, 39, 309 39, 39, 39, 39, 39, 39, 39, 41, 310 39, 40, 39, 39, 39, 39, 43, 39, 311 44, 44, 45, 40, 39, 46, 46, 45, 312 39, 45, 39, 47, 47, 48, 40, 39, 313 49, 49, 48, 39, 48, 39, 50, 50, 314 51, 40, 39, 52, 52, 51, 39, 51, 315 39, 53, 53, 54, 40, 39, 55, 55, 316 54, 39, 54, 39, 56, 39, 39, 39, 317 40, 39, 57, 39, 58, 39, 59, 53, 318 53, 54, 40, 39, 60, 39, 61, 39, 319 62, 50, 50, 51, 40, 39, 63, 39, 320 64, 39, 65, 47, 47, 48, 40, 39, 321 66, 39, 67, 39, 68, 44, 44, 45, 322 40, 39, 39, 39, 39, 39, 68, 39, 323 68, 44, 44, 45, 40, 39, 39, 39, 324 39, 69, 68, 39, 70, 44, 44, 45, 325 40, 39, 39, 39, 39, 39, 70, 39, 326 70, 44, 44, 45, 40, 39, 39, 39, 327 39, 71, 70, 39, 72, 44, 44, 45, 328 40, 39, 39, 39, 39, 39, 72, 39, 329 72, 44, 44, 45, 40, 39, 39, 39, 330 39, 73, 72, 39, 74, 44, 44, 45, 331 40, 39, 39, 39, 39, 39, 74, 39, 332 74, 44, 44, 45, 40, 39, 39, 39, 333 39, 75, 74, 39, 76, 44, 44, 45, 334 40, 39, 39, 39, 39, 39, 76, 39, 335 76, 44, 44, 45, 40, 39, 39, 39, 336 39, 77, 76, 39, 79, 78, 80, 81, 337 78, 78, 78, 78, 78, 78, 78, 78, 338 78, 78, 78, 78, 78, 80, 78, 79, 339 78, 78, 78, 78, 82, 78, 83, 83, 340 84, 79, 78, 86, 86, 84, 85, 84, 341 85, 87, 87, 88, 79, 78, 89, 89, 342 88, 78, 88, 78, 90, 90, 91, 79, 343 78, 92, 92, 91, 78, 91, 78, 93, 344 93, 94, 79, 78, 95, 95, 94, 78, 345 94, 78, 96, 78, 78, 78, 79, 78, 346 97, 78, 98, 78, 99, 93, 93, 94, 347 79, 78, 100, 78, 101, 78, 102, 90, 348 90, 91, 79, 78, 103, 78, 104, 78, 349 105, 87, 87, 88, 79, 78, 106, 78, 350 107, 78, 108, 83, 83, 84, 79, 78, 351 78, 78, 78, 78, 108, 78, 108, 83, 352 83, 84, 79, 78, 78, 78, 78, 109, 353 108, 78, 110, 83, 83, 84, 79, 78, 354 78, 78, 78, 78, 110, 78, 110, 83, 355 83, 84, 79, 78, 78, 78, 78, 111, 356 110, 78, 112, 83, 83, 84, 79, 78, 357 78, 78, 78, 78, 112, 78, 112, 83, 358 83, 84, 79, 78, 78, 78, 78, 113, 359 112, 78, 114, 83, 83, 84, 79, 78, 360 78, 78, 78, 78, 114, 78, 114, 83, 361 83, 84, 79, 78, 78, 78, 78, 115, 362 114, 78, 116, 83, 83, 84, 79, 78, 363 78, 78, 78, 78, 116, 78, 118, 117, 364 119, 120, 117, 117, 117, 117, 117, 117, 365 117, 117, 117, 117, 117, 117, 117, 119, 366 117, 118, 117, 117, 117, 117, 121, 117, 367 122, 122, 123, 118, 117, 124, 124, 123, 368 117, 123, 117, 125, 125, 126, 118, 117, 369 127, 127, 126, 117, 126, 117, 128, 128, 370 129, 118, 117, 130, 130, 129, 117, 129, 371 117, 131, 131, 132, 118, 117, 133, 133, 372 132, 117, 132, 117, 134, 117, 117, 117, 373 118, 117, 135, 117, 136, 117, 137, 131, 374 131, 132, 118, 117, 138, 117, 139, 117, 375 140, 128, 128, 129, 118, 117, 141, 117, 376 142, 117, 143, 125, 125, 126, 118, 117, 377 144, 117, 145, 117, 146, 122, 122, 123, 378 118, 117, 117, 117, 117, 117, 146, 117, 379 146, 122, 122, 123, 118, 117, 117, 117, 380 117, 147, 146, 117, 148, 122, 122, 123, 381 118, 117, 117, 117, 117, 117, 148, 117, 382 148, 122, 122, 123, 118, 117, 117, 117, 383 117, 149, 148, 117, 150, 122, 122, 123, 384 118, 117, 117, 117, 117, 117, 150, 117, 385 150, 122, 122, 123, 118, 117, 117, 117, 386 117, 151, 150, 117, 152, 122, 122, 123, 387 118, 117, 117, 117, 117, 117, 152, 117, 388 152, 122, 122, 123, 118, 117, 117, 117, 389 117, 153, 152, 117, 154, 122, 122, 123, 390 118, 117, 117, 117, 117, 117, 154, 117, 391 154, 122, 122, 123, 118, 117, 117, 117, 392 117, 155, 154, 117, 116, 83, 83, 84, 393 79, 78, 78, 78, 78, 156, 116, 78, 394 86, 86, 84, 1, 0, 114, 83, 83, 395 84, 157, 0, 0, 0, 0, 0, 114, 396 0, 114, 83, 83, 84, 157, 0, 0, 397 0, 0, 158, 114, 0, 159, 159, 160, 398 1, 0, 7, 7, 160, 0, 161, 161, 399 162, 157, 0, 163, 163, 162, 0, 162, 400 0, 164, 164, 165, 157, 0, 166, 166, 401 165, 0, 165, 0, 167, 167, 168, 157, 402 0, 169, 169, 168, 0, 168, 0, 157, 403 0, 170, 171, 0, 0, 0, 0, 0, 404 0, 0, 0, 0, 0, 0, 0, 0, 405 170, 0, 157, 0, 0, 0, 0, 172, 406 0, 173, 0, 0, 0, 157, 0, 174, 407 0, 175, 0, 176, 167, 167, 168, 157, 408 0, 177, 0, 178, 0, 179, 164, 164, 409 165, 157, 0, 180, 0, 181, 0, 182, 410 161, 161, 162, 157, 0, 183, 0, 184, 411 0, 186, 185, 188, 189, 190, 191, 192, 412 193, 84, 79, 194, 195, 196, 196, 156, 413 197, 198, 199, 200, 201, 187, 187, 187, 414 187, 187, 187, 187, 187, 187, 187, 187, 415 187, 202, 187, 204, 205, 206, 207, 6, 416 1, 208, 209, 203, 203, 38, 210, 203, 417 203, 211, 203, 203, 203, 203, 203, 203, 418 203, 203, 203, 203, 203, 203, 203, 212, 419 203, 213, 205, 214, 214, 6, 1, 208, 420 209, 203, 203, 203, 210, 203, 203, 211, 421 203, 203, 203, 203, 203, 203, 203, 203, 422 203, 203, 203, 203, 203, 212, 203, 205, 423 214, 214, 6, 1, 208, 209, 203, 203, 424 203, 210, 203, 203, 211, 203, 203, 203, 425 203, 203, 203, 203, 203, 203, 203, 203, 426 203, 203, 212, 203, 215, 203, 203, 203, 427 19, 216, 203, 1, 208, 209, 203, 203, 428 203, 217, 203, 215, 203, 218, 219, 220, 429 221, 6, 1, 208, 209, 203, 203, 36, 430 222, 203, 203, 211, 203, 203, 203, 203, 431 203, 203, 203, 203, 203, 203, 203, 203, 432 203, 212, 203, 223, 219, 224, 224, 6, 433 1, 208, 209, 203, 203, 203, 222, 203, 434 203, 211, 203, 203, 203, 203, 203, 203, 435 203, 203, 203, 203, 203, 203, 203, 212, 436 203, 219, 224, 224, 6, 1, 208, 209, 437 203, 203, 203, 222, 203, 203, 211, 203, 438 203, 203, 203, 203, 203, 203, 203, 203, 439 203, 203, 203, 203, 212, 203, 225, 203, 440 203, 203, 19, 226, 203, 1, 208, 209, 441 203, 203, 203, 217, 203, 225, 203, 227, 442 228, 229, 230, 6, 1, 208, 209, 203, 443 203, 34, 231, 203, 203, 211, 203, 203, 444 203, 203, 203, 203, 203, 203, 203, 203, 445 203, 203, 203, 212, 203, 232, 228, 233, 446 233, 6, 1, 208, 209, 203, 203, 203, 447 231, 203, 203, 211, 203, 203, 203, 203, 448 203, 203, 203, 203, 203, 203, 203, 203, 449 203, 212, 203, 228, 233, 233, 6, 1, 450 208, 209, 203, 203, 203, 231, 203, 203, 451 211, 203, 203, 203, 203, 203, 203, 203, 452 203, 203, 203, 203, 203, 203, 212, 203, 453 234, 203, 203, 203, 19, 235, 203, 1, 454 208, 209, 203, 203, 203, 217, 203, 234, 455 203, 236, 237, 238, 239, 6, 1, 208, 456 209, 203, 203, 32, 240, 203, 203, 211, 457 203, 203, 203, 203, 203, 203, 203, 203, 458 203, 203, 203, 203, 203, 212, 203, 241, 459 237, 242, 242, 6, 1, 208, 209, 203, 460 203, 203, 240, 203, 203, 211, 203, 203, 461 203, 203, 203, 203, 203, 203, 203, 203, 462 203, 203, 203, 212, 203, 237, 242, 242, 463 6, 1, 208, 209, 203, 203, 203, 240, 464 203, 203, 211, 203, 203, 203, 203, 203, 465 203, 203, 203, 203, 203, 203, 203, 203, 466 212, 203, 243, 203, 203, 203, 19, 244, 467 203, 1, 208, 209, 203, 203, 203, 217, 468 203, 243, 203, 245, 246, 247, 248, 6, 469 1, 208, 209, 203, 203, 30, 249, 203, 470 203, 211, 203, 203, 203, 203, 203, 203, 471 203, 203, 203, 203, 203, 203, 203, 212, 472 203, 250, 246, 251, 251, 6, 1, 208, 473 209, 203, 203, 203, 249, 203, 203, 211, 474 203, 203, 203, 203, 203, 203, 203, 203, 475 203, 203, 203, 203, 203, 212, 203, 246, 476 251, 251, 6, 1, 208, 209, 203, 203, 477 203, 249, 203, 203, 211, 203, 203, 203, 478 203, 203, 203, 203, 203, 203, 203, 203, 479 203, 203, 212, 203, 19, 252, 203, 1, 480 208, 209, 203, 203, 203, 217, 203, 253, 481 253, 203, 1, 208, 209, 203, 203, 203, 482 217, 203, 254, 203, 203, 255, 208, 209, 483 203, 208, 209, 203, 256, 203, 208, 257, 484 203, 208, 258, 203, 208, 203, 254, 203, 485 203, 203, 208, 209, 203, 259, 203, 260, 486 261, 203, 1, 208, 209, 203, 203, 4, 487 203, 3, 203, 253, 253, 203, 1, 208, 488 209, 203, 253, 253, 203, 1, 208, 209, 489 203, 259, 203, 253, 253, 203, 1, 208, 490 209, 203, 259, 203, 260, 253, 203, 1, 491 208, 209, 203, 203, 4, 203, 19, 203, 492 262, 262, 6, 1, 208, 209, 203, 203, 493 203, 217, 203, 263, 28, 264, 265, 9, 494 1, 208, 209, 203, 203, 203, 217, 203, 495 28, 264, 265, 9, 1, 208, 209, 203, 496 203, 203, 217, 203, 264, 264, 9, 1, 497 208, 209, 203, 203, 203, 217, 203, 266, 498 25, 267, 268, 12, 1, 208, 209, 203, 499 203, 203, 217, 203, 25, 267, 268, 12, 500 1, 208, 209, 203, 203, 203, 217, 203, 501 267, 267, 12, 1, 208, 209, 203, 203, 502 203, 217, 203, 269, 22, 270, 271, 15, 503 1, 208, 209, 203, 203, 203, 217, 203, 504 22, 270, 271, 15, 1, 208, 209, 203, 505 203, 203, 217, 203, 270, 270, 15, 1, 506 208, 209, 203, 203, 203, 217, 203, 272, 507 19, 253, 273, 203, 1, 208, 209, 203, 508 203, 203, 217, 203, 19, 253, 273, 203, 509 1, 208, 209, 203, 203, 203, 217, 203, 510 253, 274, 203, 1, 208, 209, 203, 203, 511 203, 217, 203, 19, 203, 253, 253, 203, 512 1, 208, 209, 203, 203, 203, 217, 203, 513 2, 3, 203, 203, 19, 252, 203, 1, 514 208, 209, 203, 203, 203, 217, 203, 2, 515 203, 246, 251, 251, 6, 1, 208, 209, 516 203, 203, 203, 249, 203, 203, 203, 203, 517 203, 203, 203, 203, 203, 203, 203, 203, 518 203, 203, 203, 203, 212, 203, 246, 251, 519 251, 6, 1, 208, 209, 203, 203, 203, 520 249, 203, 245, 246, 251, 251, 6, 1, 521 208, 209, 203, 203, 203, 249, 203, 203, 522 211, 203, 203, 203, 203, 203, 203, 203, 523 203, 203, 203, 203, 203, 203, 212, 203, 524 245, 246, 247, 251, 6, 1, 208, 209, 525 203, 203, 30, 249, 203, 203, 211, 203, 526 203, 203, 203, 203, 203, 203, 203, 203, 527 203, 203, 203, 203, 212, 203, 243, 203, 528 275, 203, 262, 262, 6, 1, 208, 209, 529 203, 203, 203, 217, 203, 243, 203, 243, 530 203, 203, 203, 253, 253, 203, 1, 208, 531 209, 203, 203, 203, 217, 203, 243, 203, 532 243, 203, 203, 203, 253, 276, 203, 1, 533 208, 209, 203, 203, 203, 217, 203, 243, 534 203, 243, 203, 275, 203, 253, 253, 203, 535 1, 208, 209, 203, 203, 203, 217, 203, 536 243, 203, 243, 3, 203, 203, 19, 244, 537 203, 1, 208, 209, 203, 203, 203, 217, 538 203, 243, 203, 236, 237, 242, 242, 6, 539 1, 208, 209, 203, 203, 203, 240, 203, 540 203, 211, 203, 203, 203, 203, 203, 203, 541 203, 203, 203, 203, 203, 203, 203, 212, 542 203, 236, 237, 238, 242, 6, 1, 208, 543 209, 203, 203, 32, 240, 203, 203, 211, 544 203, 203, 203, 203, 203, 203, 203, 203, 545 203, 203, 203, 203, 203, 212, 203, 234, 546 203, 277, 203, 262, 262, 6, 1, 208, 547 209, 203, 203, 203, 217, 203, 234, 203, 548 234, 203, 203, 203, 253, 253, 203, 1, 549 208, 209, 203, 203, 203, 217, 203, 234, 550 203, 234, 203, 203, 203, 253, 278, 203, 551 1, 208, 209, 203, 203, 203, 217, 203, 552 234, 203, 234, 203, 277, 203, 253, 253, 553 203, 1, 208, 209, 203, 203, 203, 217, 554 203, 234, 203, 234, 3, 203, 203, 19, 555 235, 203, 1, 208, 209, 203, 203, 203, 556 217, 203, 234, 203, 227, 228, 233, 233, 557 6, 1, 208, 209, 203, 203, 203, 231, 558 203, 203, 211, 203, 203, 203, 203, 203, 559 203, 203, 203, 203, 203, 203, 203, 203, 560 212, 203, 227, 228, 229, 233, 6, 1, 561 208, 209, 203, 203, 34, 231, 203, 203, 562 211, 203, 203, 203, 203, 203, 203, 203, 563 203, 203, 203, 203, 203, 203, 212, 203, 564 225, 203, 279, 203, 262, 262, 6, 1, 565 208, 209, 203, 203, 203, 217, 203, 225, 566 203, 225, 203, 203, 203, 253, 253, 203, 567 1, 208, 209, 203, 203, 203, 217, 203, 568 225, 203, 225, 203, 203, 203, 253, 280, 569 203, 1, 208, 209, 203, 203, 203, 217, 570 203, 225, 203, 225, 203, 279, 203, 253, 571 253, 203, 1, 208, 209, 203, 203, 203, 572 217, 203, 225, 203, 225, 3, 203, 203, 573 19, 226, 203, 1, 208, 209, 203, 203, 574 203, 217, 203, 225, 203, 218, 219, 224, 575 224, 6, 1, 208, 209, 203, 203, 203, 576 222, 203, 203, 211, 203, 203, 203, 203, 577 203, 203, 203, 203, 203, 203, 203, 203, 578 203, 212, 203, 218, 219, 220, 224, 6, 579 1, 208, 209, 203, 203, 36, 222, 203, 580 203, 211, 203, 203, 203, 203, 203, 203, 581 203, 203, 203, 203, 203, 203, 203, 212, 582 203, 215, 203, 281, 203, 262, 262, 6, 583 1, 208, 209, 203, 203, 203, 217, 203, 584 215, 203, 215, 203, 203, 203, 253, 253, 585 203, 1, 208, 209, 203, 203, 203, 217, 586 203, 215, 203, 215, 203, 203, 203, 253, 587 282, 203, 1, 208, 209, 203, 203, 203, 588 217, 203, 215, 203, 215, 203, 281, 203, 589 253, 253, 203, 1, 208, 209, 203, 203, 590 203, 217, 203, 215, 203, 215, 3, 203, 591 203, 19, 216, 203, 1, 208, 209, 203, 592 203, 203, 217, 203, 215, 203, 204, 205, 593 214, 214, 6, 1, 208, 209, 203, 203, 594 203, 210, 203, 203, 211, 203, 203, 203, 595 203, 203, 203, 203, 203, 203, 203, 203, 596 203, 203, 212, 203, 204, 205, 206, 214, 597 6, 1, 208, 209, 203, 203, 38, 210, 598 203, 203, 211, 203, 203, 203, 203, 203, 599 203, 203, 203, 203, 203, 203, 203, 203, 600 212, 203, 284, 285, 286, 287, 45, 40, 601 288, 289, 283, 283, 77, 290, 283, 283, 602 291, 283, 283, 283, 283, 283, 283, 283, 603 283, 283, 283, 283, 283, 283, 292, 283, 604 293, 285, 294, 287, 45, 40, 288, 289, 605 283, 283, 283, 290, 283, 283, 291, 283, 606 283, 283, 283, 283, 283, 283, 283, 283, 607 283, 283, 283, 283, 292, 283, 285, 294, 608 287, 45, 40, 288, 289, 283, 283, 283, 609 290, 283, 283, 291, 283, 283, 283, 283, 610 283, 283, 283, 283, 283, 283, 283, 283, 611 283, 292, 283, 295, 283, 283, 283, 58, 612 296, 283, 40, 288, 289, 283, 283, 283, 613 297, 283, 295, 283, 298, 299, 300, 301, 614 45, 40, 288, 289, 283, 283, 75, 302, 615 283, 283, 291, 283, 283, 283, 283, 283, 616 283, 283, 283, 283, 283, 283, 283, 283, 617 292, 283, 303, 299, 304, 304, 45, 40, 618 288, 289, 283, 283, 283, 302, 283, 283, 619 291, 283, 283, 283, 283, 283, 283, 283, 620 283, 283, 283, 283, 283, 283, 292, 283, 621 299, 304, 304, 45, 40, 288, 289, 283, 622 283, 283, 302, 283, 283, 291, 283, 283, 623 283, 283, 283, 283, 283, 283, 283, 283, 624 283, 283, 283, 292, 283, 305, 283, 283, 625 283, 58, 306, 283, 40, 288, 289, 283, 626 283, 283, 297, 283, 305, 283, 307, 308, 627 309, 310, 45, 40, 288, 289, 283, 283, 628 73, 311, 283, 283, 291, 283, 283, 283, 629 283, 283, 283, 283, 283, 283, 283, 283, 630 283, 283, 292, 283, 312, 308, 313, 313, 631 45, 40, 288, 289, 283, 283, 283, 311, 632 283, 283, 291, 283, 283, 283, 283, 283, 633 283, 283, 283, 283, 283, 283, 283, 283, 634 292, 283, 308, 313, 313, 45, 40, 288, 635 289, 283, 283, 283, 311, 283, 283, 291, 636 283, 283, 283, 283, 283, 283, 283, 283, 637 283, 283, 283, 283, 283, 292, 283, 314, 638 283, 283, 283, 58, 315, 283, 40, 288, 639 289, 283, 283, 283, 297, 283, 314, 283, 640 316, 317, 318, 319, 45, 40, 288, 289, 641 283, 283, 71, 320, 283, 283, 291, 283, 642 283, 283, 283, 283, 283, 283, 283, 283, 643 283, 283, 283, 283, 292, 283, 321, 317, 644 322, 322, 45, 40, 288, 289, 283, 283, 645 283, 320, 283, 283, 291, 283, 283, 283, 646 283, 283, 283, 283, 283, 283, 283, 283, 647 283, 283, 292, 283, 317, 322, 322, 45, 648 40, 288, 289, 283, 283, 283, 320, 283, 649 283, 291, 283, 283, 283, 283, 283, 283, 650 283, 283, 283, 283, 283, 283, 283, 292, 651 283, 323, 283, 283, 283, 58, 324, 283, 652 40, 288, 289, 283, 283, 283, 297, 283, 653 323, 283, 325, 326, 327, 328, 45, 40, 654 288, 289, 283, 283, 69, 329, 283, 283, 655 291, 283, 283, 283, 283, 283, 283, 283, 656 283, 283, 283, 283, 283, 283, 292, 283, 657 330, 326, 331, 331, 45, 40, 288, 289, 658 283, 283, 283, 329, 283, 283, 291, 283, 659 283, 283, 283, 283, 283, 283, 283, 283, 660 283, 283, 283, 283, 292, 283, 326, 331, 661 331, 45, 40, 288, 289, 283, 283, 283, 662 329, 283, 283, 291, 283, 283, 283, 283, 663 283, 283, 283, 283, 283, 283, 283, 283, 664 283, 292, 283, 58, 332, 283, 40, 288, 665 289, 283, 283, 283, 297, 283, 333, 333, 666 283, 40, 288, 289, 283, 283, 283, 297, 667 283, 334, 283, 283, 335, 288, 289, 283, 668 288, 289, 283, 336, 283, 288, 337, 283, 669 288, 338, 283, 288, 283, 334, 283, 283, 670 283, 288, 289, 283, 339, 283, 340, 341, 671 283, 40, 288, 289, 283, 283, 43, 283, 672 42, 283, 333, 333, 283, 40, 288, 289, 673 283, 333, 333, 283, 40, 288, 289, 283, 674 339, 283, 333, 333, 283, 40, 288, 289, 675 283, 339, 283, 340, 333, 283, 40, 288, 676 289, 283, 283, 43, 283, 58, 283, 342, 677 342, 45, 40, 288, 289, 283, 283, 283, 678 297, 283, 343, 67, 344, 345, 48, 40, 679 288, 289, 283, 283, 283, 297, 283, 67, 680 344, 345, 48, 40, 288, 289, 283, 283, 681 283, 297, 283, 344, 344, 48, 40, 288, 682 289, 283, 283, 283, 297, 283, 346, 64, 683 347, 348, 51, 40, 288, 289, 283, 283, 684 283, 297, 283, 64, 347, 348, 51, 40, 685 288, 289, 283, 283, 283, 297, 283, 347, 686 347, 51, 40, 288, 289, 283, 283, 283, 687 297, 283, 349, 61, 350, 351, 54, 40, 688 288, 289, 283, 283, 283, 297, 283, 61, 689 350, 351, 54, 40, 288, 289, 283, 283, 690 283, 297, 283, 350, 350, 54, 40, 288, 691 289, 283, 283, 283, 297, 283, 352, 58, 692 333, 353, 283, 40, 288, 289, 283, 283, 693 283, 297, 283, 58, 333, 353, 283, 40, 694 288, 289, 283, 283, 283, 297, 283, 333, 695 354, 283, 40, 288, 289, 283, 283, 283, 696 297, 283, 58, 283, 333, 333, 283, 40, 697 288, 289, 283, 283, 283, 297, 283, 41, 698 42, 283, 283, 58, 332, 283, 40, 288, 699 289, 283, 283, 283, 297, 283, 41, 283, 700 326, 331, 331, 45, 40, 288, 289, 283, 701 283, 283, 329, 283, 283, 283, 283, 283, 702 283, 283, 283, 283, 283, 283, 283, 283, 703 283, 283, 283, 292, 283, 326, 331, 331, 704 45, 40, 288, 289, 283, 283, 283, 329, 705 283, 325, 326, 331, 331, 45, 40, 288, 706 289, 283, 283, 283, 329, 283, 283, 291, 707 283, 283, 283, 283, 283, 283, 283, 283, 708 283, 283, 283, 283, 283, 292, 283, 325, 709 326, 327, 331, 45, 40, 288, 289, 283, 710 283, 69, 329, 283, 283, 291, 283, 283, 711 283, 283, 283, 283, 283, 283, 283, 283, 712 283, 283, 283, 292, 283, 323, 283, 355, 713 283, 342, 342, 45, 40, 288, 289, 283, 714 283, 283, 297, 283, 323, 283, 323, 283, 715 283, 283, 333, 333, 283, 40, 288, 289, 716 283, 283, 283, 297, 283, 323, 283, 323, 717 283, 283, 283, 333, 356, 283, 40, 288, 718 289, 283, 283, 283, 297, 283, 323, 283, 719 323, 283, 355, 283, 333, 333, 283, 40, 720 288, 289, 283, 283, 283, 297, 283, 323, 721 283, 323, 42, 283, 283, 58, 324, 283, 722 40, 288, 289, 283, 283, 283, 297, 283, 723 323, 283, 316, 317, 322, 322, 45, 40, 724 288, 289, 283, 283, 283, 320, 283, 283, 725 291, 283, 283, 283, 283, 283, 283, 283, 726 283, 283, 283, 283, 283, 283, 292, 283, 727 316, 317, 318, 322, 45, 40, 288, 289, 728 283, 283, 71, 320, 283, 283, 291, 283, 729 283, 283, 283, 283, 283, 283, 283, 283, 730 283, 283, 283, 283, 292, 283, 314, 283, 731 357, 283, 342, 342, 45, 40, 288, 289, 732 283, 283, 283, 297, 283, 314, 283, 314, 733 283, 283, 283, 333, 333, 283, 40, 288, 734 289, 283, 283, 283, 297, 283, 314, 283, 735 314, 283, 283, 283, 333, 358, 283, 40, 736 288, 289, 283, 283, 283, 297, 283, 314, 737 283, 314, 283, 357, 283, 333, 333, 283, 738 40, 288, 289, 283, 283, 283, 297, 283, 739 314, 283, 314, 42, 283, 283, 58, 315, 740 283, 40, 288, 289, 283, 283, 283, 297, 741 283, 314, 283, 307, 308, 313, 313, 45, 742 40, 288, 289, 283, 283, 283, 311, 283, 743 283, 291, 283, 283, 283, 283, 283, 283, 744 283, 283, 283, 283, 283, 283, 283, 292, 745 283, 307, 308, 309, 313, 45, 40, 288, 746 289, 283, 283, 73, 311, 283, 283, 291, 747 283, 283, 283, 283, 283, 283, 283, 283, 748 283, 283, 283, 283, 283, 292, 283, 305, 749 283, 359, 283, 342, 342, 45, 40, 288, 750 289, 283, 283, 283, 297, 283, 305, 283, 751 305, 283, 283, 283, 333, 333, 283, 40, 752 288, 289, 283, 283, 283, 297, 283, 305, 753 283, 305, 283, 283, 283, 333, 360, 283, 754 40, 288, 289, 283, 283, 283, 297, 283, 755 305, 283, 305, 283, 359, 283, 333, 333, 756 283, 40, 288, 289, 283, 283, 283, 297, 757 283, 305, 283, 305, 42, 283, 283, 58, 758 306, 283, 40, 288, 289, 283, 283, 283, 759 297, 283, 305, 283, 298, 299, 304, 304, 760 45, 40, 288, 289, 283, 283, 283, 302, 761 283, 283, 291, 283, 283, 283, 283, 283, 762 283, 283, 283, 283, 283, 283, 283, 283, 763 292, 283, 298, 299, 300, 304, 45, 40, 764 288, 289, 283, 283, 75, 302, 283, 283, 765 291, 283, 283, 283, 283, 283, 283, 283, 766 283, 283, 283, 283, 283, 283, 292, 283, 767 295, 283, 361, 283, 342, 342, 45, 40, 768 288, 289, 283, 283, 283, 297, 283, 295, 769 283, 295, 283, 283, 283, 333, 333, 283, 770 40, 288, 289, 283, 283, 283, 297, 283, 771 295, 283, 295, 283, 283, 283, 333, 362, 772 283, 40, 288, 289, 283, 283, 283, 297, 773 283, 295, 283, 295, 283, 361, 283, 333, 774 333, 283, 40, 288, 289, 283, 283, 283, 775 297, 283, 295, 283, 76, 44, 44, 45, 776 40, 283, 283, 283, 283, 283, 76, 283, 777 295, 42, 283, 283, 58, 296, 283, 40, 778 288, 289, 283, 283, 283, 297, 283, 295, 779 283, 284, 285, 294, 287, 45, 40, 288, 780 289, 283, 283, 283, 290, 283, 283, 291, 781 283, 283, 283, 283, 283, 283, 283, 283, 782 283, 283, 283, 283, 283, 292, 283, 364, 783 191, 365, 365, 84, 79, 194, 195, 363, 784 363, 363, 197, 363, 363, 200, 363, 363, 785 363, 363, 363, 363, 363, 363, 363, 363, 786 363, 363, 363, 202, 363, 191, 365, 365, 787 84, 79, 194, 195, 363, 363, 363, 197, 788 363, 363, 200, 363, 363, 363, 363, 363, 789 363, 363, 363, 363, 363, 363, 363, 363, 790 202, 363, 366, 363, 363, 363, 98, 367, 791 363, 79, 194, 195, 363, 363, 363, 368, 792 363, 366, 363, 369, 370, 371, 372, 84, 793 79, 194, 195, 363, 363, 115, 373, 363, 794 363, 200, 363, 363, 363, 363, 363, 363, 795 363, 363, 363, 363, 363, 363, 363, 202, 796 363, 374, 370, 375, 375, 84, 79, 194, 797 195, 363, 363, 363, 373, 363, 363, 200, 798 363, 363, 363, 363, 363, 363, 363, 363, 799 363, 363, 363, 363, 363, 202, 363, 370, 800 375, 375, 84, 79, 194, 195, 363, 363, 801 363, 373, 363, 363, 200, 363, 363, 363, 802 363, 363, 363, 363, 363, 363, 363, 363, 803 363, 363, 202, 363, 376, 363, 363, 363, 804 98, 377, 363, 79, 194, 195, 363, 363, 805 363, 368, 363, 376, 363, 378, 379, 380, 806 381, 84, 79, 194, 195, 363, 363, 113, 807 382, 363, 363, 200, 363, 363, 363, 363, 808 363, 363, 363, 363, 363, 363, 363, 363, 809 363, 202, 363, 383, 379, 384, 384, 84, 810 79, 194, 195, 363, 363, 363, 382, 363, 811 363, 200, 363, 363, 363, 363, 363, 363, 812 363, 363, 363, 363, 363, 363, 363, 202, 813 363, 379, 384, 384, 84, 79, 194, 195, 814 363, 363, 363, 382, 363, 363, 200, 363, 815 363, 363, 363, 363, 363, 363, 363, 363, 816 363, 363, 363, 363, 202, 363, 385, 363, 817 363, 363, 98, 386, 363, 79, 194, 195, 818 363, 363, 363, 368, 363, 385, 363, 387, 819 388, 389, 390, 84, 79, 194, 195, 363, 820 363, 111, 391, 363, 363, 200, 363, 363, 821 363, 363, 363, 363, 363, 363, 363, 363, 822 363, 363, 363, 202, 363, 392, 388, 393, 823 393, 84, 79, 194, 195, 363, 363, 363, 824 391, 363, 363, 200, 363, 363, 363, 363, 825 363, 363, 363, 363, 363, 363, 363, 363, 826 363, 202, 363, 388, 393, 393, 84, 79, 827 194, 195, 363, 363, 363, 391, 363, 363, 828 200, 363, 363, 363, 363, 363, 363, 363, 829 363, 363, 363, 363, 363, 363, 202, 363, 830 394, 363, 363, 363, 98, 395, 363, 79, 831 194, 195, 363, 363, 363, 368, 363, 394, 832 363, 396, 397, 398, 399, 84, 79, 194, 833 195, 363, 363, 109, 400, 363, 363, 200, 834 363, 363, 363, 363, 363, 363, 363, 363, 835 363, 363, 363, 363, 363, 202, 363, 401, 836 397, 402, 402, 84, 79, 194, 195, 363, 837 363, 363, 400, 363, 363, 200, 363, 363, 838 363, 363, 363, 363, 363, 363, 363, 363, 839 363, 363, 363, 202, 363, 397, 402, 402, 840 84, 79, 194, 195, 363, 363, 363, 400, 841 363, 363, 200, 363, 363, 363, 363, 363, 842 363, 363, 363, 363, 363, 363, 363, 363, 843 202, 363, 98, 403, 363, 79, 194, 195, 844 363, 363, 363, 368, 363, 404, 404, 363, 845 79, 194, 195, 363, 363, 363, 368, 363, 846 405, 363, 363, 406, 194, 195, 363, 194, 847 195, 363, 407, 363, 194, 408, 363, 194, 848 409, 363, 194, 363, 405, 363, 363, 363, 849 194, 195, 363, 410, 363, 411, 412, 363, 850 79, 194, 195, 363, 363, 82, 363, 81, 851 363, 404, 404, 363, 79, 194, 195, 363, 852 404, 404, 363, 79, 194, 195, 363, 410, 853 363, 404, 404, 363, 79, 194, 195, 363, 854 410, 363, 411, 404, 363, 79, 194, 195, 855 363, 363, 82, 363, 98, 363, 413, 413, 856 84, 79, 194, 195, 363, 363, 363, 368, 857 363, 414, 107, 415, 416, 88, 79, 194, 858 195, 363, 363, 363, 368, 363, 107, 415, 859 416, 88, 79, 194, 195, 363, 363, 363, 860 368, 363, 415, 415, 88, 79, 194, 195, 861 363, 363, 363, 368, 363, 417, 104, 418, 862 419, 91, 79, 194, 195, 363, 363, 363, 863 368, 363, 104, 418, 419, 91, 79, 194, 864 195, 363, 363, 363, 368, 363, 418, 418, 865 91, 79, 194, 195, 363, 363, 363, 368, 866 363, 420, 101, 421, 422, 94, 79, 194, 867 195, 363, 363, 363, 368, 363, 101, 421, 868 422, 94, 79, 194, 195, 363, 363, 363, 869 368, 363, 421, 421, 94, 79, 194, 195, 870 363, 363, 363, 368, 363, 423, 98, 404, 871 424, 363, 79, 194, 195, 363, 363, 363, 872 368, 363, 98, 404, 424, 363, 79, 194, 873 195, 363, 363, 363, 368, 363, 404, 425, 874 363, 79, 194, 195, 363, 363, 363, 368, 875 363, 98, 363, 404, 404, 363, 79, 194, 876 195, 363, 363, 363, 368, 363, 80, 81, 877 363, 363, 98, 403, 363, 79, 194, 195, 878 363, 363, 363, 368, 363, 80, 363, 397, 879 402, 402, 84, 79, 194, 195, 363, 363, 880 363, 400, 363, 363, 363, 363, 363, 363, 881 363, 363, 363, 363, 363, 363, 363, 363, 882 363, 363, 202, 363, 397, 402, 402, 84, 883 79, 194, 195, 363, 363, 363, 400, 363, 884 396, 397, 402, 402, 84, 79, 194, 195, 885 363, 363, 363, 400, 363, 363, 200, 363, 886 363, 363, 363, 363, 363, 363, 363, 363, 887 363, 363, 363, 363, 202, 363, 396, 397, 888 398, 402, 84, 79, 194, 195, 363, 363, 889 109, 400, 363, 363, 200, 363, 363, 363, 890 363, 363, 363, 363, 363, 363, 363, 363, 891 363, 363, 202, 363, 394, 363, 426, 363, 892 413, 413, 84, 79, 194, 195, 363, 363, 893 363, 368, 363, 394, 363, 394, 363, 363, 894 363, 404, 404, 363, 79, 194, 195, 363, 895 363, 363, 368, 363, 394, 363, 394, 363, 896 363, 363, 404, 427, 363, 79, 194, 195, 897 363, 363, 363, 368, 363, 394, 363, 394, 898 363, 426, 363, 404, 404, 363, 79, 194, 899 195, 363, 363, 363, 368, 363, 394, 363, 900 394, 81, 363, 363, 98, 395, 363, 79, 901 194, 195, 363, 363, 363, 368, 363, 394, 902 363, 387, 388, 393, 393, 84, 79, 194, 903 195, 363, 363, 363, 391, 363, 363, 200, 904 363, 363, 363, 363, 363, 363, 363, 363, 905 363, 363, 363, 363, 363, 202, 363, 387, 906 388, 389, 393, 84, 79, 194, 195, 363, 907 363, 111, 391, 363, 363, 200, 363, 363, 908 363, 363, 363, 363, 363, 363, 363, 363, 909 363, 363, 363, 202, 363, 385, 363, 428, 910 363, 413, 413, 84, 79, 194, 195, 363, 911 363, 363, 368, 363, 385, 363, 385, 363, 912 363, 363, 404, 404, 363, 79, 194, 195, 913 363, 363, 363, 368, 363, 385, 363, 385, 914 363, 363, 363, 404, 429, 363, 79, 194, 915 195, 363, 363, 363, 368, 363, 385, 363, 916 385, 363, 428, 363, 404, 404, 363, 79, 917 194, 195, 363, 363, 363, 368, 363, 385, 918 363, 385, 81, 363, 363, 98, 386, 363, 919 79, 194, 195, 363, 363, 363, 368, 363, 920 385, 363, 378, 379, 384, 384, 84, 79, 921 194, 195, 363, 363, 363, 382, 363, 363, 922 200, 363, 363, 363, 363, 363, 363, 363, 923 363, 363, 363, 363, 363, 363, 202, 363, 924 378, 379, 380, 384, 84, 79, 194, 195, 925 363, 363, 113, 382, 363, 363, 200, 363, 926 363, 363, 363, 363, 363, 363, 363, 363, 927 363, 363, 363, 363, 202, 363, 376, 363, 928 430, 363, 413, 413, 84, 79, 194, 195, 929 363, 363, 363, 368, 363, 376, 363, 376, 930 363, 363, 363, 404, 404, 363, 79, 194, 931 195, 363, 363, 363, 368, 363, 376, 363, 932 376, 363, 363, 363, 404, 431, 363, 79, 933 194, 195, 363, 363, 363, 368, 363, 376, 934 363, 376, 363, 430, 363, 404, 404, 363, 935 79, 194, 195, 363, 363, 363, 368, 363, 936 376, 363, 376, 81, 363, 363, 98, 377, 937 363, 79, 194, 195, 363, 363, 363, 368, 938 363, 376, 363, 369, 370, 375, 375, 84, 939 79, 194, 195, 363, 363, 363, 373, 363, 940 363, 200, 363, 363, 363, 363, 363, 363, 941 363, 363, 363, 363, 363, 363, 363, 202, 942 363, 369, 370, 371, 375, 84, 79, 194, 943 195, 363, 363, 115, 373, 363, 363, 200, 944 363, 363, 363, 363, 363, 363, 363, 363, 945 363, 363, 363, 363, 363, 202, 363, 366, 946 363, 432, 363, 413, 413, 84, 79, 194, 947 195, 363, 363, 363, 368, 363, 366, 363, 948 366, 363, 363, 363, 404, 404, 363, 79, 949 194, 195, 363, 363, 363, 368, 363, 366, 950 363, 366, 363, 363, 363, 404, 433, 363, 951 79, 194, 195, 363, 363, 363, 368, 363, 952 366, 363, 366, 363, 432, 363, 404, 404, 953 363, 79, 194, 195, 363, 363, 363, 368, 954 363, 366, 363, 366, 81, 363, 363, 98, 955 367, 363, 79, 194, 195, 363, 363, 363, 956 368, 363, 366, 363, 116, 83, 83, 84, 957 79, 434, 434, 434, 434, 156, 116, 434, 958 190, 191, 365, 365, 84, 79, 194, 195, 959 363, 363, 363, 197, 363, 363, 200, 363, 960 363, 363, 363, 363, 363, 363, 363, 363, 961 363, 363, 363, 363, 202, 363, 116, 83, 962 83, 84, 79, 434, 434, 434, 434, 434, 963 116, 434, 436, 437, 438, 439, 123, 118, 964 440, 441, 435, 435, 155, 442, 435, 435, 965 443, 435, 435, 435, 435, 435, 435, 435, 966 435, 435, 435, 435, 435, 435, 444, 435, 967 445, 437, 439, 439, 123, 118, 440, 441, 968 435, 435, 435, 442, 435, 435, 443, 435, 969 435, 435, 435, 435, 435, 435, 435, 435, 970 435, 435, 435, 435, 444, 435, 437, 439, 971 439, 123, 118, 440, 441, 435, 435, 435, 972 442, 435, 435, 443, 435, 435, 435, 435, 973 435, 435, 435, 435, 435, 435, 435, 435, 974 435, 444, 435, 446, 435, 435, 435, 136, 975 447, 435, 118, 440, 441, 435, 435, 435, 976 448, 435, 446, 435, 449, 450, 451, 452, 977 123, 118, 440, 441, 435, 435, 153, 453, 978 435, 435, 443, 435, 435, 435, 435, 435, 979 435, 435, 435, 435, 435, 435, 435, 435, 980 444, 435, 454, 450, 455, 455, 123, 118, 981 440, 441, 435, 435, 435, 453, 435, 435, 982 443, 435, 435, 435, 435, 435, 435, 435, 983 435, 435, 435, 435, 435, 435, 444, 435, 984 450, 455, 455, 123, 118, 440, 441, 435, 985 435, 435, 453, 435, 435, 443, 435, 435, 986 435, 435, 435, 435, 435, 435, 435, 435, 987 435, 435, 435, 444, 435, 456, 435, 435, 988 435, 136, 457, 435, 118, 440, 441, 435, 989 435, 435, 448, 435, 456, 435, 458, 459, 990 460, 461, 123, 118, 440, 441, 435, 435, 991 151, 462, 435, 435, 443, 435, 435, 435, 992 435, 435, 435, 435, 435, 435, 435, 435, 993 435, 435, 444, 435, 463, 459, 464, 464, 994 123, 118, 440, 441, 435, 435, 435, 462, 995 435, 435, 443, 435, 435, 435, 435, 435, 996 435, 435, 435, 435, 435, 435, 435, 435, 997 444, 435, 459, 464, 464, 123, 118, 440, 998 441, 435, 435, 435, 462, 435, 435, 443, 999 435, 435, 435, 435, 435, 435, 435, 435, 1000 435, 435, 435, 435, 435, 444, 435, 465, 1001 435, 435, 435, 136, 466, 435, 118, 440, 1002 441, 435, 435, 435, 448, 435, 465, 435, 1003 467, 468, 469, 470, 123, 118, 440, 441, 1004 435, 435, 149, 471, 435, 435, 443, 435, 1005 435, 435, 435, 435, 435, 435, 435, 435, 1006 435, 435, 435, 435, 444, 435, 472, 468, 1007 473, 473, 123, 118, 440, 441, 435, 435, 1008 435, 471, 435, 435, 443, 435, 435, 435, 1009 435, 435, 435, 435, 435, 435, 435, 435, 1010 435, 435, 444, 435, 468, 473, 473, 123, 1011 118, 440, 441, 435, 435, 435, 471, 435, 1012 435, 443, 435, 435, 435, 435, 435, 435, 1013 435, 435, 435, 435, 435, 435, 435, 444, 1014 435, 474, 435, 435, 435, 136, 475, 435, 1015 118, 440, 441, 435, 435, 435, 448, 435, 1016 474, 435, 476, 477, 478, 479, 123, 118, 1017 440, 441, 435, 435, 147, 480, 435, 435, 1018 443, 435, 435, 435, 435, 435, 435, 435, 1019 435, 435, 435, 435, 435, 435, 444, 435, 1020 481, 477, 482, 482, 123, 118, 440, 441, 1021 435, 435, 435, 480, 435, 435, 443, 435, 1022 435, 435, 435, 435, 435, 435, 435, 435, 1023 435, 435, 435, 435, 444, 435, 477, 482, 1024 482, 123, 118, 440, 441, 435, 435, 435, 1025 480, 435, 435, 443, 435, 435, 435, 435, 1026 435, 435, 435, 435, 435, 435, 435, 435, 1027 435, 444, 435, 136, 483, 435, 118, 440, 1028 441, 435, 435, 435, 448, 435, 484, 484, 1029 435, 118, 440, 441, 435, 435, 435, 448, 1030 435, 485, 435, 435, 486, 440, 441, 435, 1031 440, 441, 435, 487, 435, 440, 488, 435, 1032 440, 489, 435, 440, 435, 485, 435, 435, 1033 435, 440, 441, 435, 490, 435, 491, 492, 1034 435, 118, 440, 441, 435, 435, 121, 435, 1035 120, 435, 484, 484, 435, 118, 440, 441, 1036 435, 484, 484, 435, 118, 440, 441, 435, 1037 490, 435, 484, 484, 435, 118, 440, 441, 1038 435, 490, 435, 491, 484, 435, 118, 440, 1039 441, 435, 435, 121, 435, 136, 435, 493, 1040 493, 123, 118, 440, 441, 435, 435, 435, 1041 448, 435, 494, 145, 495, 496, 126, 118, 1042 440, 441, 435, 435, 435, 448, 435, 145, 1043 495, 496, 126, 118, 440, 441, 435, 435, 1044 435, 448, 435, 495, 495, 126, 118, 440, 1045 441, 435, 435, 435, 448, 435, 497, 142, 1046 498, 499, 129, 118, 440, 441, 435, 435, 1047 435, 448, 435, 142, 498, 499, 129, 118, 1048 440, 441, 435, 435, 435, 448, 435, 498, 1049 498, 129, 118, 440, 441, 435, 435, 435, 1050 448, 435, 500, 139, 501, 502, 132, 118, 1051 440, 441, 435, 435, 435, 448, 435, 139, 1052 501, 502, 132, 118, 440, 441, 435, 435, 1053 435, 448, 435, 501, 501, 132, 118, 440, 1054 441, 435, 435, 435, 448, 435, 503, 136, 1055 484, 504, 435, 118, 440, 441, 435, 435, 1056 435, 448, 435, 136, 484, 504, 435, 118, 1057 440, 441, 435, 435, 435, 448, 435, 484, 1058 505, 435, 118, 440, 441, 435, 435, 435, 1059 448, 435, 136, 435, 484, 484, 435, 118, 1060 440, 441, 435, 435, 435, 448, 435, 119, 1061 120, 435, 435, 136, 483, 435, 118, 440, 1062 441, 435, 435, 435, 448, 435, 119, 435, 1063 477, 482, 482, 123, 118, 440, 441, 435, 1064 435, 435, 480, 435, 435, 435, 435, 435, 1065 435, 435, 435, 435, 435, 435, 435, 435, 1066 435, 435, 435, 444, 435, 477, 482, 482, 1067 123, 118, 440, 441, 435, 435, 435, 480, 1068 435, 476, 477, 482, 482, 123, 118, 440, 1069 441, 435, 435, 435, 480, 435, 435, 443, 1070 435, 435, 435, 435, 435, 435, 435, 435, 1071 435, 435, 435, 435, 435, 444, 435, 476, 1072 477, 478, 482, 123, 118, 440, 441, 435, 1073 435, 147, 480, 435, 435, 443, 435, 435, 1074 435, 435, 435, 435, 435, 435, 435, 435, 1075 435, 435, 435, 444, 435, 474, 435, 506, 1076 435, 493, 493, 123, 118, 440, 441, 435, 1077 435, 435, 448, 435, 474, 435, 474, 435, 1078 435, 435, 484, 484, 435, 118, 440, 441, 1079 435, 435, 435, 448, 435, 474, 435, 474, 1080 435, 435, 435, 484, 507, 435, 118, 440, 1081 441, 435, 435, 435, 448, 435, 474, 435, 1082 474, 435, 506, 435, 484, 484, 435, 118, 1083 440, 441, 435, 435, 435, 448, 435, 474, 1084 435, 474, 120, 435, 435, 136, 475, 435, 1085 118, 440, 441, 435, 435, 435, 448, 435, 1086 474, 435, 467, 468, 473, 473, 123, 118, 1087 440, 441, 435, 435, 435, 471, 435, 435, 1088 443, 435, 435, 435, 435, 435, 435, 435, 1089 435, 435, 435, 435, 435, 435, 444, 435, 1090 467, 468, 469, 473, 123, 118, 440, 441, 1091 435, 435, 149, 471, 435, 435, 443, 435, 1092 435, 435, 435, 435, 435, 435, 435, 435, 1093 435, 435, 435, 435, 444, 435, 465, 435, 1094 508, 435, 493, 493, 123, 118, 440, 441, 1095 435, 435, 435, 448, 435, 465, 435, 465, 1096 435, 435, 435, 484, 484, 435, 118, 440, 1097 441, 435, 435, 435, 448, 435, 465, 435, 1098 465, 435, 435, 435, 484, 509, 435, 118, 1099 440, 441, 435, 435, 435, 448, 435, 465, 1100 435, 465, 435, 508, 435, 484, 484, 435, 1101 118, 440, 441, 435, 435, 435, 448, 435, 1102 465, 435, 465, 120, 435, 435, 136, 466, 1103 435, 118, 440, 441, 435, 435, 435, 448, 1104 435, 465, 435, 458, 459, 464, 464, 123, 1105 118, 440, 441, 435, 435, 435, 462, 435, 1106 435, 443, 435, 435, 435, 435, 435, 435, 1107 435, 435, 435, 435, 435, 435, 435, 444, 1108 435, 458, 459, 460, 464, 123, 118, 440, 1109 441, 435, 435, 151, 462, 435, 435, 443, 1110 435, 435, 435, 435, 435, 435, 435, 435, 1111 435, 435, 435, 435, 435, 444, 435, 456, 1112 435, 510, 435, 493, 493, 123, 118, 440, 1113 441, 435, 435, 435, 448, 435, 456, 435, 1114 456, 435, 435, 435, 484, 484, 435, 118, 1115 440, 441, 435, 435, 435, 448, 435, 456, 1116 435, 456, 435, 435, 435, 484, 511, 435, 1117 118, 440, 441, 435, 435, 435, 448, 435, 1118 456, 435, 456, 435, 510, 435, 484, 484, 1119 435, 118, 440, 441, 435, 435, 435, 448, 1120 435, 456, 435, 456, 120, 435, 435, 136, 1121 457, 435, 118, 440, 441, 435, 435, 435, 1122 448, 435, 456, 435, 449, 450, 455, 455, 1123 123, 118, 440, 441, 435, 435, 435, 453, 1124 435, 435, 443, 435, 435, 435, 435, 435, 1125 435, 435, 435, 435, 435, 435, 435, 435, 1126 444, 435, 449, 450, 451, 455, 123, 118, 1127 440, 441, 435, 435, 153, 453, 435, 435, 1128 443, 435, 435, 435, 435, 435, 435, 435, 1129 435, 435, 435, 435, 435, 435, 444, 435, 1130 446, 435, 512, 435, 493, 493, 123, 118, 1131 440, 441, 435, 435, 435, 448, 435, 446, 1132 435, 446, 435, 435, 435, 484, 484, 435, 1133 118, 440, 441, 435, 435, 435, 448, 435, 1134 446, 435, 446, 435, 435, 435, 484, 513, 1135 435, 118, 440, 441, 435, 435, 435, 448, 1136 435, 446, 435, 446, 435, 512, 435, 484, 1137 484, 435, 118, 440, 441, 435, 435, 435, 1138 448, 435, 446, 435, 446, 120, 435, 435, 1139 136, 447, 435, 118, 440, 441, 435, 435, 1140 435, 448, 435, 446, 435, 436, 437, 439, 1141 439, 123, 118, 440, 441, 435, 435, 435, 1142 442, 435, 435, 443, 435, 435, 435, 435, 1143 435, 435, 435, 435, 435, 435, 435, 435, 1144 435, 444, 435, 188, 189, 190, 191, 514, 1145 365, 84, 79, 194, 195, 196, 196, 156, 1146 197, 363, 188, 200, 363, 363, 363, 363, 1147 363, 363, 363, 363, 363, 363, 363, 363, 1148 363, 202, 363, 204, 515, 206, 207, 6, 1149 1, 208, 209, 203, 203, 38, 210, 203, 1150 203, 211, 203, 203, 203, 203, 203, 203, 1151 203, 203, 203, 203, 203, 203, 203, 212, 1152 203, 215, 189, 190, 191, 516, 517, 84, 1153 157, 518, 519, 203, 196, 156, 520, 203, 1154 215, 200, 203, 203, 203, 203, 203, 203, 1155 203, 203, 203, 203, 203, 203, 203, 202, 1156 203, 116, 521, 521, 84, 157, 208, 209, 1157 203, 203, 156, 522, 203, 523, 203, 203, 1158 524, 518, 519, 203, 518, 519, 203, 256, 1159 203, 518, 525, 203, 518, 526, 203, 518, 1160 203, 523, 203, 203, 203, 518, 519, 203, 1161 527, 3, 363, 363, 404, 433, 363, 79, 1162 194, 195, 363, 363, 363, 368, 363, 527, 1163 363, 528, 370, 529, 530, 84, 157, 518, 1164 519, 203, 203, 158, 373, 203, 203, 200, 1165 203, 203, 203, 203, 203, 203, 203, 203, 1166 203, 203, 203, 203, 203, 202, 203, 531, 1167 370, 532, 532, 84, 157, 518, 519, 203, 1168 203, 203, 373, 203, 203, 200, 203, 203, 1169 203, 203, 203, 203, 203, 203, 203, 203, 1170 203, 203, 203, 202, 203, 370, 532, 532, 1171 84, 157, 518, 519, 203, 203, 203, 373, 1172 203, 203, 200, 203, 203, 203, 203, 203, 1173 203, 203, 203, 203, 203, 203, 203, 203, 1174 202, 203, 528, 370, 532, 532, 84, 157, 1175 518, 519, 203, 203, 203, 373, 203, 203, 1176 200, 203, 203, 203, 203, 203, 203, 203, 1177 203, 203, 203, 203, 203, 203, 202, 203, 1178 528, 370, 529, 532, 84, 157, 518, 519, 1179 203, 203, 158, 373, 203, 203, 200, 203, 1180 203, 203, 203, 203, 203, 203, 203, 203, 1181 203, 203, 203, 203, 202, 203, 215, 203, 1182 281, 116, 533, 533, 160, 157, 208, 209, 1183 203, 203, 203, 522, 203, 215, 203, 534, 1184 184, 535, 536, 162, 157, 518, 519, 203, 1185 203, 203, 537, 203, 184, 535, 536, 162, 1186 157, 518, 519, 203, 203, 203, 537, 203, 1187 535, 535, 162, 157, 518, 519, 203, 203, 1188 203, 537, 203, 538, 181, 539, 540, 165, 1189 157, 518, 519, 203, 203, 203, 537, 203, 1190 181, 539, 540, 165, 157, 518, 519, 203, 1191 203, 203, 537, 203, 539, 539, 165, 157, 1192 518, 519, 203, 203, 203, 537, 203, 541, 1193 178, 542, 543, 168, 157, 518, 519, 203, 1194 203, 203, 537, 203, 178, 542, 543, 168, 1195 157, 518, 519, 203, 203, 203, 537, 203, 1196 542, 542, 168, 157, 518, 519, 203, 203, 1197 203, 537, 203, 544, 175, 545, 546, 203, 1198 157, 518, 519, 203, 203, 203, 537, 203, 1199 175, 545, 546, 203, 157, 518, 519, 203, 1200 203, 203, 537, 203, 545, 545, 203, 157, 1201 518, 519, 203, 203, 203, 537, 203, 547, 1202 203, 548, 549, 203, 157, 518, 519, 203, 1203 203, 172, 203, 171, 203, 545, 545, 203, 1204 157, 518, 519, 203, 545, 545, 203, 157, 1205 518, 519, 203, 547, 203, 545, 545, 203, 1206 157, 518, 519, 203, 547, 203, 548, 545, 1207 203, 157, 518, 519, 203, 203, 172, 203, 1208 527, 171, 363, 363, 98, 367, 363, 79, 1209 194, 195, 363, 363, 363, 368, 363, 527, 1210 363, 551, 550, 552, 552, 550, 186, 553, 1211 554, 550, 552, 552, 550, 186, 553, 554, 1212 550, 555, 550, 550, 556, 553, 554, 550, 1213 553, 554, 550, 557, 550, 553, 558, 550, 1214 553, 559, 550, 553, 550, 555, 550, 550, 1215 550, 553, 554, 550, 0 1216 }; 1217 1218 static const short _indic_syllable_machine_trans_targs[] = { 1219 178, 200, 207, 209, 210, 4, 213, 5, 1220 7, 216, 8, 10, 219, 11, 13, 222, 1221 14, 16, 17, 199, 19, 20, 221, 22, 1222 23, 218, 25, 26, 215, 224, 229, 233, 1223 236, 240, 243, 247, 250, 254, 257, 178, 1224 280, 287, 289, 290, 41, 293, 42, 44, 1225 296, 45, 47, 299, 48, 50, 302, 51, 1226 53, 54, 279, 56, 57, 301, 59, 60, 1227 298, 62, 63, 295, 304, 309, 313, 316, 1228 320, 323, 327, 330, 334, 338, 178, 359, 1229 366, 368, 369, 78, 372, 178, 79, 81, 1230 375, 82, 84, 378, 85, 87, 381, 88, 1231 90, 91, 358, 93, 94, 380, 96, 97, 1232 377, 99, 100, 374, 383, 388, 392, 395, 1233 399, 402, 406, 409, 413, 178, 440, 447, 1234 449, 450, 114, 453, 115, 117, 456, 118, 1235 120, 459, 121, 123, 462, 124, 126, 127, 1236 439, 129, 130, 461, 132, 133, 458, 135, 1237 136, 455, 464, 469, 473, 476, 480, 483, 1238 487, 490, 494, 497, 417, 502, 513, 152, 1239 516, 154, 519, 155, 157, 522, 158, 160, 1240 525, 161, 528, 530, 531, 166, 167, 527, 1241 169, 170, 524, 172, 173, 521, 175, 176, 1242 518, 178, 536, 178, 179, 259, 339, 341, 1243 416, 418, 361, 362, 419, 415, 498, 499, 1244 386, 534, 387, 178, 180, 182, 36, 258, 1245 202, 203, 256, 227, 228, 181, 35, 183, 1246 252, 1, 184, 186, 34, 251, 249, 185, 1247 33, 187, 245, 188, 190, 32, 244, 242, 1248 189, 31, 191, 238, 192, 194, 30, 237, 1249 235, 193, 29, 195, 231, 196, 198, 28, 1250 230, 226, 197, 27, 212, 0, 201, 206, 1251 178, 204, 205, 208, 2, 211, 3, 214, 1252 6, 24, 217, 9, 21, 220, 12, 18, 1253 223, 15, 225, 232, 234, 239, 241, 246, 1254 248, 253, 255, 178, 260, 262, 73, 336, 1255 282, 283, 337, 307, 308, 261, 72, 263, 1256 332, 38, 264, 266, 71, 331, 329, 265, 1257 70, 267, 325, 268, 270, 69, 324, 322, 1258 269, 68, 271, 318, 272, 274, 67, 317, 1259 315, 273, 66, 275, 311, 276, 278, 65, 1260 310, 306, 277, 64, 292, 37, 281, 286, 1261 178, 284, 285, 288, 39, 291, 40, 294, 1262 43, 61, 297, 46, 58, 300, 49, 55, 1263 303, 52, 305, 312, 314, 319, 321, 326, 1264 328, 333, 335, 178, 340, 109, 342, 411, 1265 75, 343, 345, 108, 410, 408, 344, 107, 1266 346, 404, 347, 349, 106, 403, 401, 348, 1267 105, 350, 397, 351, 353, 104, 396, 394, 1268 352, 103, 354, 390, 355, 357, 102, 389, 1269 385, 356, 101, 371, 74, 360, 365, 178, 1270 363, 364, 367, 76, 370, 77, 373, 80, 1271 98, 376, 83, 95, 379, 86, 92, 382, 1272 89, 384, 391, 393, 398, 400, 405, 407, 1273 412, 414, 178, 178, 420, 422, 146, 145, 1274 442, 443, 496, 467, 468, 421, 423, 492, 1275 111, 424, 426, 144, 491, 489, 425, 143, 1276 427, 485, 428, 430, 142, 484, 482, 429, 1277 141, 431, 478, 432, 434, 140, 477, 475, 1278 433, 139, 435, 471, 436, 438, 138, 470, 1279 466, 437, 137, 452, 110, 441, 446, 178, 1280 444, 445, 448, 112, 451, 113, 454, 116, 1281 134, 457, 119, 131, 460, 122, 128, 463, 1282 125, 465, 472, 474, 479, 481, 486, 488, 1283 493, 495, 147, 500, 501, 515, 504, 505, 1284 533, 148, 509, 503, 508, 506, 507, 510, 1285 511, 150, 514, 512, 149, 151, 517, 153, 1286 174, 163, 520, 156, 171, 523, 159, 168, 1287 526, 162, 165, 529, 164, 532, 178, 535, 1288 177, 538, 539, 537, 542, 178, 540, 541 1289 }; 1290 1291 static const char _indic_syllable_machine_trans_actions[] = { 1292 1, 0, 2, 2, 2, 0, 2, 0, 1293 0, 2, 0, 0, 2, 0, 0, 2, 1294 0, 0, 0, 2, 0, 0, 2, 0, 1295 0, 2, 0, 0, 2, 2, 2, 2, 1296 2, 2, 2, 2, 2, 2, 2, 3, 1297 0, 2, 2, 2, 0, 2, 0, 0, 1298 2, 0, 0, 2, 0, 0, 2, 0, 1299 0, 0, 2, 0, 0, 2, 0, 0, 1300 2, 0, 0, 2, 2, 2, 2, 2, 1301 2, 2, 2, 2, 2, 2, 4, 0, 1302 2, 2, 2, 0, 2, 5, 0, 0, 1303 2, 0, 0, 2, 0, 0, 2, 0, 1304 0, 0, 2, 0, 0, 2, 0, 0, 1305 2, 0, 0, 2, 2, 6, 2, 6, 1306 2, 6, 2, 6, 2, 7, 0, 2, 1307 2, 2, 0, 2, 0, 0, 2, 0, 1308 0, 2, 0, 0, 2, 0, 0, 0, 1309 2, 0, 0, 2, 0, 0, 2, 0, 1310 0, 2, 2, 2, 2, 2, 2, 2, 1311 2, 2, 2, 2, 6, 0, 8, 0, 1312 2, 0, 2, 0, 0, 2, 0, 0, 1313 2, 0, 2, 2, 2, 0, 0, 2, 1314 0, 0, 2, 0, 0, 2, 0, 0, 1315 2, 9, 0, 12, 2, 2, 6, 2, 1316 13, 13, 0, 0, 2, 2, 6, 2, 1317 6, 2, 6, 14, 2, 2, 0, 2, 1318 0, 0, 2, 2, 2, 2, 0, 2, 1319 2, 0, 2, 2, 0, 2, 2, 2, 1320 0, 2, 2, 2, 2, 0, 2, 2, 1321 2, 0, 2, 2, 2, 2, 0, 2, 1322 2, 2, 0, 2, 2, 2, 2, 0, 1323 2, 2, 2, 0, 2, 0, 0, 0, 1324 15, 0, 0, 2, 0, 2, 0, 2, 1325 0, 0, 2, 0, 0, 2, 0, 0, 1326 2, 0, 2, 2, 2, 2, 2, 2, 1327 2, 2, 2, 16, 2, 2, 0, 2, 1328 0, 0, 2, 2, 2, 2, 0, 2, 1329 2, 0, 2, 2, 0, 2, 2, 2, 1330 0, 2, 2, 2, 2, 0, 2, 2, 1331 2, 0, 2, 2, 2, 2, 0, 2, 1332 2, 2, 0, 2, 2, 2, 2, 0, 1333 2, 2, 2, 0, 2, 0, 0, 0, 1334 17, 0, 0, 2, 0, 2, 0, 2, 1335 0, 0, 2, 0, 0, 2, 0, 0, 1336 2, 0, 2, 2, 2, 2, 2, 2, 1337 2, 2, 2, 18, 6, 0, 6, 6, 1338 0, 6, 2, 0, 6, 2, 6, 0, 1339 6, 6, 6, 2, 0, 6, 2, 6, 1340 0, 6, 6, 6, 2, 0, 6, 2, 1341 6, 0, 6, 6, 6, 2, 0, 6, 1342 2, 6, 0, 6, 0, 0, 0, 19, 1343 0, 0, 2, 0, 2, 0, 2, 0, 1344 0, 2, 0, 0, 2, 0, 0, 2, 1345 0, 2, 2, 2, 2, 2, 2, 2, 1346 2, 2, 20, 21, 2, 2, 0, 0, 1347 0, 0, 2, 2, 2, 2, 2, 2, 1348 0, 2, 2, 0, 2, 2, 2, 0, 1349 2, 2, 2, 2, 0, 2, 2, 2, 1350 0, 2, 2, 2, 2, 0, 2, 2, 1351 2, 0, 2, 2, 2, 2, 0, 2, 1352 2, 2, 0, 2, 0, 0, 0, 22, 1353 0, 0, 2, 0, 2, 0, 2, 0, 1354 0, 2, 0, 0, 2, 0, 0, 2, 1355 0, 2, 2, 2, 2, 2, 2, 2, 1356 2, 2, 0, 0, 8, 2, 0, 0, 1357 2, 0, 2, 0, 0, 0, 0, 8, 1358 8, 0, 8, 8, 0, 0, 2, 0, 1359 0, 0, 2, 0, 0, 2, 0, 0, 1360 2, 0, 0, 2, 0, 2, 23, 2, 1361 0, 0, 0, 0, 0, 24, 0, 0 1362 }; 1363 1364 static const char _indic_syllable_machine_to_state_actions[] = { 1365 0, 0, 0, 0, 0, 0, 0, 0, 1366 0, 0, 0, 0, 0, 0, 0, 0, 1367 0, 0, 0, 0, 0, 0, 0, 0, 1368 0, 0, 0, 0, 0, 0, 0, 0, 1369 0, 0, 0, 0, 0, 0, 0, 0, 1370 0, 0, 0, 0, 0, 0, 0, 0, 1371 0, 0, 0, 0, 0, 0, 0, 0, 1372 0, 0, 0, 0, 0, 0, 0, 0, 1373 0, 0, 0, 0, 0, 0, 0, 0, 1374 0, 0, 0, 0, 0, 0, 0, 0, 1375 0, 0, 0, 0, 0, 0, 0, 0, 1376 0, 0, 0, 0, 0, 0, 0, 0, 1377 0, 0, 0, 0, 0, 0, 0, 0, 1378 0, 0, 0, 0, 0, 0, 0, 0, 1379 0, 0, 0, 0, 0, 0, 0, 0, 1380 0, 0, 0, 0, 0, 0, 0, 0, 1381 0, 0, 0, 0, 0, 0, 0, 0, 1382 0, 0, 0, 0, 0, 0, 0, 0, 1383 0, 0, 0, 0, 0, 0, 0, 0, 1384 0, 0, 0, 0, 0, 0, 0, 0, 1385 0, 0, 0, 0, 0, 0, 0, 0, 1386 0, 0, 0, 0, 0, 0, 0, 0, 1387 0, 0, 10, 0, 0, 0, 0, 0, 1388 0, 0, 0, 0, 0, 0, 0, 0, 1389 0, 0, 0, 0, 0, 0, 0, 0, 1390 0, 0, 0, 0, 0, 0, 0, 0, 1391 0, 0, 0, 0, 0, 0, 0, 0, 1392 0, 0, 0, 0, 0, 0, 0, 0, 1393 0, 0, 0, 0, 0, 0, 0, 0, 1394 0, 0, 0, 0, 0, 0, 0, 0, 1395 0, 0, 0, 0, 0, 0, 0, 0, 1396 0, 0, 0, 0, 0, 0, 0, 0, 1397 0, 0, 0, 0, 0, 0, 0, 0, 1398 0, 0, 0, 0, 0, 0, 0, 0, 1399 0, 0, 0, 0, 0, 0, 0, 0, 1400 0, 0, 0, 0, 0, 0, 0, 0, 1401 0, 0, 0, 0, 0, 0, 0, 0, 1402 0, 0, 0, 0, 0, 0, 0, 0, 1403 0, 0, 0, 0, 0, 0, 0, 0, 1404 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 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 1433 }; 1434 1435 static const char _indic_syllable_machine_from_state_actions[] = { 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, 11, 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, 0, 0, 0, 1472 0, 0, 0, 0, 0, 0, 0, 0, 1473 0, 0, 0, 0, 0, 0, 0, 0, 1474 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 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 1504 }; 1505 1506 static const short _indic_syllable_machine_eof_trans[] = { 1507 1, 1, 1, 1, 1, 1, 1, 1, 1508 1, 1, 1, 1, 1, 1, 1, 1, 1509 1, 1, 1, 1, 1, 1, 1, 1, 1510 1, 1, 1, 1, 1, 1, 1, 1, 1511 1, 1, 1, 1, 1, 40, 40, 40, 1512 40, 40, 40, 40, 40, 40, 40, 40, 1513 40, 40, 40, 40, 40, 40, 40, 40, 1514 40, 40, 40, 40, 40, 40, 40, 40, 1515 40, 40, 40, 40, 40, 40, 40, 40, 1516 40, 40, 79, 79, 79, 79, 86, 86, 1517 79, 79, 79, 79, 79, 79, 79, 79, 1518 79, 79, 79, 79, 79, 79, 79, 79, 1519 79, 79, 79, 79, 79, 79, 79, 79, 1520 79, 79, 79, 79, 79, 79, 118, 118, 1521 118, 118, 118, 118, 118, 118, 118, 118, 1522 118, 118, 118, 118, 118, 118, 118, 118, 1523 118, 118, 118, 118, 118, 118, 118, 118, 1524 118, 118, 118, 118, 118, 118, 118, 118, 1525 118, 118, 118, 79, 1, 1, 1, 1, 1526 1, 1, 1, 1, 1, 1, 1, 1, 1527 1, 1, 1, 1, 1, 1, 1, 1, 1528 1, 1, 1, 1, 1, 1, 1, 1, 1529 1, 186, 0, 204, 204, 204, 204, 204, 1530 204, 204, 204, 204, 204, 204, 204, 204, 1531 204, 204, 204, 204, 204, 204, 204, 204, 1532 204, 204, 204, 204, 204, 204, 204, 204, 1533 204, 204, 204, 204, 204, 204, 204, 204, 1534 204, 204, 204, 204, 204, 204, 204, 204, 1535 204, 204, 204, 204, 204, 204, 204, 204, 1536 204, 204, 204, 204, 204, 204, 204, 204, 1537 204, 204, 204, 204, 204, 204, 204, 204, 1538 204, 204, 204, 204, 204, 204, 204, 204, 1539 204, 204, 204, 284, 284, 284, 284, 284, 1540 284, 284, 284, 284, 284, 284, 284, 284, 1541 284, 284, 284, 284, 284, 284, 284, 284, 1542 284, 284, 284, 284, 284, 284, 284, 284, 1543 284, 284, 284, 284, 284, 284, 284, 284, 1544 284, 284, 284, 284, 284, 284, 284, 284, 1545 284, 284, 284, 284, 284, 284, 284, 284, 1546 284, 284, 284, 284, 284, 284, 284, 284, 1547 284, 284, 284, 284, 284, 284, 284, 284, 1548 284, 284, 284, 284, 284, 284, 284, 284, 1549 284, 284, 284, 364, 364, 364, 364, 364, 1550 364, 364, 364, 364, 364, 364, 364, 364, 1551 364, 364, 364, 364, 364, 364, 364, 364, 1552 364, 364, 364, 364, 364, 364, 364, 364, 1553 364, 364, 364, 364, 364, 364, 364, 364, 1554 364, 364, 364, 364, 364, 364, 364, 364, 1555 364, 364, 364, 364, 364, 364, 364, 364, 1556 364, 364, 364, 364, 364, 364, 364, 364, 1557 364, 364, 364, 364, 364, 364, 364, 364, 1558 364, 364, 364, 364, 364, 364, 364, 364, 1559 435, 364, 435, 436, 436, 436, 436, 436, 1560 436, 436, 436, 436, 436, 436, 436, 436, 1561 436, 436, 436, 436, 436, 436, 436, 436, 1562 436, 436, 436, 436, 436, 436, 436, 436, 1563 436, 436, 436, 436, 436, 436, 436, 436, 1564 436, 436, 436, 436, 436, 436, 436, 436, 1565 436, 436, 436, 436, 436, 436, 436, 436, 1566 436, 436, 436, 436, 436, 436, 436, 436, 1567 436, 436, 436, 436, 436, 436, 436, 436, 1568 436, 436, 436, 436, 436, 436, 436, 436, 1569 436, 436, 364, 204, 204, 204, 204, 204, 1570 204, 204, 204, 204, 204, 364, 204, 204, 1571 204, 204, 204, 204, 204, 204, 204, 204, 1572 204, 204, 204, 204, 204, 204, 204, 204, 1573 204, 204, 204, 204, 204, 364, 551, 551, 1574 551, 551, 551, 551, 551, 551, 551 1575 }; 1576 1577 static const int indic_syllable_machine_start = 178; 1578 static const int indic_syllable_machine_first_final = 178; 1579 static const int indic_syllable_machine_error = -1; 1580 1581 static const int indic_syllable_machine_en_main = 178; 1582 1583 1584 #line 36 "hb-ot-shape-complex-indic-machine.rl" 1585 1586 1587 1588 #line 97 "hb-ot-shape-complex-indic-machine.rl" 1589 1590 1591 #define found_syllable(syllable_type) \ 1592 HB_STMT_START { \ 1593 if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \ 1594 for (unsigned int i = last; i < p+1; i++) \ 1595 info[i].syllable() = (syllable_serial << 4) | syllable_type; \ 1596 last = p+1; \ 1597 syllable_serial++; \ 1598 if (unlikely (syllable_serial == 16)) syllable_serial = 1; \ 1599 } HB_STMT_END 1600 1601 static void 1602 find_syllables (hb_buffer_t *buffer) 1603 { 1604 unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED; 1605 int cs; 1606 hb_glyph_info_t *info = buffer->info; 1607 1608 #line 1580 "hb-ot-shape-complex-indic-machine.hh" 1609 { 1610 cs = indic_syllable_machine_start; 1611 ts = 0; 1612 te = 0; 1613 act = 0; 1614 } 1615 1616 #line 118 "hb-ot-shape-complex-indic-machine.rl" 1617 1618 1619 p = 0; 1620 pe = eof = buffer->len; 1621 1622 unsigned int last = 0; 1623 unsigned int syllable_serial = 1; 1624 1625 #line 1597 "hb-ot-shape-complex-indic-machine.hh" 1626 { 1627 int _slen; 1628 int _trans; 1629 const unsigned char *_keys; 1630 const short *_inds; 1631 if ( p == pe ) 1632 goto _test_eof; 1633 _resume: 1634 switch ( _indic_syllable_machine_from_state_actions[cs] ) { 1635 case 11: 1636 #line 1 "NONE" 1637 {ts = p;} 1638 break; 1639 #line 1611 "hb-ot-shape-complex-indic-machine.hh" 1640 } 1641 1642 _keys = _indic_syllable_machine_trans_keys + (cs<<1); 1643 _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs]; 1644 1645 _slen = _indic_syllable_machine_key_spans[cs]; 1646 _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) && 1647 ( info[p].indic_category()) <= _keys[1] ? 1648 ( info[p].indic_category()) - _keys[0] : _slen ]; 1649 1650 _eof_trans: 1651 cs = _indic_syllable_machine_trans_targs[_trans]; 1652 1653 if ( _indic_syllable_machine_trans_actions[_trans] == 0 ) 1654 goto _again; 1655 1656 switch ( _indic_syllable_machine_trans_actions[_trans] ) { 1657 case 2: 1658 #line 1 "NONE" 1659 {te = p+1;} 1660 break; 1661 case 15: 1662 #line 88 "hb-ot-shape-complex-indic-machine.rl" 1663 {te = p+1;{ found_syllable (consonant_syllable); }} 1664 break; 1665 case 17: 1666 #line 89 "hb-ot-shape-complex-indic-machine.rl" 1667 {te = p+1;{ found_syllable (vowel_syllable); }} 1668 break; 1669 case 22: 1670 #line 90 "hb-ot-shape-complex-indic-machine.rl" 1671 {te = p+1;{ found_syllable (standalone_cluster); }} 1672 break; 1673 case 24: 1674 #line 91 "hb-ot-shape-complex-indic-machine.rl" 1675 {te = p+1;{ found_syllable (symbol_cluster); }} 1676 break; 1677 case 19: 1678 #line 92 "hb-ot-shape-complex-indic-machine.rl" 1679 {te = p+1;{ found_syllable (broken_cluster); }} 1680 break; 1681 case 12: 1682 #line 93 "hb-ot-shape-complex-indic-machine.rl" 1683 {te = p+1;{ found_syllable (non_indic_cluster); }} 1684 break; 1685 case 14: 1686 #line 88 "hb-ot-shape-complex-indic-machine.rl" 1687 {te = p;p--;{ found_syllable (consonant_syllable); }} 1688 break; 1689 case 16: 1690 #line 89 "hb-ot-shape-complex-indic-machine.rl" 1691 {te = p;p--;{ found_syllable (vowel_syllable); }} 1692 break; 1693 case 21: 1694 #line 90 "hb-ot-shape-complex-indic-machine.rl" 1695 {te = p;p--;{ found_syllable (standalone_cluster); }} 1696 break; 1697 case 23: 1698 #line 91 "hb-ot-shape-complex-indic-machine.rl" 1699 {te = p;p--;{ found_syllable (symbol_cluster); }} 1700 break; 1701 case 18: 1702 #line 92 "hb-ot-shape-complex-indic-machine.rl" 1703 {te = p;p--;{ found_syllable (broken_cluster); }} 1704 break; 1705 case 20: 1706 #line 93 "hb-ot-shape-complex-indic-machine.rl" 1707 {te = p;p--;{ found_syllable (non_indic_cluster); }} 1708 break; 1709 case 1: 1710 #line 88 "hb-ot-shape-complex-indic-machine.rl" 1711 {{p = ((te))-1;}{ found_syllable (consonant_syllable); }} 1712 break; 1713 case 3: 1714 #line 89 "hb-ot-shape-complex-indic-machine.rl" 1715 {{p = ((te))-1;}{ found_syllable (vowel_syllable); }} 1716 break; 1717 case 7: 1718 #line 90 "hb-ot-shape-complex-indic-machine.rl" 1719 {{p = ((te))-1;}{ found_syllable (standalone_cluster); }} 1720 break; 1721 case 9: 1722 #line 91 "hb-ot-shape-complex-indic-machine.rl" 1723 {{p = ((te))-1;}{ found_syllable (symbol_cluster); }} 1724 break; 1725 case 4: 1726 #line 92 "hb-ot-shape-complex-indic-machine.rl" 1727 {{p = ((te))-1;}{ found_syllable (broken_cluster); }} 1728 break; 1729 case 5: 1730 #line 1 "NONE" 1731 { switch( act ) { 1732 case 1: 1733 {{p = ((te))-1;} found_syllable (consonant_syllable); } 1734 break; 1735 case 5: 1736 {{p = ((te))-1;} found_syllable (broken_cluster); } 1737 break; 1738 case 6: 1739 {{p = ((te))-1;} found_syllable (non_indic_cluster); } 1740 break; 1741 } 1742 } 1743 break; 1744 case 8: 1745 #line 1 "NONE" 1746 {te = p+1;} 1747 #line 88 "hb-ot-shape-complex-indic-machine.rl" 1748 {act = 1;} 1749 break; 1750 case 6: 1751 #line 1 "NONE" 1752 {te = p+1;} 1753 #line 92 "hb-ot-shape-complex-indic-machine.rl" 1754 {act = 5;} 1755 break; 1756 case 13: 1757 #line 1 "NONE" 1758 {te = p+1;} 1759 #line 93 "hb-ot-shape-complex-indic-machine.rl" 1760 {act = 6;} 1761 break; 1762 #line 1734 "hb-ot-shape-complex-indic-machine.hh" 1763 } 1764 1765 _again: 1766 switch ( _indic_syllable_machine_to_state_actions[cs] ) { 1767 case 10: 1768 #line 1 "NONE" 1769 {ts = 0;} 1770 break; 1771 #line 1743 "hb-ot-shape-complex-indic-machine.hh" 1772 } 1773 1774 if ( ++p != pe ) 1775 goto _resume; 1776 _test_eof: {} 1777 if ( p == eof ) 1778 { 1779 if ( _indic_syllable_machine_eof_trans[cs] > 0 ) { 1780 _trans = _indic_syllable_machine_eof_trans[cs] - 1; 1781 goto _eof_trans; 1782 } 1783 } 1784 1785 } 1786 1787 #line 127 "hb-ot-shape-complex-indic-machine.rl" 1788 1789 } 1790 1791 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */