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