[HarfBuzz] harfbuzz: Branch 'master'

Behdad Esfahbod behdad at kemper.freedesktop.org
Mon Oct 1 18:06:01 UTC 2018


 src/hb-ot-shape-complex-indic-machine.hh | 1244 ++++++++++++++-----------------
 src/hb-ot-shape-complex-indic-machine.rl |   10 
 src/hb-ot-shape-complex-indic.cc         |    2 
 src/hb-ot-shape-complex-indic.hh         |    6 
 4 files changed, 589 insertions(+), 673 deletions(-)

New commits:
commit 8bf4027d23318c7e1ff7fe9f5e7ad8b0380e5415
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Oct 1 20:05:00 2018 +0200

    [indic] Remove Consonant_Medial from grammar and code
    
    The only Indic CM is U+0A75 GURMUKHI SIGN YAKASH, which Uniscribe doesn't treat
    specially, and font designers design for that.  So, do the same.

diff --git a/src/hb-ot-shape-complex-indic-machine.hh b/src/hb-ot-shape-complex-indic-machine.hh
index 351d5970..6a19bfb3 100644
--- a/src/hb-ot-shape-complex-indic-machine.hh
+++ b/src/hb-ot-shape-complex-indic-machine.hh
@@ -51,40 +51,40 @@ static const unsigned char _indic_syllable_machine_trans_keys[] = {
 	5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 
 	4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 13u, 4u, 8u, 
 	4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 13u, 
-	5u, 8u, 8u, 8u, 1u, 19u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 
-	3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 
-	3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u, 
+	5u, 8u, 8u, 8u, 1u, 19u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 
+	3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 
+	3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 5u, 10u, 
 	5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 
 	4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 
-	3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 
-	3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 
-	1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 
-	3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 
-	1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 
-	1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 
-	10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 
+	3u, 10u, 4u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 
+	3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 
+	1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 
+	3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 
+	3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 
+	3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 
+	10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 
+	4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 3u, 10u, 
+	3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 
+	1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 
+	1u, 16u, 1u, 16u, 1u, 16u, 4u, 8u, 3u, 10u, 3u, 10u, 4u, 10u, 1u, 16u, 
+	3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 
+	3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 
+	5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 
 	3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 
-	4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 
-	1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 
-	3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 8u, 3u, 17u, 3u, 17u, 
-	4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 
-	4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 
-	4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 
-	3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 
-	3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 
-	1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 
-	3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 
-	1u, 16u, 1u, 16u, 4u, 13u, 3u, 17u, 4u, 8u, 3u, 17u, 3u, 17u, 4u, 17u, 
-	1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 
-	1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 
-	5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 
+	5u, 10u, 3u, 10u, 4u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 
+	3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 
+	1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 13u, 
+	3u, 10u, 4u, 8u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 
+	4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 
+	4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 5u, 10u, 5u, 10u, 
+	10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 
 	5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 
-	4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 
-	1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 
-	3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 
-	1u, 16u, 3u, 17u, 1u, 17u, 3u, 17u, 1u, 17u, 4u, 13u, 5u, 10u, 10u, 10u, 
-	10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 3u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 
-	10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 0
+	4u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 
+	1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 
+	3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 1u, 16u, 3u, 13u, 
+	1u, 16u, 4u, 13u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 
+	3u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 
+	0
 };
 
 static const char _indic_syllable_machine_key_spans[] = {
@@ -105,40 +105,39 @@ static const char _indic_syllable_machine_key_spans[] = {
 	3, 1, 5, 1, 1, 5, 1, 1, 
 	5, 1, 1, 5, 1, 1, 10, 5, 
 	10, 5, 10, 5, 10, 5, 10, 10, 
-	4, 1, 19, 15, 15, 14, 16, 15, 
-	15, 14, 16, 15, 15, 14, 16, 15, 
-	15, 14, 16, 15, 15, 14, 6, 6, 
+	4, 1, 19, 11, 8, 7, 16, 11, 
+	8, 7, 16, 11, 8, 7, 16, 11, 
+	8, 7, 16, 11, 8, 7, 6, 6, 
 	6, 1, 1, 1, 6, 8, 6, 8, 
 	7, 6, 8, 7, 6, 8, 7, 6, 
-	8, 7, 7, 15, 15, 16, 16, 16, 
-	15, 15, 16, 16, 16, 15, 15, 16, 
-	16, 16, 15, 15, 16, 16, 16, 15, 
-	15, 15, 15, 14, 16, 15, 15, 14, 
-	16, 15, 15, 14, 16, 15, 15, 14, 
-	16, 15, 15, 14, 6, 6, 6, 1, 
-	1, 1, 6, 8, 6, 8, 7, 6, 
+	8, 7, 8, 11, 16, 16, 16, 8, 
+	11, 16, 16, 16, 8, 11, 16, 16, 
+	16, 8, 11, 16, 16, 16, 8, 11, 
+	11, 8, 7, 16, 11, 8, 7, 16, 
+	11, 8, 7, 16, 11, 8, 7, 16, 
+	11, 8, 7, 6, 6, 6, 1, 1, 
+	1, 6, 8, 6, 8, 7, 6, 8, 
+	7, 6, 8, 7, 6, 8, 7, 8, 
+	11, 16, 16, 16, 8, 11, 16, 16, 
+	16, 8, 11, 16, 16, 16, 8, 11, 
+	16, 16, 16, 5, 8, 8, 7, 16, 
+	11, 8, 7, 16, 11, 8, 7, 16, 
+	11, 8, 7, 16, 11, 8, 7, 6, 
+	6, 6, 1, 1, 1, 6, 8, 6, 
 	8, 7, 6, 8, 7, 6, 8, 7, 
-	7, 15, 15, 16, 16, 16, 15, 15, 
-	16, 16, 16, 15, 15, 16, 16, 16, 
-	15, 15, 16, 16, 16, 5, 15, 15, 
-	14, 16, 15, 15, 14, 16, 15, 15, 
-	14, 16, 15, 15, 14, 16, 15, 15, 
-	14, 6, 6, 6, 1, 1, 1, 6, 
-	8, 6, 8, 7, 6, 8, 7, 6, 
-	8, 7, 6, 8, 7, 7, 15, 15, 
-	16, 16, 16, 15, 15, 16, 16, 16, 
-	15, 15, 16, 16, 16, 15, 15, 16, 
-	16, 16, 10, 15, 5, 15, 15, 14, 
-	16, 15, 15, 14, 16, 15, 15, 14, 
-	16, 15, 15, 14, 16, 15, 15, 14, 
-	6, 6, 6, 1, 1, 1, 6, 8, 
+	6, 8, 7, 8, 11, 16, 16, 16, 
+	8, 11, 16, 16, 16, 8, 11, 16, 
+	16, 16, 8, 11, 16, 16, 16, 10, 
+	8, 5, 11, 8, 7, 16, 11, 8, 
+	7, 16, 11, 8, 7, 16, 11, 8, 
+	7, 16, 11, 8, 7, 6, 6, 6, 
+	1, 1, 1, 6, 8, 6, 8, 7, 
 	6, 8, 7, 6, 8, 7, 6, 8, 
-	7, 6, 8, 7, 7, 15, 15, 16, 
-	16, 16, 15, 15, 16, 16, 16, 15, 
-	15, 16, 16, 16, 15, 15, 16, 16, 
-	16, 15, 17, 15, 17, 10, 6, 1, 
-	1, 1, 6, 16, 8, 6, 6, 1, 
-	1, 1, 6, 16
+	7, 8, 11, 16, 16, 16, 8, 11, 
+	16, 16, 16, 8, 11, 16, 16, 16, 
+	8, 11, 16, 16, 16, 8, 16, 11, 
+	16, 10, 6, 1, 1, 1, 6, 16, 
+	8, 6, 6, 1, 1, 1, 6, 16
 };
 
 static const short _indic_syllable_machine_index_offsets[] = {
@@ -159,40 +158,39 @@ static const short _indic_syllable_machine_index_offsets[] = {
 	528, 532, 534, 540, 542, 544, 550, 552, 
 	554, 560, 562, 564, 570, 572, 574, 585, 
 	591, 602, 608, 619, 625, 636, 642, 653, 
-	664, 669, 671, 691, 707, 723, 738, 755, 
-	771, 787, 802, 819, 835, 851, 866, 883, 
-	899, 915, 930, 947, 963, 979, 994, 1001, 
-	1008, 1015, 1017, 1019, 1021, 1028, 1037, 1044, 
-	1053, 1061, 1068, 1077, 1085, 1092, 1101, 1109, 
-	1116, 1125, 1133, 1141, 1157, 1173, 1190, 1207, 
-	1224, 1240, 1256, 1273, 1290, 1307, 1323, 1339, 
-	1356, 1373, 1390, 1406, 1422, 1439, 1456, 1473, 
-	1489, 1505, 1521, 1537, 1552, 1569, 1585, 1601, 
-	1616, 1633, 1649, 1665, 1680, 1697, 1713, 1729, 
-	1744, 1761, 1777, 1793, 1808, 1815, 1822, 1829, 
-	1831, 1833, 1835, 1842, 1851, 1858, 1867, 1875, 
-	1882, 1891, 1899, 1906, 1915, 1923, 1930, 1939, 
-	1947, 1955, 1971, 1987, 2004, 2021, 2038, 2054, 
-	2070, 2087, 2104, 2121, 2137, 2153, 2170, 2187, 
-	2204, 2220, 2236, 2253, 2270, 2287, 2293, 2309, 
-	2325, 2340, 2357, 2373, 2389, 2404, 2421, 2437, 
-	2453, 2468, 2485, 2501, 2517, 2532, 2549, 2565, 
-	2581, 2596, 2603, 2610, 2617, 2619, 2621, 2623, 
-	2630, 2639, 2646, 2655, 2663, 2670, 2679, 2687, 
-	2694, 2703, 2711, 2718, 2727, 2735, 2743, 2759, 
-	2775, 2792, 2809, 2826, 2842, 2858, 2875, 2892, 
-	2909, 2925, 2941, 2958, 2975, 2992, 3008, 3024, 
-	3041, 3058, 3075, 3086, 3102, 3108, 3124, 3140, 
-	3155, 3172, 3188, 3204, 3219, 3236, 3252, 3268, 
-	3283, 3300, 3316, 3332, 3347, 3364, 3380, 3396, 
-	3411, 3418, 3425, 3432, 3434, 3436, 3438, 3445, 
-	3454, 3461, 3470, 3478, 3485, 3494, 3502, 3509, 
-	3518, 3526, 3533, 3542, 3550, 3558, 3574, 3590, 
-	3607, 3624, 3641, 3657, 3673, 3690, 3707, 3724, 
-	3740, 3756, 3773, 3790, 3807, 3823, 3839, 3856, 
-	3873, 3890, 3906, 3924, 3940, 3958, 3969, 3976, 
-	3978, 3980, 3982, 3989, 4006, 4015, 4022, 4029, 
-	4031, 4033, 4035, 4042
+	664, 669, 671, 691, 703, 712, 720, 737, 
+	749, 758, 766, 783, 795, 804, 812, 829, 
+	841, 850, 858, 875, 887, 896, 904, 911, 
+	918, 925, 927, 929, 931, 938, 947, 954, 
+	963, 971, 978, 987, 995, 1002, 1011, 1019, 
+	1026, 1035, 1043, 1052, 1064, 1081, 1098, 1115, 
+	1124, 1136, 1153, 1170, 1187, 1196, 1208, 1225, 
+	1242, 1259, 1268, 1280, 1297, 1314, 1331, 1340, 
+	1352, 1364, 1373, 1381, 1398, 1410, 1419, 1427, 
+	1444, 1456, 1465, 1473, 1490, 1502, 1511, 1519, 
+	1536, 1548, 1557, 1565, 1572, 1579, 1586, 1588, 
+	1590, 1592, 1599, 1608, 1615, 1624, 1632, 1639, 
+	1648, 1656, 1663, 1672, 1680, 1687, 1696, 1704, 
+	1713, 1725, 1742, 1759, 1776, 1785, 1797, 1814, 
+	1831, 1848, 1857, 1869, 1886, 1903, 1920, 1929, 
+	1941, 1958, 1975, 1992, 1998, 2007, 2016, 2024, 
+	2041, 2053, 2062, 2070, 2087, 2099, 2108, 2116, 
+	2133, 2145, 2154, 2162, 2179, 2191, 2200, 2208, 
+	2215, 2222, 2229, 2231, 2233, 2235, 2242, 2251, 
+	2258, 2267, 2275, 2282, 2291, 2299, 2306, 2315, 
+	2323, 2330, 2339, 2347, 2356, 2368, 2385, 2402, 
+	2419, 2428, 2440, 2457, 2474, 2491, 2500, 2512, 
+	2529, 2546, 2563, 2572, 2584, 2601, 2618, 2635, 
+	2646, 2655, 2661, 2673, 2682, 2690, 2707, 2719, 
+	2728, 2736, 2753, 2765, 2774, 2782, 2799, 2811, 
+	2820, 2828, 2845, 2857, 2866, 2874, 2881, 2888, 
+	2895, 2897, 2899, 2901, 2908, 2917, 2924, 2933, 
+	2941, 2948, 2957, 2965, 2972, 2981, 2989, 2996, 
+	3005, 3013, 3022, 3034, 3051, 3068, 3085, 3094, 
+	3106, 3123, 3140, 3157, 3166, 3178, 3195, 3212, 
+	3229, 3238, 3250, 3267, 3284, 3301, 3310, 3327, 
+	3339, 3356, 3367, 3374, 3376, 3378, 3380, 3387, 
+	3404, 3413, 3420, 3427, 3429, 3431, 3433, 3440
 };
 
 static const short _indic_syllable_machine_indicies[] = {
@@ -281,485 +279,410 @@ static const short _indic_syllable_machine_indicies[] = {
 	76, 73, 72, 72, 72, 72, 144, 72, 
 	78, 78, 76, 1, 0, 146, 145, 148, 
 	149, 150, 151, 152, 153, 76, 73, 147, 
-	154, 155, 155, 144, 147, 156, 157, 158, 
-	159, 160, 147, 162, 163, 164, 165, 4, 
-	1, 161, 166, 161, 161, 35, 161, 161, 
-	161, 167, 161, 168, 163, 169, 169, 4, 
-	1, 161, 166, 161, 161, 161, 161, 161, 
-	161, 167, 161, 163, 169, 169, 4, 1, 
-	161, 166, 161, 161, 161, 161, 161, 161, 
-	167, 161, 170, 161, 161, 161, 17, 171, 
-	161, 1, 161, 166, 161, 161, 161, 161, 
-	161, 170, 161, 172, 173, 174, 175, 4, 
-	1, 161, 166, 161, 161, 33, 161, 161, 
-	161, 167, 161, 176, 173, 177, 177, 4, 
-	1, 161, 166, 161, 161, 161, 161, 161, 
-	161, 167, 161, 173, 177, 177, 4, 1, 
-	161, 166, 161, 161, 161, 161, 161, 161, 
-	167, 161, 178, 161, 161, 161, 17, 179, 
-	161, 1, 161, 166, 161, 161, 161, 161, 
-	161, 178, 161, 180, 181, 182, 183, 4, 
-	1, 161, 166, 161, 161, 31, 161, 161, 
-	161, 167, 161, 184, 181, 185, 185, 4, 
-	1, 161, 166, 161, 161, 161, 161, 161, 
-	161, 167, 161, 181, 185, 185, 4, 1, 
-	161, 166, 161, 161, 161, 161, 161, 161, 
-	167, 161, 186, 161, 161, 161, 17, 187, 
-	161, 1, 161, 166, 161, 161, 161, 161, 
-	161, 186, 161, 188, 189, 190, 191, 4, 
-	1, 161, 166, 161, 161, 29, 161, 161, 
-	161, 167, 161, 192, 189, 193, 193, 4, 
-	1, 161, 166, 161, 161, 161, 161, 161, 
-	161, 167, 161, 189, 193, 193, 4, 1, 
-	161, 166, 161, 161, 161, 161, 161, 161, 
-	167, 161, 194, 161, 161, 161, 17, 195, 
-	161, 1, 161, 166, 161, 161, 161, 161, 
-	161, 194, 161, 196, 197, 198, 199, 4, 
-	1, 161, 166, 161, 161, 27, 161, 161, 
-	161, 167, 161, 200, 197, 201, 201, 4, 
-	1, 161, 166, 161, 161, 161, 161, 161, 
-	161, 167, 161, 197, 201, 201, 4, 1, 
-	161, 166, 161, 161, 161, 161, 161, 161, 
-	167, 161, 17, 202, 161, 1, 161, 166, 
-	161, 203, 203, 161, 1, 161, 166, 161, 
-	204, 161, 161, 205, 161, 166, 161, 166, 
-	161, 206, 161, 207, 161, 204, 161, 161, 
-	161, 161, 166, 161, 17, 161, 203, 203, 
-	161, 1, 161, 166, 161, 203, 202, 161, 
-	1, 161, 166, 161, 208, 26, 209, 210, 
-	7, 1, 161, 166, 161, 26, 209, 210, 
-	7, 1, 161, 166, 161, 209, 209, 7, 
-	1, 161, 166, 161, 211, 23, 212, 213, 
-	10, 1, 161, 166, 161, 23, 212, 213, 
-	10, 1, 161, 166, 161, 212, 212, 10, 
-	1, 161, 166, 161, 214, 20, 215, 216, 
-	13, 1, 161, 166, 161, 20, 215, 216, 
-	13, 1, 161, 166, 161, 215, 215, 13, 
-	1, 161, 166, 161, 217, 17, 203, 218, 
-	161, 1, 161, 166, 161, 17, 203, 218, 
-	161, 1, 161, 166, 161, 197, 201, 201, 
-	4, 1, 161, 166, 161, 196, 197, 201, 
-	201, 4, 1, 161, 166, 161, 161, 161, 
-	161, 161, 161, 167, 161, 196, 197, 198, 
-	201, 4, 1, 161, 166, 161, 161, 27, 
-	161, 161, 161, 167, 161, 194, 161, 219, 
-	161, 203, 203, 161, 1, 161, 166, 161, 
-	161, 161, 161, 161, 194, 161, 194, 161, 
-	161, 161, 203, 203, 161, 1, 161, 166, 
-	161, 161, 161, 161, 161, 194, 161, 194, 
-	161, 161, 161, 203, 195, 161, 1, 161, 
-	166, 161, 161, 161, 161, 161, 194, 161, 
-	188, 189, 193, 193, 4, 1, 161, 166, 
-	161, 161, 161, 161, 161, 161, 167, 161, 
-	188, 189, 190, 193, 4, 1, 161, 166, 
-	161, 161, 29, 161, 161, 161, 167, 161, 
-	186, 161, 220, 161, 203, 203, 161, 1, 
-	161, 166, 161, 161, 161, 161, 161, 186, 
-	161, 186, 161, 161, 161, 203, 203, 161, 
-	1, 161, 166, 161, 161, 161, 161, 161, 
-	186, 161, 186, 161, 161, 161, 203, 187, 
-	161, 1, 161, 166, 161, 161, 161, 161, 
-	161, 186, 161, 180, 181, 185, 185, 4, 
-	1, 161, 166, 161, 161, 161, 161, 161, 
-	161, 167, 161, 180, 181, 182, 185, 4, 
-	1, 161, 166, 161, 161, 31, 161, 161, 
-	161, 167, 161, 178, 161, 221, 161, 203, 
-	203, 161, 1, 161, 166, 161, 161, 161, 
-	161, 161, 178, 161, 178, 161, 161, 161, 
-	203, 203, 161, 1, 161, 166, 161, 161, 
-	161, 161, 161, 178, 161, 178, 161, 161, 
-	161, 203, 179, 161, 1, 161, 166, 161, 
-	161, 161, 161, 161, 178, 161, 172, 173, 
-	177, 177, 4, 1, 161, 166, 161, 161, 
-	161, 161, 161, 161, 167, 161, 172, 173, 
-	174, 177, 4, 1, 161, 166, 161, 161, 
-	33, 161, 161, 161, 167, 161, 170, 161, 
-	222, 161, 203, 203, 161, 1, 161, 166, 
-	161, 161, 161, 161, 161, 170, 161, 170, 
-	161, 161, 161, 203, 203, 161, 1, 161, 
-	166, 161, 161, 161, 161, 161, 170, 161, 
-	170, 161, 161, 161, 203, 171, 161, 1, 
-	161, 166, 161, 161, 161, 161, 161, 170, 
-	161, 162, 163, 169, 169, 4, 1, 161, 
-	166, 161, 161, 161, 161, 161, 161, 167, 
-	161, 162, 163, 164, 169, 4, 1, 161, 
-	166, 161, 161, 35, 161, 161, 161, 167, 
-	161, 224, 225, 226, 227, 40, 37, 223, 
-	228, 223, 223, 71, 223, 223, 223, 229, 
-	223, 230, 225, 231, 227, 40, 37, 223, 
-	228, 223, 223, 223, 223, 223, 223, 229, 
-	223, 225, 231, 227, 40, 37, 223, 228, 
-	223, 223, 223, 223, 223, 223, 229, 223, 
-	232, 223, 223, 223, 53, 233, 223, 37, 
-	223, 228, 223, 223, 223, 223, 223, 232, 
-	223, 234, 235, 236, 237, 40, 37, 223, 
-	228, 223, 223, 69, 223, 223, 223, 229, 
-	223, 238, 235, 239, 239, 40, 37, 223, 
-	228, 223, 223, 223, 223, 223, 223, 229, 
-	223, 235, 239, 239, 40, 37, 223, 228, 
-	223, 223, 223, 223, 223, 223, 229, 223, 
-	240, 223, 223, 223, 53, 241, 223, 37, 
-	223, 228, 223, 223, 223, 223, 223, 240, 
-	223, 242, 243, 244, 245, 40, 37, 223, 
-	228, 223, 223, 67, 223, 223, 223, 229, 
-	223, 246, 243, 247, 247, 40, 37, 223, 
-	228, 223, 223, 223, 223, 223, 223, 229, 
-	223, 243, 247, 247, 40, 37, 223, 228, 
-	223, 223, 223, 223, 223, 223, 229, 223, 
-	248, 223, 223, 223, 53, 249, 223, 37, 
-	223, 228, 223, 223, 223, 223, 223, 248, 
-	223, 250, 251, 252, 253, 40, 37, 223, 
-	228, 223, 223, 65, 223, 223, 223, 229, 
-	223, 254, 251, 255, 255, 40, 37, 223, 
-	228, 223, 223, 223, 223, 223, 223, 229, 
-	223, 251, 255, 255, 40, 37, 223, 228, 
-	223, 223, 223, 223, 223, 223, 229, 223, 
-	256, 223, 223, 223, 53, 257, 223, 37, 
-	223, 228, 223, 223, 223, 223, 223, 256, 
-	223, 258, 259, 260, 261, 40, 37, 223, 
-	228, 223, 223, 63, 223, 223, 223, 229, 
-	223, 262, 259, 263, 263, 40, 37, 223, 
-	228, 223, 223, 223, 223, 223, 223, 229, 
-	223, 259, 263, 263, 40, 37, 223, 228, 
-	223, 223, 223, 223, 223, 223, 229, 223, 
-	53, 264, 223, 37, 223, 228, 223, 265, 
-	265, 223, 37, 223, 228, 223, 266, 223, 
-	223, 267, 223, 228, 223, 228, 223, 268, 
-	223, 269, 223, 266, 223, 223, 223, 223, 
-	228, 223, 53, 223, 265, 265, 223, 37, 
-	223, 228, 223, 265, 264, 223, 37, 223, 
-	228, 223, 270, 62, 271, 272, 43, 37, 
-	223, 228, 223, 62, 271, 272, 43, 37, 
-	223, 228, 223, 271, 271, 43, 37, 223, 
-	228, 223, 273, 59, 274, 275, 46, 37, 
-	223, 228, 223, 59, 274, 275, 46, 37, 
-	223, 228, 223, 274, 274, 46, 37, 223, 
-	228, 223, 276, 56, 277, 278, 49, 37, 
-	223, 228, 223, 56, 277, 278, 49, 37, 
-	223, 228, 223, 277, 277, 49, 37, 223, 
-	228, 223, 279, 53, 265, 280, 223, 37, 
-	223, 228, 223, 53, 265, 280, 223, 37, 
-	223, 228, 223, 259, 263, 263, 40, 37, 
-	223, 228, 223, 258, 259, 263, 263, 40, 
-	37, 223, 228, 223, 223, 223, 223, 223, 
-	223, 229, 223, 258, 259, 260, 263, 40, 
-	37, 223, 228, 223, 223, 63, 223, 223, 
-	223, 229, 223, 256, 223, 281, 223, 265, 
-	265, 223, 37, 223, 228, 223, 223, 223, 
-	223, 223, 256, 223, 256, 223, 223, 223, 
-	265, 265, 223, 37, 223, 228, 223, 223, 
-	223, 223, 223, 256, 223, 256, 223, 223, 
-	223, 265, 257, 223, 37, 223, 228, 223, 
-	223, 223, 223, 223, 256, 223, 250, 251, 
-	255, 255, 40, 37, 223, 228, 223, 223, 
-	223, 223, 223, 223, 229, 223, 250, 251, 
-	252, 255, 40, 37, 223, 228, 223, 223, 
-	65, 223, 223, 223, 229, 223, 248, 223, 
-	282, 223, 265, 265, 223, 37, 223, 228, 
-	223, 223, 223, 223, 223, 248, 223, 248, 
-	223, 223, 223, 265, 265, 223, 37, 223, 
-	228, 223, 223, 223, 223, 223, 248, 223, 
-	248, 223, 223, 223, 265, 249, 223, 37, 
-	223, 228, 223, 223, 223, 223, 223, 248, 
-	223, 242, 243, 247, 247, 40, 37, 223, 
-	228, 223, 223, 223, 223, 223, 223, 229, 
-	223, 242, 243, 244, 247, 40, 37, 223, 
-	228, 223, 223, 67, 223, 223, 223, 229, 
-	223, 240, 223, 283, 223, 265, 265, 223, 
-	37, 223, 228, 223, 223, 223, 223, 223, 
-	240, 223, 240, 223, 223, 223, 265, 265, 
-	223, 37, 223, 228, 223, 223, 223, 223, 
-	223, 240, 223, 240, 223, 223, 223, 265, 
-	241, 223, 37, 223, 228, 223, 223, 223, 
-	223, 223, 240, 223, 234, 235, 239, 239, 
-	40, 37, 223, 228, 223, 223, 223, 223, 
-	223, 223, 229, 223, 234, 235, 236, 239, 
-	40, 37, 223, 228, 223, 223, 69, 223, 
-	223, 223, 229, 223, 232, 223, 284, 223, 
-	265, 265, 223, 37, 223, 228, 223, 223, 
-	223, 223, 223, 232, 223, 232, 223, 223, 
-	223, 265, 265, 223, 37, 223, 228, 223, 
-	223, 223, 223, 223, 232, 223, 232, 223, 
-	223, 223, 265, 233, 223, 37, 223, 228, 
-	223, 223, 223, 223, 223, 232, 223, 70, 
-	39, 39, 40, 37, 223, 224, 225, 231, 
-	227, 40, 37, 223, 228, 223, 223, 223, 
-	223, 223, 223, 229, 223, 286, 151, 287, 
-	287, 76, 73, 285, 154, 285, 285, 285, 
-	285, 285, 285, 158, 285, 151, 287, 287, 
-	76, 73, 285, 154, 285, 285, 285, 285, 
-	285, 285, 158, 285, 288, 285, 285, 285, 
-	90, 289, 285, 73, 285, 154, 285, 285, 
-	285, 285, 285, 288, 285, 290, 291, 292, 
-	293, 76, 73, 285, 154, 285, 285, 106, 
-	285, 285, 285, 158, 285, 294, 291, 295, 
-	295, 76, 73, 285, 154, 285, 285, 285, 
-	285, 285, 285, 158, 285, 291, 295, 295, 
-	76, 73, 285, 154, 285, 285, 285, 285, 
-	285, 285, 158, 285, 296, 285, 285, 285, 
-	90, 297, 285, 73, 285, 154, 285, 285, 
-	285, 285, 285, 296, 285, 298, 299, 300, 
-	301, 76, 73, 285, 154, 285, 285, 104, 
-	285, 285, 285, 158, 285, 302, 299, 303, 
-	303, 76, 73, 285, 154, 285, 285, 285, 
-	285, 285, 285, 158, 285, 299, 303, 303, 
-	76, 73, 285, 154, 285, 285, 285, 285, 
-	285, 285, 158, 285, 304, 285, 285, 285, 
-	90, 305, 285, 73, 285, 154, 285, 285, 
-	285, 285, 285, 304, 285, 306, 307, 308, 
-	309, 76, 73, 285, 154, 285, 285, 102, 
-	285, 285, 285, 158, 285, 310, 307, 311, 
-	311, 76, 73, 285, 154, 285, 285, 285, 
-	285, 285, 285, 158, 285, 307, 311, 311, 
-	76, 73, 285, 154, 285, 285, 285, 285, 
-	285, 285, 158, 285, 312, 285, 285, 285, 
-	90, 313, 285, 73, 285, 154, 285, 285, 
-	285, 285, 285, 312, 285, 314, 315, 316, 
-	317, 76, 73, 285, 154, 285, 285, 100, 
-	285, 285, 285, 158, 285, 318, 315, 319, 
-	319, 76, 73, 285, 154, 285, 285, 285, 
-	285, 285, 285, 158, 285, 315, 319, 319, 
-	76, 73, 285, 154, 285, 285, 285, 285, 
-	285, 285, 158, 285, 90, 320, 285, 73, 
-	285, 154, 285, 321, 321, 285, 73, 285, 
-	154, 285, 322, 285, 285, 323, 285, 154, 
-	285, 154, 285, 324, 285, 325, 285, 322, 
-	285, 285, 285, 285, 154, 285, 90, 285, 
-	321, 321, 285, 73, 285, 154, 285, 321, 
-	320, 285, 73, 285, 154, 285, 326, 99, 
-	327, 328, 80, 73, 285, 154, 285, 99, 
-	327, 328, 80, 73, 285, 154, 285, 327, 
-	327, 80, 73, 285, 154, 285, 329, 96, 
-	330, 331, 83, 73, 285, 154, 285, 96, 
-	330, 331, 83, 73, 285, 154, 285, 330, 
-	330, 83, 73, 285, 154, 285, 332, 93, 
-	333, 334, 86, 73, 285, 154, 285, 93, 
-	333, 334, 86, 73, 285, 154, 285, 333, 
-	333, 86, 73, 285, 154, 285, 335, 90, 
-	321, 336, 285, 73, 285, 154, 285, 90, 
-	321, 336, 285, 73, 285, 154, 285, 315, 
-	319, 319, 76, 73, 285, 154, 285, 314, 
-	315, 319, 319, 76, 73, 285, 154, 285, 
-	285, 285, 285, 285, 285, 158, 285, 314, 
-	315, 316, 319, 76, 73, 285, 154, 285, 
-	285, 100, 285, 285, 285, 158, 285, 312, 
-	285, 337, 285, 321, 321, 285, 73, 285, 
-	154, 285, 285, 285, 285, 285, 312, 285, 
-	312, 285, 285, 285, 321, 321, 285, 73, 
-	285, 154, 285, 285, 285, 285, 285, 312, 
-	285, 312, 285, 285, 285, 321, 313, 285, 
-	73, 285, 154, 285, 285, 285, 285, 285, 
-	312, 285, 306, 307, 311, 311, 76, 73, 
-	285, 154, 285, 285, 285, 285, 285, 285, 
-	158, 285, 306, 307, 308, 311, 76, 73, 
-	285, 154, 285, 285, 102, 285, 285, 285, 
-	158, 285, 304, 285, 338, 285, 321, 321, 
-	285, 73, 285, 154, 285, 285, 285, 285, 
-	285, 304, 285, 304, 285, 285, 285, 321, 
-	321, 285, 73, 285, 154, 285, 285, 285, 
-	285, 285, 304, 285, 304, 285, 285, 285, 
-	321, 305, 285, 73, 285, 154, 285, 285, 
-	285, 285, 285, 304, 285, 298, 299, 303, 
-	303, 76, 73, 285, 154, 285, 285, 285, 
-	285, 285, 285, 158, 285, 298, 299, 300, 
-	303, 76, 73, 285, 154, 285, 285, 104, 
-	285, 285, 285, 158, 285, 296, 285, 339, 
-	285, 321, 321, 285, 73, 285, 154, 285, 
-	285, 285, 285, 285, 296, 285, 296, 285, 
-	285, 285, 321, 321, 285, 73, 285, 154, 
-	285, 285, 285, 285, 285, 296, 285, 296, 
-	285, 285, 285, 321, 297, 285, 73, 285, 
-	154, 285, 285, 285, 285, 285, 296, 285, 
-	290, 291, 295, 295, 76, 73, 285, 154, 
-	285, 285, 285, 285, 285, 285, 158, 285, 
-	290, 291, 292, 295, 76, 73, 285, 154, 
-	285, 285, 106, 285, 285, 285, 158, 285, 
-	288, 285, 340, 285, 321, 321, 285, 73, 
-	285, 154, 285, 285, 285, 285, 285, 288, 
-	285, 288, 285, 285, 285, 321, 321, 285, 
-	73, 285, 154, 285, 285, 285, 285, 285, 
-	288, 285, 288, 285, 285, 285, 321, 289, 
-	285, 73, 285, 154, 285, 285, 285, 285, 
-	285, 288, 285, 107, 75, 75, 76, 73, 
-	341, 341, 341, 341, 144, 341, 150, 151, 
-	287, 287, 76, 73, 285, 154, 285, 285, 
-	285, 285, 285, 285, 158, 285, 107, 75, 
-	75, 76, 73, 341, 343, 344, 345, 346, 
-	112, 109, 342, 347, 342, 342, 143, 342, 
-	342, 342, 348, 342, 349, 344, 346, 346, 
-	112, 109, 342, 347, 342, 342, 342, 342, 
-	342, 342, 348, 342, 344, 346, 346, 112, 
-	109, 342, 347, 342, 342, 342, 342, 342, 
-	342, 348, 342, 350, 342, 342, 342, 125, 
-	351, 342, 109, 342, 347, 342, 342, 342, 
-	342, 342, 350, 342, 352, 353, 354, 355, 
-	112, 109, 342, 347, 342, 342, 141, 342, 
-	342, 342, 348, 342, 356, 353, 357, 357, 
-	112, 109, 342, 347, 342, 342, 342, 342, 
-	342, 342, 348, 342, 353, 357, 357, 112, 
-	109, 342, 347, 342, 342, 342, 342, 342, 
-	342, 348, 342, 358, 342, 342, 342, 125, 
-	359, 342, 109, 342, 347, 342, 342, 342, 
-	342, 342, 358, 342, 360, 361, 362, 363, 
-	112, 109, 342, 347, 342, 342, 139, 342, 
-	342, 342, 348, 342, 364, 361, 365, 365, 
-	112, 109, 342, 347, 342, 342, 342, 342, 
-	342, 342, 348, 342, 361, 365, 365, 112, 
-	109, 342, 347, 342, 342, 342, 342, 342, 
-	342, 348, 342, 366, 342, 342, 342, 125, 
-	367, 342, 109, 342, 347, 342, 342, 342, 
-	342, 342, 366, 342, 368, 369, 370, 371, 
-	112, 109, 342, 347, 342, 342, 137, 342, 
-	342, 342, 348, 342, 372, 369, 373, 373, 
-	112, 109, 342, 347, 342, 342, 342, 342, 
-	342, 342, 348, 342, 369, 373, 373, 112, 
-	109, 342, 347, 342, 342, 342, 342, 342, 
-	342, 348, 342, 374, 342, 342, 342, 125, 
-	375, 342, 109, 342, 347, 342, 342, 342, 
-	342, 342, 374, 342, 376, 377, 378, 379, 
-	112, 109, 342, 347, 342, 342, 135, 342, 
-	342, 342, 348, 342, 380, 377, 381, 381, 
-	112, 109, 342, 347, 342, 342, 342, 342, 
-	342, 342, 348, 342, 377, 381, 381, 112, 
-	109, 342, 347, 342, 342, 342, 342, 342, 
-	342, 348, 342, 125, 382, 342, 109, 342, 
-	347, 342, 383, 383, 342, 109, 342, 347, 
-	342, 384, 342, 342, 385, 342, 347, 342, 
-	347, 342, 386, 342, 387, 342, 384, 342, 
-	342, 342, 342, 347, 342, 125, 342, 383, 
-	383, 342, 109, 342, 347, 342, 383, 382, 
-	342, 109, 342, 347, 342, 388, 134, 389, 
-	390, 115, 109, 342, 347, 342, 134, 389, 
-	390, 115, 109, 342, 347, 342, 389, 389, 
-	115, 109, 342, 347, 342, 391, 131, 392, 
-	393, 118, 109, 342, 347, 342, 131, 392, 
-	393, 118, 109, 342, 347, 342, 392, 392, 
-	118, 109, 342, 347, 342, 394, 128, 395, 
-	396, 121, 109, 342, 347, 342, 128, 395, 
-	396, 121, 109, 342, 347, 342, 395, 395, 
-	121, 109, 342, 347, 342, 397, 125, 383, 
-	398, 342, 109, 342, 347, 342, 125, 383, 
-	398, 342, 109, 342, 347, 342, 377, 381, 
-	381, 112, 109, 342, 347, 342, 376, 377, 
-	381, 381, 112, 109, 342, 347, 342, 342, 
-	342, 342, 342, 342, 348, 342, 376, 377, 
-	378, 381, 112, 109, 342, 347, 342, 342, 
-	135, 342, 342, 342, 348, 342, 374, 342, 
-	399, 342, 383, 383, 342, 109, 342, 347, 
-	342, 342, 342, 342, 342, 374, 342, 374, 
-	342, 342, 342, 383, 383, 342, 109, 342, 
-	347, 342, 342, 342, 342, 342, 374, 342, 
-	374, 342, 342, 342, 383, 375, 342, 109, 
-	342, 347, 342, 342, 342, 342, 342, 374, 
-	342, 368, 369, 373, 373, 112, 109, 342, 
-	347, 342, 342, 342, 342, 342, 342, 348, 
-	342, 368, 369, 370, 373, 112, 109, 342, 
-	347, 342, 342, 137, 342, 342, 342, 348, 
-	342, 366, 342, 400, 342, 383, 383, 342, 
-	109, 342, 347, 342, 342, 342, 342, 342, 
-	366, 342, 366, 342, 342, 342, 383, 383, 
-	342, 109, 342, 347, 342, 342, 342, 342, 
-	342, 366, 342, 366, 342, 342, 342, 383, 
-	367, 342, 109, 342, 347, 342, 342, 342, 
-	342, 342, 366, 342, 360, 361, 365, 365, 
-	112, 109, 342, 347, 342, 342, 342, 342, 
-	342, 342, 348, 342, 360, 361, 362, 365, 
-	112, 109, 342, 347, 342, 342, 139, 342, 
-	342, 342, 348, 342, 358, 342, 401, 342, 
-	383, 383, 342, 109, 342, 347, 342, 342, 
-	342, 342, 342, 358, 342, 358, 342, 342, 
-	342, 383, 383, 342, 109, 342, 347, 342, 
-	342, 342, 342, 342, 358, 342, 358, 342, 
-	342, 342, 383, 359, 342, 109, 342, 347, 
-	342, 342, 342, 342, 342, 358, 342, 352, 
-	353, 357, 357, 112, 109, 342, 347, 342, 
-	342, 342, 342, 342, 342, 348, 342, 352, 
-	353, 354, 357, 112, 109, 342, 347, 342, 
-	342, 141, 342, 342, 342, 348, 342, 350, 
-	342, 402, 342, 383, 383, 342, 109, 342, 
-	347, 342, 342, 342, 342, 342, 350, 342, 
-	350, 342, 342, 342, 383, 383, 342, 109, 
-	342, 347, 342, 342, 342, 342, 342, 350, 
-	342, 350, 342, 342, 342, 383, 351, 342, 
-	109, 342, 347, 342, 342, 342, 342, 342, 
-	350, 342, 343, 344, 346, 346, 112, 109, 
-	342, 347, 342, 342, 342, 342, 342, 342, 
-	348, 342, 148, 149, 150, 151, 403, 287, 
-	76, 73, 285, 154, 155, 155, 144, 285, 
-	285, 148, 158, 285, 162, 404, 164, 165, 
-	4, 1, 161, 166, 161, 161, 35, 161, 
-	161, 161, 167, 161, 170, 149, 150, 151, 
-	405, 406, 76, 407, 161, 408, 161, 155, 
-	144, 161, 161, 170, 158, 161, 107, 409, 
-	409, 76, 407, 161, 166, 161, 161, 144, 
-	161, 410, 161, 161, 411, 161, 408, 161, 
-	408, 161, 412, 161, 207, 161, 410, 161, 
-	161, 161, 161, 408, 161, 170, 161, 222, 
-	107, 409, 409, 76, 407, 161, 166, 161, 
-	161, 161, 161, 161, 170, 161, 414, 413, 
-	415, 415, 413, 146, 413, 416, 413, 415, 
-	415, 413, 146, 413, 416, 413, 417, 413, 
-	413, 418, 413, 416, 413, 416, 413, 419, 
-	413, 420, 413, 417, 413, 413, 413, 413, 
-	416, 413, 148, 341, 341, 341, 341, 341, 
-	341, 341, 341, 341, 155, 341, 341, 341, 
-	341, 148, 341, 0
+	154, 155, 155, 144, 147, 156, 157, 147, 
+	158, 159, 147, 161, 162, 163, 164, 4, 
+	1, 160, 165, 160, 160, 35, 160, 166, 
+	162, 167, 167, 4, 1, 160, 165, 160, 
+	162, 167, 167, 4, 1, 160, 165, 160, 
+	168, 160, 160, 160, 17, 169, 160, 1, 
+	160, 165, 160, 160, 160, 160, 160, 168, 
+	160, 170, 171, 172, 173, 4, 1, 160, 
+	165, 160, 160, 33, 160, 174, 171, 175, 
+	175, 4, 1, 160, 165, 160, 171, 175, 
+	175, 4, 1, 160, 165, 160, 176, 160, 
+	160, 160, 17, 177, 160, 1, 160, 165, 
+	160, 160, 160, 160, 160, 176, 160, 178, 
+	179, 180, 181, 4, 1, 160, 165, 160, 
+	160, 31, 160, 182, 179, 183, 183, 4, 
+	1, 160, 165, 160, 179, 183, 183, 4, 
+	1, 160, 165, 160, 184, 160, 160, 160, 
+	17, 185, 160, 1, 160, 165, 160, 160, 
+	160, 160, 160, 184, 160, 186, 187, 188, 
+	189, 4, 1, 160, 165, 160, 160, 29, 
+	160, 190, 187, 191, 191, 4, 1, 160, 
+	165, 160, 187, 191, 191, 4, 1, 160, 
+	165, 160, 192, 160, 160, 160, 17, 193, 
+	160, 1, 160, 165, 160, 160, 160, 160, 
+	160, 192, 160, 194, 195, 196, 197, 4, 
+	1, 160, 165, 160, 160, 27, 160, 198, 
+	195, 199, 199, 4, 1, 160, 165, 160, 
+	195, 199, 199, 4, 1, 160, 165, 160, 
+	17, 200, 160, 1, 160, 165, 160, 201, 
+	201, 160, 1, 160, 165, 160, 202, 160, 
+	160, 203, 160, 165, 160, 165, 160, 204, 
+	160, 205, 160, 202, 160, 160, 160, 160, 
+	165, 160, 17, 160, 201, 201, 160, 1, 
+	160, 165, 160, 201, 200, 160, 1, 160, 
+	165, 160, 206, 26, 207, 208, 7, 1, 
+	160, 165, 160, 26, 207, 208, 7, 1, 
+	160, 165, 160, 207, 207, 7, 1, 160, 
+	165, 160, 209, 23, 210, 211, 10, 1, 
+	160, 165, 160, 23, 210, 211, 10, 1, 
+	160, 165, 160, 210, 210, 10, 1, 160, 
+	165, 160, 212, 20, 213, 214, 13, 1, 
+	160, 165, 160, 20, 213, 214, 13, 1, 
+	160, 165, 160, 213, 213, 13, 1, 160, 
+	165, 160, 215, 17, 201, 216, 160, 1, 
+	160, 165, 160, 17, 201, 216, 160, 1, 
+	160, 165, 160, 194, 195, 199, 199, 4, 
+	1, 160, 165, 160, 194, 195, 196, 199, 
+	4, 1, 160, 165, 160, 160, 27, 160, 
+	192, 160, 217, 160, 201, 201, 160, 1, 
+	160, 165, 160, 160, 160, 160, 160, 192, 
+	160, 192, 160, 160, 160, 201, 201, 160, 
+	1, 160, 165, 160, 160, 160, 160, 160, 
+	192, 160, 192, 160, 160, 160, 201, 193, 
+	160, 1, 160, 165, 160, 160, 160, 160, 
+	160, 192, 160, 186, 187, 191, 191, 4, 
+	1, 160, 165, 160, 186, 187, 188, 191, 
+	4, 1, 160, 165, 160, 160, 29, 160, 
+	184, 160, 218, 160, 201, 201, 160, 1, 
+	160, 165, 160, 160, 160, 160, 160, 184, 
+	160, 184, 160, 160, 160, 201, 201, 160, 
+	1, 160, 165, 160, 160, 160, 160, 160, 
+	184, 160, 184, 160, 160, 160, 201, 185, 
+	160, 1, 160, 165, 160, 160, 160, 160, 
+	160, 184, 160, 178, 179, 183, 183, 4, 
+	1, 160, 165, 160, 178, 179, 180, 183, 
+	4, 1, 160, 165, 160, 160, 31, 160, 
+	176, 160, 219, 160, 201, 201, 160, 1, 
+	160, 165, 160, 160, 160, 160, 160, 176, 
+	160, 176, 160, 160, 160, 201, 201, 160, 
+	1, 160, 165, 160, 160, 160, 160, 160, 
+	176, 160, 176, 160, 160, 160, 201, 177, 
+	160, 1, 160, 165, 160, 160, 160, 160, 
+	160, 176, 160, 170, 171, 175, 175, 4, 
+	1, 160, 165, 160, 170, 171, 172, 175, 
+	4, 1, 160, 165, 160, 160, 33, 160, 
+	168, 160, 220, 160, 201, 201, 160, 1, 
+	160, 165, 160, 160, 160, 160, 160, 168, 
+	160, 168, 160, 160, 160, 201, 201, 160, 
+	1, 160, 165, 160, 160, 160, 160, 160, 
+	168, 160, 168, 160, 160, 160, 201, 169, 
+	160, 1, 160, 165, 160, 160, 160, 160, 
+	160, 168, 160, 161, 162, 167, 167, 4, 
+	1, 160, 165, 160, 161, 162, 163, 167, 
+	4, 1, 160, 165, 160, 160, 35, 160, 
+	222, 223, 224, 225, 40, 37, 221, 226, 
+	221, 221, 71, 221, 227, 223, 228, 225, 
+	40, 37, 221, 226, 221, 223, 228, 225, 
+	40, 37, 221, 226, 221, 229, 221, 221, 
+	221, 53, 230, 221, 37, 221, 226, 221, 
+	221, 221, 221, 221, 229, 221, 231, 232, 
+	233, 234, 40, 37, 221, 226, 221, 221, 
+	69, 221, 235, 232, 236, 236, 40, 37, 
+	221, 226, 221, 232, 236, 236, 40, 37, 
+	221, 226, 221, 237, 221, 221, 221, 53, 
+	238, 221, 37, 221, 226, 221, 221, 221, 
+	221, 221, 237, 221, 239, 240, 241, 242, 
+	40, 37, 221, 226, 221, 221, 67, 221, 
+	243, 240, 244, 244, 40, 37, 221, 226, 
+	221, 240, 244, 244, 40, 37, 221, 226, 
+	221, 245, 221, 221, 221, 53, 246, 221, 
+	37, 221, 226, 221, 221, 221, 221, 221, 
+	245, 221, 247, 248, 249, 250, 40, 37, 
+	221, 226, 221, 221, 65, 221, 251, 248, 
+	252, 252, 40, 37, 221, 226, 221, 248, 
+	252, 252, 40, 37, 221, 226, 221, 253, 
+	221, 221, 221, 53, 254, 221, 37, 221, 
+	226, 221, 221, 221, 221, 221, 253, 221, 
+	255, 256, 257, 258, 40, 37, 221, 226, 
+	221, 221, 63, 221, 259, 256, 260, 260, 
+	40, 37, 221, 226, 221, 256, 260, 260, 
+	40, 37, 221, 226, 221, 53, 261, 221, 
+	37, 221, 226, 221, 262, 262, 221, 37, 
+	221, 226, 221, 263, 221, 221, 264, 221, 
+	226, 221, 226, 221, 265, 221, 266, 221, 
+	263, 221, 221, 221, 221, 226, 221, 53, 
+	221, 262, 262, 221, 37, 221, 226, 221, 
+	262, 261, 221, 37, 221, 226, 221, 267, 
+	62, 268, 269, 43, 37, 221, 226, 221, 
+	62, 268, 269, 43, 37, 221, 226, 221, 
+	268, 268, 43, 37, 221, 226, 221, 270, 
+	59, 271, 272, 46, 37, 221, 226, 221, 
+	59, 271, 272, 46, 37, 221, 226, 221, 
+	271, 271, 46, 37, 221, 226, 221, 273, 
+	56, 274, 275, 49, 37, 221, 226, 221, 
+	56, 274, 275, 49, 37, 221, 226, 221, 
+	274, 274, 49, 37, 221, 226, 221, 276, 
+	53, 262, 277, 221, 37, 221, 226, 221, 
+	53, 262, 277, 221, 37, 221, 226, 221, 
+	255, 256, 260, 260, 40, 37, 221, 226, 
+	221, 255, 256, 257, 260, 40, 37, 221, 
+	226, 221, 221, 63, 221, 253, 221, 278, 
+	221, 262, 262, 221, 37, 221, 226, 221, 
+	221, 221, 221, 221, 253, 221, 253, 221, 
+	221, 221, 262, 262, 221, 37, 221, 226, 
+	221, 221, 221, 221, 221, 253, 221, 253, 
+	221, 221, 221, 262, 254, 221, 37, 221, 
+	226, 221, 221, 221, 221, 221, 253, 221, 
+	247, 248, 252, 252, 40, 37, 221, 226, 
+	221, 247, 248, 249, 252, 40, 37, 221, 
+	226, 221, 221, 65, 221, 245, 221, 279, 
+	221, 262, 262, 221, 37, 221, 226, 221, 
+	221, 221, 221, 221, 245, 221, 245, 221, 
+	221, 221, 262, 262, 221, 37, 221, 226, 
+	221, 221, 221, 221, 221, 245, 221, 245, 
+	221, 221, 221, 262, 246, 221, 37, 221, 
+	226, 221, 221, 221, 221, 221, 245, 221, 
+	239, 240, 244, 244, 40, 37, 221, 226, 
+	221, 239, 240, 241, 244, 40, 37, 221, 
+	226, 221, 221, 67, 221, 237, 221, 280, 
+	221, 262, 262, 221, 37, 221, 226, 221, 
+	221, 221, 221, 221, 237, 221, 237, 221, 
+	221, 221, 262, 262, 221, 37, 221, 226, 
+	221, 221, 221, 221, 221, 237, 221, 237, 
+	221, 221, 221, 262, 238, 221, 37, 221, 
+	226, 221, 221, 221, 221, 221, 237, 221, 
+	231, 232, 236, 236, 40, 37, 221, 226, 
+	221, 231, 232, 233, 236, 40, 37, 221, 
+	226, 221, 221, 69, 221, 229, 221, 281, 
+	221, 262, 262, 221, 37, 221, 226, 221, 
+	221, 221, 221, 221, 229, 221, 229, 221, 
+	221, 221, 262, 262, 221, 37, 221, 226, 
+	221, 221, 221, 221, 221, 229, 221, 229, 
+	221, 221, 221, 262, 230, 221, 37, 221, 
+	226, 221, 221, 221, 221, 221, 229, 221, 
+	70, 39, 39, 40, 37, 221, 222, 223, 
+	228, 225, 40, 37, 221, 226, 221, 283, 
+	151, 284, 284, 76, 73, 282, 154, 282, 
+	151, 284, 284, 76, 73, 282, 154, 282, 
+	285, 282, 282, 282, 90, 286, 282, 73, 
+	282, 154, 282, 282, 282, 282, 282, 285, 
+	282, 287, 288, 289, 290, 76, 73, 282, 
+	154, 282, 282, 106, 282, 291, 288, 292, 
+	292, 76, 73, 282, 154, 282, 288, 292, 
+	292, 76, 73, 282, 154, 282, 293, 282, 
+	282, 282, 90, 294, 282, 73, 282, 154, 
+	282, 282, 282, 282, 282, 293, 282, 295, 
+	296, 297, 298, 76, 73, 282, 154, 282, 
+	282, 104, 282, 299, 296, 300, 300, 76, 
+	73, 282, 154, 282, 296, 300, 300, 76, 
+	73, 282, 154, 282, 301, 282, 282, 282, 
+	90, 302, 282, 73, 282, 154, 282, 282, 
+	282, 282, 282, 301, 282, 303, 304, 305, 
+	306, 76, 73, 282, 154, 282, 282, 102, 
+	282, 307, 304, 308, 308, 76, 73, 282, 
+	154, 282, 304, 308, 308, 76, 73, 282, 
+	154, 282, 309, 282, 282, 282, 90, 310, 
+	282, 73, 282, 154, 282, 282, 282, 282, 
+	282, 309, 282, 311, 312, 313, 314, 76, 
+	73, 282, 154, 282, 282, 100, 282, 315, 
+	312, 316, 316, 76, 73, 282, 154, 282, 
+	312, 316, 316, 76, 73, 282, 154, 282, 
+	90, 317, 282, 73, 282, 154, 282, 318, 
+	318, 282, 73, 282, 154, 282, 319, 282, 
+	282, 320, 282, 154, 282, 154, 282, 321, 
+	282, 322, 282, 319, 282, 282, 282, 282, 
+	154, 282, 90, 282, 318, 318, 282, 73, 
+	282, 154, 282, 318, 317, 282, 73, 282, 
+	154, 282, 323, 99, 324, 325, 80, 73, 
+	282, 154, 282, 99, 324, 325, 80, 73, 
+	282, 154, 282, 324, 324, 80, 73, 282, 
+	154, 282, 326, 96, 327, 328, 83, 73, 
+	282, 154, 282, 96, 327, 328, 83, 73, 
+	282, 154, 282, 327, 327, 83, 73, 282, 
+	154, 282, 329, 93, 330, 331, 86, 73, 
+	282, 154, 282, 93, 330, 331, 86, 73, 
+	282, 154, 282, 330, 330, 86, 73, 282, 
+	154, 282, 332, 90, 318, 333, 282, 73, 
+	282, 154, 282, 90, 318, 333, 282, 73, 
+	282, 154, 282, 311, 312, 316, 316, 76, 
+	73, 282, 154, 282, 311, 312, 313, 316, 
+	76, 73, 282, 154, 282, 282, 100, 282, 
+	309, 282, 334, 282, 318, 318, 282, 73, 
+	282, 154, 282, 282, 282, 282, 282, 309, 
+	282, 309, 282, 282, 282, 318, 318, 282, 
+	73, 282, 154, 282, 282, 282, 282, 282, 
+	309, 282, 309, 282, 282, 282, 318, 310, 
+	282, 73, 282, 154, 282, 282, 282, 282, 
+	282, 309, 282, 303, 304, 308, 308, 76, 
+	73, 282, 154, 282, 303, 304, 305, 308, 
+	76, 73, 282, 154, 282, 282, 102, 282, 
+	301, 282, 335, 282, 318, 318, 282, 73, 
+	282, 154, 282, 282, 282, 282, 282, 301, 
+	282, 301, 282, 282, 282, 318, 318, 282, 
+	73, 282, 154, 282, 282, 282, 282, 282, 
+	301, 282, 301, 282, 282, 282, 318, 302, 
+	282, 73, 282, 154, 282, 282, 282, 282, 
+	282, 301, 282, 295, 296, 300, 300, 76, 
+	73, 282, 154, 282, 295, 296, 297, 300, 
+	76, 73, 282, 154, 282, 282, 104, 282, 
+	293, 282, 336, 282, 318, 318, 282, 73, 
+	282, 154, 282, 282, 282, 282, 282, 293, 
+	282, 293, 282, 282, 282, 318, 318, 282, 
+	73, 282, 154, 282, 282, 282, 282, 282, 
+	293, 282, 293, 282, 282, 282, 318, 294, 
+	282, 73, 282, 154, 282, 282, 282, 282, 
+	282, 293, 282, 287, 288, 292, 292, 76, 
+	73, 282, 154, 282, 287, 288, 289, 292, 
+	76, 73, 282, 154, 282, 282, 106, 282, 
+	285, 282, 337, 282, 318, 318, 282, 73, 
+	282, 154, 282, 282, 282, 282, 282, 285, 
+	282, 285, 282, 282, 282, 318, 318, 282, 
+	73, 282, 154, 282, 282, 282, 282, 282, 
+	285, 282, 285, 282, 282, 282, 318, 286, 
+	282, 73, 282, 154, 282, 282, 282, 282, 
+	282, 285, 282, 107, 75, 75, 76, 73, 
+	338, 338, 338, 338, 144, 338, 150, 151, 
+	284, 284, 76, 73, 282, 154, 282, 107, 
+	75, 75, 76, 73, 338, 340, 341, 342, 
+	343, 112, 109, 339, 344, 339, 339, 143, 
+	339, 345, 341, 343, 343, 112, 109, 339, 
+	344, 339, 341, 343, 343, 112, 109, 339, 
+	344, 339, 346, 339, 339, 339, 125, 347, 
+	339, 109, 339, 344, 339, 339, 339, 339, 
+	339, 346, 339, 348, 349, 350, 351, 112, 
+	109, 339, 344, 339, 339, 141, 339, 352, 
+	349, 353, 353, 112, 109, 339, 344, 339, 
+	349, 353, 353, 112, 109, 339, 344, 339, 
+	354, 339, 339, 339, 125, 355, 339, 109, 
+	339, 344, 339, 339, 339, 339, 339, 354, 
+	339, 356, 357, 358, 359, 112, 109, 339, 
+	344, 339, 339, 139, 339, 360, 357, 361, 
+	361, 112, 109, 339, 344, 339, 357, 361, 
+	361, 112, 109, 339, 344, 339, 362, 339, 
+	339, 339, 125, 363, 339, 109, 339, 344, 
+	339, 339, 339, 339, 339, 362, 339, 364, 
+	365, 366, 367, 112, 109, 339, 344, 339, 
+	339, 137, 339, 368, 365, 369, 369, 112, 
+	109, 339, 344, 339, 365, 369, 369, 112, 
+	109, 339, 344, 339, 370, 339, 339, 339, 
+	125, 371, 339, 109, 339, 344, 339, 339, 
+	339, 339, 339, 370, 339, 372, 373, 374, 
+	375, 112, 109, 339, 344, 339, 339, 135, 
+	339, 376, 373, 377, 377, 112, 109, 339, 
+	344, 339, 373, 377, 377, 112, 109, 339, 
+	344, 339, 125, 378, 339, 109, 339, 344, 
+	339, 379, 379, 339, 109, 339, 344, 339, 
+	380, 339, 339, 381, 339, 344, 339, 344, 
+	339, 382, 339, 383, 339, 380, 339, 339, 
+	339, 339, 344, 339, 125, 339, 379, 379, 
+	339, 109, 339, 344, 339, 379, 378, 339, 
+	109, 339, 344, 339, 384, 134, 385, 386, 
+	115, 109, 339, 344, 339, 134, 385, 386, 
+	115, 109, 339, 344, 339, 385, 385, 115, 
+	109, 339, 344, 339, 387, 131, 388, 389, 
+	118, 109, 339, 344, 339, 131, 388, 389, 
+	118, 109, 339, 344, 339, 388, 388, 118, 
+	109, 339, 344, 339, 390, 128, 391, 392, 
+	121, 109, 339, 344, 339, 128, 391, 392, 
+	121, 109, 339, 344, 339, 391, 391, 121, 
+	109, 339, 344, 339, 393, 125, 379, 394, 
+	339, 109, 339, 344, 339, 125, 379, 394, 
+	339, 109, 339, 344, 339, 372, 373, 377, 
+	377, 112, 109, 339, 344, 339, 372, 373, 
+	374, 377, 112, 109, 339, 344, 339, 339, 
+	135, 339, 370, 339, 395, 339, 379, 379, 
+	339, 109, 339, 344, 339, 339, 339, 339, 
+	339, 370, 339, 370, 339, 339, 339, 379, 
+	379, 339, 109, 339, 344, 339, 339, 339, 
+	339, 339, 370, 339, 370, 339, 339, 339, 
+	379, 371, 339, 109, 339, 344, 339, 339, 
+	339, 339, 339, 370, 339, 364, 365, 369, 
+	369, 112, 109, 339, 344, 339, 364, 365, 
+	366, 369, 112, 109, 339, 344, 339, 339, 
+	137, 339, 362, 339, 396, 339, 379, 379, 
+	339, 109, 339, 344, 339, 339, 339, 339, 
+	339, 362, 339, 362, 339, 339, 339, 379, 
+	379, 339, 109, 339, 344, 339, 339, 339, 
+	339, 339, 362, 339, 362, 339, 339, 339, 
+	379, 363, 339, 109, 339, 344, 339, 339, 
+	339, 339, 339, 362, 339, 356, 357, 361, 
+	361, 112, 109, 339, 344, 339, 356, 357, 
+	358, 361, 112, 109, 339, 344, 339, 339, 
+	139, 339, 354, 339, 397, 339, 379, 379, 
+	339, 109, 339, 344, 339, 339, 339, 339, 
+	339, 354, 339, 354, 339, 339, 339, 379, 
+	379, 339, 109, 339, 344, 339, 339, 339, 
+	339, 339, 354, 339, 354, 339, 339, 339, 
+	379, 355, 339, 109, 339, 344, 339, 339, 
+	339, 339, 339, 354, 339, 348, 349, 353, 
+	353, 112, 109, 339, 344, 339, 348, 349, 
+	350, 353, 112, 109, 339, 344, 339, 339, 
+	141, 339, 346, 339, 398, 339, 379, 379, 
+	339, 109, 339, 344, 339, 339, 339, 339, 
+	339, 346, 339, 346, 339, 339, 339, 379, 
+	379, 339, 109, 339, 344, 339, 339, 339, 
+	339, 339, 346, 339, 346, 339, 339, 339, 
+	379, 347, 339, 109, 339, 344, 339, 339, 
+	339, 339, 339, 346, 339, 340, 341, 343, 
+	343, 112, 109, 339, 344, 339, 148, 149, 
+	150, 151, 399, 284, 76, 73, 282, 154, 
+	155, 155, 144, 282, 282, 148, 282, 161, 
+	400, 163, 164, 4, 1, 160, 165, 160, 
+	160, 35, 160, 168, 149, 150, 151, 401, 
+	402, 76, 403, 160, 404, 160, 155, 144, 
+	160, 160, 168, 160, 107, 405, 405, 76, 
+	403, 160, 165, 160, 160, 144, 160, 406, 
+	160, 160, 407, 160, 404, 160, 404, 160, 
+	408, 160, 205, 160, 406, 160, 160, 160, 
+	160, 404, 160, 168, 160, 220, 107, 405, 
+	405, 76, 403, 160, 165, 160, 160, 160, 
+	160, 160, 168, 160, 410, 409, 411, 411, 
+	409, 146, 409, 412, 409, 411, 411, 409, 
+	146, 409, 412, 409, 413, 409, 409, 414, 
+	409, 412, 409, 412, 409, 415, 409, 416, 
+	409, 413, 409, 409, 409, 409, 412, 409, 
+	148, 338, 338, 338, 338, 338, 338, 338, 
+	338, 338, 155, 338, 338, 338, 338, 148, 
+	338, 0
 };
 
 static const short _indic_syllable_machine_trans_targs[] = {
 	138, 160, 166, 2, 167, 3, 5, 170, 
 	6, 8, 173, 9, 11, 176, 12, 14, 
 	15, 159, 17, 18, 175, 20, 21, 172, 
-	23, 24, 169, 179, 183, 184, 188, 189, 
-	193, 194, 198, 199, 138, 222, 228, 36, 
-	229, 37, 39, 232, 40, 42, 235, 43, 
-	45, 238, 46, 48, 49, 221, 51, 52, 
-	237, 54, 55, 234, 57, 58, 231, 241, 
-	245, 246, 250, 251, 255, 256, 260, 262, 
-	138, 283, 289, 70, 290, 138, 71, 73, 
-	293, 74, 76, 296, 77, 79, 299, 80, 
-	82, 83, 282, 85, 86, 298, 88, 89, 
-	295, 91, 92, 292, 302, 306, 307, 311, 
-	312, 316, 317, 321, 138, 346, 352, 103, 
-	353, 104, 106, 356, 107, 109, 359, 110, 
-	112, 362, 113, 115, 116, 345, 118, 119, 
-	361, 121, 122, 358, 124, 125, 355, 365, 
-	369, 370, 374, 375, 379, 380, 384, 385, 
-	323, 138, 398, 138, 139, 201, 263, 265, 
-	322, 324, 285, 325, 386, 387, 301, 396, 
-	403, 138, 140, 142, 33, 200, 162, 178, 
-	141, 32, 143, 196, 144, 146, 31, 195, 
-	145, 30, 147, 191, 148, 150, 29, 190, 
-	149, 28, 151, 186, 152, 154, 27, 185, 
-	153, 26, 155, 181, 156, 158, 25, 180, 
-	157, 1, 165, 0, 161, 164, 163, 138, 
-	168, 4, 22, 171, 7, 19, 174, 10, 
-	16, 177, 13, 182, 187, 192, 197, 138, 
-	202, 204, 67, 261, 224, 240, 203, 66, 
-	205, 258, 206, 208, 65, 257, 207, 64, 
-	209, 253, 210, 212, 63, 252, 211, 62, 
-	213, 248, 214, 216, 61, 247, 215, 60, 
-	217, 243, 218, 220, 59, 242, 219, 35, 
-	227, 34, 223, 226, 225, 138, 230, 38, 
-	56, 233, 41, 53, 236, 44, 50, 239, 
-	47, 244, 249, 254, 259, 138, 264, 100, 
-	266, 319, 267, 269, 99, 318, 268, 98, 
-	270, 314, 271, 273, 97, 313, 272, 96, 
-	274, 309, 275, 277, 95, 308, 276, 94, 
-	278, 304, 279, 281, 93, 303, 280, 69, 
-	288, 68, 284, 287, 286, 138, 291, 72, 
-	90, 294, 75, 87, 297, 78, 84, 300, 
-	81, 305, 310, 315, 320, 138, 138, 326, 
-	328, 134, 133, 348, 364, 327, 329, 382, 
-	330, 332, 132, 381, 331, 131, 333, 377, 
-	334, 336, 130, 376, 335, 129, 337, 372, 
-	338, 340, 128, 371, 339, 127, 341, 367, 
-	342, 344, 126, 366, 343, 102, 351, 101, 
-	347, 350, 349, 138, 354, 105, 123, 357, 
-	108, 120, 360, 111, 117, 363, 114, 368, 
-	373, 378, 383, 135, 388, 389, 395, 390, 
-	392, 136, 391, 394, 393, 138, 397, 137, 
-	400, 399, 402, 401, 138
+	23, 24, 169, 178, 182, 183, 187, 188, 
+	192, 193, 197, 198, 138, 221, 227, 36, 
+	228, 37, 39, 231, 40, 42, 234, 43, 
+	45, 237, 46, 48, 49, 220, 51, 52, 
+	236, 54, 55, 233, 57, 58, 230, 239, 
+	243, 244, 248, 249, 253, 254, 258, 260, 
+	138, 281, 287, 70, 288, 138, 71, 73, 
+	291, 74, 76, 294, 77, 79, 297, 80, 
+	82, 83, 280, 85, 86, 296, 88, 89, 
+	293, 91, 92, 290, 299, 303, 304, 308, 
+	309, 313, 314, 318, 138, 343, 349, 103, 
+	350, 104, 106, 353, 107, 109, 356, 110, 
+	112, 359, 113, 115, 116, 342, 118, 119, 
+	358, 121, 122, 355, 124, 125, 352, 361, 
+	365, 366, 370, 371, 375, 376, 380, 381, 
+	320, 138, 394, 138, 139, 200, 261, 263, 
+	319, 321, 283, 322, 382, 383, 392, 399, 
+	138, 140, 142, 33, 199, 162, 141, 32, 
+	143, 195, 144, 146, 31, 194, 145, 30, 
+	147, 190, 148, 150, 29, 189, 149, 28, 
+	151, 185, 152, 154, 27, 184, 153, 26, 
+	155, 180, 156, 158, 25, 179, 157, 1, 
+	165, 0, 161, 164, 163, 138, 168, 4, 
+	22, 171, 7, 19, 174, 10, 16, 177, 
+	13, 181, 186, 191, 196, 138, 201, 203, 
+	67, 259, 223, 202, 66, 204, 256, 205, 
+	207, 65, 255, 206, 64, 208, 251, 209, 
+	211, 63, 250, 210, 62, 212, 246, 213, 
+	215, 61, 245, 214, 60, 216, 241, 217, 
+	219, 59, 240, 218, 35, 226, 34, 222, 
+	225, 224, 138, 229, 38, 56, 232, 41, 
+	53, 235, 44, 50, 238, 47, 242, 247, 
+	252, 257, 138, 262, 100, 264, 316, 265, 
+	267, 99, 315, 266, 98, 268, 311, 269, 
+	271, 97, 310, 270, 96, 272, 306, 273, 
+	275, 95, 305, 274, 94, 276, 301, 277, 
+	279, 93, 300, 278, 69, 286, 68, 282, 
+	285, 284, 138, 289, 72, 90, 292, 75, 
+	87, 295, 78, 84, 298, 81, 302, 307, 
+	312, 317, 138, 138, 323, 325, 134, 133, 
+	345, 324, 326, 378, 327, 329, 132, 377, 
+	328, 131, 330, 373, 331, 333, 130, 372, 
+	332, 129, 334, 368, 335, 337, 128, 367, 
+	336, 127, 338, 363, 339, 341, 126, 362, 
+	340, 102, 348, 101, 344, 347, 346, 138, 
+	351, 105, 123, 354, 108, 120, 357, 111, 
+	117, 360, 114, 364, 369, 374, 379, 135, 
+	384, 385, 391, 386, 388, 136, 387, 390, 
+	389, 138, 393, 137, 396, 395, 398, 397, 
+	138
 };
 
 static const char _indic_syllable_machine_trans_actions[] = {
@@ -782,40 +705,40 @@ static const char _indic_syllable_machine_trans_actions[] = {
 	2, 0, 0, 2, 0, 0, 2, 2, 
 	2, 2, 2, 2, 2, 2, 2, 2, 
 	6, 8, 0, 11, 2, 2, 6, 0, 
-	12, 12, 0, 2, 6, 2, 6, 2, 
-	0, 13, 2, 0, 0, 2, 0, 2, 
-	2, 0, 2, 2, 2, 0, 0, 2, 
-	2, 0, 2, 2, 2, 0, 0, 2, 
-	2, 0, 2, 2, 2, 0, 0, 2, 
-	2, 0, 2, 2, 2, 0, 0, 2, 
-	2, 0, 2, 0, 0, 0, 0, 14, 
-	2, 0, 0, 2, 0, 0, 2, 0, 
-	0, 2, 0, 2, 2, 2, 2, 15, 
-	2, 0, 0, 2, 0, 2, 2, 0, 
+	12, 12, 0, 2, 6, 2, 2, 0, 
+	13, 2, 0, 0, 2, 0, 2, 0, 
 	2, 2, 2, 0, 0, 2, 2, 0, 
 	2, 2, 2, 0, 0, 2, 2, 0, 
 	2, 2, 2, 0, 0, 2, 2, 0, 
 	2, 2, 2, 0, 0, 2, 2, 0, 
-	2, 0, 0, 0, 0, 16, 2, 0, 
+	2, 0, 0, 0, 0, 14, 2, 0, 
 	0, 2, 0, 0, 2, 0, 0, 2, 
-	0, 2, 2, 2, 2, 17, 6, 0, 
-	6, 2, 6, 0, 0, 6, 6, 0, 
-	6, 2, 6, 0, 0, 6, 6, 0, 
-	6, 2, 6, 0, 0, 6, 6, 0, 
-	6, 2, 6, 0, 0, 6, 6, 0, 
-	2, 0, 0, 0, 0, 18, 2, 0, 
-	0, 2, 0, 0, 2, 0, 0, 2, 
-	0, 2, 2, 2, 2, 19, 20, 2, 
-	0, 0, 0, 0, 2, 2, 2, 2, 
-	2, 0, 0, 2, 2, 0, 2, 2, 
-	2, 0, 0, 2, 2, 0, 2, 2, 
-	2, 0, 0, 2, 2, 0, 2, 2, 
-	2, 0, 0, 2, 2, 0, 2, 0, 
-	0, 0, 0, 21, 2, 0, 0, 2, 
-	0, 0, 2, 0, 0, 2, 0, 2, 
-	2, 2, 2, 0, 0, 22, 22, 0, 
-	0, 0, 0, 0, 0, 23, 2, 0, 
-	0, 0, 0, 0, 24
+	0, 2, 2, 2, 2, 15, 2, 0, 
+	0, 2, 0, 2, 0, 2, 2, 2, 
+	0, 0, 2, 2, 0, 2, 2, 2, 
+	0, 0, 2, 2, 0, 2, 2, 2, 
+	0, 0, 2, 2, 0, 2, 2, 2, 
+	0, 0, 2, 2, 0, 2, 0, 0, 
+	0, 0, 16, 2, 0, 0, 2, 0, 
+	0, 2, 0, 0, 2, 0, 2, 2, 
+	2, 2, 17, 6, 0, 6, 2, 6, 
+	0, 0, 6, 6, 0, 6, 2, 6, 
+	0, 0, 6, 6, 0, 6, 2, 6, 
+	0, 0, 6, 6, 0, 6, 2, 6, 
+	0, 0, 6, 6, 0, 2, 0, 0, 
+	0, 0, 18, 2, 0, 0, 2, 0, 
+	0, 2, 0, 0, 2, 0, 2, 2, 
+	2, 2, 19, 20, 2, 0, 0, 0, 
+	0, 2, 2, 2, 2, 0, 0, 2, 
+	2, 0, 2, 2, 2, 0, 0, 2, 
+	2, 0, 2, 2, 2, 0, 0, 2, 
+	2, 0, 2, 2, 2, 0, 0, 2, 
+	2, 0, 2, 0, 0, 0, 0, 21, 
+	2, 0, 0, 2, 0, 0, 2, 0, 
+	0, 2, 0, 2, 2, 2, 2, 0, 
+	0, 22, 22, 0, 0, 0, 0, 0, 
+	0, 23, 2, 0, 0, 0, 0, 0, 
+	24
 };
 
 static const char _indic_syllable_machine_to_state_actions[] = {
@@ -868,8 +791,7 @@ static const char _indic_syllable_machine_to_state_actions[] = {
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0
+	0, 0, 0, 0, 0, 0, 0, 0
 };
 
 static const char _indic_syllable_machine_from_state_actions[] = {
@@ -922,8 +844,7 @@ static const char _indic_syllable_machine_from_state_actions[] = {
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0
+	0, 0, 0, 0, 0, 0, 0, 0
 };
 
 static const short _indic_syllable_machine_eof_trans[] = {
@@ -944,40 +865,39 @@ static const short _indic_syllable_machine_eof_trans[] = {
 	109, 109, 109, 109, 109, 109, 109, 109, 
 	109, 109, 109, 109, 109, 109, 109, 109, 
 	109, 109, 109, 109, 109, 109, 109, 73, 
-	1, 146, 0, 162, 162, 162, 162, 162, 
-	162, 162, 162, 162, 162, 162, 162, 162, 
-	162, 162, 162, 162, 162, 162, 162, 162, 
-	162, 162, 162, 162, 162, 162, 162, 162, 
-	162, 162, 162, 162, 162, 162, 162, 162, 
-	162, 162, 162, 162, 162, 162, 162, 162, 
-	162, 162, 162, 162, 162, 162, 162, 162, 
-	162, 162, 162, 162, 162, 162, 162, 162, 
-	162, 224, 224, 224, 224, 224, 224, 224, 
-	224, 224, 224, 224, 224, 224, 224, 224, 
-	224, 224, 224, 224, 224, 224, 224, 224, 
-	224, 224, 224, 224, 224, 224, 224, 224, 
-	224, 224, 224, 224, 224, 224, 224, 224, 
-	224, 224, 224, 224, 224, 224, 224, 224, 
-	224, 224, 224, 224, 224, 224, 224, 224, 
-	224, 224, 224, 224, 224, 224, 224, 286, 
-	286, 286, 286, 286, 286, 286, 286, 286, 
-	286, 286, 286, 286, 286, 286, 286, 286, 
-	286, 286, 286, 286, 286, 286, 286, 286, 
-	286, 286, 286, 286, 286, 286, 286, 286, 
-	286, 286, 286, 286, 286, 286, 286, 286, 
-	286, 286, 286, 286, 286, 286, 286, 286, 
-	286, 286, 286, 286, 286, 286, 286, 286, 
-	286, 286, 342, 286, 342, 343, 343, 343, 
-	343, 343, 343, 343, 343, 343, 343, 343, 
-	343, 343, 343, 343, 343, 343, 343, 343, 
-	343, 343, 343, 343, 343, 343, 343, 343, 
-	343, 343, 343, 343, 343, 343, 343, 343, 
-	343, 343, 343, 343, 343, 343, 343, 343, 
-	343, 343, 343, 343, 343, 343, 343, 343, 
-	343, 343, 343, 343, 343, 343, 343, 343, 
-	343, 343, 286, 162, 162, 162, 162, 162, 
-	162, 162, 162, 162, 414, 414, 414, 414, 
-	414, 414, 414, 342
+	1, 146, 0, 161, 161, 161, 161, 161, 
+	161, 161, 161, 161, 161, 161, 161, 161, 
+	161, 161, 161, 161, 161, 161, 161, 161, 
+	161, 161, 161, 161, 161, 161, 161, 161, 
+	161, 161, 161, 161, 161, 161, 161, 161, 
+	161, 161, 161, 161, 161, 161, 161, 161, 
+	161, 161, 161, 161, 161, 161, 161, 161, 
+	161, 161, 161, 161, 161, 161, 161, 161, 
+	222, 222, 222, 222, 222, 222, 222, 222, 
+	222, 222, 222, 222, 222, 222, 222, 222, 
+	222, 222, 222, 222, 222, 222, 222, 222, 
+	222, 222, 222, 222, 222, 222, 222, 222, 
+	222, 222, 222, 222, 222, 222, 222, 222, 
+	222, 222, 222, 222, 222, 222, 222, 222, 
+	222, 222, 222, 222, 222, 222, 222, 222, 
+	222, 222, 222, 222, 222, 283, 283, 283, 
+	283, 283, 283, 283, 283, 283, 283, 283, 
+	283, 283, 283, 283, 283, 283, 283, 283, 
+	283, 283, 283, 283, 283, 283, 283, 283, 
+	283, 283, 283, 283, 283, 283, 283, 283, 
+	283, 283, 283, 283, 283, 283, 283, 283, 
+	283, 283, 283, 283, 283, 283, 283, 283, 
+	283, 283, 283, 283, 283, 283, 283, 339, 
+	283, 339, 340, 340, 340, 340, 340, 340, 
+	340, 340, 340, 340, 340, 340, 340, 340, 
+	340, 340, 340, 340, 340, 340, 340, 340, 
+	340, 340, 340, 340, 340, 340, 340, 340, 
+	340, 340, 340, 340, 340, 340, 340, 340, 
+	340, 340, 340, 340, 340, 340, 340, 340, 
+	340, 340, 340, 340, 340, 340, 340, 340, 
+	340, 340, 340, 340, 340, 340, 283, 161, 
+	161, 161, 161, 161, 161, 161, 161, 161, 
+	410, 410, 410, 410, 410, 410, 410, 339
 };
 
 static const int indic_syllable_machine_start = 138;
@@ -991,7 +911,7 @@ static const int indic_syllable_machine_en_main = 138;
 
 
 
-#line 92 "hb-ot-shape-complex-indic-machine.rl"
+#line 90 "hb-ot-shape-complex-indic-machine.rl"
 
 
 #define found_syllable(syllable_type) \
@@ -1011,7 +931,7 @@ find_syllables (hb_buffer_t *buffer)
   int cs;
   hb_glyph_info_t *info = buffer->info;
   
-#line 1015 "hb-ot-shape-complex-indic-machine.hh"
+#line 935 "hb-ot-shape-complex-indic-machine.hh"
 	{
 	cs = indic_syllable_machine_start;
 	ts = 0;
@@ -1019,7 +939,7 @@ find_syllables (hb_buffer_t *buffer)
 	act = 0;
 	}
 
-#line 113 "hb-ot-shape-complex-indic-machine.rl"
+#line 111 "hb-ot-shape-complex-indic-machine.rl"
 
 
   p = 0;
@@ -1028,7 +948,7 @@ find_syllables (hb_buffer_t *buffer)
   unsigned int last = 0;
   unsigned int syllable_serial = 1;
   
-#line 1032 "hb-ot-shape-complex-indic-machine.hh"
+#line 952 "hb-ot-shape-complex-indic-machine.hh"
 	{
 	int _slen;
 	int _trans;
@@ -1042,7 +962,7 @@ _resume:
 #line 1 "NONE"
 	{ts = p;}
 	break;
-#line 1046 "hb-ot-shape-complex-indic-machine.hh"
+#line 966 "hb-ot-shape-complex-indic-machine.hh"
 	}
 
 	_keys = _indic_syllable_machine_trans_keys + (cs<<1);
@@ -1065,71 +985,71 @@ _eof_trans:
 	{te = p+1;}
 	break;
 	case 14:
-#line 83 "hb-ot-shape-complex-indic-machine.rl"
+#line 81 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p+1;{ found_syllable (consonant_syllable); }}
 	break;
 	case 16:
-#line 84 "hb-ot-shape-complex-indic-machine.rl"
+#line 82 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p+1;{ found_syllable (vowel_syllable); }}
 	break;
 	case 21:
-#line 85 "hb-ot-shape-complex-indic-machine.rl"
+#line 83 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p+1;{ found_syllable (standalone_cluster); }}
 	break;
 	case 24:
-#line 86 "hb-ot-shape-complex-indic-machine.rl"
+#line 84 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p+1;{ found_syllable (symbol_cluster); }}
 	break;
 	case 18:
-#line 87 "hb-ot-shape-complex-indic-machine.rl"
+#line 85 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p+1;{ found_syllable (broken_cluster); }}
 	break;
 	case 11:
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 86 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p+1;{ found_syllable (non_indic_cluster); }}
 	break;
 	case 13:
-#line 83 "hb-ot-shape-complex-indic-machine.rl"
+#line 81 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p;p--;{ found_syllable (consonant_syllable); }}
 	break;
 	case 15:
-#line 84 "hb-ot-shape-complex-indic-machine.rl"
+#line 82 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p;p--;{ found_syllable (vowel_syllable); }}
 	break;
 	case 20:
-#line 85 "hb-ot-shape-complex-indic-machine.rl"
+#line 83 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p;p--;{ found_syllable (standalone_cluster); }}
 	break;
 	case 23:
-#line 86 "hb-ot-shape-complex-indic-machine.rl"
+#line 84 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p;p--;{ found_syllable (symbol_cluster); }}
 	break;
 	case 17:
-#line 87 "hb-ot-shape-complex-indic-machine.rl"
+#line 85 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p;p--;{ found_syllable (broken_cluster); }}
 	break;
 	case 19:
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 86 "hb-ot-shape-complex-indic-machine.rl"
 	{te = p;p--;{ found_syllable (non_indic_cluster); }}
 	break;
 	case 1:
-#line 83 "hb-ot-shape-complex-indic-machine.rl"
+#line 81 "hb-ot-shape-complex-indic-machine.rl"
 	{{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
 	break;
 	case 3:
-#line 84 "hb-ot-shape-complex-indic-machine.rl"
+#line 82 "hb-ot-shape-complex-indic-machine.rl"
 	{{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
 	break;
 	case 7:
-#line 85 "hb-ot-shape-complex-indic-machine.rl"
+#line 83 "hb-ot-shape-complex-indic-machine.rl"
 	{{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
 	break;
 	case 8:
-#line 86 "hb-ot-shape-complex-indic-machine.rl"
+#line 84 "hb-ot-shape-complex-indic-machine.rl"
 	{{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
 	break;
 	case 4:
-#line 87 "hb-ot-shape-complex-indic-machine.rl"
+#line 85 "hb-ot-shape-complex-indic-machine.rl"
 	{{p = ((te))-1;}{ found_syllable (broken_cluster); }}
 	break;
 	case 5:
@@ -1150,22 +1070,22 @@ _eof_trans:
 	case 22:
 #line 1 "NONE"
 	{te = p+1;}
-#line 83 "hb-ot-shape-complex-indic-machine.rl"
+#line 81 "hb-ot-shape-complex-indic-machine.rl"
 	{act = 1;}
 	break;
 	case 6:
 #line 1 "NONE"
 	{te = p+1;}
-#line 87 "hb-ot-shape-complex-indic-machine.rl"
+#line 85 "hb-ot-shape-complex-indic-machine.rl"
 	{act = 5;}
 	break;
 	case 12:
 #line 1 "NONE"
 	{te = p+1;}
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 86 "hb-ot-shape-complex-indic-machine.rl"
 	{act = 6;}
 	break;
-#line 1169 "hb-ot-shape-complex-indic-machine.hh"
+#line 1089 "hb-ot-shape-complex-indic-machine.hh"
 	}
 
 _again:
@@ -1174,7 +1094,7 @@ _again:
 #line 1 "NONE"
 	{ts = 0;}
 	break;
-#line 1178 "hb-ot-shape-complex-indic-machine.hh"
+#line 1098 "hb-ot-shape-complex-indic-machine.hh"
 	}
 
 	if ( ++p != pe )
@@ -1190,7 +1110,7 @@ _again:
 
 	}
 
-#line 122 "hb-ot-shape-complex-indic-machine.rl"
+#line 120 "hb-ot-shape-complex-indic-machine.rl"
 
 }
 
diff --git a/src/hb-ot-shape-complex-indic-machine.rl b/src/hb-ot-shape-complex-indic-machine.rl
index c5c5fe69..5c5fece3 100644
--- a/src/hb-ot-shape-complex-indic-machine.rl
+++ b/src/hb-ot-shape-complex-indic-machine.rl
@@ -52,7 +52,6 @@ DOTTEDCIRCLE = 12;
 RS    = 13;
 Repha = 15;
 Ra    = 16;
-CM    = 17;
 Symbol= 18;
 CS    = 19;
 
@@ -68,15 +67,14 @@ matra_group = z{0,3}.M.N?.(H | forced_rakar)?;
 syllable_tail = (z?.SM.SM?.ZWNJ?)? A{0,3}?;
 halant_group = (z?.H.(ZWJ.N?)?);
 final_halant_group = halant_group | H.ZWNJ;
-medial_group = CM?;
 halant_or_matra_group = (final_halant_group | matra_group{0,4});
 
 
-consonant_syllable =	(Repha|CS)? (cn.halant_group){0,4} cn medial_group halant_or_matra_group syllable_tail;
-vowel_syllable =	reph? V.n? (ZWJ | (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail);
-standalone_cluster =	((Repha|CS)? PLACEHOLDER | reph? DOTTEDCIRCLE).n? (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail;
+consonant_syllable =	(Repha|CS)? (cn.halant_group){0,4} cn halant_or_matra_group syllable_tail;
+vowel_syllable =	reph? V.n? (ZWJ | (halant_group.cn){0,4} halant_or_matra_group syllable_tail);
+standalone_cluster =	((Repha|CS)? PLACEHOLDER | reph? DOTTEDCIRCLE).n? (halant_group.cn){0,4} halant_or_matra_group syllable_tail;
 symbol_cluster = 	symbol syllable_tail;
-broken_cluster =	reph? n? (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail;
+broken_cluster =	reph? n? (halant_group.cn){0,4} halant_or_matra_group syllable_tail;
 other =			any;
 
 main := |*
diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc
index 4131e705..e6c9ba8d 100644
--- a/src/hb-ot-shape-complex-indic.cc
+++ b/src/hb-ot-shape-complex-indic.cc
@@ -720,7 +720,7 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
     indic_position_t last_pos = POS_START;
     for (unsigned int i = start; i < end; i++)
     {
-      if ((FLAG_UNSAFE (info[i].indic_category()) & (JOINER_FLAGS | FLAG (OT_N) | FLAG (OT_RS) | MEDIAL_FLAGS | FLAG (OT_H))))
+      if ((FLAG_UNSAFE (info[i].indic_category()) & (JOINER_FLAGS | FLAG (OT_N) | FLAG (OT_RS) | FLAG (OT_H))))
       {
 	info[i].indic_position() = last_pos;
 	if (unlikely (info[i].indic_category() == OT_H &&
diff --git a/src/hb-ot-shape-complex-indic.hh b/src/hb-ot-shape-complex-indic.hh
index fe5595f8..b0f88e8b 100644
--- a/src/hb-ot-shape-complex-indic.hh
+++ b/src/hb-ot-shape-complex-indic.hh
@@ -64,19 +64,17 @@ enum indic_category_t {
   OT_Coeng = 14, /* Khmer-style Virama. */
   OT_Repha = 15, /* Atomically-encoded logical or visual repha. */
   OT_Ra = 16,
-  OT_CM = 17,  /* Consonant-Medial. */
+  OT_CM = 17,  /* Consonant-Medial; Unused by Indic shaper. */
   OT_Symbol = 18, /* Avagraha, etc that take marks (SM,A,VD). */
   OT_CS = 19
 };
 
-#define MEDIAL_FLAGS (FLAG (OT_CM))
-
 /* Note:
  *
  * We treat Vowels and placeholders as if they were consonants.  This is safe because Vowels
  * cannot happen in a consonant syllable.  The plus side however is, we can call the
  * consonant syllable logic from the vowel syllable function and get it all right! */
-#define CONSONANT_FLAGS (FLAG (OT_C) | FLAG (OT_CS) | FLAG (OT_Ra) | MEDIAL_FLAGS | FLAG (OT_V) | FLAG (OT_PLACEHOLDER) | FLAG (OT_DOTTEDCIRCLE))
+#define CONSONANT_FLAGS (FLAG (OT_C) | FLAG (OT_CS) | FLAG (OT_Ra) | FLAG (OT_V) | FLAG (OT_PLACEHOLDER) | FLAG (OT_DOTTEDCIRCLE))
 #define JOINER_FLAGS (FLAG (OT_ZWJ) | FLAG (OT_ZWNJ))
 
 


More information about the HarfBuzz mailing list