]> granicus.if.org Git - sudo/commitdiff
Better fix for line continuation inside double quotes. Now accepts
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 26 Jun 2008 11:49:16 +0000 (11:49 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 26 Jun 2008 11:49:16 +0000 (11:49 +0000)
whitespace between the backslash and the newline like the main lexer.

toke.c
toke.l

diff --git a/toke.c b/toke.c
index 34c88511b443e49de64abf86c9a4f83e0ef68a56..0655a6167c8dd66faad4708bccd38fec249a4527 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -288,69 +288,69 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
        *yy_cp = '\0'; \
        yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 47
-#define YY_END_OF_BUFFER 48
+#define YY_NUM_RULES 48
+#define YY_END_OF_BUFFER 49
 static yyconst short int yy_accept[534] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   48,   35,   43,   42,   41,   46,   35,   36,
-       37,   35,   38,   35,   35,   35,   35,   40,   39,   46,
-       31,   31,   31,   31,   31,   31,   46,   35,   35,   43,
-       46,   31,   31,   31,   31,   31,    1,   46,   35,   35,
-       15,   14,   15,   14,   14,   46,   46,   46,    2,    8,
-        7,    8,    3,    8,    4,   46,   11,   11,   11,   10,
-       11,   35,    0,   43,   41,    0,    0,   35,   26,    0,
-       25,    0,   34,   34,    0,   35,   35,    0,   35,   35,
-       35,   35,    0,   29,   31,   31,   31,   31,   31,   31,
-
-       35,   44,   35,   43,    0,    0,    0,    0,    0,    0,
-       35,   35,   35,   35,   35,    1,   32,   32,    0,   35,
-       15,   15,   13,   12,   13,    0,    2,    8,    0,    5,
-        6,    8,    8,   11,   11,   11,   11,   11,    9,    0,
-       45,    0,   35,   35,   35,   35,   35,    0,    0,   29,
-       29,   31,   31,   31,   31,   31,   31,   31,   35,    0,
-        0,    0,    0,    0,    0,   35,   35,   35,   35,   35,
-        0,   35,    9,   35,   35,   35,   35,   35,   35,    0,
-       30,   30,   30,    0,    0,   29,   29,   29,   29,   29,
-       29,   29,   31,   31,   31,   31,   31,   31,   31,   35,
-
-        0,    0,    0,    0,    0,    0,   35,   35,   35,   35,
-       35,   35,   35,    0,    0,   30,   30,   30,    0,   29,
-       29,    0,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29,   29,    0,   22,   31,   31,   31,   31,   31,
-       35,    0,    0,    0,    0,   35,   35,   35,   35,   35,
-       35,   35,   35,    0,   30,    0,   29,   29,   29,    0,
-        0,    0,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29,   29,   29,   29,   31,   31,   31,   31,   31,
-       35,    0,    0,    0,   35,   35,   35,   27,   27,   27,
-        0,    0,   29,   29,   29,   29,   29,   29,   29,    0,
-
-        0,    0,    0,    0,   29,   29,   29,   29,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,    0,   21,
-       31,   31,    0,   20,    0,   23,   35,    0,    0,    0,
-       35,   35,   35,   35,   27,   27,   27,   27,    0,   29,
-        0,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29,    0,    0,    0,   29,   29,   29,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,   31,   31,
-       33,    0,    0,    0,   35,   17,   32,   35,   28,   28,
-       28,   29,    0,    0,    0,   29,   29,   29,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,    0,    0,
-
-        0,    0,    0,   29,   29,   29,   29,   29,   29,   29,
-       29,    0,   19,    0,   24,    0,   17,    0,   35,    0,
-       35,   35,   35,   28,   28,   28,   28,   28,    0,    0,
-        0,    0,    0,   29,   29,   29,   29,   29,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29,   29,    0,    0,   18,   17,    0,   17,    0,
-       35,   35,   35,   28,   28,    0,    0,    0,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29,   29,   29,   29,   29,   18,    0,   16,   35,
-       35,   35,   35,   35,    0,    0,    0,    0,    0,   29,
-
-       29,   29,   29,   29,   29,   29,   29,   35,   35,   35,
-       29,   29,   29,   29,   29,   29,   35,   35,   35,   35,
-       35,   29,   29,   29,   29,   29,   27,   27,   27,   27,
-       27,   27,    0
+        0,    0,   49,   36,   44,   43,   42,   47,   36,   37,
+       38,   36,   39,   36,   36,   36,   36,   41,   40,   47,
+       32,   32,   32,   32,   32,   32,   47,   36,   36,   44,
+       47,   32,   32,   32,   32,   32,    1,   47,   36,   36,
+       16,   15,   16,   15,   15,   47,   47,   47,    2,    8,
+        7,    8,    3,    8,    4,   47,   12,   12,   12,   10,
+       11,   36,    0,   44,   42,    0,    0,   36,   27,    0,
+       26,    0,   35,   35,    0,   36,   36,    0,   36,   36,
+       36,   36,    0,   30,   32,   32,   32,   32,   32,   32,
+
+       36,   45,   36,   44,    0,    0,    0,    0,    0,    0,
+       36,   36,   36,   36,   36,    1,   33,   33,    0,   36,
+       16,   16,   14,   13,   14,    0,    2,    8,    0,    5,
+        6,    8,    8,   12,    0,   12,   12,    0,    9,    0,
+       46,    0,   36,   36,   36,   36,   36,    0,    0,   30,
+       30,   32,   32,   32,   32,   32,   32,   32,   36,    0,
+        0,    0,    0,    0,    0,   36,   36,   36,   36,   36,
+        0,   36,    9,   36,   36,   36,   36,   36,   36,    0,
+       31,   31,   31,    0,    0,   30,   30,   30,   30,   30,
+       30,   30,   32,   32,   32,   32,   32,   32,   32,   36,
+
+        0,    0,    0,    0,    0,    0,   36,   36,   36,   36,
+       36,   36,   36,    0,    0,   31,   31,   31,    0,   30,
+       30,    0,   30,   30,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,    0,   23,   32,   32,   32,   32,   32,
+       36,    0,    0,    0,    0,   36,   36,   36,   36,   36,
+       36,   36,   36,    0,   31,    0,   30,   30,   30,    0,
+        0,    0,   30,   30,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   32,   32,   32,   32,   32,
+       36,    0,    0,    0,   36,   36,   36,   28,   28,   28,
+        0,    0,   30,   30,   30,   30,   30,   30,   30,    0,
+
+        0,    0,    0,    0,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   30,    0,   22,
+       32,   32,    0,   21,    0,   24,   36,    0,    0,    0,
+       36,   36,   36,   36,   28,   28,   28,   28,    0,   30,
+        0,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+       30,   30,    0,    0,    0,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   30,   32,   32,
+       34,    0,    0,    0,   36,   18,   33,   36,   29,   29,
+       29,   30,    0,    0,    0,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   30,    0,    0,
+
+        0,    0,    0,   30,   30,   30,   30,   30,   30,   30,
+       30,    0,   20,    0,   25,    0,   18,    0,   36,    0,
+       36,   36,   36,   29,   29,   29,   29,   29,    0,    0,
+        0,    0,    0,   30,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,    0,    0,   19,   18,    0,   18,    0,
+       36,   36,   36,   29,   29,    0,    0,    0,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   19,    0,   17,   36,
+       36,   36,   36,   36,    0,    0,    0,    0,    0,   30,
+
+       30,   30,   30,   30,   30,   30,   30,   36,   36,   36,
+       30,   30,   30,   30,   30,   30,   36,   36,   36,   36,
+       36,   30,   30,   30,   30,   30,   28,   28,   28,   28,
+       28,   28,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -399,70 +399,70 @@ static yyconst int yy_meta[63] =
 static yyconst short int yy_base[594] =
     {   0,
         0,   61,   62,   63,   69,   84,  128,  189,  250,  294,
-       80,  101, 2177, 2129, 2171, 3367, 2168,  120, 2118, 3367,
-     3367, 2100, 3367,  109,  326,  139,  131, 2102, 3367, 3367,
-      378, 2081,  425, 2088, 2095, 2090,  476,  149,   35,  192,
-      490, 2051, 2055, 2047, 2027, 2028, 2085,  183,  256,   53,
-        0, 3367, 2079,    0, 3367,  264,  194,   98,    0, 2034,
-     3367,   82, 3367,   99, 3367,  108, 2032,   74,   75, 3367,
-      226, 2031,  306, 2068, 2065, 2065,  304,  343, 2002,  512,
-     1999,  521,  325, 1998,  546,  442,  557, 2018, 2021,  473,
-      543,  450, 1988,   97,  594,    0, 1978,  188, 1944, 1940,
-
-      283, 3367,  174,  597, 1922, 1900, 1890, 1885, 1886,   71,
-      152,  112,  212,  224,  228, 1899,  592, 1852,  645,  233,
-        0, 1866,  256, 3367, 3367,  288,    0, 1822,  627, 3367,
-     3367, 1794,  290, 1793,  272,  292,  307,  495, 1835, 1833,
-     3367,  653,  665,  697,  729,  761, 1806, 1795,  798,  289,
-      836,  873, 1753, 1738, 1732, 1724, 1687, 1658,  163, 1632,
-     1636, 1627, 1614, 1619,   67,  291, 1605,  242,  322,  173,
-      697,  323, 1649,  708,  339,  912,  944,  718,  358, 1626,
-     1625,  673,  434, 1609, 1608,  502,  738,  976,  748,  574,
-     1014,  780, 1559,  278, 1550, 1542, 1525, 1521, 1528,  335,
-
-     1512, 1514, 1485, 1498, 1472,  335,  459,  557,  327,  477,
-     1053, 1085, 1117, 1505, 1476,  815, 1476, 1474, 1457, 1436,
-      517,  853,  606,  890,  648, 1149,    0,  922, 1160,  931,
-      861, 1198,  954,  529, 3367, 1402, 1392, 1382, 1344, 1300,
-      436, 1280, 1263, 1264,  480,  506,  494,  553,  964,  622,
-     1237, 1269,  996, 1260, 1257, 1220, 1217, 1299,  649, 1033,
-     1063, 1073,  651,  771,  903, 1093,  964, 1338,    0, 1103,
-     1349, 1125, 1133, 1387, 1179,  533, 1197, 1204,  632,  656,
-      653, 1197, 1169,  658,  595,  454,  957, 1425, 1456, 1487,
-     1199, 1182, 1181, 1215, 1519, 1245, 1139, 1556, 1255, 1277,
-
-     1190, 1287, 1318, 1368, 1024, 1044, 1228, 1398, 1407, 1435,
-     1595,    0, 1437, 1606, 1446, 1374, 1644, 1466,  699, 3367,
-     1172, 1145,  738, 3367,  838, 3367,  522, 1131, 1100,  773,
-     1043,  524,  615, 1474,  659, 1682, 1713, 1507, 1108, 1105,
-     1495,  688, 1537,  931, 1745,    0,  683, 1756, 1573, 1581,
+       80,  101, 2174, 2128, 2170, 3358, 2159,  120, 2100, 3358,
+     3358, 2081, 3358,  109,  326,  139,  131, 2101, 3358, 3358,
+      378, 2080,  425, 2087, 2094, 2075,  476,  149,   35,  192,
+      490, 2050, 2054, 2031, 2026, 2027, 2081,  183,  256,   53,
+        0, 3358, 2075,    0, 3358,  264,  194,   98,    0, 2032,
+     3358,   82, 3358,   99, 3358,  108, 2031,   74,   75, 3358,
+      216, 2025,  306, 2067, 2064, 2044,  304,  343, 1999,  512,
+     1998,  521,  325, 1997,  546,  442,  557, 2011, 1998,  473,
+      543,  450, 1986,   97,  594,    0, 1951,  188, 1941, 1939,
+
+      226, 3358,  227,  597, 1895, 1897, 1889, 1884, 1856,   71,
+      152,  112,  213,  212,  233, 1868,  592, 1822,  645,  235,
+        0, 1835,  229, 3358, 3358,  284,    0, 1793,  627, 3358,
+     3358, 1791,  290, 1775, 1814,  257,  307,  288, 1816, 1780,
+     3358,  653,  665,  697,  729,  761, 1768, 1736,  798,  279,
+      836,  873, 1726, 1682, 1662, 1657, 1649, 1655,  259, 1614,
+     1618, 1592, 1594, 1599,   67,  291, 1602,  163,  234,  308,
+      697,  323, 1631,  708,  324,  912,  944,  718,  292, 1608,
+     1559,  673,  434, 1558, 1557,  502,  738,  976,  748,  574,
+     1014,  780, 1541,  380, 1532, 1524, 1522, 1518, 1511,  335,
+
+     1495, 1484, 1468, 1453, 1440,  480,  452,  495,  268,  339,
+     1053, 1085, 1117, 1474, 1457,  815, 1437, 1390, 1389, 1388,
+      507,  853,  527,  890,  606, 1149,    0,  922, 1160,  931,
+      861, 1198,  954,  532, 3358, 1345, 1303, 1294, 1294, 1282,
+      436, 1238, 1219, 1184,  536,  487,  498,  454,  964,  358,
+     1237, 1269,  996, 1217, 1216, 1201, 1199, 1299,  643, 1033,
+     1063, 1073,  648,  771,  903, 1093,  964, 1338,    0, 1103,
+     1349, 1125, 1133, 1387, 1179,  579, 1163, 1170,  595,  632,
+      619, 1176, 1148,  657,  595,  522,  621, 1425, 1456, 1487,
+     1163, 1162, 1137, 1215, 1519, 1245, 1139, 1556, 1255, 1277,
+
+     1118, 1287, 1318, 1368,  987, 1024, 1044, 1228, 1404, 1435,
+     1595,    0, 1437, 1606, 1446, 1374, 1644, 1466,  674, 3358,
+     1098, 1086,  678, 3358,  699, 3358,  523, 1005,  996,  737,
+     1043,  727,  762, 1474,  659, 1682, 1713, 1507,  979,  977,
+     1495,  931, 1537,  945, 1745,    0,  639, 1756, 1573, 1412,
      1793, 1625, 1663, 1692, 1702, 1170, 1255, 1506, 1654, 1721,
-     1731, 1832,    0, 1733, 1843, 1773, 1781, 1812,  839,  895,
-     1083, 1006,  943,  770,  759, 1872,  956, 1904, 1936, 1968,
-     2000,  932, 1863, 1886, 1914,  920,  945, 1288, 1922, 1319,
-     2032,    0,  765, 2043, 1944, 1894, 2080, 1954, 1976,  902,
-
-     1986, 2010, 2020, 1359, 1616, 1854,  828,  884, 2119,    0,
-      892, 1016, 3367, 1076, 3367,  853, 2054, 1418,  537,  816,
-      799, 2098, 1266, 2130, 2162, 2194, 2226, 2068, 2138,  811,
-     2148, 2172, 2182,  799,  783, 1520, 1693, 2202, 1757, 2258,
-        0,  997, 2269, 2210, 2234, 2306, 2242, 2287, 2324, 2344,
-     1803,  790, 1007,  684,  738,  688,  655, 2366,  623, 2375,
-     2388, 2420, 2452, 2399, 1871, 2409, 2431, 2441,  624,  544,
-     1905, 1955, 2460, 1987, 2484,    0, 1035, 2495, 2468, 2377,
-     2514,  541, 2533, 2542, 2551,  528, 3367,  516, 3367, 2557,
-     1299, 2589, 2621, 2568, 2574,  390, 2600, 2610, 2631,  292,
-
-      260, 2001,  184,  139, 2639,    0, 1103, 2653, 2685, 2717,
-     2661, 2669, 2693,  121,    0,   75, 2701, 1331, 2749, 2781,
-     2731, 3367, 2737, 2761, 2769, 3367, 2789, 2797, 2827,   21,
-     2835, 2819, 3367, 2880, 2893, 2906, 2919, 2932, 2945, 2958,
-     2971, 2984, 2989, 3002, 3015, 3017, 3030, 3043, 3056, 3069,
-     3082, 3087, 3093, 3106, 3111, 3117, 3122, 3127, 3132, 3138,
-     3143, 3148, 3153, 3159, 3166, 3171, 3176, 3181, 3187, 3194,
-     3199, 3204, 3210, 3217, 3222, 3229, 3235, 3242, 3247, 3254,
-     3260, 3267, 3280, 3293, 3298, 3305, 3311, 3324, 3329, 3336,
-     3341, 3348, 3353
+     1731, 1832,    0, 1733, 1843, 1773, 1581, 1812,  838,  839,
+      911,  890,  859,  703,  759, 1872,  871, 1904, 1936, 1968,
+     2000,  837, 1863, 1886, 1914,  820, 1288, 1319, 1922, 1520,
+     2032,    0,  802, 2043, 1944, 1781, 2080, 1954, 1976,  791,
+
+     1986, 2010, 2020, 1359, 1616, 1854,  828,  883, 2119,    0,
+      877, 1016, 3358, 1076, 3358,  729, 2054, 1886, 1179,  728,
+      717, 2098, 1266, 2130, 2162, 2194, 2226, 2068, 2138,  730,
+     2148, 2172, 2182,  717,  709, 1693, 1757, 2202, 1813, 2258,
+        0,  892, 2269, 2210, 1894, 2306, 2236, 2245, 2287, 2324,
+     1954,  697, 1005,  648,  697,  623,  603, 2357,  591, 2366,
+     2379, 2411, 2443, 2390, 2315, 2400, 2422, 2432,  578,  558,
+     1873, 1905, 2451, 1987, 2475,    0,  999, 2486, 2459, 2368,
+     2505,  554, 2524, 2533, 2542,  534, 3358,  525, 3358, 2548,
+     1299, 2580, 2612, 2559, 2565,  491, 2591, 2601, 2622,  363,
+
+      259, 2001,  184,  139, 2630,    0, 1103, 2644, 2676, 2708,
+     2652, 2660, 2684,  121,    0,   75, 2692, 1331, 2740, 2772,
+     2722, 3358, 2728, 2752, 2760, 3358, 2780, 2788, 2818,   21,
+     2826, 2810, 3358, 2871, 2884, 2897, 2910, 2923, 2936, 2949,
+     2962, 2975, 2980, 2993, 3006, 3008, 3021, 3034, 3047, 3060,
+     3073, 3078, 3084, 3097, 3102, 3108, 3113, 3118, 3123, 3129,
+     3134, 3139, 3144, 3150, 3157, 3162, 3167, 3172, 3178, 3185,
+     3190, 3195, 3201, 3208, 3213, 3220, 3226, 3233, 3238, 3245,
+     3251, 3258, 3271, 3284, 3289, 3296, 3302, 3315, 3320, 3327,
+     3332, 3339, 3344
 
     } ;
 
@@ -475,14 +475,14 @@ static yyconst short int yy_def[594] =
       539,   31,   31,   33,   33,   33,  533,  533,  544,  538,
       545,  533,  545,  545,  533,  533,  539,  533,  546,  547,
       533,  547,  533,  547,  533,  548,  549,  549,  549,  533,
-      549,  538,  538,  533,  533,  550,  533,  533,  540,  540,
+      533,  538,  538,  533,  533,  550,  533,  533,  540,  540,
       541,  541,  542,  551,  538,  538,   25,  543,   87,   87,
        87,   87,  552,  553,   31,   33,   33,   33,   33,   33,
 
       538,  533,  538,  533,  533,  533,  533,  533,  533,  550,
       538,   87,  538,  538,  538,  533,  544,  554,  538,  538,
       545,  545,  533,  533,  533,  533,  546,  547,  547,  533,
-      533,  547,  547,  549,  549,  549,  549,  549,  533,  550,
+      533,  547,  547,  549,  533,  549,  549,  533,  533,  550,
       533,  533,  538,  538,  538,   87,  146,  555,  533,  556,
       533,   31,   33,   33,   33,   33,   33,   33,  538,  533,
       533,  533,  533,  533,  550,  538,  146,  538,  538,  538,
@@ -536,7 +536,7 @@ static yyconst short int yy_def[594] =
 
     } ;
 
-static yyconst short int yy_nxt[3430] =
+static yyconst short int yy_nxt[3421] =
     {   0,
        14,   15,   16,   17,   14,   18,   19,   20,   21,   14,
        22,   23,   14,   14,   24,   25,   26,   27,   25,   25,
@@ -561,28 +561,28 @@ static yyconst short int yy_nxt[3430] =
        15,   16,   17,  104,   57,   77,   73,  341,   78,   78,
 
        78,   78,   78,   78,   78,   78,  533,   73,  166,  533,
-      533,  533,  533,  533,  533,  533,  533,   73,   73,  154,
-      200,  105,  106,  159,  155,  107,  156,  138,  139,  108,
-      134,  207,  109,   58,   59,   59,   59,   59,   59,   59,
+      533,  533,  533,  533,  533,  533,  533,  138,  139,  154,
+      134,  105,  106,  207,  155,  107,  156,  126,  102,  108,
+      126,  102,  109,   58,   59,   59,   59,   59,   59,   59,
        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
-       59,   15,   16,   17,   61,   57,   73,  126,  102,  118,
-       62,   63,   64,  118,  118,  123,  102,  124,   73,  125,
-      135,  168,   73,  124,   65,  125,  134,   73,  170,  234,
-      169,  118,  172,  473,  126,  102,   73,  125,  125,  126,
-      102,  126,  102,  136,   66,   15,   16,   17,   61,   57,
-
-      119,  235,  207,  149,   62,   63,   64,   72,  125,   72,
-      137,   72,  187,   72,   72,  438,  135,   72,   65,   78,
-       78,   78,   78,   78,   78,   78,   78,   73,   84,   72,
-       72,   72,   84,   84,  129,   73,  135,  141,   66,   86,
+       59,   15,   16,   17,   61,   57,   73,   73,  136,  118,
+       62,   63,   64,  118,  118,  123,  102,  124,  169,  125,
+       73,   73,  168,  124,   65,  125,  159,   73,   73,   73,
+      209,  118,  473,  170,  172,  126,  102,  125,  125,  138,
+      139,  126,  102,  149,   66,   15,   16,   17,   61,   57,
+
+      119,  135,  187,   73,   62,   63,   64,   72,  125,   72,
+      137,   72,   73,   72,   72,   88,  200,   72,   65,   78,
+       78,   78,   78,   78,   78,   78,   78,  207,   84,   72,
+       72,   72,   84,   84,  129,   73,   73,  174,   66,   86,
       207,   87,   87,   87,   87,   87,   87,   87,   87,   88,
-       84,  135,  174,   89,   89,   89,   89,   89,   78,   78,
-       78,   78,   78,   78,   78,   78,   73,   73,  209,   85,
-       73,   73,   89,   89,   89,   89,   89,   89,   72,   73,
-      210,   88,   72,   73,   72,  241,  207,   72,   72,  245,
+       84,  135,   73,   89,   89,   89,   89,   89,   78,   78,
+       78,   78,   78,   78,   78,   78,  207,   73,   73,   85,
+       73,  249,   89,   89,   89,   89,   89,   89,   72,   73,
+      210,  234,   72,   73,   72,  241,  438,   72,   72,  248,
        72,   72,   72,   95,   95,   95,   95,   95,   95,   95,
 
-       95,   88,   73,  495,   72,   95,   95,   95,   95,   95,
+       95,   88,   73,  235,   72,   95,   95,   95,   95,   95,
        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
        96,   96,   73,   96,   89,   89,   89,   89,   89,   89,
        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
@@ -591,69 +591,69 @@ static yyconst short int yy_nxt[3430] =
       143,  143,  143,  143,  143,  147,  147,  147,  147,  147,
       147,   72,   72,   72,   72,   72,   72,  101,  102,   72,
        73,   72,  141,   72,   72,  281,   73,   72,  147,  147,
-      147,  147,  147,  147,  147,  147,  138,  102,   73,   72,
-
-       72,   72,   77,   73,  246,   78,   78,   78,   78,   78,
-       78,   78,   78,   79,  332,   79,  149,   79,  489,   79,
-       79,   73,   81,   79,   81,  187,   81,  248,   81,   81,
-      234,  149,   81,  285,  319,   79,   79,   79,   73,  135,
-      187,  284,  149,  110,   81,   81,   81,   83,  286,   72,
-       73,   83,  235,   72,   72,  149,  320,   83,  147,  147,
-      147,  147,  147,  147,  147,  147,   73,  438,   73,   83,
+      147,  147,  147,  147,  147,  147,   73,  246,   73,   72,
+
+       72,   72,   77,  287,  495,   78,   78,   78,   78,   78,
+       78,   78,   78,   79,  285,   79,  149,   79,   88,   79,
+       79,  149,   81,   79,   81,  187,   81,  489,   81,   81,
+      187,   73,   81,  234,  245,   79,   79,   79,  141,   73,
+      222,  149,   73,  110,   81,   81,   81,   83,  149,   72,
+      224,   83,  286,   72,   72,  235,  247,   83,  147,  147,
+      147,  147,  147,  147,  147,  147,   73,   73,  149,   83,
        83,   72,  146,  146,  146,  146,  146,  146,  146,  146,
-       88,   73,  371,  376,  146,  146,  146,  146,  146,  227,
-      227,  227,  227,  227,  228,  118,  456,   73,  104,  118,
+      319,  438,  332,  371,  146,  146,  146,  146,  146,  227,
+      227,  227,  227,  227,  228,  118,  323,  284,  104,  118,
 
-      118,   73,  287,  146,  146,  146,  146,  146,  146,  152,
-      152,  152,  152,  152,  152,  152,  152,  118,  247,  222,
+      118,  389,  320,  146,  146,  146,  146,  146,  146,  152,
+      152,  152,  152,  152,  152,  152,  152,  118,  324,  533,
       149,  152,  152,  152,  152,  152,  105,  106,  128,  224,
-      107,  128,  128,  323,  108,  249,  119,  109,  128,   73,
-      146,  146,  146,  146,  146,  146,  117,  389,   72,  331,
-      117,  128,   72,   72,   84,  324,  117,  325,   84,   73,
-      141,  533,  149,  149,   84,  149,   73,  460,  117,  117,
-       72,  224,  187,  334,  224,  377,   84,   84,  174,  326,
+      107,  128,  128,  325,  108,  460,  119,  109,  128,   73,
+      146,  146,  146,  146,  146,  146,  117,  458,   72,  331,
+      117,  128,   72,   72,   84,  326,  117,  149,   84,  141,
+      386,  386,  149,   73,   84,   73,  187,   73,  117,  117,
+       72,  224,  327,  334,  333,  319,   84,   84,  174,  323,
       175,  175,  175,  175,  175,  175,  175,  175,  216,  216,
-      217,  218,  218,  218,  218,  218,  184,   73,  118,  458,
+      217,  218,  218,  218,  218,  218,  184,  320,  118,  489,
 
-      319,  341,  118,   73,  386,  386,  327,  330,  118,   73,
-      174,  343,  176,  176,  176,  176,  176,  176,  176,  176,
-      118,  118,  320,  211,  212,  213,  211,  211,  211,  211,
-      211,  174,   73,  175,  175,  175,  175,  175,  175,  323,
-      489,   73,  174,  487,  177,  177,  177,  177,  177,  178,
+      325,  324,  118,   73,  418,  141,  330,  487,  118,   73,
+      174,  149,  176,  176,  176,  176,  176,  176,  176,  176,
+      118,  118,  326,  211,  212,  213,  211,  211,  211,  211,
+      211,  174,  389,  175,  175,  175,  175,  175,  175,  141,
+      343,   73,  174,  429,  177,  177,  177,  177,  177,  178,
       175,  175,   73,  192,  192,  192,  192,  192,  192,  192,
-      192,  324,   73,  226,  226,  226,  226,  226,  226,  226,
-      226,  418,  141,   73,   72,  141,  179,  179,  179,  179,
-      179,  179,  179,  179,  222,  149,  435,  435,  179,  179,
+      192,  460,   73,  226,  226,  226,  226,  226,  226,  226,
+      226,   73,  458,   73,   72,  454,  179,  179,  179,  179,
+      179,  179,  179,  179,  222,  149,  376,  374,  179,  179,
       179,  179,  179,  533,  224,  225,  225,  225,  225,  225,
 
-      225,  225,  225,   73,  149,  419,  389,  179,  179,  179,
+      225,  225,  225,   73,  399,  419,   73,  179,  179,  179,
       179,  179,  179,  181,  182,  183,  183,  183,  183,  183,
-      183,  184,  343,  374,  429,  185,  185,  185,  185,  185,
-      255,  255,  255,  255,  255,  255,  255,  255,  184,  325,
-      412,  222,  149,  460,  185,  185,  185,  185,  185,  185,
+      183,  184,  377,  435,  435,  185,  185,  185,  185,  185,
+      255,  255,  255,  255,  255,  255,  255,  255,  184,  412,
+      414,  222,  149,  343,  185,  185,  185,  185,  185,  185,
       149,  188,  189,  190,  188,  188,  188,  188,  188,  191,
-      458,  326,  413,  192,  192,  192,  192,  192,  260,  261,
+      294,  413,  415,  192,  192,  192,  192,  192,  260,  261,
       262,  260,  260,  260,  260,  260,  269,  269,  269,  269,
       269,  270,  192,  192,  192,  192,  192,  192,  193,  193,
-      193,  193,  193,  193,  193,  193,  414,  533,  149,  454,
+      193,  193,  193,  193,  193,  193,  533,  149,  452,  452,
 
       193,  193,  193,  193,  193,  233,  233,  233,  233,  233,
-      233,  233,  233,  452,  452,  399,  222,  149,  415,  179,
+      233,  233,  233,  470,  470,   73,  222,  149,  417,  179,
       179,  179,  179,  179,  179,  174,  266,  175,  175,  175,
       175,  175,  175,  175,  175,  222,  149,  264,  264,  264,
-      264,  264,  264,  343,  533,  224,  268,  268,  268,  268,
-      268,  268,  268,  268,  343,  294,   73,  174,  341,  175,
+      264,  264,  264,  416,  341,  224,  268,  268,  268,  268,
+      268,  268,  268,  268,  343,   73,   73,  174,  533,  175,
       175,  175,  175,  175,  175,  175,  175,  533,  343,  267,
       267,  267,  267,  267,  267,  267,  267,  533,  149,  288,
       289,  290,  288,  288,  288,  288,  288,  266,   73,  222,
       149,  223,  223,  223,  223,  223,  223,  223,  223,  224,
 
-       73,   73,  417,  225,  225,  225,  225,  225,   73,  249,
-      333,  250,  250,  250,  250,  250,  250,  412,  470,  470,
-      222,  149,  225,  225,  225,  225,  225,  225,  149,  229,
+      294,  149,  220,  225,  225,  225,  225,  225,   73,  249,
+      224,  250,  250,  250,  250,  250,  250,  412,  222,  149,
+      501,  501,  225,  225,  225,  225,  225,  225,  149,  229,
       230,  231,  229,  229,  229,  229,  229,  232,  149,  413,
-       73,  233,  233,  233,  233,  233,  300,  224,  301,  301,
-      301,  301,  301,  301,  301,  301,  501,  501,  149,  416,
+       73,  233,  233,  233,  233,  233,  300,  266,  301,  301,
+      301,  301,  301,  301,  301,  301,  373,  222,  149,  372,
       233,  233,  233,  233,  233,  233,  249,  266,  250,  250,
       250,  250,  250,  250,  250,  250,  300,  414,  302,  302,
       302,  302,  302,  302,  302,  302,  300,   73,  303,  303,
@@ -661,122 +661,122 @@ static yyconst short int yy_nxt[3430] =
 
       251,  251,  251,  251,  251,  251,  251,  251,  275,  275,
       275,  275,  275,  275,  275,  275,  222,  149,  307,  307,
-      307,  307,  307,  307,  515,  515,  266,   73,  294,   73,
-      249,  220,  252,  252,  252,  252,  252,  253,  250,  250,
+      307,  307,  307,  307,  515,  515,  266,  370,  369,   73,
+      249,  300,  252,  252,  252,  252,  252,  253,  250,  250,
       311,  311,  311,  311,  311,  311,  311,  311,  312,  312,
       312,  312,  312,  313,  346,  346,  346,  346,  346,  347,
-      373,   73,  222,  149,  264,  264,  264,  264,  264,  264,
+      294,   73,  222,  149,  264,  264,  264,  264,  264,  264,
       264,  264,  224,  222,  149,  265,  265,  265,  265,  265,
-      265,  265,  265,  266,  149,  372,  370,  267,  267,  267,
+      265,  265,  265,  266,  149,  220,  184,  267,  267,  267,
       267,  267,  533,  266,  310,  310,  310,  310,  310,  310,
 
-      310,  310,  369,  300,  294,  220,  267,  267,  267,  267,
+      310,  310,  329,  328,  322,  321,  267,  267,  267,  267,
       267,  267,  149,  271,  272,  273,  271,  271,  271,  271,
-      271,  274,  184,  329,  328,  275,  275,  275,  275,  275,
-      299,  299,  299,  299,  299,  299,  299,  299,  322,  321,
-      294,  222,  149,  220,  275,  275,  275,  275,  275,  275,
-      249,  266,  250,  250,  250,  250,  250,  250,  250,  250,
+      271,  274,  294,   73,  220,  275,  275,  275,  275,  275,
+      299,  299,  299,  299,  299,  299,  299,  299,  456,  184,
+      184,  222,  149,  242,  275,  275,  275,  275,  275,  275,
+      249,  309,  250,  250,  250,  250,  250,  250,  250,  250,
       345,  345,  345,  345,  345,  345,  345,  345,  533,  149,
       344,  344,  344,  344,  344,  344,  344,  344,  309,  422,
-      184,   73,  249,  184,  250,  250,  250,  250,  250,  250,
+      283,   73,  249,  282,  250,  250,  250,  250,  250,  250,
       250,  250,  353,  354,  355,  353,  353,  353,  353,  353,
 
       300,  341,  301,  301,  301,  301,  301,  301,  301,  301,
-       73,  389,  490,   73,  295,  296,  297,  295,  295,  295,
-      295,  295,  298,  242,  283,  282,  299,  299,  299,  299,
-      299,  300,  533,  301,  301,  301,  301,  301,  301,  301,
-      301,  280,  389,   73,  517,  299,  299,  299,  299,  299,
+       73,  343,  490,   73,  295,  296,  297,  295,  295,  295,
+      295,  295,  298,  280,  279,  278,  299,  299,  299,  299,
+      299,  300,  341,  301,  301,  301,  301,  301,  301,  301,
+      301,  277,  389,   73,  517,  299,  299,  299,  299,  299,
       299,  222,  149,  307,  307,  307,  307,  307,  307,  307,
       307,  266,  222,  149,  308,  308,  308,  308,  308,  308,
-      308,  308,  309,  149,  279,   73,  310,  310,  310,  310,
+      308,  308,  309,  149,  276,   73,  310,  310,  310,  310,
       310,  300,  309,  301,  301,  301,  301,  301,  301,  363,
       363,  363,  363,  363,  364,  310,  310,  310,  310,  310,
 
       310,  149,  314,  315,  316,  314,  314,  314,  314,  314,
-      317,  222,  149,  278,  318,  318,  318,  318,  318,  418,
-      141,  309,  318,  318,  318,  318,  318,  318,  318,  318,
-      277,  276,  455,  318,  318,  318,  318,  318,  318,  334,
+      317,  258,  220,  184,  318,  318,  318,  318,  318,  318,
+      318,  318,  318,  318,  318,  318,  318,  392,  392,  392,
+      392,  392,  393,  318,  318,  318,  318,  318,  318,  334,
       335,  335,  335,  335,  335,  335,  335,  335,  533,  149,
-      222,  149,  358,  358,  358,  358,  358,  358,  309,  258,
+      222,  149,  358,  358,  358,  358,  358,  358,  309,  254,
       309,  362,  362,  362,  362,  362,  362,  362,  362,   73,
       334,  336,  336,  336,  336,  336,  336,  336,  336,  533,
-      220,  361,  361,  361,  361,  361,  361,  361,  361,  378,
-      379,  380,  381,  378,  378,  378,  378,  184,  254,  184,
+      184,  361,  361,  361,  361,  361,  361,  361,  361,  378,
+      379,  380,  381,  378,  378,  378,  378,   94,  242,  244,
 
        73,  334,  337,  337,  337,  337,  337,  338,  335,  335,
       383,  384,  385,  383,  383,  383,  383,  383,   73,  222,
-      149,  334,  335,  335,  335,  335,  335,  335,   94,  309,
-      242,   73,  341,  341,  342,  342,  342,  342,  342,  342,
-      342,  342,  343,  389,  244,  242,  344,  344,  344,  344,
+      149,  334,  335,  335,  335,  335,  335,  335,  242,  309,
+      243,   73,  341,  533,  342,  342,  342,  342,  342,  342,
+      342,  342,  343,  389,  242,  240,  344,  344,  344,  344,
       344,   73,  352,  352,  352,  352,  352,  352,  352,  352,
-      243,  242,  240,  239,  238,  344,  344,  344,  344,  344,
+      239,  238,  237,  236,   88,  344,  344,  344,  344,  344,
       344,  348,  349,  350,  348,  348,  348,  348,  348,  351,
-      237,  236,   88,  352,  352,  352,  352,  352,  391,  391,
-      391,  391,  391,  391,  391,  391,  392,  392,  392,  392,
+      184,  220,  184,  352,  352,  352,  352,  352,  391,  391,
+      391,  391,  391,  391,  391,  391,  410,  410,  410,  410,
 
-      392,  393,  352,  352,  352,  352,  352,  352,  222,  149,
+      410,  411,  352,  352,  352,  352,  352,  352,  222,  149,
       358,  358,  358,  358,  358,  358,  358,  358,  309,  222,
       149,  359,  359,  359,  359,  359,  359,  359,  359,  360,
-      149,  184,  220,  361,  361,  361,  361,  361,  533,  360,
-      390,  390,  390,  390,  390,  390,  390,  390,  184,   94,
-      173,  208,  361,  361,  361,  361,  361,  361,  149,  365,
-      366,  367,  365,  365,  365,  365,  365,  222,  149,  205,
-      204,  368,  368,  368,  368,  368,  399,  360,  400,  400,
-      400,  400,  400,  400,  400,  400,  203,  202,  201,  199,
+      149,   94,  173,  361,  361,  361,  361,  361,  533,  360,
+      390,  390,  390,  390,  390,  390,  390,  390,  208,  205,
+      204,  203,  361,  361,  361,  361,  361,  361,  149,  365,
+      366,  367,  365,  365,  365,  365,  365,  222,  149,  202,
+      201,  368,  368,  368,  368,  368,  399,  360,  400,  400,
+      400,  400,  400,  400,  400,  400,  199,  198,  197,  196,
       368,  368,  368,  368,  368,  368,  334,  335,  335,  335,
 
       335,  335,  335,  335,  335,  399,  341,  401,  401,  401,
-      401,  401,  401,  401,  401,  399,  438,  402,  402,  402,
-      402,  402,  403,  400,  400,  198,   73,  334,  335,  335,
+      401,  401,  401,  401,  401,  399,  389,  402,  402,  402,
+      402,  402,  403,  400,  400,  195,   73,  334,  335,  335,
       335,  335,  335,  335,  335,  335,  368,  368,  368,  368,
       368,  368,  368,  368,  533,  149,  222,  149,  406,  406,
-      406,  406,  406,  406,  360,  197,  360,   73,  341,  196,
+      406,  406,  406,  406,  360,  194,  360,   73,  341,   94,
       387,  387,  387,  387,  387,  387,  387,  387,  343,  341,
-      533,  388,  388,  388,  388,  388,  388,  388,  388,  389,
-      438,  195,  194,  390,  390,  390,  390,  390,  409,  409,
-      409,  409,  409,  409,  409,  409,  410,  410,  410,  410,
-
-      410,  411,  390,  390,  390,  390,  390,  390,  394,  395,
-      396,  394,  394,  394,  394,  394,  397,  149,   94,   86,
-      398,  398,  398,  398,  398,  533,  360,  408,  408,  408,
-      408,  408,  408,  408,  408,  141,  173,  135,  129,  398,
+      341,  388,  388,  388,  388,  388,  388,  388,  388,  389,
+      438,   86,  141,  390,  390,  390,  390,  390,  409,  409,
+      409,  409,  409,  409,  409,  409,  441,  441,  441,  441,
+
+      441,  442,  390,  390,  390,  390,  390,  390,  394,  395,
+      396,  394,  394,  394,  394,  394,  397,  173,  134,  135,
+      398,  398,  398,  398,  398,  533,  533,  408,  408,  408,
+      408,  408,  408,  408,  408,  129,  438,  129,  122,  398,
       398,  398,  398,  398,  398,  222,  149,  406,  406,  406,
       406,  406,  406,  406,  406,  360,  222,  149,  407,  407,
-      407,  407,  407,  407,  407,  407,  129,  222,  149,  122,
+      407,  407,  407,  407,  407,  407,  171,  222,  149,  116,
       408,  408,  408,  408,  408,  420,  429,  360,  430,  430,
-      430,  430,  430,  430,  430,  430,  465,  465,  465,  408,
-      408,  408,  408,  408,  408,  420,  171,  420,  421,  429,
+      430,  430,  430,  430,  430,  430,  341,  418,  141,  408,
+      408,  408,  408,  408,  408,  420,  438,  420,  421,  429,
 
-      116,  431,  431,  431,  431,  431,  431,  431,  431,  441,
-      441,  441,  441,  441,  442,   73,   73,  422,  341,  423,
-      423,  423,  423,  423,  423,  423,  423,  429,  438,  432,
+      455,  431,  431,  431,  431,  431,  431,  431,  431,  476,
+      476,  476,  476,  476,  477,  164,   73,  422,  341,  423,
+      423,  423,  423,  423,  423,  423,  423,  429,  473,  432,
       432,  432,  432,  432,  433,  430,  430,  398,  398,  398,
-      398,  398,  398,  398,  398,  164,  163,  162,   73,  422,
-      161,  424,  424,  424,  424,  424,  424,  424,  424,  440,
-      440,  440,  440,  440,  440,  440,  440,  533,  341,  439,
-      439,  439,  439,  439,  439,  439,  439,  160,  473,  158,
-       73,  422,  157,  425,  425,  425,  425,  425,  426,  427,
+      398,  398,  398,  398,  398,  163,  162,  161,   73,  422,
+      160,  424,  424,  424,  424,  424,  424,  424,  424,  440,
+      440,  440,  440,  440,  440,  440,  440,  533,  149,  439,
+      439,  439,  439,  439,  439,  439,  439,  360,  158,  157,
+       73,  422,  153,  425,  425,  425,  425,  425,  426,  427,
       427,  448,  449,  450,  448,  448,  448,  448,  448,  399,
 
-      533,  400,  400,  400,  400,  400,  400,  400,  400,  153,
-      473,   94,   73,  422,  341,  428,  428,  428,  423,  423,
+      533,  400,  400,  400,  400,  400,  400,  400,  400,   94,
+      473,   72,   73,  422,  341,  428,  428,  428,  423,  423,
       423,  423,  423,  399,  473,  400,  400,  400,  400,  400,
-      400,  400,  400,  399,   72,  400,  400,  400,  400,  400,
-      400,   94,  142,   82,   73,  341,   80,  436,  436,  436,
+      400,  400,  400,  399,   94,  400,  400,  400,  400,  400,
+      400,  142,   82,   80,   73,  341,  141,  436,  436,  436,
       436,  436,  436,  436,  436,  389,  341,  420,  437,  437,
-      437,  437,  437,  437,  437,  437,  438,  141,   75,   74,
-      439,  439,  439,  439,  439,   73,  135,  420,  129,  420,
-      420,  422,  122,  465,  465,  465,  116,  115,  114,  439,
+      437,  437,  437,  437,  437,  437,  438,   75,   74,   73,
+      439,  439,  439,  439,  439,  135,  129,  420,  122,  420,
+      420,  422,  116,  465,  465,  465,  115,  114,  113,  439,
       439,  439,  439,  439,  439,  443,  444,  445,  443,  443,
 
-      443,  443,  443,  446,  113,  112,  111,  447,  447,  447,
+      443,  443,  443,  446,  112,  111,  100,  447,  447,  447,
       447,  447,   73,  461,  462,  463,  461,  461,  461,  461,
-      461,  100,   99,   98,   97,   94,  447,  447,  447,  447,
+      461,   99,   98,   97,   94,   82,  447,  447,  447,  447,
       447,  447,  222,  149,  453,  453,  453,  453,  453,  453,
-      453,  453,   73,  422,   82,  427,  427,  427,  427,  427,
+      453,  453,   73,  422,   80,  427,  427,  427,  427,  427,
       427,  427,  427,  466,  467,  468,  466,  466,  466,  466,
-      466,  429,   80,  430,  430,  430,  430,  430,  430,  430,
-      430,   75,   74,   73,   73,  422,  533,  427,  427,  427,
+      466,  429,   75,  430,  430,  430,  430,  430,  430,  430,
+      430,   74,   73,  533,   73,  422,  533,  427,  427,  427,
       427,  427,  427,  427,  427,  429,  533,  430,  430,  430,
       430,  430,  430,  430,  430,  429,  533,  430,  430,  430,
 
@@ -784,140 +784,139 @@ static yyconst short int yy_nxt[3430] =
       427,  427,  427,  427,  427,  464,  464,  447,  447,  447,
       447,  447,  447,  447,  447,  475,  475,  475,  475,  475,
       475,  475,  475,  533,  533,  533,  533,  533,   73,  422,
-      533,  464,  464,  464,  464,  464,  464,  464,  464,  476,
-      476,  476,  476,  476,  477,  533,  533,  474,  474,  474,
-      474,  474,  474,  474,  474,  533,  533,  533,  533,  533,
+      533,  464,  464,  464,  464,  464,  464,  464,  464,  533,
+      533,  474,  474,  474,  474,  474,  474,  474,  474,  149,
+      482,  482,  482,  482,  482,  482,  482,  482,  533,  533,
        73,  341,  533,  471,  471,  471,  471,  471,  471,  471,
       471,  438,  341,  533,  472,  472,  472,  472,  472,  472,
       472,  472,  473,  533,  533,  533,  474,  474,  474,  474,
 
-      474,  149,  482,  482,  482,  482,  482,  482,  482,  482,
+      474,  149,  483,  483,  483,  483,  483,  483,  483,  483,
       533,  533,  533,  533,  533,  474,  474,  474,  474,  474,
       474,  478,  479,  480,  478,  478,  478,  478,  478,  533,
-      533,  533,  533,  481,  481,  481,  481,  481,  149,  483,
-      483,  483,  483,  483,  483,  483,  483,  533,  533,  533,
-      533,  533,  481,  481,  481,  481,  481,  481,  149,  484,
-      484,  484,  484,  484,  485,  482,  482,  457,  533,  457,
-      533,  457,  533,  457,  457,  533,  459,  457,  459,  533,
-      459,  533,  459,  459,  533,  533,  459,  533,  533,  457,
-      457,  457,  506,  506,  506,  506,  506,  507,  459,  459,
-
-      459,  490,  533,  491,  491,  491,  491,  491,  491,  491,
-      491,  533,  533,  533,  464,  464,  464,  464,  464,  464,
-      464,  464,  495,  533,  496,  496,  496,  496,  496,  496,
-      496,  496,   73,  490,  533,  492,  492,  492,  492,  492,
-      492,  492,  492,   73,  495,  533,  497,  497,  497,  497,
-      497,  497,  497,  497,  495,  533,  498,  498,  498,  498,
-      498,  499,  496,  496,   73,  490,  533,  493,  493,  493,
-      493,  493,  494,  491,  491,  481,  481,  481,  481,  481,
-      481,  481,  481,  505,  505,  505,  505,  505,  505,  505,
-      505,  533,  533,  533,  533,  533,   73,  341,  533,  502,
-
-      502,  502,  502,  502,  502,  502,  502,  473,  341,  533,
-      503,  503,  503,  503,  503,  503,  503,  503,  533,  533,
-      533,  533,  504,  504,  504,  504,  504,  533,  533,  504,
-      504,  504,  504,  504,  504,  504,  504,  533,  533,  533,
-      533,  504,  504,  504,  504,  504,  504,  149,  482,  482,
+      465,  465,  465,  481,  481,  481,  481,  481,  149,  484,
+      484,  484,  484,  484,  485,  482,  482,  533,  533,  533,
+      533,  533,  481,  481,  481,  481,  481,  481,  457,   73,
+      457,  533,  457,  533,  457,  457,  533,  459,  457,  459,
+      533,  459,  533,  459,  459,  533,  533,  459,  533,  533,
+      457,  457,  457,  506,  506,  506,  506,  506,  507,  459,
+      459,  459,  490,  533,  491,  491,  491,  491,  491,  491,
+
+      491,  491,  533,  533,  533,  464,  464,  464,  464,  464,
+      464,  464,  464,  495,  533,  496,  496,  496,  496,  496,
+      496,  496,  496,   73,  490,  533,  492,  492,  492,  492,
+      492,  492,  492,  492,   73,  495,  533,  497,  497,  497,
+      497,  497,  497,  497,  497,  495,  533,  498,  498,  498,
+      498,  498,  499,  496,  496,   73,  490,  533,  493,  493,
+      493,  493,  493,  494,  491,  491,  481,  481,  481,  481,
+      481,  481,  481,  481,  505,  505,  505,  505,  505,  505,
+      505,  505,  533,  533,  533,  533,  533,   73,  341,  533,
+      502,  502,  502,  502,  502,  502,  502,  502,  473,  341,
+
+      533,  503,  503,  503,  503,  503,  503,  503,  503,  533,
+      533,  533,  533,  504,  504,  504,  504,  504,  533,  533,
+      504,  504,  504,  504,  504,  504,  504,  504,  533,  533,
+      533,  533,  504,  504,  504,  504,  504,  504,  149,  482,
+      482,  482,  482,  482,  482,  482,  482,  149,  482,  482,
       482,  482,  482,  482,  482,  482,  149,  482,  482,  482,
-      482,  482,  482,  482,  482,  149,  482,  482,  482,  482,
-      482,  482,  508,  509,  510,  508,  508,  508,  508,  508,
-      533,  490,  533,  491,  491,  491,  491,  491,  491,  511,
-      512,  513,  511,  511,  511,  511,  511,  533,  533,  533,
-
-      533,   73,  490,  533,  491,  491,  491,  491,  491,  491,
-      491,  491,   73,  495,  533,  496,  496,  496,  496,  496,
-      496,  496,  496,  495,  533,  496,  496,  496,  496,  496,
-      496,  496,  496,   73,  490,  533,  491,  491,  491,  491,
-      491,  491,  491,  491,  495,  533,  496,  496,  496,  496,
-      496,  496,  341,  533,  516,  516,  516,  516,  516,  516,
-      516,  516,  533,  533,  533,   73,  517,  533,  518,  518,
-      518,  518,  518,  518,  518,  518,  522,  522,  522,  522,
-      522,  522,  522,  522,  523,  523,  523,  523,  523,  523,
-      523,  523,  533,  533,  533,  533,  533,   73,  517,  533,
-
-      519,  519,  519,  519,  519,  519,  519,  519,  524,  524,
-      524,  524,  524,  525,  522,  522,  527,  528,  529,  527,
-      527,  527,  527,  527,  533,  533,  533,  533,  533,   73,
-      517,  533,  520,  520,  520,  520,  520,  521,  518,  518,
-      533,  533,  533,  533,  517,   73,  518,  518,  518,  518,
-      518,  518,  522,  522,  522,  522,  522,  522,  522,  522,
-      533,   73,  517,  533,  518,  518,  518,  518,  518,  518,
-      518,  518,  533,  533,  533,   73,  522,  522,  522,  522,
+      482,  482,  482,  508,  509,  510,  508,  508,  508,  508,
+      508,  533,  490,  533,  491,  491,  491,  491,  491,  491,
+      511,  512,  513,  511,  511,  511,  511,  511,  533,  533,
+      533,  533,   73,  490,  533,  491,  491,  491,  491,  491,
+
+      491,  491,  491,   73,  495,  533,  496,  496,  496,  496,
+      496,  496,  496,  496,  495,  533,  496,  496,  496,  496,
+      496,  496,  496,  496,   73,  490,  533,  491,  491,  491,
+      491,  491,  491,  491,  491,  495,  533,  496,  496,  496,
+      496,  496,  496,  341,  533,  516,  516,  516,  516,  516,
+      516,  516,  516,  533,  533,  533,   73,  517,  533,  518,
+      518,  518,  518,  518,  518,  518,  518,  522,  522,  522,
+      522,  522,  522,  522,  522,  523,  523,  523,  523,  523,
+      523,  523,  523,  533,  533,  533,  533,  533,   73,  517,
+      533,  519,  519,  519,  519,  519,  519,  519,  519,  524,
+
+      524,  524,  524,  524,  525,  522,  522,  527,  528,  529,
+      527,  527,  527,  527,  527,  533,  533,  533,  533,  533,
+       73,  517,  533,  520,  520,  520,  520,  520,  521,  518,
+      518,  533,  533,  533,  533,  517,   73,  518,  518,  518,
+      518,  518,  518,  522,  522,  522,  522,  522,  522,  522,
+      522,  533,   73,  517,  533,  518,  518,  518,  518,  518,
+      518,  518,  518,  533,  533,  533,   73,  522,  522,  522,
       522,  522,  522,  522,  522,  522,  522,  522,  522,  522,
-      533,  533,  533,   73,  517,  533,  518,  518,  518,  518,
-
-      518,  518,  518,  518,  530,  530,  530,  530,  530,  530,
-      530,  530,  527,  527,  527,  527,  527,  527,  527,  527,
-      533,  533,  533,  533,  533,   73,  533,  533,  533,  533,
-      533,  533,  533,   73,  530,  530,  530,  530,  530,  530,
-      533,   73,  531,  531,  531,  531,  531,  532,  530,  530,
-      530,  530,  530,  530,  530,  530,  530,  530,  533,  533,
-      533,  533,  533,   73,  533,  533,  533,  533,  533,  533,
-      533,   73,  533,  533,  533,  533,  533,  533,  533,   73,
-       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
-       51,   51,   51,   30,   30,   30,   30,   30,   30,   30,
-
-       30,   30,   30,   30,   30,   30,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   67,
+      522,  533,  533,  533,   73,  517,  533,  518,  518,  518,
+      518,  518,  518,  518,  518,  530,  530,  530,  530,  530,
+
+      530,  530,  530,  527,  527,  527,  527,  527,  527,  527,
+      527,  533,  533,  533,  533,  533,   73,  533,  533,  533,
+      533,  533,  533,  533,   73,  530,  530,  530,  530,  530,
+      530,  533,   73,  531,  531,  531,  531,  531,  532,  530,
+      530,  530,  530,  530,  530,  530,  530,  530,  530,  533,
+      533,  533,  533,  533,   73,  533,  533,  533,  533,  533,
+      533,  533,   73,  533,  533,  533,  533,  533,  533,  533,
+       73,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   60,   60,   60,
+
+       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
-       67,   67,   72,  533,  533,  533,   72,  533,   72,   72,
-       72,  533,   72,   72,   72,   76,   76,   76,   76,   76,
-       76,   76,   76,   76,   76,   76,   76,   76,   79,  533,
-      533,  533,   79,  533,   79,   79,   79,  533,   79,   79,
-       79,   81,  533,  533,  533,   81,  533,   81,   81,   81,
-      533,   81,   81,   81,   83,  533,  533,   83,   83,  533,
-       83,   83,   83,  533,   83,   83,   83,   93,   93,  533,
-
-      533,   93,  117,  533,  533,  117,  117,  533,  117,  117,
-      117,  533,  117,  117,  117,  121,  533,  533,  121,  121,
-      121,  121,  121,  121,  533,  533,  121,  121,  127,  127,
-      128,  533,  533,  128,  533,  533,  128,  128,  128,  128,
-      128,  128,  128,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  134,  134,  533,  134,
-      533,  134,  134,  134,  134,  134,  134,  134,  134,  140,
+       67,   67,   67,   72,  533,  533,  533,   72,  533,   72,
+       72,   72,  533,   72,   72,   72,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   79,
+      533,  533,  533,   79,  533,   79,   79,   79,  533,   79,
+       79,   79,   81,  533,  533,  533,   81,  533,   81,   81,
+       81,  533,   81,   81,   81,   83,  533,  533,   83,   83,
+      533,   83,   83,   83,  533,   83,   83,   83,   93,   93,
+      533,  533,   93,  117,  533,  533,  117,  117,  533,  117,
+
+      117,  117,  533,  117,  117,  117,  121,  533,  533,  121,
+      121,  121,  121,  121,  121,  533,  533,  121,  121,  127,
+      127,  128,  533,  533,  128,  533,  533,  128,  128,  128,
+      128,  128,  128,  128,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  134,  134,  533,
+      134,  533,  134,  134,  134,  134,  134,  134,  134,  134,
       140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,   84,  533,  533,   84,   84,  533,   84,   84,
-       84,  533,   84,   84,   84,  148,  148,  533,  533,  148,
-
-      150,  150,  150,  533,  533,  150,  118,  533,  533,  118,
-      118,  533,  118,  118,  118,  533,  118,  118,  118,  180,
-      180,  533,  533,  180,  186,  186,  186,  533,  533,  186,
-      214,  214,  533,  533,  214,  215,  215,  533,  533,  215,
-      219,  219,  533,  533,  219,  221,  221,  221,  533,  533,
-      221,  254,  254,  533,  533,  254,  256,  256,  533,  533,
-      256,  257,  257,  533,  533,  257,  259,  259,  259,  533,
-      533,  259,  263,  263,  263,  263,  533,  533,  263,  291,
-      291,  533,  533,  291,  292,  292,  533,  533,  292,  293,
-      293,  533,  533,  293,  305,  305,  305,  533,  533,  305,
-
-      306,  306,  306,  306,  533,  533,  306,  339,  339,  533,
-      533,  339,  340,  340,  533,  533,  340,  356,  356,  356,
-      533,  533,  356,  357,  357,  357,  357,  533,  533,  357,
-      382,  382,  533,  533,  382,  386,  533,  386,  386,  533,
-      533,  386,  404,  404,  404,  533,  533,  404,  405,  405,
-      405,  405,  533,  533,  405,  434,  434,  533,  533,  434,
-      435,  533,  435,  435,  533,  533,  435,  451,  451,  451,
-      533,  533,  451,  452,  452,  452,  533,  533,  533,  452,
-      457,  533,  533,  533,  457,  533,  457,  457,  457,  533,
-      457,  457,  457,  459,  533,  533,  533,  459,  533,  459,
-
-      459,  459,  533,  459,  459,  459,  469,  469,  533,  533,
-      469,  470,  533,  470,  470,  533,  533,  470,  486,  486,
-      533,  533,  533,  486,  488,  488,  488,  488,  488,  488,
-      488,  488,  488,  488,  488,  488,  488,  500,  500,  533,
-      533,  500,  501,  533,  501,  501,  533,  533,  501,  514,
-      514,  533,  533,  514,  515,  533,  515,  533,  533,  533,
-      515,  526,  533,  533,  533,  526,   13,  533,  533,  533,
+      140,  140,  140,   84,  533,  533,   84,   84,  533,   84,
+       84,   84,  533,   84,   84,   84,  148,  148,  533,  533,
+      148,  150,  150,  150,  533,  533,  150,  118,  533,  533,
+
+      118,  118,  533,  118,  118,  118,  533,  118,  118,  118,
+      180,  180,  533,  533,  180,  186,  186,  186,  533,  533,
+      186,  214,  214,  533,  533,  214,  215,  215,  533,  533,
+      215,  219,  219,  533,  533,  219,  221,  221,  221,  533,
+      533,  221,  254,  254,  533,  533,  254,  256,  256,  533,
+      533,  256,  257,  257,  533,  533,  257,  259,  259,  259,
+      533,  533,  259,  263,  263,  263,  263,  533,  533,  263,
+      291,  291,  533,  533,  291,  292,  292,  533,  533,  292,
+      293,  293,  533,  533,  293,  305,  305,  305,  533,  533,
+      305,  306,  306,  306,  306,  533,  533,  306,  339,  339,
+
+      533,  533,  339,  340,  340,  533,  533,  340,  356,  356,
+      356,  533,  533,  356,  357,  357,  357,  357,  533,  533,
+      357,  382,  382,  533,  533,  382,  386,  533,  386,  386,
+      533,  533,  386,  404,  404,  404,  533,  533,  404,  405,
+      405,  405,  405,  533,  533,  405,  434,  434,  533,  533,
+      434,  435,  533,  435,  435,  533,  533,  435,  451,  451,
+      451,  533,  533,  451,  452,  452,  452,  533,  533,  533,
+      452,  457,  533,  533,  533,  457,  533,  457,  457,  457,
+      533,  457,  457,  457,  459,  533,  533,  533,  459,  533,
+      459,  459,  459,  533,  459,  459,  459,  469,  469,  533,
+
+      533,  469,  470,  533,  470,  470,  533,  533,  470,  486,
+      486,  533,  533,  533,  486,  488,  488,  488,  488,  488,
+      488,  488,  488,  488,  488,  488,  488,  488,  500,  500,
+      533,  533,  500,  501,  533,  501,  501,  533,  533,  501,
+      514,  514,  533,  533,  514,  515,  533,  515,  533,  533,
+      533,  515,  526,  533,  533,  533,  526,   13,  533,  533,
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
-
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
+
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
-      533,  533,  533,  533,  533,  533,  533,  533,  533
+      533,  533,  533,  533,  533,  533,  533,  533,  533,  533
     } ;
 
-static yyconst short int yy_chk[3430] =
+static yyconst short int yy_chk[3421] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -941,29 +940,29 @@ static yyconst short int yy_chk[3430] =
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         8,    8,    8,   40,    8,   48,  111,  503,   48,   48,
 
-       48,   48,   48,   48,   48,   48,   57,  159,  111,   57,
-       57,   57,   57,   57,   57,   57,   57,  170,  103,   98,
-      159,   40,   40,  103,   98,   40,   98,   71,   71,   40,
-       71,  170,   40,    8,    8,    8,    8,    8,    8,    8,
+       48,   48,   48,   48,   48,   48,   57,  168,  111,   57,
+       57,   57,   57,   57,   57,   57,   57,   71,   71,   98,
+       71,   40,   40,  168,   98,   40,   98,  101,  101,   40,
+      123,  123,   40,    8,    8,    8,    8,    8,    8,    8,
         8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
-        8,    9,    9,    9,    9,    9,  113,  123,  123,   49,
+        8,    9,    9,    9,    9,    9,  114,  113,  136,   49,
         9,    9,    9,   49,   49,   56,   56,   56,  114,   56,
-       71,  113,  115,   56,    9,   56,  135,  120,  115,  194,
-      114,   49,  120,  501,  101,  101,  168,   56,   56,  126,
-      126,  133,  133,  136,    9,   10,   10,   10,   10,   10,
-
-       49,  194,  168,  150,   10,   10,   10,   73,   56,   73,
-      137,   73,  150,   73,   73,  500,  135,   73,   10,   77,
-       77,   77,   77,   77,   77,   77,   77,  101,   83,   73,
-       73,   73,   83,   83,  133,  166,  136,  206,   10,   25,
+      101,  103,  113,   56,    9,   56,  103,  115,  169,  120,
+      169,   49,  501,  115,  120,  126,  126,   56,   56,  138,
+      138,  133,  133,  150,    9,   10,   10,   10,   10,   10,
+
+       49,  136,  150,  159,   10,   10,   10,   73,   56,   73,
+      137,   73,  209,   73,   73,  179,  159,   73,   10,   77,
+       77,   77,   77,   77,   77,   77,   77,  209,   83,   73,
+       73,   73,   83,   83,  133,  166,  179,  175,   10,   25,
       166,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       83,  137,  175,   25,   25,   25,   25,   25,   78,   78,
-       78,   78,   78,   78,   78,   78,  169,  172,  169,   83,
-       25,  209,   25,   25,   25,   25,   25,   25,   31,  200,
-      172,  179,   31,  175,   31,  200,  209,   31,   31,  206,
+       83,  137,  170,   25,   25,   25,   25,   25,   78,   78,
+       78,   78,   78,   78,   78,   78,  170,  172,  175,   83,
+       25,  250,   25,   25,   25,   25,   25,   25,   31,  200,
+      172,  194,   31,  210,   31,  200,  500,   31,   31,  210,
        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
 
-       31,   31,  179,  496,   31,   31,   31,   31,   31,   31,
+       31,   31,  250,  194,   31,   31,   31,   31,   31,   31,
        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
@@ -971,193 +970,193 @@ static yyconst short int yy_chk[3430] =
       183,  183,   33,   33,   33,   33,   33,   86,   86,   86,
        86,   86,   86,   86,   86,   92,   92,   92,   92,   92,
        92,   33,   33,   33,   33,   33,   33,   37,   37,   37,
-      241,   37,  245,   37,   37,  241,   86,   37,   90,   90,
-       90,   90,   90,   90,   90,   90,  138,  138,  286,   37,
-
-       37,   37,   41,  207,  207,   41,   41,   41,   41,   41,
-       41,   41,   41,   80,  286,   80,  186,   80,  488,   80,
-       80,  210,   82,   80,   82,  186,   82,  210,   82,   82,
-      234,  221,   82,  246,  276,   80,   80,   80,  247,  138,
-      221,  245,  486,   41,   82,   82,   82,   85,  247,   85,
-      246,   85,  234,   85,   85,  482,  276,   85,   91,   91,
-       91,   91,   91,   91,   91,   91,  327,  470,  332,   85,
+      241,   37,  206,   37,   37,  241,   86,   37,   90,   90,
+       90,   90,   90,   90,   90,   90,  207,  207,  248,   37,
+
+       37,   37,   41,  248,  496,   41,   41,   41,   41,   41,
+       41,   41,   41,   80,  246,   80,  186,   80,  208,   80,
+       80,  221,   82,   80,   82,  186,   82,  488,   82,   82,
+      221,  246,   82,  234,  206,   80,   80,   80,  245,  208,
+      223,  223,  247,   41,   82,   82,   82,   85,  486,   85,
+      223,   85,  247,   85,   85,  234,  208,   85,   91,   91,
+       91,   91,   91,   91,   91,   91,  286,  327,  482,   85,
        85,   85,   87,   87,   87,   87,   87,   87,   87,   87,
-      208,  419,  327,  332,   87,   87,   87,   87,   87,  190,
-      190,  190,  190,  190,  190,  117,  419,  248,  104,  117,
-
-      117,  208,  248,   87,   87,   87,   87,   87,   87,   95,
-       95,   95,   95,   95,   95,   95,   95,  117,  208,  223,
-      223,   95,   95,   95,   95,   95,  104,  104,  129,  223,
-      104,  129,  129,  279,  104,  250,  117,  104,  129,  285,
-       95,   95,   95,   95,   95,   95,  119,  469,  119,  285,
-      119,  129,  119,  119,  142,  279,  119,  280,  142,  333,
-      284,  225,  225,  259,  142,  263,  250,  459,  119,  119,
-      119,  225,  259,  335,  263,  333,  142,  142,  143,  280,
+      276,  470,  286,  327,   87,   87,   87,   87,   87,  190,
+      190,  190,  190,  190,  190,  117,  279,  245,  104,  117,
+
+      117,  469,  276,   87,   87,   87,   87,   87,   87,   95,
+       95,   95,   95,   95,   95,   95,   95,  117,  279,  225,
+      225,   95,   95,   95,   95,   95,  104,  104,  129,  225,
+      104,  129,  129,  280,  104,  459,  117,  104,  129,  285,
+       95,   95,   95,   95,   95,   95,  119,  457,  119,  285,
+      119,  129,  119,  119,  142,  280,  119,  259,  142,  284,
+      347,  347,  263,  281,  142,  287,  259,  456,  119,  119,
+      119,  263,  281,  335,  287,  319,  142,  142,  143,  323,
       143,  143,  143,  143,  143,  143,  143,  143,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  281,  171,  457,
+      182,  182,  182,  182,  182,  182,  182,  319,  171,  455,
 
-      319,  342,  171,  335,  347,  347,  281,  284,  171,  143,
-      144,  342,  144,  144,  144,  144,  144,  144,  144,  144,
-      171,  171,  319,  174,  174,  174,  174,  174,  174,  174,
-      174,  178,  456,  178,  178,  178,  178,  178,  178,  323,
-      455,  144,  145,  454,  145,  145,  145,  145,  145,  145,
+      325,  323,  171,  335,  374,  374,  284,  454,  171,  143,
+      144,  452,  144,  144,  144,  144,  144,  144,  144,  144,
+      171,  171,  325,  174,  174,  174,  174,  174,  174,  174,
+      174,  178,  435,  178,  178,  178,  178,  178,  178,  330,
+      434,  144,  145,  430,  145,  145,  145,  145,  145,  145,
       145,  145,  174,  187,  187,  187,  187,  187,  187,  187,
-      187,  323,  178,  189,  189,  189,  189,  189,  189,  189,
-      189,  374,  374,  145,  146,  330,  146,  146,  146,  146,
-      146,  146,  146,  146,  264,  264,  393,  393,  146,  146,
+      187,  421,  178,  189,  189,  189,  189,  189,  189,  189,
+      189,  332,  420,  145,  146,  416,  146,  146,  146,  146,
+      146,  146,  146,  146,  264,  264,  332,  330,  146,  146,
       146,  146,  146,  192,  264,  192,  192,  192,  192,  192,
 
-      192,  192,  192,  375,  452,  375,  435,  146,  146,  146,
+      192,  192,  192,  375,  400,  375,  333,  146,  146,  146,
       146,  146,  146,  149,  149,  149,  149,  149,  149,  149,
-      149,  149,  434,  330,  430,  149,  149,  149,  149,  149,
-      216,  216,  216,  216,  216,  216,  216,  216,  216,  325,
-      369,  407,  407,  421,  149,  149,  149,  149,  149,  149,
+      149,  149,  333,  393,  393,  149,  149,  149,  149,  149,
+      216,  216,  216,  216,  216,  216,  216,  216,  216,  369,
+      370,  407,  407,  386,  149,  149,  149,  149,  149,  149,
       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
-      420,  325,  369,  151,  151,  151,  151,  151,  222,  222,
+      382,  369,  370,  151,  151,  151,  151,  151,  222,  222,
       222,  222,  222,  222,  222,  222,  231,  231,  231,  231,
       231,  231,  151,  151,  151,  151,  151,  151,  152,  152,
-      152,  152,  152,  152,  152,  152,  370,  408,  408,  416,
+      152,  152,  152,  152,  152,  152,  408,  408,  411,  411,
 
       152,  152,  152,  152,  152,  224,  224,  224,  224,  224,
-      224,  224,  224,  411,  411,  400,  265,  265,  370,  152,
+      224,  224,  224,  442,  442,  377,  265,  265,  373,  152,
       152,  152,  152,  152,  152,  176,  265,  176,  176,  176,
       176,  176,  176,  176,  176,  228,  228,  228,  228,  228,
-      228,  228,  228,  386,  344,  228,  230,  230,  230,  230,
-      230,  230,  230,  230,  344,  382,  176,  177,  387,  177,
-      177,  177,  177,  177,  177,  177,  177,  233,  387,  233,
+      228,  228,  228,  372,  342,  228,  230,  230,  230,  230,
+      230,  230,  230,  230,  342,  371,  176,  177,  344,  177,
+      177,  177,  177,  177,  177,  177,  177,  233,  344,  233,
       233,  233,  233,  233,  233,  233,  233,  267,  267,  249,
       249,  249,  249,  249,  249,  249,  249,  267,  177,  188,
       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
 
-      377,  287,  373,  188,  188,  188,  188,  188,  249,  253,
-      287,  253,  253,  253,  253,  253,  253,  412,  442,  442,
-      453,  453,  188,  188,  188,  188,  188,  188,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  305,  412,
-      253,  191,  191,  191,  191,  191,  260,  305,  260,  260,
-      260,  260,  260,  260,  260,  260,  477,  477,  306,  372,
-      191,  191,  191,  191,  191,  191,  211,  306,  211,  211,
+      340,  305,  339,  188,  188,  188,  188,  188,  249,  253,
+      305,  253,  253,  253,  253,  253,  253,  412,  453,  453,
+      477,  477,  188,  188,  188,  188,  188,  188,  191,  191,
+      191,  191,  191,  191,  191,  191,  191,  191,  306,  412,
+      253,  191,  191,  191,  191,  191,  260,  306,  260,  260,
+      260,  260,  260,  260,  260,  260,  329,  307,  307,  328,
+      191,  191,  191,  191,  191,  191,  211,  307,  211,  211,
       211,  211,  211,  211,  211,  211,  261,  414,  261,  261,
       261,  261,  261,  261,  261,  261,  262,  331,  262,  262,
       262,  262,  262,  262,  262,  262,  331,  211,  212,  414,
 
       212,  212,  212,  212,  212,  212,  212,  212,  266,  266,
       266,  266,  266,  266,  266,  266,  270,  270,  270,  270,
-      270,  270,  270,  270,  507,  507,  270,  371,  340,  212,
-      213,  339,  213,  213,  213,  213,  213,  213,  213,  213,
+      270,  270,  270,  270,  507,  507,  270,  322,  321,  212,
+      213,  301,  213,  213,  213,  213,  213,  213,  213,  213,
       272,  272,  272,  272,  272,  272,  272,  272,  273,  273,
       273,  273,  273,  273,  297,  297,  297,  297,  297,  297,
-      329,  213,  226,  226,  226,  226,  226,  226,  226,  226,
+      293,  213,  226,  226,  226,  226,  226,  226,  226,  226,
       226,  226,  226,  229,  229,  229,  229,  229,  229,  229,
-      229,  229,  229,  229,  356,  328,  322,  229,  229,  229,
+      229,  229,  229,  229,  356,  292,  291,  229,  229,  229,
       229,  229,  275,  356,  275,  275,  275,  275,  275,  275,
 
-      275,  275,  321,  301,  293,  292,  229,  229,  229,  229,
+      275,  275,  283,  282,  278,  277,  229,  229,  229,  229,
       229,  229,  232,  232,  232,  232,  232,  232,  232,  232,
-      232,  232,  291,  283,  282,  232,  232,  232,  232,  232,
-      294,  294,  294,  294,  294,  294,  294,  294,  278,  277,
-      257,  307,  307,  256,  232,  232,  232,  232,  232,  232,
-      251,  307,  251,  251,  251,  251,  251,  251,  251,  251,
+      232,  232,  257,  419,  256,  232,  232,  232,  232,  232,
+      294,  294,  294,  294,  294,  294,  294,  294,  419,  255,
+      254,  308,  308,  244,  232,  232,  232,  232,  232,  232,
+      251,  308,  251,  251,  251,  251,  251,  251,  251,  251,
       296,  296,  296,  296,  296,  296,  296,  296,  299,  357,
       299,  299,  299,  299,  299,  299,  299,  299,  357,  423,
-      255,  251,  252,  254,  252,  252,  252,  252,  252,  252,
+      243,  251,  252,  242,  252,  252,  252,  252,  252,  252,
       252,  252,  300,  300,  300,  300,  300,  300,  300,  300,
 
-      302,  388,  302,  302,  302,  302,  302,  302,  302,  302,
-      423,  388,  491,  252,  258,  258,  258,  258,  258,  258,
-      258,  258,  258,  244,  243,  242,  258,  258,  258,  258,
-      258,  303,  390,  303,  303,  303,  303,  303,  303,  303,
-      303,  240,  390,  491,  518,  258,  258,  258,  258,  258,
+      302,  387,  302,  302,  302,  302,  302,  302,  302,  302,
+      423,  387,  491,  252,  258,  258,  258,  258,  258,  258,
+      258,  258,  258,  240,  239,  238,  258,  258,  258,  258,
+      258,  303,  388,  303,  303,  303,  303,  303,  303,  303,
+      303,  237,  388,  491,  518,  258,  258,  258,  258,  258,
       258,  268,  268,  268,  268,  268,  268,  268,  268,  268,
       268,  268,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  404,  239,  518,  271,  271,  271,  271,
+      271,  271,  271,  404,  236,  518,  271,  271,  271,  271,
       271,  304,  404,  304,  304,  304,  304,  304,  304,  316,
       316,  316,  316,  316,  316,  271,  271,  271,  271,  271,
 
       271,  274,  274,  274,  274,  274,  274,  274,  274,  274,
-      274,  308,  308,  238,  274,  274,  274,  274,  274,  418,
-      418,  308,  309,  309,  309,  309,  309,  309,  309,  309,
-      237,  236,  418,  274,  274,  274,  274,  274,  274,  288,
+      274,  220,  219,  218,  274,  274,  274,  274,  274,  309,
+      309,  309,  309,  309,  309,  309,  309,  350,  350,  350,
+      350,  350,  350,  274,  274,  274,  274,  274,  274,  288,
       288,  288,  288,  288,  288,  288,  288,  288,  310,  310,
-      313,  313,  313,  313,  313,  313,  313,  313,  310,  220,
+      313,  313,  313,  313,  313,  313,  313,  313,  310,  217,
       313,  315,  315,  315,  315,  315,  315,  315,  315,  288,
       289,  289,  289,  289,  289,  289,  289,  289,  289,  318,
-      219,  318,  318,  318,  318,  318,  318,  318,  318,  334,
-      334,  334,  334,  334,  334,  334,  334,  218,  217,  215,
+      215,  318,  318,  318,  318,  318,  318,  318,  318,  334,
+      334,  334,  334,  334,  334,  334,  334,  214,  205,  204,
 
       289,  290,  290,  290,  290,  290,  290,  290,  290,  290,
       341,  341,  341,  341,  341,  341,  341,  341,  334,  358,
-      358,  338,  338,  338,  338,  338,  338,  338,  214,  358,
-      205,  290,  295,  436,  295,  295,  295,  295,  295,  295,
-      295,  295,  295,  436,  204,  203,  295,  295,  295,  295,
+      358,  338,  338,  338,  338,  338,  338,  338,  203,  358,
+      202,  290,  295,  390,  295,  295,  295,  295,  295,  295,
+      295,  295,  295,  390,  201,  199,  295,  295,  295,  295,
       295,  338,  343,  343,  343,  343,  343,  343,  343,  343,
-      202,  201,  199,  198,  197,  295,  295,  295,  295,  295,
+      198,  197,  196,  195,  193,  295,  295,  295,  295,  295,
       295,  298,  298,  298,  298,  298,  298,  298,  298,  298,
-      196,  195,  193,  298,  298,  298,  298,  298,  349,  349,
-      349,  349,  349,  349,  349,  349,  350,  350,  350,  350,
+      185,  184,  181,  298,  298,  298,  298,  298,  349,  349,
+      349,  349,  349,  349,  349,  349,  367,  367,  367,  367,
 
-      350,  350,  298,  298,  298,  298,  298,  298,  311,  311,
+      367,  367,  298,  298,  298,  298,  298,  298,  311,  311,
       311,  311,  311,  311,  311,  311,  311,  311,  311,  314,
       314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
-      405,  185,  184,  314,  314,  314,  314,  314,  352,  405,
-      352,  352,  352,  352,  352,  352,  352,  352,  181,  180,
-      173,  167,  314,  314,  314,  314,  314,  314,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  359,  359,  164,
-      163,  317,  317,  317,  317,  317,  353,  359,  353,  353,
-      353,  353,  353,  353,  353,  353,  162,  161,  160,  158,
+      405,  180,  173,  314,  314,  314,  314,  314,  352,  405,
+      352,  352,  352,  352,  352,  352,  352,  352,  167,  164,
+      163,  162,  314,  314,  314,  314,  314,  314,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  359,  359,  161,
+      160,  317,  317,  317,  317,  317,  353,  359,  353,  353,
+      353,  353,  353,  353,  353,  353,  158,  157,  156,  155,
       317,  317,  317,  317,  317,  317,  336,  336,  336,  336,
 
-      336,  336,  336,  336,  336,  354,  437,  354,  354,  354,
-      354,  354,  354,  354,  354,  355,  437,  355,  355,  355,
-      355,  355,  355,  355,  355,  157,  336,  337,  337,  337,
+      336,  336,  336,  336,  336,  354,  436,  354,  354,  354,
+      354,  354,  354,  354,  354,  355,  436,  355,  355,  355,
+      355,  355,  355,  355,  355,  154,  336,  337,  337,  337,
       337,  337,  337,  337,  337,  337,  360,  360,  360,  360,
       360,  360,  360,  360,  361,  361,  364,  364,  364,  364,
-      364,  364,  364,  364,  361,  156,  364,  337,  345,  155,
+      364,  364,  364,  364,  361,  153,  364,  337,  345,  148,
       345,  345,  345,  345,  345,  345,  345,  345,  345,  348,
-      439,  348,  348,  348,  348,  348,  348,  348,  348,  348,
-      439,  154,  153,  348,  348,  348,  348,  348,  366,  366,
-      366,  366,  366,  366,  366,  366,  367,  367,  367,  367,
-
-      367,  367,  348,  348,  348,  348,  348,  348,  351,  351,
-      351,  351,  351,  351,  351,  351,  351,  451,  148,  147,
-      351,  351,  351,  351,  351,  368,  451,  368,  368,  368,
-      368,  368,  368,  368,  368,  140,  139,  134,  132,  351,
+      437,  348,  348,  348,  348,  348,  348,  348,  348,  348,
+      437,  147,  140,  348,  348,  348,  348,  348,  366,  366,
+      366,  366,  366,  366,  366,  366,  396,  396,  396,  396,
+
+      396,  396,  348,  348,  348,  348,  348,  348,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  139,  135,  134,
+      351,  351,  351,  351,  351,  368,  439,  368,  368,  368,
+      368,  368,  368,  368,  368,  132,  439,  128,  122,  351,
       351,  351,  351,  351,  351,  362,  362,  362,  362,  362,
       362,  362,  362,  362,  362,  362,  365,  365,  365,  365,
-      365,  365,  365,  365,  365,  365,  128,  406,  406,  122,
+      365,  365,  365,  365,  365,  365,  118,  406,  406,  116,
       365,  365,  365,  365,  365,  376,  383,  406,  383,  383,
-      383,  383,  383,  383,  383,  383,  465,  465,  465,  365,
-      365,  365,  365,  365,  365,  376,  118,  376,  376,  384,
+      383,  383,  383,  383,  383,  383,  471,  418,  418,  365,
+      365,  365,  365,  365,  365,  376,  471,  376,  376,  384,
 
-      116,  384,  384,  384,  384,  384,  384,  384,  384,  396,
-      396,  396,  396,  396,  396,  465,  376,  378,  471,  378,
-      378,  378,  378,  378,  378,  378,  378,  385,  471,  385,
+      418,  384,  384,  384,  384,  384,  384,  384,  384,  445,
+      445,  445,  445,  445,  445,  109,  376,  378,  472,  378,
+      378,  378,  378,  378,  378,  378,  378,  385,  472,  385,
       385,  385,  385,  385,  385,  385,  385,  389,  389,  389,
-      389,  389,  389,  389,  389,  109,  108,  107,  378,  379,
-      106,  379,  379,  379,  379,  379,  379,  379,  379,  395,
-      395,  395,  395,  395,  395,  395,  395,  398,  472,  398,
-      398,  398,  398,  398,  398,  398,  398,  105,  472,  100,
-      379,  380,   99,  380,  380,  380,  380,  380,  380,  380,
+      389,  389,  389,  389,  389,  108,  107,  106,  378,  379,
+      105,  379,  379,  379,  379,  379,  379,  379,  379,  395,
+      395,  395,  395,  395,  395,  395,  395,  398,  451,  398,
+      398,  398,  398,  398,  398,  398,  398,  451,  100,   99,
+      379,  380,   97,  380,  380,  380,  380,  380,  380,  380,
       380,  399,  399,  399,  399,  399,  399,  399,  399,  401,
 
-      474,  401,  401,  401,  401,  401,  401,  401,  401,   97,
-      474,   93,  380,  381,  502,  381,  381,  381,  381,  381,
+      474,  401,  401,  401,  401,  401,  401,  401,  401,   93,
+      474,   89,  380,  381,  502,  381,  381,  381,  381,  381,
       381,  381,  381,  402,  502,  402,  402,  402,  402,  402,
-      402,  402,  402,  403,   89,  403,  403,  403,  403,  403,
-      403,   88,   84,   81,  381,  391,   79,  391,  391,  391,
+      402,  402,  402,  403,   88,  403,  403,  403,  403,  403,
+      403,   84,   81,   79,  381,  391,   76,  391,  391,  391,
       391,  391,  391,  391,  391,  391,  394,  417,  394,  394,
-      394,  394,  394,  394,  394,  394,  394,   76,   75,   74,
-      394,  394,  394,  394,  394,   72,   67,  417,   60,  417,
-      417,  428,   53,  428,  428,  428,   47,   46,   45,  394,
+      394,  394,  394,  394,  394,  394,  394,   75,   74,   72,
+      394,  394,  394,  394,  394,   67,   60,  417,   53,  417,
+      417,  428,   47,  428,  428,  428,   46,   45,   44,  394,
       394,  394,  394,  394,  394,  397,  397,  397,  397,  397,
 
-      397,  397,  397,  397,   44,   43,   42,  397,  397,  397,
+      397,  397,  397,  397,   43,   42,   36,  397,  397,  397,
       397,  397,  428,  422,  422,  422,  422,  422,  422,  422,
-      422,   36,   35,   34,   32,   28,  397,  397,  397,  397,
+      422,   35,   34,   32,   28,   22,  397,  397,  397,  397,
       397,  397,  409,  409,  409,  409,  409,  409,  409,  409,
-      409,  409,  422,  424,   22,  424,  424,  424,  424,  424,
+      409,  409,  422,  424,   19,  424,  424,  424,  424,  424,
       424,  424,  424,  429,  429,  429,  429,  429,  429,  429,
-      429,  431,   19,  431,  431,  431,  431,  431,  431,  431,
-      431,   17,   15,   14,  424,  425,   13,  425,  425,  425,
+      429,  431,   17,  431,  431,  431,  431,  431,  431,  431,
+      431,   15,   14,   13,  424,  425,    0,  425,  425,  425,
       425,  425,  425,  425,  425,  432,    0,  432,  432,  432,
       432,  432,  432,  432,  432,  433,    0,  433,  433,  433,
 
@@ -1165,137 +1164,136 @@ static yyconst short int yy_chk[3430] =
       426,  426,  426,  426,  426,  426,  426,  438,  438,  438,
       438,  438,  438,  438,  438,  444,  444,  444,  444,  444,
       444,  444,  444,    0,    0,    0,    0,    0,  426,  427,
-        0,  427,  427,  427,  427,  427,  427,  427,  427,  445,
-      445,  445,  445,  445,  445,  447,    0,  447,  447,  447,
-      447,  447,  447,  447,  447,    0,    0,    0,    0,    0,
+        0,  427,  427,  427,  427,  427,  427,  427,  427,  447,
+        0,  447,  447,  447,  447,  447,  447,  447,  447,  448,
+      448,  448,  448,  448,  448,  448,  448,  448,    0,    0,
       427,  440,    0,  440,  440,  440,  440,  440,  440,  440,
       440,  440,  443,    0,  443,  443,  443,  443,  443,  443,
       443,  443,  443,    0,    0,    0,  443,  443,  443,  443,
 
-      443,  448,  448,  448,  448,  448,  448,  448,  448,  448,
+      443,  449,  449,  449,  449,  449,  449,  449,  449,  449,
         0,    0,    0,    0,    0,  443,  443,  443,  443,  443,
       443,  446,  446,  446,  446,  446,  446,  446,  446,    0,
-        0,    0,    0,  446,  446,  446,  446,  446,  449,  449,
-      449,  449,  449,  449,  449,  449,  449,    0,    0,    0,
-        0,    0,  446,  446,  446,  446,  446,  446,  450,  450,
-      450,  450,  450,  450,  450,  450,  450,  458,    0,  458,
-        0,  458,    0,  458,  458,    0,  460,  458,  460,    0,
-      460,    0,  460,  460,    0,    0,  460,    0,    0,  458,
-      458,  458,  480,  480,  480,  480,  480,  480,  460,  460,
-
-      460,  461,    0,  461,  461,  461,  461,  461,  461,  461,
-      461,    0,    0,    0,  464,  464,  464,  464,  464,  464,
-      464,  464,  466,    0,  466,  466,  466,  466,  466,  466,
-      466,  466,  461,  462,    0,  462,  462,  462,  462,  462,
-      462,  462,  462,  464,  467,    0,  467,  467,  467,  467,
-      467,  467,  467,  467,  468,    0,  468,  468,  468,  468,
-      468,  468,  468,  468,  462,  463,    0,  463,  463,  463,
-      463,  463,  463,  463,  463,  473,  473,  473,  473,  473,
-      473,  473,  473,  479,  479,  479,  479,  479,  479,  479,
-      479,    0,    0,    0,    0,    0,  463,  475,    0,  475,
-
-      475,  475,  475,  475,  475,  475,  475,  475,  478,    0,
-      478,  478,  478,  478,  478,  478,  478,  478,    0,    0,
-        0,    0,  478,  478,  478,  478,  478,  481,    0,  481,
-      481,  481,  481,  481,  481,  481,  481,    0,    0,    0,
-        0,  478,  478,  478,  478,  478,  478,  483,  483,  483,
-      483,  483,  483,  483,  483,  483,  484,  484,  484,  484,
-      484,  484,  484,  484,  484,  485,  485,  485,  485,  485,
-      485,  485,  490,  490,  490,  490,  490,  490,  490,  490,
-        0,  494,    0,  494,  494,  494,  494,  494,  494,  495,
-      495,  495,  495,  495,  495,  495,  495,    0,    0,    0,
-
-        0,  490,  492,    0,  492,  492,  492,  492,  492,  492,
-      492,  492,  494,  497,    0,  497,  497,  497,  497,  497,
-      497,  497,  497,  498,    0,  498,  498,  498,  498,  498,
-      498,  498,  498,  492,  493,    0,  493,  493,  493,  493,
-      493,  493,  493,  493,  499,    0,  499,  499,  499,  499,
-      499,  499,  505,    0,  505,  505,  505,  505,  505,  505,
-      505,  505,    0,    0,    0,  493,  508,    0,  508,  508,
-      508,  508,  508,  508,  508,  508,  511,  511,  511,  511,
-      511,  511,  511,  511,  512,  512,  512,  512,  512,  512,
-      512,  512,    0,    0,    0,    0,    0,  508,  509,    0,
-
-      509,  509,  509,  509,  509,  509,  509,  509,  513,  513,
-      513,  513,  513,  513,  513,  513,  517,  517,  517,  517,
-      517,  517,  517,  517,    0,    0,    0,    0,    0,  509,
-      510,    0,  510,  510,  510,  510,  510,  510,  510,  510,
-        0,    0,    0,    0,  521,  517,  521,  521,  521,  521,
-      521,  521,  523,  523,  523,  523,  523,  523,  523,  523,
-        0,  510,  519,    0,  519,  519,  519,  519,  519,  519,
-      519,  519,    0,    0,    0,  521,  524,  524,  524,  524,
-      524,  524,  524,  524,  525,  525,  525,  525,  525,  525,
-        0,    0,    0,  519,  520,    0,  520,  520,  520,  520,
-
-      520,  520,  520,  520,  527,  527,  527,  527,  527,  527,
-      527,  527,  528,  528,  528,  528,  528,  528,  528,  528,
-        0,    0,    0,    0,    0,  520,    0,    0,    0,    0,
-        0,    0,    0,  527,  532,  532,  532,  532,  532,  532,
-        0,  528,  529,  529,  529,  529,  529,  529,  529,  529,
-      531,  531,  531,  531,  531,  531,  531,  531,    0,    0,
-        0,    0,    0,  532,    0,    0,    0,    0,    0,    0,
-        0,  529,    0,    0,    0,    0,    0,    0,    0,  531,
-      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
-      534,  534,  534,  535,  535,  535,  535,  535,  535,  535,
-
-      535,  535,  535,  535,  535,  535,  536,  536,  536,  536,
-      536,  536,  536,  536,  536,  536,  536,  536,  536,  537,
+      465,  465,  465,  446,  446,  446,  446,  446,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,    0,    0,    0,
+        0,    0,  446,  446,  446,  446,  446,  446,  458,  465,
+      458,    0,  458,    0,  458,  458,    0,  460,  458,  460,
+        0,  460,    0,  460,  460,    0,    0,  460,    0,    0,
+      458,  458,  458,  480,  480,  480,  480,  480,  480,  460,
+      460,  460,  461,    0,  461,  461,  461,  461,  461,  461,
+
+      461,  461,    0,    0,    0,  464,  464,  464,  464,  464,
+      464,  464,  464,  466,    0,  466,  466,  466,  466,  466,
+      466,  466,  466,  461,  462,    0,  462,  462,  462,  462,
+      462,  462,  462,  462,  464,  467,    0,  467,  467,  467,
+      467,  467,  467,  467,  467,  468,    0,  468,  468,  468,
+      468,  468,  468,  468,  468,  462,  463,    0,  463,  463,
+      463,  463,  463,  463,  463,  463,  473,  473,  473,  473,
+      473,  473,  473,  473,  479,  479,  479,  479,  479,  479,
+      479,  479,    0,    0,    0,    0,    0,  463,  475,    0,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  478,
+
+        0,  478,  478,  478,  478,  478,  478,  478,  478,    0,
+        0,    0,    0,  478,  478,  478,  478,  478,  481,    0,
+      481,  481,  481,  481,  481,  481,  481,  481,    0,    0,
+        0,    0,  478,  478,  478,  478,  478,  478,  483,  483,
+      483,  483,  483,  483,  483,  483,  483,  484,  484,  484,
+      484,  484,  484,  484,  484,  484,  485,  485,  485,  485,
+      485,  485,  485,  490,  490,  490,  490,  490,  490,  490,
+      490,    0,  494,    0,  494,  494,  494,  494,  494,  494,
+      495,  495,  495,  495,  495,  495,  495,  495,    0,    0,
+        0,    0,  490,  492,    0,  492,  492,  492,  492,  492,
+
+      492,  492,  492,  494,  497,    0,  497,  497,  497,  497,
+      497,  497,  497,  497,  498,    0,  498,  498,  498,  498,
+      498,  498,  498,  498,  492,  493,    0,  493,  493,  493,
+      493,  493,  493,  493,  493,  499,    0,  499,  499,  499,
+      499,  499,  499,  505,    0,  505,  505,  505,  505,  505,
+      505,  505,  505,    0,    0,    0,  493,  508,    0,  508,
+      508,  508,  508,  508,  508,  508,  508,  511,  511,  511,
+      511,  511,  511,  511,  511,  512,  512,  512,  512,  512,
+      512,  512,  512,    0,    0,    0,    0,    0,  508,  509,
+        0,  509,  509,  509,  509,  509,  509,  509,  509,  513,
+
+      513,  513,  513,  513,  513,  513,  513,  517,  517,  517,
+      517,  517,  517,  517,  517,    0,    0,    0,    0,    0,
+      509,  510,    0,  510,  510,  510,  510,  510,  510,  510,
+      510,    0,    0,    0,    0,  521,  517,  521,  521,  521,
+      521,  521,  521,  523,  523,  523,  523,  523,  523,  523,
+      523,    0,  510,  519,    0,  519,  519,  519,  519,  519,
+      519,  519,  519,    0,    0,    0,  521,  524,  524,  524,
+      524,  524,  524,  524,  524,  525,  525,  525,  525,  525,
+      525,    0,    0,    0,  519,  520,    0,  520,  520,  520,
+      520,  520,  520,  520,  520,  527,  527,  527,  527,  527,
+
+      527,  527,  527,  528,  528,  528,  528,  528,  528,  528,
+      528,    0,    0,    0,    0,    0,  520,    0,    0,    0,
+        0,    0,    0,    0,  527,  532,  532,  532,  532,  532,
+      532,    0,  528,  529,  529,  529,  529,  529,  529,  529,
+      529,  531,  531,  531,  531,  531,  531,  531,  531,    0,
+        0,    0,    0,    0,  532,    0,    0,    0,    0,    0,
+        0,    0,  529,    0,    0,    0,    0,    0,    0,    0,
+      531,  534,  534,  534,  534,  534,  534,  534,  534,  534,
+      534,  534,  534,  534,  535,  535,  535,  535,  535,  535,
+      535,  535,  535,  535,  535,  535,  535,  536,  536,  536,
+
+      536,  536,  536,  536,  536,  536,  536,  536,  536,  536,
       537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
-      537,  537,  538,    0,    0,    0,  538,    0,  538,  538,
-      538,    0,  538,  538,  538,  539,  539,  539,  539,  539,
-      539,  539,  539,  539,  539,  539,  539,  539,  540,    0,
-        0,    0,  540,    0,  540,  540,  540,    0,  540,  540,
-      540,  541,    0,    0,    0,  541,    0,  541,  541,  541,
-        0,  541,  541,  541,  542,    0,    0,  542,  542,    0,
-      542,  542,  542,    0,  542,  542,  542,  543,  543,    0,
-
-        0,  543,  544,    0,    0,  544,  544,    0,  544,  544,
-      544,    0,  544,  544,  544,  545,    0,    0,  545,  545,
-      545,  545,  545,  545,    0,    0,  545,  545,  546,  546,
-      547,    0,    0,  547,    0,    0,  547,  547,  547,  547,
-      547,  547,  547,  548,  548,  548,  548,  548,  548,  548,
-      548,  548,  548,  548,  548,  548,  549,  549,    0,  549,
-        0,  549,  549,  549,  549,  549,  549,  549,  549,  550,
+      537,  537,  537,  538,    0,    0,    0,  538,    0,  538,
+      538,  538,    0,  538,  538,  538,  539,  539,  539,  539,
+      539,  539,  539,  539,  539,  539,  539,  539,  539,  540,
+        0,    0,    0,  540,    0,  540,  540,  540,    0,  540,
+      540,  540,  541,    0,    0,    0,  541,    0,  541,  541,
+      541,    0,  541,  541,  541,  542,    0,    0,  542,  542,
+        0,  542,  542,  542,    0,  542,  542,  542,  543,  543,
+        0,    0,  543,  544,    0,    0,  544,  544,    0,  544,
+
+      544,  544,    0,  544,  544,  544,  545,    0,    0,  545,
+      545,  545,  545,  545,  545,    0,    0,  545,  545,  546,
+      546,  547,    0,    0,  547,    0,    0,  547,  547,  547,
+      547,  547,  547,  547,  548,  548,  548,  548,  548,  548,
+      548,  548,  548,  548,  548,  548,  548,  549,  549,    0,
+      549,    0,  549,  549,  549,  549,  549,  549,  549,  549,
       550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  551,    0,    0,  551,  551,    0,  551,  551,
-      551,    0,  551,  551,  551,  552,  552,    0,    0,  552,
-
-      553,  553,  553,    0,    0,  553,  554,    0,    0,  554,
-      554,    0,  554,  554,  554,    0,  554,  554,  554,  555,
-      555,    0,    0,  555,  556,  556,  556,    0,    0,  556,
-      557,  557,    0,    0,  557,  558,  558,    0,    0,  558,
-      559,  559,    0,    0,  559,  560,  560,  560,    0,    0,
-      560,  561,  561,    0,    0,  561,  562,  562,    0,    0,
-      562,  563,  563,    0,    0,  563,  564,  564,  564,    0,
-        0,  564,  565,  565,  565,  565,    0,    0,  565,  566,
-      566,    0,    0,  566,  567,  567,    0,    0,  567,  568,
-      568,    0,    0,  568,  569,  569,  569,    0,    0,  569,
-
-      570,  570,  570,  570,    0,    0,  570,  571,  571,    0,
-        0,  571,  572,  572,    0,    0,  572,  573,  573,  573,
-        0,    0,  573,  574,  574,  574,  574,    0,    0,  574,
-      575,  575,    0,    0,  575,  576,    0,  576,  576,    0,
-        0,  576,  577,  577,  577,    0,    0,  577,  578,  578,
-      578,  578,    0,    0,  578,  579,  579,    0,    0,  579,
-      580,    0,  580,  580,    0,    0,  580,  581,  581,  581,
-        0,    0,  581,  582,  582,  582,    0,    0,    0,  582,
-      583,    0,    0,    0,  583,    0,  583,  583,  583,    0,
-      583,  583,  583,  584,    0,    0,    0,  584,    0,  584,
-
-      584,  584,    0,  584,  584,  584,  585,  585,    0,    0,
-      585,  586,    0,  586,  586,    0,    0,  586,  587,  587,
-        0,    0,    0,  587,  588,  588,  588,  588,  588,  588,
-      588,  588,  588,  588,  588,  588,  588,  589,  589,    0,
-        0,  589,  590,    0,  590,  590,    0,    0,  590,  591,
-      591,    0,    0,  591,  592,    0,  592,    0,    0,    0,
-      592,  593,    0,    0,    0,  593,  533,  533,  533,  533,
+      550,  550,  550,  551,    0,    0,  551,  551,    0,  551,
+      551,  551,    0,  551,  551,  551,  552,  552,    0,    0,
+      552,  553,  553,  553,    0,    0,  553,  554,    0,    0,
+
+      554,  554,    0,  554,  554,  554,    0,  554,  554,  554,
+      555,  555,    0,    0,  555,  556,  556,  556,    0,    0,
+      556,  557,  557,    0,    0,  557,  558,  558,    0,    0,
+      558,  559,  559,    0,    0,  559,  560,  560,  560,    0,
+        0,  560,  561,  561,    0,    0,  561,  562,  562,    0,
+        0,  562,  563,  563,    0,    0,  563,  564,  564,  564,
+        0,    0,  564,  565,  565,  565,  565,    0,    0,  565,
+      566,  566,    0,    0,  566,  567,  567,    0,    0,  567,
+      568,  568,    0,    0,  568,  569,  569,  569,    0,    0,
+      569,  570,  570,  570,  570,    0,    0,  570,  571,  571,
+
+        0,    0,  571,  572,  572,    0,    0,  572,  573,  573,
+      573,    0,    0,  573,  574,  574,  574,  574,    0,    0,
+      574,  575,  575,    0,    0,  575,  576,    0,  576,  576,
+        0,    0,  576,  577,  577,  577,    0,    0,  577,  578,
+      578,  578,  578,    0,    0,  578,  579,  579,    0,    0,
+      579,  580,    0,  580,  580,    0,    0,  580,  581,  581,
+      581,    0,    0,  581,  582,  582,  582,    0,    0,    0,
+      582,  583,    0,    0,    0,  583,    0,  583,  583,  583,
+        0,  583,  583,  583,  584,    0,    0,    0,  584,    0,
+      584,  584,  584,    0,  584,  584,  584,  585,  585,    0,
+
+        0,  585,  586,    0,  586,  586,    0,    0,  586,  587,
+      587,    0,    0,    0,  587,  588,  588,  588,  588,  588,
+      588,  588,  588,  588,  588,  588,  588,  588,  589,  589,
+        0,    0,  589,  590,    0,  590,  590,    0,    0,  590,
+      591,  591,    0,    0,  591,  592,    0,  592,    0,    0,
+        0,  592,  593,    0,    0,    0,  593,  533,  533,  533,
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
-
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
+
       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
-      533,  533,  533,  533,  533,  533,  533,  533,  533
+      533,  533,  533,  533,  533,  533,  533,  533,  533,  533
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1411,7 +1409,7 @@ extern void yyerror               __P((const char *));
 
 #define INSTR 5
 
-#line 1415 "lex.yy.c"
+#line 1413 "lex.yy.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1567,7 +1565,7 @@ YY_DECL
 
 #line 113 "toke.l"
 
-#line 1571 "lex.yy.c"
+#line 1569 "lex.yy.c"
 
        if ( yy_init )
                {
@@ -1625,7 +1623,7 @@ yy_match:
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 3367 );
+               while ( yy_base[yy_current_state] != 3358 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1743,20 +1741,26 @@ YY_RULE_SETUP
 case 11:
 YY_RULE_SETUP
 #line 173 "toke.l"
+{
+                           LEXTRACE("BACKSLASH ");
+                           if (!append(yytext, yyleng))
+                               yyterminate();
+                       }
+       YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 179 "toke.l"
 {
                            LEXTRACE("STRBODY ");
-                           /* Push back line continuation char if present */
-                           if (yytext[yyleng - 1] == '\\')
-                               yyless(yyleng - 1);
                            if (!append(yytext, yyleng))
                                yyterminate();
                        }
        YY_BREAK
 
 
-case 12:
+case 13:
 YY_RULE_SETUP
-#line 184 "toke.l"
+#line 187 "toke.l"
 {
                            /* quoted fnmatch glob char, pass verbatim */
                            LEXTRACE("QUOTEDCHAR ");
@@ -1765,9 +1769,9 @@ YY_RULE_SETUP
                            sawspace = FALSE;
                        }
        YY_BREAK
-case 13:
+case 14:
 YY_RULE_SETUP
-#line 192 "toke.l"
+#line 195 "toke.l"
 {
                            /* quoted sudoers special char, strip backslash */
                            LEXTRACE("QUOTEDCHAR ");
@@ -1776,18 +1780,18 @@ YY_RULE_SETUP
                            sawspace = FALSE;
                        }
        YY_BREAK
-case 14:
+case 15:
 YY_RULE_SETUP
-#line 200 "toke.l"
+#line 203 "toke.l"
 {
                            BEGIN INITIAL;
                            yyless(0);
                            return(COMMAND);
                        }                       /* end of command line args */
        YY_BREAK
-case 15:
+case 16:
 YY_RULE_SETUP
-#line 206 "toke.l"
+#line 209 "toke.l"
 {
                            LEXTRACE("ARG ");
                            if (!fill_args(yytext, yyleng, sawspace))
@@ -1796,9 +1800,9 @@ YY_RULE_SETUP
                        }                       /* a command line arg */
        YY_BREAK
 
-case 16:
+case 17:
 YY_RULE_SETUP
-#line 214 "toke.l"
+#line 217 "toke.l"
 {
                            char *path;
 
@@ -1812,9 +1816,9 @@ YY_RULE_SETUP
                                yyterminate();
                        }
        YY_BREAK
-case 17:
+case 18:
 YY_RULE_SETUP
-#line 227 "toke.l"
+#line 230 "toke.l"
 {
                            int n;
                            for (n = 0; isblank((unsigned char)yytext[n]); n++)
@@ -1844,9 +1848,9 @@ YY_RULE_SETUP
                            }
                        }
        YY_BREAK
-case 18:
+case 19:
 YY_RULE_SETUP
-#line 256 "toke.l"
+#line 259 "toke.l"
 {
                            int n;
                            for (n = 0; isblank((unsigned char)yytext[n]); n++)
@@ -1867,59 +1871,59 @@ YY_RULE_SETUP
                            }
                        }
        YY_BREAK
-case 19:
+case 20:
 YY_RULE_SETUP
-#line 276 "toke.l"
+#line 279 "toke.l"
 {
                                /* cmnd does not require passwd for this user */
                                LEXTRACE("NOPASSWD ");
                                return(NOPASSWD);
                        }
        YY_BREAK
-case 20:
+case 21:
 YY_RULE_SETUP
-#line 282 "toke.l"
+#line 285 "toke.l"
 {
                                /* cmnd requires passwd for this user */
                                LEXTRACE("PASSWD ");
                                return(PASSWD);
                        }
        YY_BREAK
-case 21:
+case 22:
 YY_RULE_SETUP
-#line 288 "toke.l"
+#line 291 "toke.l"
 {
                                LEXTRACE("NOEXEC ");
                                return(NOEXEC);
                        }
        YY_BREAK
-case 22:
+case 23:
 YY_RULE_SETUP
-#line 293 "toke.l"
+#line 296 "toke.l"
 {
                                LEXTRACE("EXEC ");
                                return(EXEC);
                        }
        YY_BREAK
-case 23:
+case 24:
 YY_RULE_SETUP
-#line 298 "toke.l"
+#line 301 "toke.l"
 {
                                LEXTRACE("SETENV ");
                                return(SETENV);
                        }
        YY_BREAK
-case 24:
+case 25:
 YY_RULE_SETUP
-#line 303 "toke.l"
+#line 306 "toke.l"
 {
                                LEXTRACE("NOSETENV ");
                                return(NOSETENV);
                        }
        YY_BREAK
-case 25:
+case 26:
 YY_RULE_SETUP
-#line 308 "toke.l"
+#line 311 "toke.l"
 {
                            /* netgroup */
                            if (!fill(yytext, yyleng))
@@ -1928,9 +1932,9 @@ YY_RULE_SETUP
                            return(NETGROUP);
                        }
        YY_BREAK
-case 26:
+case 27:
 YY_RULE_SETUP
-#line 316 "toke.l"
+#line 319 "toke.l"
 {
                            /* UN*X group */
                            if (!fill(yytext, yyleng))
@@ -1939,9 +1943,9 @@ YY_RULE_SETUP
                            return(USERGROUP);
                        }
        YY_BREAK
-case 27:
+case 28:
 YY_RULE_SETUP
-#line 324 "toke.l"
+#line 327 "toke.l"
 {
                            if (!fill(yytext, yyleng))
                                yyterminate();
@@ -1949,9 +1953,9 @@ YY_RULE_SETUP
                            return(NTWKADDR);
                        }
        YY_BREAK
-case 28:
+case 29:
 YY_RULE_SETUP
-#line 331 "toke.l"
+#line 334 "toke.l"
 {
                            if (!fill(yytext, yyleng))
                                yyterminate();
@@ -1959,9 +1963,9 @@ YY_RULE_SETUP
                            return(NTWKADDR);
                        }
        YY_BREAK
-case 29:
+case 30:
 YY_RULE_SETUP
-#line 338 "toke.l"
+#line 341 "toke.l"
 {
                            if (!ipv6_valid(yytext)) {
                                LEXTRACE("ERROR ");
@@ -1973,9 +1977,9 @@ YY_RULE_SETUP
                            return(NTWKADDR);
                        }
        YY_BREAK
-case 30:
+case 31:
 YY_RULE_SETUP
-#line 349 "toke.l"
+#line 352 "toke.l"
 {
                            if (!ipv6_valid(yytext)) {
                                LEXTRACE("ERROR ");
@@ -1987,9 +1991,9 @@ YY_RULE_SETUP
                            return(NTWKADDR);
                        }
        YY_BREAK
-case 31:
+case 32:
 YY_RULE_SETUP
-#line 360 "toke.l"
+#line 363 "toke.l"
 {
                            if (strcmp(yytext, "ALL") == 0) {
                                LEXTRACE("ALL ");
@@ -2012,9 +2016,9 @@ YY_RULE_SETUP
                            return(ALIAS);
                        }
        YY_BREAK
-case 32:
+case 33:
 YY_RULE_SETUP
-#line 382 "toke.l"
+#line 385 "toke.l"
 {
                            /* no command args allowed for Defaults!/path */
                            if (!fill_cmnd(yytext, yyleng))
@@ -2023,9 +2027,9 @@ YY_RULE_SETUP
                            return(COMMAND);
                        }
        YY_BREAK
-case 33:
+case 34:
 YY_RULE_SETUP
-#line 390 "toke.l"
+#line 393 "toke.l"
 {
                            BEGIN GOTCMND;
                            LEXTRACE("COMMAND ");
@@ -2033,9 +2037,9 @@ YY_RULE_SETUP
                                yyterminate();
                        }                       /* sudo -e */
        YY_BREAK
-case 34:
+case 35:
 YY_RULE_SETUP
-#line 397 "toke.l"
+#line 400 "toke.l"
 {
                            /* directories can't have args... */
                            if (yytext[yyleng - 1] == '/') {
@@ -2051,9 +2055,9 @@ YY_RULE_SETUP
                            }
                        }                       /* a pathname */
        YY_BREAK
-case 35:
+case 36:
 YY_RULE_SETUP
-#line 412 "toke.l"
+#line 415 "toke.l"
 {
                            /* a word */
                            if (!fill(yytext, yyleng))
@@ -2062,57 +2066,57 @@ YY_RULE_SETUP
                            return(WORD);
                        }
        YY_BREAK
-case 36:
+case 37:
 YY_RULE_SETUP
-#line 420 "toke.l"
+#line 423 "toke.l"
 {
                            LEXTRACE("( ");
                            return ('(');
                        }
        YY_BREAK
-case 37:
+case 38:
 YY_RULE_SETUP
-#line 425 "toke.l"
+#line 428 "toke.l"
 {
                            LEXTRACE(") ");
                            return(')');
                        }
        YY_BREAK
-case 38:
+case 39:
 YY_RULE_SETUP
-#line 430 "toke.l"
+#line 433 "toke.l"
 {
                            LEXTRACE(", ");
                            return(',');
                        }                       /* return ',' */
        YY_BREAK
-case 39:
+case 40:
 YY_RULE_SETUP
-#line 435 "toke.l"
+#line 438 "toke.l"
 {
                            LEXTRACE("= ");
                            return('=');
                        }                       /* return '=' */
        YY_BREAK
-case 40:
+case 41:
 YY_RULE_SETUP
-#line 440 "toke.l"
+#line 443 "toke.l"
 {
                            LEXTRACE(": ");
                            return(':');
                        }                       /* return ':' */
        YY_BREAK
-case 41:
+case 42:
 YY_RULE_SETUP
-#line 445 "toke.l"
+#line 448 "toke.l"
 {
                            if (yyleng % 2 == 1)
                                return('!');    /* return '!' */
                        }
        YY_BREAK
-case 42:
+case 43:
 YY_RULE_SETUP
-#line 450 "toke.l"
+#line 453 "toke.l"
 {
                            BEGIN INITIAL;
                            ++sudolineno;
@@ -2120,25 +2124,25 @@ YY_RULE_SETUP
                            return(COMMENT);
                        }                       /* return newline */
        YY_BREAK
-case 43:
+case 44:
 YY_RULE_SETUP
-#line 457 "toke.l"
+#line 460 "toke.l"
 {                      /* throw away space/tabs */
                            sawspace = TRUE;    /* but remember for fill_args */
                        }
        YY_BREAK
-case 44:
+case 45:
 YY_RULE_SETUP
-#line 461 "toke.l"
+#line 464 "toke.l"
 {
                            sawspace = TRUE;    /* remember for fill_args */
                            ++sudolineno;
                            LEXTRACE("\n\t");
                        }                       /* throw away EOL after \ */
        YY_BREAK
-case 45:
+case 46:
 YY_RULE_SETUP
-#line 467 "toke.l"
+#line 470 "toke.l"
 {
                            BEGIN INITIAL;
                            ++sudolineno;
@@ -2146,9 +2150,9 @@ YY_RULE_SETUP
                            return(COMMENT);
                        }                       /* return comments */
        YY_BREAK
-case 46:
+case 47:
 YY_RULE_SETUP
-#line 474 "toke.l"
+#line 477 "toke.l"
 {
                            LEXTRACE("ERROR ");
                            return(ERROR);
@@ -2160,7 +2164,7 @@ case YY_STATE_EOF(GOTCMND):
 case YY_STATE_EOF(STARTDEFS):
 case YY_STATE_EOF(INDEFS):
 case YY_STATE_EOF(INSTR):
-#line 479 "toke.l"
+#line 482 "toke.l"
 {
                            if (YY_START != INITIAL) {
                                BEGIN INITIAL;
@@ -2171,12 +2175,12 @@ case YY_STATE_EOF(INSTR):
                                yyterminate();
                        }
        YY_BREAK
-case 47:
+case 48:
 YY_RULE_SETUP
-#line 489 "toke.l"
+#line 492 "toke.l"
 ECHO;
        YY_BREAK
-#line 2180 "lex.yy.c"
+#line 2184 "lex.yy.c"
 
        case YY_END_OF_BUFFER:
                {
@@ -3065,7 +3069,7 @@ int main()
        return 0;
        }
 #endif
-#line 489 "toke.l"
+#line 492 "toke.l"
 
 static int
 _fill(src, len, olen)
diff --git a/toke.l b/toke.l
index e1e1c7b8bfcc23c937816e2789d2d135e2bf4a40..fb026c8e30262e725875d723cccc0bf950d47971 100644 (file)
--- a/toke.l
+++ b/toke.l
@@ -158,7 +158,7 @@ DEFVAR                      [a-z_]+
 }
 
 <INSTR>{
-    \\\n[[:blank:]]*   {
+    \\[[:blank:]]*\n[[:blank:]]*       {
                            /* Line continuation char followed by newline. */
                            ++sudolineno;
                            LEXTRACE("\n");
@@ -170,11 +170,14 @@ DEFVAR                    [a-z_]+
                            return(WORD);
                        }
 
-    ([^\"\n]|\\\")+    {
+    \\                 {
+                           LEXTRACE("BACKSLASH ");
+                           if (!append(yytext, yyleng))
+                               yyterminate();
+                       }
+
+    ([^\"\n\\]|\\\")+  {
                            LEXTRACE("STRBODY ");
-                           /* Push back line continuation char if present */
-                           if (yytext[yyleng - 1] == '\\')
-                               yyless(yyleng - 1);
                            if (!append(yytext, yyleng))
                                yyterminate();
                        }