]> granicus.if.org Git - sudo/commitdiff
Allow special characters (including '#') to be embedded in pathnames
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 31 Aug 2000 17:08:35 +0000 (17:08 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 31 Aug 2000 17:08:35 +0000 (17:08 +0000)
if quoted by a '\\'.  The quoted chars will be dealt with by fnmatch().
Unfortunately, 'sudo -l' still prints the '\\'.

lex.yy.c
parse.lex

index 4e9ff8260254a15c030acaf8d27c77de82598591..6053feb8f11bb35c00a5dc03b768060da642ff55 100644 (file)
--- a/lex.yy.c
+++ b/lex.yy.c
@@ -286,7 +286,7 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 
 #define YY_NUM_RULES 31
 #define YY_END_OF_BUFFER 32
-static yyconst short int yy_accept[472] =
+static yyconst short int yy_accept[476] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,   32,   29,
         1,    7,   11,   29,   29,   20,   30,   29,   10,   29,
@@ -297,49 +297,49 @@ static yyconst short int yy_accept[472] =
        21,   21,   30,   25,    5,   25,   25,   25,   25,   25,
        25,   25,   25,   24,   24,   24,   30,   29,    0,    1,
        11,   29,    0,    8,    0,   17,    0,   16,    0,   28,
-       28,   29,   29,   29,   29,   29,   24,   24,   24,   29,
-
-        2,   29,   29,   29,   29,   29,    9,    9,    9,    0,
-        9,    0,    9,    9,    9,    9,    9,    9,    9,    9,
-        9,    3,    3,   22,    0,   17,    0,   16,    0,   22,
-       22,   22,   22,   22,   22,   21,   21,   21,   22,   25,
-        0,   25,    0,    0,   25,    0,    5,    0,   17,    0,
-       16,    0,   25,   25,   25,   25,   25,   25,   24,   24,
-       24,   25,   29,   29,   29,   24,   24,    0,   29,   29,
-       29,   29,   29,   17,   16,    9,    9,    9,    9,    9,
-       22,   22,   22,   21,   21,    4,    4,    0,    4,   25,
-       25,   25,   25,   24,   24,   29,   29,   29,   29,   29,
-
-       24,   24,   29,   29,   29,    9,    9,    9,    9,    9,
-        9,    9,   22,   22,   22,   22,   22,   21,   21,    4,
-       25,   25,   25,   25,   25,   24,   24,   29,   29,   29,
-       24,   24,   29,   29,    9,    9,    9,    9,    9,   22,
-       22,   22,   21,   21,   25,   25,   25,   24,   24,   29,
-       29,   29,   29,   29,   24,   24,   29,   29,    9,    9,
-        9,    9,    9,    9,    9,   22,   22,   22,   22,   22,
-       21,   21,   25,   25,   25,   25,   25,   24,   24,   18,
-       18,   18,   24,    0,   15,   29,   29,    9,    9,    9,
-        9,   18,   18,   18,   21,   18,   18,   18,   24,   29,
-
-       18,   18,   18,   18,   24,   29,   26,    9,    9,    9,
-        9,    9,    9,   22,   18,   18,   18,   18,   21,   25,
-       18,   18,   18,   18,   24,   29,   19,   19,   19,    0,
-       14,   29,   26,    9,    9,    9,    9,   22,   19,   19,
-       19,   25,   19,   19,   19,   29,   29,   19,   19,   19,
-       19,   19,   27,    9,    9,    9,    9,    9,    9,    9,
-       22,   22,   19,   19,   19,   19,   19,   25,   25,   19,
-       19,   19,   19,   19,   29,   29,   29,   19,   19,    9,
-        9,    9,    9,    9,   22,   22,   22,   19,   19,   25,
-       25,   25,   19,   19,   29,   29,   29,   29,   29,    9,
-
-        9,    9,    9,    9,   22,   22,   22,   22,   22,   25,
-       25,   25,   25,   25,   29,   29,   29,    9,    9,    9,
-       22,   22,   22,   25,   25,   25,   29,   29,   29,   29,
-       29,    9,    9,    9,    9,    9,   22,   22,   22,   22,
-       22,   25,   25,   25,   25,   25,   18,   18,   18,    9,
-        9,    9,   18,   18,   18,   18,   18,   18,   18,   18,
-       18,    9,    9,    9,   18,   18,   18,   18,   18,   18,
-        0
+       28,    0,   29,   29,   29,   29,   29,   24,   24,   24,
+
+       29,    2,   29,   29,   29,   29,   29,    9,    9,    9,
+        0,    9,    0,    9,    0,    9,    9,    9,    9,    9,
+        9,    9,    9,    3,    3,   22,    0,   17,    0,   16,
+        0,   22,    0,   22,   22,   22,   22,   22,   21,   21,
+       21,   22,   25,    0,   25,    0,    0,   25,    0,    5,
+        0,   17,    0,   16,    0,   25,    0,   25,   25,   25,
+       25,   25,   24,   24,   24,   25,   29,   29,   29,   24,
+       24,    0,   29,   29,   29,   29,   29,   17,   16,    9,
+        9,    9,    9,    9,   22,   22,   22,   21,   21,    4,
+        4,    0,    4,   25,   25,   25,   25,   24,   24,   29,
+
+       29,   29,   29,   29,   24,   24,   29,   29,   29,    9,
+        9,    9,    9,    9,    9,    9,   22,   22,   22,   22,
+       22,   21,   21,    4,   25,   25,   25,   25,   25,   24,
+       24,   29,   29,   29,   24,   24,   29,   29,    9,    9,
+        9,    9,    9,   22,   22,   22,   21,   21,   25,   25,
+       25,   24,   24,   29,   29,   29,   29,   29,   24,   24,
+       29,   29,    9,    9,    9,    9,    9,    9,    9,   22,
+       22,   22,   22,   22,   21,   21,   25,   25,   25,   25,
+       25,   24,   24,   18,   18,   18,   24,    0,   15,   29,
+       29,    9,    9,    9,    9,   18,   18,   18,   21,   18,
+
+       18,   18,   24,   29,   18,   18,   18,   18,   24,   29,
+       26,    9,    9,    9,    9,    9,    9,   22,   18,   18,
+       18,   18,   21,   25,   18,   18,   18,   18,   24,   29,
+       19,   19,   19,    0,   14,   29,   26,    9,    9,    9,
+        9,   22,   19,   19,   19,   25,   19,   19,   19,   29,
+       29,   19,   19,   19,   19,   19,   27,    9,    9,    9,
+        9,    9,    9,    9,   22,   22,   19,   19,   19,   19,
+       19,   25,   25,   19,   19,   19,   19,   19,   29,   29,
+       29,   19,   19,    9,    9,    9,    9,    9,   22,   22,
+       22,   19,   19,   25,   25,   25,   19,   19,   29,   29,
+
+       29,   29,   29,    9,    9,    9,    9,    9,   22,   22,
+       22,   22,   22,   25,   25,   25,   25,   25,   29,   29,
+       29,    9,    9,    9,   22,   22,   22,   25,   25,   25,
+       29,   29,   29,   29,   29,    9,    9,    9,    9,    9,
+       22,   22,   22,   22,   22,   25,   25,   25,   25,   25,
+       18,   18,   18,    9,    9,    9,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,    9,    9,    9,   18,   18,
+       18,   18,   18,   18,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -383,132 +383,132 @@ static yyconst int yy_meta[51] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst short int yy_base[497] =
+static yyconst short int yy_base[501] =
     {   0,
-        0,   25,   59,    0,  109,    0,  159,    0, 1170, 1133,
-     1166, 2983, 1163,  208, 1130, 2983, 2983, 1123, 2983,  214,
-      239,  246,  224, 2983, 2983,  275, 1125, 1130,  324, 1101,
-     1102, 1095, 1090, 1090,    0, 2983, 1125,  330,  332, 2983,
-      226,  357,  366,  375, 2983,    0,  382, 1090, 1087,  418,
-     1072, 1047, 1046, 2983, 1045,  419,  444,  253,  342,  480,
-     1040, 1045,  529, 1032, 2983,  551,  586, 1030, 1025,  429,
-      611,  429,  452,  647, 1030, 1027,  696, 1012,  718, 1045,
-     1042,  740, 1041, 2983, 1038, 1004,  775, 1003,  797,  535,
-        0,  807,  209,    0,    0, 1018,    0, 1006,  993,  211,
-
-     2983,  179,  192,  198,  190,   18,    0, 1021,  557,    0,
-      560,    0,  230,  458, 1001,  832,  841,  586,    0,  975,
-      958,   53, 2983,  954,  860,  949,  882,  948,  904,  609,
-      914,  213,    0,    0,  957,    0,  925,  922,  294,  916,
-      949,  971,  293,  400, 1006,  946, 2983,  920,  878, 1041,
-      875, 1063,  632, 1073,  331,    0,    0,  890,    0,  876,
-      869,  448, 1098, 1107, 1116,  877,  859,  275,  247,  306,
-      301,  313,  394, 1135, 1170, 1195, 1204, 1213,  856,  846,
-     1222, 1231, 1240,  846,  821,  809, 2983,  326,    0,  837,
-     1249, 1258, 1267,  792,  782, 1274,  352, 1299, 1308, 1317,
-
-      774,  769,  395,  329,  386,  694,  791, 1326, 1335,  716,
-      767,  760, 1344,  467, 1353, 1362, 1371,  761,  750,  421,
-     1380,  534, 1389, 1398, 1407,  742,  738, 1416, 1425, 1434,
-      739,  738,  465,  327, 1443, 1452, 1461,  726,  719, 1470,
-     1479, 1488,  712,  711, 1497, 1506, 1515,  704,  689, 1522,
-      545, 1547, 1556, 1565,  614,  481,  499,  498,  738,  634,
-     1574, 1583,  752,  576,  546, 1592,  563, 1601, 1610, 1619,
-      571,  589, 1628,  580, 1637, 1646, 1655,  550,  612, 1663,
-      773,  795,  557,  618, 2983,  382,  576, 1687, 1695, 1703,
-      550, 1712,  814,  821,  522, 1721,  858,  880,  518, 1728,
-
-      550,    0,    0,  516,  635,  540,  598,  902,  478, 1752,
-     1760,  922,  648, 1768,  622,    0,    0,  468,  649, 1776,
-      688,    0,    0,  462,  700, 1785, 1794, 1803, 1812,  704,
-     2983,  667, 2983, 1821, 1830, 1839, 1848, 1857, 1866, 1875,
-     1884, 1893, 1902, 1911, 1920, 1927,  711, 1952, 1961, 1970,
-     1979,  766,  417,  928,  392, 1988, 1997, 2006, 2015,  851,
-     2024,  724, 2033, 2042, 2051, 2060,  873, 2069,  738, 2078,
-     2087, 2096, 2105,  947, 2114, 2123, 2132, 2141,  950, 2150,
-     2159, 2168,  981,  628, 2177, 2186, 2195, 2204,  953, 2213,
-     2222, 2231, 2240,  988, 2247,  805, 2272, 2281, 2290, 1016,
-
-      336, 2299, 2308, 1004, 2315,  888, 2340, 2349, 2358, 2365,
-      942, 2390, 2399, 2408, 2417, 2426, 2435, 2444, 2453, 2462,
-     2471, 2480, 2489, 2498, 2507, 2516, 2525,  969, 2534, 2543,
-     2552, 1039,  272, 2561, 2570, 1061, 2579,  975, 2588, 2597,
-     2606, 2615,  976, 2624, 2633, 2642, 2651, 2660, 2669, 1080,
-     1087, 1133, 2678, 2687, 2696, 2705, 2714, 2723,  243, 2730,
-     1146,    0, 1169, 1180,  238, 2753, 1285,  191, 2776, 1533,
-     2983, 2812, 2819, 2826, 2833, 2840, 2847, 2853, 2860, 2867,
-     2873, 2880, 2887, 2894, 2901, 2908, 2915, 2922, 2929, 2936,
-     2943, 2950, 2954, 2961, 2968, 2975
+        0,   25,   59,    0,  109,    0,  159,    0, 1174, 1113,
+     1146, 3053, 1135,  208, 1100, 3053, 3053, 1098, 3053,  214,
+      239,  246,  224, 3053, 3053,  275, 1102, 1103,  324, 1082,
+     1077, 1068, 1063, 1064,    0, 3053, 1106,  330,  332, 3053,
+      261,  357,  366,  375, 3053,    0,  382, 1075, 1080,  418,
+     1067, 1056, 1055, 3053, 1054,  419,  444,  254,  342,  480,
+     1058, 1061,  529, 1048, 3053,  551,  586, 1047, 1046,  429,
+      611,  429,  452,  647, 1051, 1046,  696, 1033,  718, 1066,
+     1053,  740, 1053, 3053, 1052, 1014,  775, 1012,  797,  535,
+     1011,  819,  829,  209,    0,    0, 1026,    0, 1003, 1000,
+
+      211, 3053,  179,  191,  198,  190,   18,    0, 1028,  557,
+        0,  560,    0,  343,  599,  458, 1019,  854,  863,  599,
+        0,  998,  995,   53, 3053,  985,  882,  977,  904,  976,
+      926,  632,  948,  958,  213,    0,    0,  983,    0,  969,
+      966,  327,  960,  993, 1015,  243,  400, 1050,  990, 3053,
+      965,  931, 1085,  922, 1107,  702, 1129, 1139,  216,    0,
+        0,  935,    0,  920,  912,  448, 1164, 1173, 1182,  912,
+      896,  275,  197,  248,  295,  260,  301, 1201, 1236, 1261,
+     1270, 1279,  900,  890, 1288, 1297, 1306,  890,  878,  874,
+     3053,  417,    0,  902, 1315, 1324, 1333,  878,  868, 1340,
+
+      331, 1365, 1374, 1383,  859,  841,  314,  368,  443,  716,
+      855, 1392, 1401,  738,  831,  803, 1410,  352, 1419, 1428,
+     1437,  804,  794,  421, 1446,  534, 1455, 1464, 1473,  793,
+      787, 1482, 1491, 1500,  783,  780,  465,  398, 1509, 1518,
+     1527,  761,  745, 1536, 1545, 1554,  713,  718, 1563, 1572,
+     1581,  691,  688, 1588,  545, 1613, 1622, 1631,  679,  481,
+      499,  498,  750,  700, 1640, 1649,  773,  635,  546, 1658,
+      563, 1667, 1676, 1685,  615,  582, 1694,  564, 1703, 1712,
+     1721,  614,  583, 1729,  795,  817,  617,  622, 3053,  446,
+      550, 1753, 1761, 1769,  607, 1778,  836,  843,  579, 1787,
+
+      880,  902,  565, 1794,  599,    0,    0,  571,  630,  394,
+      680,  924,  564, 1818, 1826,  947,  635, 1834,  606,    0,
+        0,  543,  637, 1842,  633,    0,    0,  529,  700, 1851,
+     1860, 1869, 1878,  707, 3053,  597, 3053, 1887, 1896, 1905,
+     1914, 1923, 1932, 1941, 1950, 1959, 1968, 1977, 1986, 1993,
+      566, 2018, 2027, 2036, 2045,  759,  509,  965,  524, 2054,
+     2063, 2072, 2081,  766, 2090,  701, 2099, 2108, 2117, 2126,
+      788, 2135,  711, 2144, 2153, 2162, 2171,  873, 2180, 2189,
+     2198, 2207,  917, 2216, 2225, 2234,  972,  744, 2243, 2252,
+     2261, 2270,  991, 2279, 2288, 2297, 2306,  994, 2313,  781,
+
+     2338, 2347, 2356, 1025,  491, 2365, 2374, 1048, 2381,  827,
+     2406, 2415, 2424, 2431,  910, 2456, 2465, 2474, 2483, 2492,
+     2501, 2510, 2519, 2528, 2537, 2546, 2555, 2564, 2573, 2582,
+     2591,  986, 2600, 2609, 2618, 1060,  419, 2627, 2636, 1083,
+     2645,  999, 2654, 2663, 2672, 2681, 1013, 2690, 2699, 2708,
+     2717, 2726, 2735, 1105, 1127, 1146, 2744, 2753, 2762, 2771,
+     2780, 2789,  334, 2796, 1199,    0, 1153, 1211,  326, 2819,
+     1234,  306, 2842, 1247, 3053, 2878, 2885, 2892, 2899, 2906,
+     2913, 2919, 2926, 2933, 2940, 2947, 2954, 2961, 2968, 2975,
+     2982, 2989, 2996, 3003, 3010, 3017, 3024, 3031, 3038, 3045
 
     } ;
 
-static yyconst short int yy_def[497] =
+static yyconst short int yy_def[501] =
     {   0,
-      471,    1,  471,    3,  471,    5,  471,    7,  471,  472,
-      471,  471,  471,  473,  474,  471,  471,  475,  471,  476,
-      472,   21,   21,  471,  471,  471,   26,   26,  472,   26,
-       26,   26,   26,   26,  477,  471,  477,  478,  479,  471,
-      480,  477,  477,  477,  471,  477,  477,   47,   47,  471,
-      481,  481,  482,  471,  483,  484,  481,   57,   57,  471,
-       60,   60,  481,  485,  471,  486,  487,  488,  489,  490,
-      485,   71,   71,  471,   74,   74,  485,  472,  472,  471,
-      471,  473,  491,  471,  473,  474,  474,  475,  475,  476,
-      492,  472,  472,   21,   21,   21,   26,   26,   26,  472,
-
-      471,  472,  472,  472,  472,  472,  477,  477,  478,  493,
-      479,  494,  480,  477,  477,  477,  477,  477,   47,   47,
-       47,  471,  471,  481,  481,  482,  482,  483,  483,  484,
-      481,  481,   57,   57,   57,   60,   60,   60,  481,  485,
-      485,  486,  495,  486,  487,  496,  471,  487,  488,  488,
-      489,  489,  490,  485,  485,   71,   71,   71,   74,   74,
-       74,  485,   21,   21,   21,   26,   26,  471,  472,  472,
-      472,  472,  472,  493,  494,  477,  477,  477,   47,   47,
-       57,   57,   57,   60,   60,  485,  471,  495,  142,  142,
-       71,   71,   71,   74,   74,  472,  472,   21,   21,   21,
-
-       26,   26,  472,  472,  472,  477,  477,  477,  477,  477,
-       47,   47,   57,  481,   57,   57,   57,   60,   60,  495,
-       71,  485,   71,   71,   71,   74,   74,   21,   21,   21,
-       26,   26,  472,  472,  477,  477,  477,   47,   47,   57,
-       57,   57,   60,   60,   71,   71,   71,   74,   74,  472,
-      472,   21,   21,   21,   26,   26,  472,  472,  477,  477,
-      477,  477,  477,   47,   47,   57,  481,   57,   57,   57,
-       60,   60,   71,  485,   71,   71,   71,   74,   74,  472,
-      280,  280,   26,  471,  471,  472,  472,  477,  477,  477,
-       47,   57,  292,  292,   60,   71,  296,  296,   74,  472,
-
-      472,  280,  280,  280,   26,  472,  472,  477,  477,  477,
-      477,  477,   47,  292,  481,  292,  292,  292,   60,  296,
-      485,  296,  296,  296,   74,   21,   21,   21,   21,  471,
-      471,  472,  471,  477,  477,  477,  477,   57,   57,   57,
-       57,   71,   71,   71,   71,  472,  472,   21,   21,   21,
-       21,  472,  472,  477,  477,  477,  477,  477,  477,  477,
-       57,  481,   57,   57,   57,   57,  481,   71,  485,   71,
-       71,   71,   71,  485,   21,   21,   21,   21,  472,  477,
-      477,  477,  477,  477,   57,   57,   57,   57,  481,   71,
-       71,   71,   71,  485,  472,  472,   21,   21,   21,  477,
-
-      477,  477,  477,  477,  481,  481,   57,   57,   57,  485,
-      485,   71,   71,   71,   21,   21,   21,  477,  477,  477,
-       57,   57,   57,   71,   71,   71,   21,  472,   21,   21,
-       21,  477,  477,  477,  477,  477,   57,  481,   57,   57,
-       57,   71,  485,   71,   71,   71,   21,   21,   21,  477,
-      477,  477,   57,   57,   57,   71,   71,   71,  472,  472,
-      472,  477,  477,  477,  481,  481,  481,  485,  485,  485,
-        0,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471
+      475,    1,  475,    3,  475,    5,  475,    7,  475,  476,
+      475,  475,  475,  477,  478,  475,  475,  479,  475,  480,
+      476,   21,   21,  475,  475,  475,   26,   26,  476,   26,
+       26,   26,   26,   26,  481,  475,  481,  482,  483,  475,
+      484,  481,  481,  481,  475,  481,  481,   47,   47,  475,
+      485,  485,  486,  475,  487,  488,  485,   57,   57,  475,
+       60,   60,  485,  489,  475,  490,  491,  492,  493,  494,
+      489,   71,   71,  475,   74,   74,  489,  476,  476,  475,
+      475,  477,  495,  475,  477,  478,  478,  479,  479,  480,
+      496,  476,  476,  476,   21,   21,   21,   26,   26,   26,
+
+      476,  475,  476,  476,  476,  476,  476,  481,  481,  482,
+      497,  483,  498,  484,  475,  481,  481,  481,  481,  481,
+       47,   47,   47,  475,  475,  485,  485,  486,  486,  487,
+      487,  488,  485,  485,  485,   57,   57,   57,   60,   60,
+       60,  485,  489,  489,  490,  499,  490,  491,  500,  475,
+      491,  492,  492,  493,  493,  494,  489,  489,  489,   71,
+       71,   71,   74,   74,   74,  489,   21,   21,   21,   26,
+       26,  475,  476,  476,  476,  476,  476,  497,  498,  481,
+      481,  481,   47,   47,   57,   57,   57,   60,   60,  489,
+      475,  499,  145,  145,   71,   71,   71,   74,   74,  476,
+
+      476,   21,   21,   21,   26,   26,  476,  476,  476,  481,
+      481,  481,  481,  481,   47,   47,   57,  485,   57,   57,
+       57,   60,   60,  499,   71,  489,   71,   71,   71,   74,
+       74,   21,   21,   21,   26,   26,  476,  476,  481,  481,
+      481,   47,   47,   57,   57,   57,   60,   60,   71,   71,
+       71,   74,   74,  476,  476,   21,   21,   21,   26,   26,
+      476,  476,  481,  481,  481,  481,  481,   47,   47,   57,
+      485,   57,   57,   57,   60,   60,   71,  489,   71,   71,
+       71,   74,   74,  476,  284,  284,   26,  475,  475,  476,
+      476,  481,  481,  481,   47,   57,  296,  296,   60,   71,
+
+      300,  300,   74,  476,  476,  284,  284,  284,   26,  476,
+      476,  481,  481,  481,  481,  481,   47,  296,  485,  296,
+      296,  296,   60,  300,  489,  300,  300,  300,   74,   21,
+       21,   21,   21,  475,  475,  476,  475,  481,  481,  481,
+      481,   57,   57,   57,   57,   71,   71,   71,   71,  476,
+      476,   21,   21,   21,   21,  476,  476,  481,  481,  481,
+      481,  481,  481,  481,   57,  485,   57,   57,   57,   57,
+      485,   71,  489,   71,   71,   71,   71,  489,   21,   21,
+       21,   21,  476,  481,  481,  481,  481,  481,   57,   57,
+       57,   57,  485,   71,   71,   71,   71,  489,  476,  476,
+
+       21,   21,   21,  481,  481,  481,  481,  481,  485,  485,
+       57,   57,   57,  489,  489,   71,   71,   71,   21,   21,
+       21,  481,  481,  481,   57,   57,   57,   71,   71,   71,
+       21,  476,   21,   21,   21,  481,  481,  481,  481,  481,
+       57,  485,   57,   57,   57,   71,  489,   71,   71,   71,
+       21,   21,   21,  481,  481,  481,   57,   57,   57,   71,
+       71,   71,  476,  476,  476,  481,  481,  481,  485,  485,
+      485,  489,  489,  489,    0,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475
 
     } ;
 
-static yyconst short int yy_nxt[3034] =
+static yyconst short int yy_nxt[3104] =
     {   0,
        10,   11,   12,   13,   10,   14,   15,   16,   17,   18,
        19,   10,   20,   21,   22,   23,   21,   21,   21,   21,
        24,   25,   17,   26,   26,   26,   26,   26,   27,   26,
        28,   26,   26,   26,   26,   29,   10,   10,   10,   10,
        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
-       30,   31,   32,   79,  168,  101,   33,  173,   34,   35,
+       30,   31,   32,   79,  172,  102,   33,  177,   34,   35,
        11,   36,   37,   35,   35,   38,   35,   35,   39,   40,
        35,   41,   42,   43,   44,   42,   42,   42,   42,   45,
        46,   35,   47,   47,   47,   47,   47,   48,   47,   49,
@@ -526,327 +526,335 @@ static yyconst short int yy_nxt[3034] =
        74,   74,   74,   74,   77,   64,   64,   64,   64,   64,
 
        64,   64,   64,   64,   64,   64,   64,   64,   64,   83,
-       84,   83,  168,  101,   79,   83,   83,   91,   83,   78,
-       92,   91,   91,  169,  131,   79,  141,   79,   83,   83,
-       83,  107,  170,   79,  172,  107,   91,   95,   95,   95,
-       95,   95,   96,   85,   79,  171,   79,  107,  125,   79,
-       92,  107,   93,   93,   93,   93,   93,   93,   93,   94,
-       94,   94,   94,   94,   94,   94,  133,  133,  133,  133,
-      133,  133,  133,  125,   79,   78,  168,  101,   79,   78,
-       78,   78,   79,  432,   78,  203,   78,   78,   97,   97,
-       97,   97,   97,   97,   97,  168,  101,  187,   97,   97,
-
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       79,   97,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,  100,  101,   78,  188,  125,
-      220,   78,   78,  107,   78,  107,   79,  107,  107,  107,
-      107,   79,  154,  204,   78,   78,   78,  400,   79,  203,
-      205,  107,  107,  107,  107,  134,  134,  134,  134,  134,
-      135,  188,   79,  196,   79,  110,  141,  112,  114,  258,
-      115,  115,  115,  115,  115,  115,  115,  114,  234,  116,
-      116,  116,  116,  116,  116,  116,  114,   79,  117,  117,
-      117,  117,  117,  118,  115,  119,  119,  119,  119,  119,
-
-      119,  119,  143,  354,  189,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,   79,  119,  122,
-      101,   79,   91,  306,  124,  187,   91,   91,  123,   79,
-       79,  233,   91,  203,  140,  190,   91,   91,  123,  123,
-      203,   91,  156,  156,  156,  156,  156,  156,  156,  168,
-      101,   91,   79,  123,  125,  131,  188,  132,  132,  132,
-      132,  132,  132,  132,  141,  157,  157,  157,  157,  157,
-      158,  176,  177,  178,  176,  176,  176,  176,  213,  125,
-      124,  140,  284,  141,  124,  124,  124,  124,  257,  124,
-      308,  124,  124,  136,  136,  136,  136,  136,  136,  136,
-
-       79,  285,  125,  136,  136,  136,  136,  136,  136,  136,
-      136,  136,  136,  136,  136,  125,  136,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      139,  101,  124,   79,   79,   78,  124,  124,   91,  124,
-       78,  286,   91,   91,  325,  221,  287,  284,  319,  124,
-      124,  124,  143,  143,  143,  140,  250,   91,  143,  143,
-      107,  143,  300,  107,  107,  107,  285,  107,  107,  141,
-       79,  143,  143,  143,  266,   79,  313,  332,  107,  107,
-       79,  107,  107,  305,  299,   79,  144,  146,  147,  146,
-      284,  273,  110,  146,  146,  112,  146,  114,  125,  115,
-
-      115,  115,  115,  115,  115,  295,  146,  146,  146,  285,
-      291,   79,   91,  284,  124,  141,   91,   91,  333,  284,
-      333,  148,  154,  307,  155,  155,  155,  155,  155,  155,
-      155,   91,  285,   79,  314,   91,  330,  140,  285,   91,
-       91,  384,  384,  384,  125,  259,  141,  140,  283,  330,
-      330,  140,  140,  140,   91,  331,  140,  125,  140,  140,
-      159,  159,  159,  159,  159,  159,  159,  141,  331,  331,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  141,  159,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  162,  101,  140,
-
-      320,  330,   79,  140,  140,  330,  140,  235,  236,  237,
-      235,  235,  235,  235,  353,  279,  140,  140,  140,   78,
-      331,   78,  346,  141,  331,   78,   78,  206,   78,  207,
-      207,  207,  207,  207,  207,  361,  278,  272,   78,   78,
-       78,   83,   84,   83,  271,  265,   79,   83,   83,  368,
-       83,  288,  289,  290,  288,  288,  288,  288,  264,  125,
-       83,   83,   83,  259,  256,  260,  260,  260,  260,  260,
-      260,  255,  249,  141,  248,   85,   86,  346,   86,  379,
-      379,  379,   86,   86,  244,   86,  302,  302,  302,  302,
-      302,  302,  302,  243,  239,   86,   86,   86,   88,  238,
-
-       88,   79,  206,  232,   88,   88,  231,   88,  303,  303,
-      303,  303,  303,  304,  227,  226,  395,   88,   88,   88,
-      163,  164,  165,  163,  163,  163,  163,  316,  316,  316,
-      316,  316,  316,  316,  317,  317,  317,  317,  317,  318,
-       79,  189,   79,  114,  141,  115,  115,  115,  115,  115,
-      115,  115,  114,  219,  115,  115,  115,  115,  115,  115,
-      115,  124,  354,  124,  384,  384,  384,  124,  124,  218,
-      124,  322,  322,  322,  322,  322,  322,  322,  212,  211,
-      124,  124,  124,  126,  361,  126,  389,  389,  389,  126,
-      126,  202,  126,  323,  323,  323,  323,  323,  324,  405,
-
-      201,  195,  126,  126,  126,  128,  194,  128,  125,  140,
-      152,  128,  128,  150,  128,  334,  335,  336,  337,  334,
-      334,  334,  147,  125,  128,  128,  128,  181,  182,  183,
-      181,  181,  181,  181,  308,  309,  309,  309,  309,  309,
-      309,  380,  381,  382,  380,  380,  380,  380,  147,  125,
-      140,  141,  140,  410,  185,  184,  140,  140,  368,  140,
-      394,  394,  394,  379,  379,  379,  389,  389,  389,  140,
-      140,  140,  143,  143,  143,  186,  124,  141,  143,  143,
-      427,  143,  141,  129,  127,   79,  437,  442,  125,  125,
-      180,  143,  143,  143,  383,  383,  383,  383,  383,  383,
-
-      383,  394,  394,  394,   79,  179,  144,  146,  147,  146,
-      125,  141,  114,  146,  146,  400,  146,  401,  401,  401,
-      401,  401,  401,  141,  108,  167,  146,  146,  146,  418,
-      419,  420,  418,  418,  418,  418,  166,   78,   89,   87,
-       84,  148,  149,   84,  149,   81,   80,   79,  149,  149,
-      161,  149,  450,  451,  452,  450,  450,  450,  450,  160,
-      152,  149,  149,  149,  151,  150,  151,  141,  138,  137,
-      151,  151,  432,  151,  433,  433,  433,  433,  433,  433,
-      129,  127,  125,  151,  151,  151,  191,  192,  193,  191,
-      191,  191,  191,  462,  462,  462,  462,  462,  462,  462,
-
-      450,  450,  450,  450,  450,  450,  450,  125,  141,  196,
-      121,  197,  197,  197,  197,  197,  197,  197,  196,  120,
-      198,  198,  198,  198,  198,  198,  198,  196,  108,  199,
-      199,  199,  199,  199,  200,  197,  471,  106,  471,  105,
-      104,  103,  471,  471,  102,  471,  463,  463,  463,  463,
-      463,  464,  462,   99,   98,  471,  471,  471,   89,  459,
-      459,  459,  459,  459,  459,   87,   81,   80,   79,  471,
-      110,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,   79,  462,  462,  462,  462,  462,  462,  462,  471,
-      471,  471,  471,  462,  462,  462,  462,  462,  462,  471,
-
-      471,  471,  471,  471,  471,  112,  206,  471,  207,  207,
-      207,  207,  207,  207,  207,  206,  471,  208,  208,  208,
-      208,  208,  208,  208,  206,  471,  209,  209,  209,  209,
-      209,  210,  207,  213,  471,  214,  214,  214,  214,  214,
-      214,  214,  213,  471,  215,  215,  215,  215,  215,  215,
-      215,  213,  471,  216,  216,  216,  216,  216,  217,  214,
-      221,  471,  222,  222,  222,  222,  222,  222,  222,  221,
-      471,  223,  223,  223,  223,  223,  223,  223,  221,  471,
-      224,  224,  224,  224,  224,  225,  222,  228,  229,  230,
-      228,  228,  228,  228,  471,  471,  471,  471,  465,  465,
-
-      465,  465,  465,  465,  471,  471,  471,  471,  471,   79,
-      196,  471,  197,  197,  197,  197,  197,  197,  197,  196,
-      125,  197,  197,  197,  197,  197,  197,  197,  196,  471,
-      197,  197,  197,  197,  197,  197,   78,  206,  471,  207,
-      207,  207,  207,  207,  207,  207,  206,  471,  207,  207,
-      207,  207,  207,  207,  207,  124,  471,  240,  241,  242,
-      240,  240,  240,  240,  213,  471,  214,  214,  214,  214,
-      214,  214,  214,  213,  471,  214,  214,  214,  214,  214,
-      214,  214,  213,  471,  214,  214,  214,  214,  214,  214,
-      124,  140,  471,  245,  246,  247,  245,  245,  245,  245,
-
-      221,  471,  222,  222,  222,  222,  222,  222,  222,  221,
-      471,  222,  222,  222,  222,  222,  222,  222,  221,  471,
-      222,  222,  222,  222,  222,  222,  140,  250,  471,  251,
-      251,  251,  251,  251,  251,  251,  250,  471,  252,  252,
-      252,  252,  252,  252,  252,  250,  471,  253,  253,  253,
-      253,  253,  254,  251,  259,  471,  260,  260,  260,  260,
-      260,  260,  260,  259,  471,  261,  261,  261,  261,  261,
-      261,  261,  259,  471,  262,  262,  262,  262,  262,  263,
-      260,  266,  471,  267,  267,  267,  267,  267,  267,  267,
-      266,  471,  268,  268,  268,  268,  268,  268,  268,  266,
-
-      471,  269,  269,  269,  269,  269,  270,  267,  273,  471,
-      274,  274,  274,  274,  274,  274,  274,  273,  471,  275,
-      275,  275,  275,  275,  275,  275,  273,  471,  276,  276,
-      276,  276,  276,  277,  274,  280,  281,  282,  280,  280,
-      280,  280,  471,  471,  471,  471,  468,  468,  468,  468,
-      468,  468,  471,  471,  471,  471,  471,   79,  250,  471,
-      251,  251,  251,  251,  251,  251,  251,  250,  141,  251,
-      251,  251,  251,  251,  251,  251,  250,  471,  251,  251,
-      251,  251,  251,  251,   78,  259,  471,  260,  260,  260,
-      260,  260,  260,  260,  259,  471,  260,  260,  260,  260,
-
-      260,  260,  260,  124,  471,  292,  293,  294,  292,  292,
-      292,  292,  266,  471,  267,  267,  267,  267,  267,  267,
-      267,  266,  471,  267,  267,  267,  267,  267,  267,  267,
-      266,  471,  267,  267,  267,  267,  267,  267,  124,  140,
-      471,  296,  297,  298,  296,  296,  296,  296,  273,  471,
-      274,  274,  274,  274,  274,  274,  274,  273,  471,  274,
-      274,  274,  274,  274,  274,  274,  273,  471,  274,  274,
-      274,  274,  274,  274,  140,  300,  301,  301,  301,  301,
-      301,  301,  301,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,   79,  308,
-
-      309,  309,  309,  309,  309,  309,  309,  308,  310,  310,
-      310,  310,  310,  310,  310,  308,  311,  311,  311,  311,
-      311,  312,  309,  124,  314,  315,  315,  315,  315,  315,
-      315,  315,  140,  320,  321,  321,  321,  321,  321,  321,
-      321,  326,  327,  328,  329,  326,  326,  326,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,   79,  308,  309,  309,  309,  309,  309,
-      309,  309,  308,  309,  309,  309,  309,  309,  309,  309,
-      124,  338,  339,  340,  341,  338,  338,  338,  140,  342,
-      343,  344,  345,  342,  342,  342,  346,  471,  347,  347,
-
-      347,  347,  347,  347,  347,  346,  471,  348,  348,  348,
-      348,  348,  348,  348,  346,  471,  349,  349,  349,  349,
-      349,  350,  351,  346,  471,  352,  352,  352,  347,  347,
-      347,  347,  354,  471,  355,  355,  355,  355,  355,  355,
-      355,  354,  471,  356,  356,  356,  356,  356,  356,  356,
-      354,  471,  357,  357,  357,  357,  357,  358,  359,  354,
-      471,  360,  360,  360,  355,  355,  355,  355,  361,  471,
-      362,  362,  362,  362,  362,  362,  362,  361,  471,  363,
-      363,  363,  363,  363,  363,  363,  361,  471,  364,  364,
-      364,  364,  364,  365,  366,  361,  471,  367,  367,  367,
-
-      362,  362,  362,  362,  368,  471,  369,  369,  369,  369,
-      369,  369,  369,  368,  471,  370,  370,  370,  370,  370,
-      370,  370,  368,  471,  371,  371,  371,  371,  371,  372,
-      373,  368,  471,  374,  374,  374,  369,  369,  369,  369,
-      375,  376,  377,  375,  375,  375,  375,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,   79,  346,  471,  351,  351,  351,  351,  351,
-      351,  351,  346,  471,  351,  351,  351,  351,  351,  351,
-      351,  346,  471,  351,  351,  351,  351,  351,  351,  378,
-      346,  471,  378,  378,  378,  378,  378,  378,  378,  354,
-
-      471,  359,  359,  359,  359,  359,  359,  359,  354,  471,
-      359,  359,  359,  359,  359,  359,  359,  354,  471,  359,
-      359,  359,  359,  359,  359,  383,  354,  471,  383,  383,
-      383,  383,  383,  383,  383,  124,  471,  385,  386,  387,
-      385,  385,  385,  385,  361,  471,  366,  366,  366,  366,
-      366,  366,  366,  361,  471,  366,  366,  366,  366,  366,
-      366,  366,  361,  471,  366,  366,  366,  366,  366,  366,
-      388,  361,  471,  388,  388,  388,  388,  388,  388,  388,
-      140,  471,  390,  391,  392,  390,  390,  390,  390,  368,
-      471,  373,  373,  373,  373,  373,  373,  373,  368,  471,
-
-      373,  373,  373,  373,  373,  373,  373,  368,  471,  373,
-      373,  373,  373,  373,  373,  393,  368,  471,  393,  393,
-      393,  393,  393,  393,  393,  395,  471,  396,  396,  396,
-      396,  396,  396,  396,  395,  471,  397,  397,  397,  397,
-      397,  397,  397,  395,  471,  398,  398,  398,  398,  398,
-      399,  396,   78,  471,  378,  378,  378,  378,  378,  378,
-      378,  400,  471,  401,  401,  401,  401,  401,  401,  401,
-      400,  471,  402,  402,  402,  402,  402,  402,  402,  400,
-      471,  403,  403,  403,  403,  403,  404,  401,  405,  471,
-      406,  406,  406,  406,  406,  406,  406,  405,  471,  407,
-
-      407,  407,  407,  407,  407,  407,  405,  471,  408,  408,
-      408,  408,  408,  409,  406,  124,  471,  388,  388,  388,
-      388,  388,  388,  388,  410,  471,  411,  411,  411,  411,
-      411,  411,  411,  410,  471,  412,  412,  412,  412,  412,
-      412,  412,  410,  471,  413,  413,  413,  413,  413,  414,
-      411,  140,  471,  393,  393,  393,  393,  393,  393,  393,
-      415,  416,  417,  415,  415,  415,  415,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,   79,  395,  471,  396,  396,  396,  396,  396,
-      396,  396,  395,  471,  396,  396,  396,  396,  396,  396,
-
-      396,  395,  471,  396,  396,  396,  396,  396,  396,   78,
-      400,  471,  401,  401,  401,  401,  401,  401,  401,  400,
-      471,  401,  401,  401,  401,  401,  401,  401,  421,  422,
-      423,  421,  421,  421,  421,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      125,  405,  471,  406,  406,  406,  406,  406,  406,  406,
-      405,  471,  406,  406,  406,  406,  406,  406,  406,  405,
-      471,  406,  406,  406,  406,  406,  406,  124,  424,  425,
-      426,  424,  424,  424,  424,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-
-      141,  410,  471,  411,  411,  411,  411,  411,  411,  411,
-      410,  471,  411,  411,  411,  411,  411,  411,  411,  410,
-      471,  411,  411,  411,  411,  411,  411,  140,  427,  471,
-      428,  428,  428,  428,  428,  428,  428,  427,  471,  429,
-      429,  429,  429,  429,  429,  429,  427,  471,  430,  430,
-      430,  430,  430,  431,  428,  432,  471,  433,  433,  433,
-      433,  433,  433,  433,  432,  471,  434,  434,  434,  434,
-      434,  434,  434,  432,  471,  435,  435,  435,  435,  435,
-      436,  433,  437,  471,  438,  438,  438,  438,  438,  438,
-      438,  437,  471,  439,  439,  439,  439,  439,  439,  439,
-
-      437,  471,  440,  440,  440,  440,  440,  441,  438,  442,
-      471,  443,  443,  443,  443,  443,  443,  443,  442,  471,
-      444,  444,  444,  444,  444,  444,  444,  442,  471,  445,
-      445,  445,  445,  445,  446,  443,   78,  471,  447,  448,
-      449,  447,  447,  447,  447,  427,  471,  428,  428,  428,
-      428,  428,  428,  428,  427,  471,  428,  428,  428,  428,
-      428,  428,  428,  427,  471,  428,  428,  428,  428,  428,
-      428,   78,  432,  471,  433,  433,  433,  433,  433,  433,
-      433,  432,  471,  433,  433,  433,  433,  433,  433,  433,
-      124,  471,  453,  454,  455,  453,  453,  453,  453,  437,
-
-      471,  438,  438,  438,  438,  438,  438,  438,  437,  471,
-      438,  438,  438,  438,  438,  438,  438,  437,  471,  438,
-      438,  438,  438,  438,  438,  124,  140,  471,  456,  457,
-      458,  456,  456,  456,  456,  442,  471,  443,  443,  443,
-      443,  443,  443,  443,  442,  471,  443,  443,  443,  443,
-      443,  443,  443,  442,  471,  443,  443,  443,  443,  443,
-      443,  140,   78,  471,  459,  459,  459,  459,  459,  459,
-      459,   78,  471,  447,  447,  447,  447,  447,  447,  447,
-       78,  471,  460,  460,  460,  460,  460,  461,  459,  124,
-      471,  465,  465,  465,  465,  465,  465,  465,  124,  471,
-
-      453,  453,  453,  453,  453,  453,  453,  124,  471,  466,
-      466,  466,  466,  466,  467,  465,  140,  471,  468,  468,
-      468,  468,  468,  468,  468,  140,  471,  456,  456,  456,
-      456,  456,  456,  456,  140,  471,  469,  469,  469,  469,
-      469,  470,  468,  459,  459,  459,  459,  459,  459,  459,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,   79,  465,  465,  465,  465,
-      465,  465,  465,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  125,  468,
-      468,  468,  468,  468,  468,  468,  471,  471,  471,  471,
-
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  141,   78,  471,  471,  471,   78,  471,   78,   82,
-       82,   82,   82,   82,   82,   82,   86,  471,  471,  471,
-       86,  471,   86,   88,  471,  471,  471,   88,  471,   88,
-       90,  471,  471,   90,   90,  471,   90,  107,  471,  471,
-      107,  107,  107,  109,  471,  471,  109,  109,  109,  109,
-      111,  471,  471,  111,  111,  111,  111,  113,  471,  471,
-      113,  113,  113,  124,  471,  471,  471,  124,  471,  124,
-      126,  471,  471,  471,  126,  471,  126,  128,  471,  471,
-      471,  128,  471,  128,  130,  471,  471,  130,  130,  471,
-
-      130,  140,  471,  471,  471,  140,  471,  140,  142,  142,
-      142,  142,  142,  142,  142,  145,  145,  145,  145,  145,
-      145,  145,  149,  471,  471,  471,  149,  471,  149,  151,
-      471,  471,  471,  151,  471,  151,  153,  471,  471,  153,
-      153,  471,  153,   83,   83,   83,   83,   83,   83,   83,
-       91,  471,  471,   91,  174,  174,  471,  174,  174,  174,
-      174,  175,  175,  471,  175,  175,  175,  175,  143,  143,
-      143,  143,  143,  143,  143,  146,  146,  146,  146,  146,
-      146,  146,    9,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471
+       84,   83,  172,  102,   79,   83,   83,   91,   83,   78,
+       93,   91,   91,  173,  134,   79,   79,  158,   83,   83,
+       83,  174,   79,   79,  176,  207,   91,   96,   96,   96,
+       96,   96,   97,   85,   79,  175,   79,  191,  127,   92,
+       93,  144,   94,   94,   94,   94,   94,   94,   94,   95,
+       95,   95,   95,   95,   95,   95,  108,  136,  136,  136,
+      136,  136,  136,  136,   79,   78,  172,  102,  192,   78,
+       78,   78,  108,   79,   78,  208,   78,   78,   98,   98,
+       98,   98,   98,   98,   98,   79,  115,  209,   98,   98,
+
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       79,   98,   78,   78,   78,   78,   78,   78,   78,   78,
+       78,   78,   78,   78,   78,  101,  102,   78,  172,  102,
+       79,   78,   78,  108,   78,  108,   79,  108,  108,  108,
+      108,  144,  200,  207,   78,   78,   78,  207,  108,   79,
+      237,  108,  108,  108,  108,  137,  137,  137,  137,  137,
+      138,  127,  127,  217,  108,  111,   79,  113,  116,   79,
+      117,  117,  117,  117,  117,  117,  117,  116,  115,  118,
+      118,  118,  118,  118,  118,  118,  116,  127,  119,  119,
+      119,  119,  119,  120,  117,  121,  121,  121,  121,  121,
+
+      121,  121,  146,   79,  193,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  238,  121,  124,
+      102,  224,   91,  125,  126,  191,   91,   91,  125,   79,
+      436,  336,   91,   79,  143,  194,   91,   91,  125,  125,
+      262,   91,  160,  160,  160,  160,  160,  160,  160,  172,
+      102,   91,  192,  125,  133,  134,  192,  135,  135,  135,
+      135,  135,  135,  135,  157,  161,  161,  161,  161,  161,
+      162,  180,  181,  182,  180,  180,  180,  180,   79,  127,
+      126,   79,  288,  144,  126,  126,  126,  310,  261,  126,
+      207,  126,  126,  139,  139,  139,  139,  139,  139,  139,
+
+       79,  289,  404,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  127,  139,  126,  126,  126,
+      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
+      142,  102,  126,   79,   79,  358,  126,  126,   91,  126,
+       78,  290,   91,   91,   79,  225,  291,  288,  143,  126,
+      126,  126,  146,  146,  146,  143,  254,   91,  146,  146,
+      108,  146,  126,  108,  108,  108,  289,  108,  108,  144,
+       92,  146,  146,  146,  270,  277,  312,  350,  108,  108,
+       79,  108,  108,  288,  288,   79,  147,  149,  150,  149,
+       78,  329,  111,  149,  149,  113,  149,  311,  127,  144,
+
+       91,   79,  289,  289,   91,  323,  149,  149,  149,   91,
+      116,  304,  117,  117,  117,  117,  117,  117,  318,   91,
+       91,  151,  158,  288,  159,  159,  159,  159,  159,  159,
+      159,  334,   79,  317,   79,   91,  334,  126,  334,   91,
+       91,  127,  289,  309,  357,  324,  144,  143,  303,  299,
+      335,  143,  143,  143,   91,  335,  143,  335,  143,  143,
+      163,  163,  163,  163,  163,  163,  163,  133,  144,  295,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  144,  163,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  166,  102,  143,
+
+      337,  334,  337,  143,  143,   91,  143,  143,  334,   91,
+       91,  263,  365,  287,  283,   79,  143,  143,  143,   78,
+      335,   78,  372,  282,   91,   78,   78,  335,   78,  239,
+      240,  241,  239,  239,  239,  239,  127,  157,   78,   78,
+       78,   83,   84,   83,  276,  275,  144,   83,   83,  210,
+       83,  211,  211,  211,  211,  211,  211,  388,  388,  388,
+       83,   83,   83,  292,  293,  294,  292,  292,  292,  292,
+      350,  269,  383,  383,  383,   85,   86,  358,   86,  388,
+      388,  388,   86,   86,  263,   86,  264,  264,  264,  264,
+      264,  264,  399,  268,   79,   86,   86,   86,   88,  365,
+
+       88,  393,  393,  393,   88,   88,  260,   88,  306,  306,
+      306,  306,  306,  306,  306,  259,   79,   88,   88,   88,
+       90,  253,   78,  127,   90,  252,   78,   78,  248,   90,
+      307,  307,  307,  307,  307,  308,  247,  243,  409,   90,
+       90,   78,  167,  168,  169,  167,  167,  167,  167,  320,
+      320,  320,  320,  320,  320,  320,  321,  321,  321,  321,
+      321,  322,  127,  242,   79,  116,  210,  117,  117,  117,
+      117,  117,  117,  117,  116,  236,  117,  117,  117,  117,
+      117,  117,  117,  126,  372,  126,  398,  398,  398,  126,
+      126,  235,  126,  326,  326,  326,  326,  326,  326,  326,
+
+      231,  230,  126,  126,  126,  128,  193,  128,  144,  144,
+      223,  128,  128,  222,  128,  327,  327,  327,  327,  327,
+      328,  414,  216,  215,  128,  128,  128,  130,  206,  130,
+      383,  383,  383,  130,  130,  205,  130,  338,  339,  340,
+      341,  338,  338,  338,  199,  144,  130,  130,  130,  132,
+      198,  126,   79,  132,  143,  126,  126,  155,  132,  312,
+      313,  313,  313,  313,  313,  313,  153,  150,  132,  132,
+      126,  185,  186,  187,  185,  185,  185,  185,  384,  385,
+      386,  384,  384,  384,  384,  387,  387,  387,  387,  387,
+      387,  387,  150,  127,  143,  144,  143,  431,  189,  188,
+
+      143,  143,  126,  143,  393,  393,  393,  398,  398,  398,
+      441,  131,  129,  143,  143,  143,  146,  146,  146,  190,
+      127,   79,  146,  146,  446,  146,  127,  184,  183,  144,
+      116,  109,  171,  170,  127,  146,  146,  146,  422,  423,
+      424,  422,  422,  422,  422,   78,  115,   89,  144,   87,
+      147,  149,  150,  149,   84,   84,   81,  149,  149,  404,
+      149,  405,  405,  405,  405,  405,  405,   80,   79,  165,
+      149,  149,  149,  454,  455,  456,  454,  454,  454,  454,
+      164,  155,  153,  144,  141,  151,  152,  140,  152,  131,
+      129,  127,  152,  152,  436,  152,  437,  437,  437,  437,
+
+      437,  437,  127,  123,  122,  152,  152,  152,  154,  109,
+      154,  107,  106,  105,  154,  154,  104,  154,  466,  466,
+      466,  466,  466,  466,  466,  103,  100,  154,  154,  154,
+      156,   99,  143,   89,  156,   87,  143,  143,   81,  156,
+      454,  454,  454,  454,  454,  454,  454,   80,   79,  156,
+      156,  143,  195,  196,  197,  195,  195,  195,  195,  467,
+      467,  467,  467,  467,  468,  466,  466,  466,  466,  466,
+      466,  466,  466,  475,  144,  200,  475,  201,  201,  201,
+      201,  201,  201,  201,  200,  475,  202,  202,  202,  202,
+      202,  202,  202,  200,  475,  203,  203,  203,  203,  203,
+
+      204,  201,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  463,  463,  463,  463,  463,  463,  475,  475,
+      475,  475,  475,  475,  466,  466,  466,  466,  466,  466,
+      475,  475,  475,  475,   79,  475,  111,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  469,  469,  469,
+      469,  469,  469,  475,  475,  475,  475,  475,  475,  475,
+      472,  472,  472,  472,  472,  472,  475,  475,  475,  127,
+      475,  113,  210,  475,  211,  211,  211,  211,  211,  211,
+      211,  210,  144,  212,  212,  212,  212,  212,  212,  212,
+      210,  475,  213,  213,  213,  213,  213,  214,  211,  217,
+
+      475,  218,  218,  218,  218,  218,  218,  218,  217,  475,
+      219,  219,  219,  219,  219,  219,  219,  217,  475,  220,
+      220,  220,  220,  220,  221,  218,  225,  475,  226,  226,
+      226,  226,  226,  226,  226,  225,  475,  227,  227,  227,
+      227,  227,  227,  227,  225,  475,  228,  228,  228,  228,
+      228,  229,  226,  232,  233,  234,  232,  232,  232,  232,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,   79,  200,  475,  201,  201,
+      201,  201,  201,  201,  201,  200,  475,  201,  201,  201,
+      201,  201,  201,  201,  200,  475,  201,  201,  201,  201,
+
+      201,  201,   78,  210,  475,  211,  211,  211,  211,  211,
+      211,  211,  210,  475,  211,  211,  211,  211,  211,  211,
+      211,  126,  475,  244,  245,  246,  244,  244,  244,  244,
+      217,  475,  218,  218,  218,  218,  218,  218,  218,  217,
+      475,  218,  218,  218,  218,  218,  218,  218,  217,  475,
+      218,  218,  218,  218,  218,  218,  126,  143,  475,  249,
+      250,  251,  249,  249,  249,  249,  225,  475,  226,  226,
+      226,  226,  226,  226,  226,  225,  475,  226,  226,  226,
+      226,  226,  226,  226,  225,  475,  226,  226,  226,  226,
+      226,  226,  143,  254,  475,  255,  255,  255,  255,  255,
+
+      255,  255,  254,  475,  256,  256,  256,  256,  256,  256,
+      256,  254,  475,  257,  257,  257,  257,  257,  258,  255,
+      263,  475,  264,  264,  264,  264,  264,  264,  264,  263,
+      475,  265,  265,  265,  265,  265,  265,  265,  263,  475,
+      266,  266,  266,  266,  266,  267,  264,  270,  475,  271,
+      271,  271,  271,  271,  271,  271,  270,  475,  272,  272,
+      272,  272,  272,  272,  272,  270,  475,  273,  273,  273,
+      273,  273,  274,  271,  277,  475,  278,  278,  278,  278,
+      278,  278,  278,  277,  475,  279,  279,  279,  279,  279,
+      279,  279,  277,  475,  280,  280,  280,  280,  280,  281,
+
+      278,  284,  285,  286,  284,  284,  284,  284,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,   79,  254,  475,  255,  255,  255,  255,
+      255,  255,  255,  254,  475,  255,  255,  255,  255,  255,
+      255,  255,  254,  475,  255,  255,  255,  255,  255,  255,
+       78,  263,  475,  264,  264,  264,  264,  264,  264,  264,
+      263,  475,  264,  264,  264,  264,  264,  264,  264,  126,
+      475,  296,  297,  298,  296,  296,  296,  296,  270,  475,
+      271,  271,  271,  271,  271,  271,  271,  270,  475,  271,
+      271,  271,  271,  271,  271,  271,  270,  475,  271,  271,
+
+      271,  271,  271,  271,  126,  143,  475,  300,  301,  302,
+      300,  300,  300,  300,  277,  475,  278,  278,  278,  278,
+      278,  278,  278,  277,  475,  278,  278,  278,  278,  278,
+      278,  278,  277,  475,  278,  278,  278,  278,  278,  278,
+      143,  304,  305,  305,  305,  305,  305,  305,  305,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,   79,  312,  313,  313,  313,  313,
+      313,  313,  313,  312,  314,  314,  314,  314,  314,  314,
+      314,  312,  315,  315,  315,  315,  315,  316,  313,  126,
+      318,  319,  319,  319,  319,  319,  319,  319,  143,  324,
+
+      325,  325,  325,  325,  325,  325,  325,  330,  331,  332,
+      333,  330,  330,  330,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,   79,
+      312,  313,  313,  313,  313,  313,  313,  313,  312,  313,
+      313,  313,  313,  313,  313,  313,  126,  342,  343,  344,
+      345,  342,  342,  342,  143,  346,  347,  348,  349,  346,
+      346,  346,  350,  475,  351,  351,  351,  351,  351,  351,
+      351,  350,  475,  352,  352,  352,  352,  352,  352,  352,
+      350,  475,  353,  353,  353,  353,  353,  354,  355,  350,
+      475,  356,  356,  356,  351,  351,  351,  351,  358,  475,
+
+      359,  359,  359,  359,  359,  359,  359,  358,  475,  360,
+      360,  360,  360,  360,  360,  360,  358,  475,  361,  361,
+      361,  361,  361,  362,  363,  358,  475,  364,  364,  364,
+      359,  359,  359,  359,  365,  475,  366,  366,  366,  366,
+      366,  366,  366,  365,  475,  367,  367,  367,  367,  367,
+      367,  367,  365,  475,  368,  368,  368,  368,  368,  369,
+      370,  365,  475,  371,  371,  371,  366,  366,  366,  366,
+      372,  475,  373,  373,  373,  373,  373,  373,  373,  372,
+      475,  374,  374,  374,  374,  374,  374,  374,  372,  475,
+      375,  375,  375,  375,  375,  376,  377,  372,  475,  378,
+
+      378,  378,  373,  373,  373,  373,  379,  380,  381,  379,
+      379,  379,  379,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,   79,  350,
+      475,  355,  355,  355,  355,  355,  355,  355,  350,  475,
+      355,  355,  355,  355,  355,  355,  355,  350,  475,  355,
+      355,  355,  355,  355,  355,  382,  350,  475,  382,  382,
+      382,  382,  382,  382,  382,  358,  475,  363,  363,  363,
+      363,  363,  363,  363,  358,  475,  363,  363,  363,  363,
+      363,  363,  363,  358,  475,  363,  363,  363,  363,  363,
+      363,  387,  358,  475,  387,  387,  387,  387,  387,  387,
+
+      387,  126,  475,  389,  390,  391,  389,  389,  389,  389,
+      365,  475,  370,  370,  370,  370,  370,  370,  370,  365,
+      475,  370,  370,  370,  370,  370,  370,  370,  365,  475,
+      370,  370,  370,  370,  370,  370,  392,  365,  475,  392,
+      392,  392,  392,  392,  392,  392,  143,  475,  394,  395,
+      396,  394,  394,  394,  394,  372,  475,  377,  377,  377,
+      377,  377,  377,  377,  372,  475,  377,  377,  377,  377,
+      377,  377,  377,  372,  475,  377,  377,  377,  377,  377,
+      377,  397,  372,  475,  397,  397,  397,  397,  397,  397,
+      397,  399,  475,  400,  400,  400,  400,  400,  400,  400,
+
+      399,  475,  401,  401,  401,  401,  401,  401,  401,  399,
+      475,  402,  402,  402,  402,  402,  403,  400,   78,  475,
+      382,  382,  382,  382,  382,  382,  382,  404,  475,  405,
+      405,  405,  405,  405,  405,  405,  404,  475,  406,  406,
+      406,  406,  406,  406,  406,  404,  475,  407,  407,  407,
+      407,  407,  408,  405,  409,  475,  410,  410,  410,  410,
+      410,  410,  410,  409,  475,  411,  411,  411,  411,  411,
+      411,  411,  409,  475,  412,  412,  412,  412,  412,  413,
+      410,  126,  475,  392,  392,  392,  392,  392,  392,  392,
+      414,  475,  415,  415,  415,  415,  415,  415,  415,  414,
+
+      475,  416,  416,  416,  416,  416,  416,  416,  414,  475,
+      417,  417,  417,  417,  417,  418,  415,  143,  475,  397,
+      397,  397,  397,  397,  397,  397,  419,  420,  421,  419,
+      419,  419,  419,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,   79,  399,
+      475,  400,  400,  400,  400,  400,  400,  400,  399,  475,
+      400,  400,  400,  400,  400,  400,  400,  399,  475,  400,
+      400,  400,  400,  400,  400,   78,  404,  475,  405,  405,
+      405,  405,  405,  405,  405,  404,  475,  405,  405,  405,
+      405,  405,  405,  405,  425,  426,  427,  425,  425,  425,
+
+      425,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  127,  409,  475,  410,
+      410,  410,  410,  410,  410,  410,  409,  475,  410,  410,
+      410,  410,  410,  410,  410,  409,  475,  410,  410,  410,
+      410,  410,  410,  126,  428,  429,  430,  428,  428,  428,
+      428,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  144,  414,  475,  415,
+      415,  415,  415,  415,  415,  415,  414,  475,  415,  415,
+      415,  415,  415,  415,  415,  414,  475,  415,  415,  415,
+      415,  415,  415,  143,  431,  475,  432,  432,  432,  432,
+
+      432,  432,  432,  431,  475,  433,  433,  433,  433,  433,
+      433,  433,  431,  475,  434,  434,  434,  434,  434,  435,
+      432,  436,  475,  437,  437,  437,  437,  437,  437,  437,
+      436,  475,  438,  438,  438,  438,  438,  438,  438,  436,
+      475,  439,  439,  439,  439,  439,  440,  437,  441,  475,
+      442,  442,  442,  442,  442,  442,  442,  441,  475,  443,
+      443,  443,  443,  443,  443,  443,  441,  475,  444,  444,
+      444,  444,  444,  445,  442,  446,  475,  447,  447,  447,
+      447,  447,  447,  447,  446,  475,  448,  448,  448,  448,
+      448,  448,  448,  446,  475,  449,  449,  449,  449,  449,
+
+      450,  447,   78,  475,  451,  452,  453,  451,  451,  451,
+      451,  431,  475,  432,  432,  432,  432,  432,  432,  432,
+      431,  475,  432,  432,  432,  432,  432,  432,  432,  431,
+      475,  432,  432,  432,  432,  432,  432,   78,  436,  475,
+      437,  437,  437,  437,  437,  437,  437,  436,  475,  437,
+      437,  437,  437,  437,  437,  437,  126,  475,  457,  458,
+      459,  457,  457,  457,  457,  441,  475,  442,  442,  442,
+      442,  442,  442,  442,  441,  475,  442,  442,  442,  442,
+      442,  442,  442,  441,  475,  442,  442,  442,  442,  442,
+      442,  126,  143,  475,  460,  461,  462,  460,  460,  460,
+
+      460,  446,  475,  447,  447,  447,  447,  447,  447,  447,
+      446,  475,  447,  447,  447,  447,  447,  447,  447,  446,
+      475,  447,  447,  447,  447,  447,  447,  143,   78,  475,
+      463,  463,  463,  463,  463,  463,  463,   78,  475,  451,
+      451,  451,  451,  451,  451,  451,   78,  475,  464,  464,
+      464,  464,  464,  465,  463,  126,  475,  469,  469,  469,
+      469,  469,  469,  469,  126,  475,  457,  457,  457,  457,
+      457,  457,  457,  126,  475,  470,  470,  470,  470,  470,
+      471,  469,  143,  475,  472,  472,  472,  472,  472,  472,
+      472,  143,  475,  460,  460,  460,  460,  460,  460,  460,
+
+      143,  475,  473,  473,  473,  473,  473,  474,  472,  463,
+      463,  463,  463,  463,  463,  463,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,   79,  469,  469,  469,  469,  469,  469,  469,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  127,  472,  472,  472,  472,  472,
+      472,  472,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  144,   78,  475,
+      475,  475,   78,  475,   78,   82,   82,   82,   82,   82,
+       82,   82,   86,  475,  475,  475,   86,  475,   86,   88,
+
+      475,  475,  475,   88,  475,   88,   90,  475,  475,   90,
+       90,  475,   90,  108,  475,  475,  108,  108,  108,  110,
+      475,  475,  110,  110,  110,  110,  112,  475,  475,  112,
+      112,  112,  112,  114,  475,  475,  114,  114,  114,  114,
+      126,  475,  475,  475,  126,  475,  126,  128,  475,  475,
+      475,  128,  475,  128,  130,  475,  475,  475,  130,  475,
+      130,  132,  475,  475,  132,  132,  475,  132,  143,  475,
+      475,  475,  143,  475,  143,  145,  145,  145,  145,  145,
+      145,  145,  148,  148,  148,  148,  148,  148,  148,  152,
+      475,  475,  475,  152,  475,  152,  154,  475,  475,  475,
+
+      154,  475,  154,  156,  475,  475,  156,  156,  475,  156,
+       83,   83,   83,   83,   83,   83,   83,   91,  475,  475,
+       91,  475,  475,   91,  178,  178,  475,  178,  178,  178,
+      178,  179,  179,  475,  179,  179,  179,  179,  146,  146,
+      146,  146,  146,  146,  146,  149,  149,  149,  149,  149,
+      149,  149,    9,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+
+      475,  475,  475
     } ;
 
-static yyconst short int yy_chk[3034] =
+static yyconst short int yy_chk[3104] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        2,    2,    2,  106,  122,  122,    2,  106,    2,    3,
+        2,    2,    2,  107,  124,  124,    2,  107,    2,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
@@ -864,317 +872,325 @@ static yyconst short int yy_chk[3034] =
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
 
         7,    7,    7,    7,    7,    7,    7,    7,    7,   14,
-       14,   14,  100,  100,  102,   14,   14,   20,   14,   20,
-       93,   20,   20,  102,  132,  105,  468,  103,   14,   14,
-       14,   41,  103,  104,  105,  113,   20,   23,   23,   23,
-       23,   23,   23,   14,   93,  104,  100,   41,  132,   20,
-       21,  113,   21,   21,   21,   21,   21,   21,   21,   22,
-       22,   22,   22,   22,   22,   22,   58,   58,   58,   58,
-       58,   58,   58,  465,   21,   26,  168,  168,  459,   26,
-       26,   26,  169,  433,   26,  169,   26,   26,   26,   26,
-       26,   26,   26,   26,   26,  139,  139,  143,   26,   26,
+       14,   14,  101,  101,  103,   14,   14,   20,   14,   20,
+       94,   20,   20,  103,  135,  106,  104,  159,   14,   14,
+       14,  104,  173,  105,  106,  173,   20,   23,   23,   23,
+       23,   23,   23,   14,   94,  105,  101,  146,  135,   20,
+       21,  159,   21,   21,   21,   21,   21,   21,   21,   22,
+       22,   22,   22,   22,   22,   22,   41,   58,   58,   58,
+       58,   58,   58,   58,   21,   26,  172,  172,  146,   26,
+       26,   26,   41,  174,   26,  174,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,  176,   41,  176,   26,   26,
 
        26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
        26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
-       26,   26,   26,   26,   26,   29,   29,   29,  143,  139,
-      188,   29,   29,   38,   29,   39,  171,   38,   38,   39,
-       39,  170,  155,  170,   29,   29,   29,  401,  172,  171,
-      172,   38,   38,   39,   39,   59,   59,   59,   59,   59,
-       59,  188,  234,  197,  204,   38,  155,   39,   42,  234,
-       42,   42,   42,   42,   42,   42,   42,   43,  204,   43,
-       43,   43,   43,   43,   43,   43,   44,  197,   44,   44,
+       26,   26,   26,   26,   26,   29,   29,   29,  142,  142,
+      175,   29,   29,   38,   29,   39,  177,   38,   38,   39,
+       39,  472,  201,  175,   29,   29,   29,  177,  114,  207,
+      207,   38,   38,   39,   39,   59,   59,   59,   59,   59,
+       59,  469,  142,  218,  114,   38,  201,   39,   42,  463,
+       42,   42,   42,   42,   42,   42,   42,   43,  114,   43,
+       43,   43,   43,   43,   43,   43,   44,  218,   44,   44,
        44,   44,   44,   44,   44,   47,   47,   47,   47,   47,
 
-       47,   47,  144,  355,  144,   47,   47,   47,   47,   47,
-       47,   47,   47,   47,   47,   47,   47,  286,   47,   50,
-       50,  205,   56,  286,   56,  220,   56,   56,   50,  173,
-      203,  203,   70,  205,   70,  144,   70,   70,   50,   50,
-      173,   56,   72,   72,   72,   72,   72,   72,   72,  162,
-      162,   70,  353,   50,   56,   57,  220,   57,   57,   57,
+       47,   47,  147,  208,  147,   47,   47,   47,   47,   47,
+       47,   47,   47,   47,   47,   47,   47,  208,   47,   50,
+       50,  192,   56,   50,   56,  224,   56,   56,   50,  310,
+      437,  310,   70,  238,   70,  147,   70,   70,   50,   50,
+      238,   56,   72,   72,   72,   72,   72,   72,   72,  166,
+      166,   70,  192,   50,   56,   57,  224,   57,   57,   57,
        57,   57,   57,   57,   70,   73,   73,   73,   73,   73,
-       73,  114,  114,  114,  114,  114,  114,  114,  214,   57,
-       60,  324,  256,  162,   60,   60,   60,  318,  233,   60,
-      309,   60,   60,   60,   60,   60,   60,   60,   60,   60,
+       73,  116,  116,  116,  116,  116,  116,  116,  209,   57,
+       60,  290,  260,  166,   60,   60,   60,  290,  237,   60,
+      209,   60,   60,   60,   60,   60,   60,   60,   60,   60,
 
-      233,  256,  214,   60,   60,   60,   60,   60,   60,   60,
+      237,  260,  405,   60,   60,   60,   60,   60,   60,   60,
        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       63,   63,   63,  258,  257,  304,   63,   63,   90,   63,
-       90,  257,   90,   90,  299,  222,  258,  265,  295,   63,
-       63,   63,   66,   66,   66,   66,  251,   90,   66,   66,
-      109,   66,  301,  111,  109,  109,  265,  111,  111,  222,
-       90,   66,   66,   66,  267,  306,  291,  306,  109,  109,
-      251,  111,  111,  283,  278,  301,   66,   67,   67,   67,
-      272,  274,  109,   67,   67,  111,   67,  118,  267,  118,
-
-      118,  118,  118,  118,  118,  271,   67,   67,   67,  272,
-      264,  287,  130,  279,  130,  274,  130,  130,  307,  284,
-      307,   67,   71,  287,   71,   71,   71,   71,   71,   71,
-       71,  130,  279,  307,  315,  153,  305,  153,  284,  153,
-      153,  384,  384,  384,  130,  260,   71,   74,  255,  313,
-      319,   74,   74,   74,  153,  305,   74,  315,   74,   74,
-       74,   74,   74,   74,   74,   74,   74,  153,  313,  319,
+       63,   63,   63,  262,  261,  359,   63,   63,   90,   63,
+       90,  261,   90,   90,  357,  226,  262,  269,  328,   63,
+       63,   63,   66,   66,   66,   66,  255,   90,   66,   66,
+      110,   66,  322,  112,  110,  110,  269,  112,  112,  226,
+       90,   66,   66,   66,  271,  278,  313,  351,  110,  110,
+      255,  112,  112,  276,  283,  291,   66,   67,   67,   67,
+      308,  303,  110,   67,   67,  112,   67,  291,  271,  278,
+
+      115,  351,  276,  283,  115,  299,   67,   67,   67,  115,
+      120,  305,  120,  120,  120,  120,  120,  120,  319,  115,
+      115,   67,   71,  288,   71,   71,   71,   71,   71,   71,
+       71,  309,  336,  295,  305,  132,  317,  132,  323,  132,
+      132,  319,  288,  287,  336,  325,   71,   74,  282,  275,
+      309,   74,   74,   74,  132,  317,   74,  323,   74,   74,
+       74,   74,   74,   74,   74,   74,   74,  132,  325,  268,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   77,   77,   77,
 
-      321,  325,  332,   77,   77,  330,   77,  206,  206,  206,
-      206,  206,  206,  206,  332,  249,   77,   77,   77,   79,
-      325,   79,  347,  321,  330,   79,   79,  210,   79,  210,
-      210,  210,  210,  210,  210,  362,  248,  244,   79,   79,
-       79,   82,   82,   82,  243,  239,  347,   82,   82,  369,
-       82,  259,  259,  259,  259,  259,  259,  259,  238,  362,
-       82,   82,   82,  263,  232,  263,  263,  263,  263,  263,
-      263,  231,  227,  369,  226,   82,   87,  352,   87,  352,
-      352,  352,   87,   87,  219,   87,  281,  281,  281,  281,
-      281,  281,  281,  218,  212,   87,   87,   87,   89,  211,
-
-       89,  352,  207,  202,   89,   89,  201,   89,  282,  282,
-      282,  282,  282,  282,  195,  194,  396,   89,   89,   89,
-       92,   92,   92,   92,   92,   92,   92,  293,  293,  293,
-      293,  293,  293,  293,  294,  294,  294,  294,  294,  294,
-      396,  190,   92,  116,  186,  116,  116,  116,  116,  116,
-      116,  116,  117,  185,  117,  117,  117,  117,  117,  117,
-      117,  125,  360,  125,  360,  360,  360,  125,  125,  184,
-      125,  297,  297,  297,  297,  297,  297,  297,  180,  179,
-      125,  125,  125,  127,  367,  127,  367,  367,  367,  127,
-      127,  167,  127,  298,  298,  298,  298,  298,  298,  406,
-
-      166,  161,  127,  127,  127,  129,  160,  129,  367,  158,
-      151,  129,  129,  149,  129,  308,  308,  308,  308,  308,
-      308,  308,  148,  406,  129,  129,  129,  131,  131,  131,
-      131,  131,  131,  131,  312,  312,  312,  312,  312,  312,
-      312,  354,  354,  354,  354,  354,  354,  354,  146,  131,
-      141,  140,  141,  411,  138,  137,  141,  141,  374,  141,
-      374,  374,  374,  379,  379,  379,  389,  389,  389,  141,
-      141,  141,  142,  142,  142,  142,  135,  411,  142,  142,
-      428,  142,  374,  128,  126,  379,  438,  443,  389,  124,
-      121,  142,  142,  142,  383,  383,  383,  383,  383,  383,
-
-      383,  394,  394,  394,  428,  120,  142,  145,  145,  145,
-      438,  443,  115,  145,  145,  404,  145,  404,  404,  404,
-      404,  404,  404,  394,  108,   99,  145,  145,  145,  400,
-      400,  400,  400,  400,  400,  400,   98,   96,   88,   86,
-       85,  145,  150,   83,  150,   81,   80,   78,  150,  150,
-       76,  150,  432,  432,  432,  432,  432,  432,  432,   75,
-       69,  150,  150,  150,  152,   68,  152,   64,   62,   61,
-      152,  152,  436,  152,  436,  436,  436,  436,  436,  436,
-       55,   53,   52,  152,  152,  152,  154,  154,  154,  154,
-      154,  154,  154,  450,  450,  450,  450,  450,  450,  450,
-
-      451,  451,  451,  451,  451,  451,  451,   51,  154,  163,
-       49,  163,  163,  163,  163,  163,  163,  163,  164,   48,
-      164,  164,  164,  164,  164,  164,  164,  165,   37,  165,
-      165,  165,  165,  165,  165,  165,  174,   34,  174,   33,
-       32,   31,  174,  174,   30,  174,  452,  452,  452,  452,
-      452,  452,  452,   28,   27,  174,  174,  174,   18,  461,
-      461,  461,  461,  461,  461,   15,   13,   11,   10,    9,
-      174,  175,    0,  175,    0,    0,    0,  175,  175,    0,
-      175,  461,  463,  463,  463,  463,  463,  463,  463,    0,
-      175,  175,  175,  464,  464,  464,  464,  464,  464,    0,
-
-        0,    0,    0,    0,    0,  175,  176,    0,  176,  176,
-      176,  176,  176,  176,  176,  177,    0,  177,  177,  177,
-      177,  177,  177,  177,  178,    0,  178,  178,  178,  178,
-      178,  178,  178,  181,    0,  181,  181,  181,  181,  181,
-      181,  181,  182,    0,  182,  182,  182,  182,  182,  182,
-      182,  183,    0,  183,  183,  183,  183,  183,  183,  183,
-      191,    0,  191,  191,  191,  191,  191,  191,  191,  192,
-        0,  192,  192,  192,  192,  192,  192,  192,  193,    0,
-      193,  193,  193,  193,  193,  193,  193,  196,  196,  196,
-      196,  196,  196,  196,    0,    0,    0,    0,  467,  467,
-
-      467,  467,  467,  467,    0,    0,    0,    0,    0,  196,
-      198,    0,  198,  198,  198,  198,  198,  198,  198,  199,
-      467,  199,  199,  199,  199,  199,  199,  199,  200,    0,
-      200,  200,  200,  200,  200,  200,  200,  208,    0,  208,
-      208,  208,  208,  208,  208,  208,  209,    0,  209,  209,
-      209,  209,  209,  209,  209,  213,    0,  213,  213,  213,
-      213,  213,  213,  213,  215,    0,  215,  215,  215,  215,
-      215,  215,  215,  216,    0,  216,  216,  216,  216,  216,
-      216,  216,  217,    0,  217,  217,  217,  217,  217,  217,
-      217,  221,    0,  221,  221,  221,  221,  221,  221,  221,
-
-      223,    0,  223,  223,  223,  223,  223,  223,  223,  224,
-        0,  224,  224,  224,  224,  224,  224,  224,  225,    0,
-      225,  225,  225,  225,  225,  225,  225,  228,    0,  228,
-      228,  228,  228,  228,  228,  228,  229,    0,  229,  229,
-      229,  229,  229,  229,  229,  230,    0,  230,  230,  230,
-      230,  230,  230,  230,  235,    0,  235,  235,  235,  235,
-      235,  235,  235,  236,    0,  236,  236,  236,  236,  236,
-      236,  236,  237,    0,  237,  237,  237,  237,  237,  237,
-      237,  240,    0,  240,  240,  240,  240,  240,  240,  240,
-      241,    0,  241,  241,  241,  241,  241,  241,  241,  242,
-
-        0,  242,  242,  242,  242,  242,  242,  242,  245,    0,
-      245,  245,  245,  245,  245,  245,  245,  246,    0,  246,
-      246,  246,  246,  246,  246,  246,  247,    0,  247,  247,
-      247,  247,  247,  247,  247,  250,  250,  250,  250,  250,
-      250,  250,    0,    0,    0,    0,  470,  470,  470,  470,
-      470,  470,    0,    0,    0,    0,    0,  250,  252,    0,
-      252,  252,  252,  252,  252,  252,  252,  253,  470,  253,
-      253,  253,  253,  253,  253,  253,  254,    0,  254,  254,
-      254,  254,  254,  254,  254,  261,    0,  261,  261,  261,
-      261,  261,  261,  261,  262,    0,  262,  262,  262,  262,
-
-      262,  262,  262,  266,    0,  266,  266,  266,  266,  266,
-      266,  266,  268,    0,  268,  268,  268,  268,  268,  268,
-      268,  269,    0,  269,  269,  269,  269,  269,  269,  269,
-      270,    0,  270,  270,  270,  270,  270,  270,  270,  273,
-        0,  273,  273,  273,  273,  273,  273,  273,  275,    0,
-      275,  275,  275,  275,  275,  275,  275,  276,    0,  276,
-      276,  276,  276,  276,  276,  276,  277,    0,  277,  277,
-      277,  277,  277,  277,  277,  280,  280,  280,  280,  280,
-      280,  280,  280,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  280,  288,
-
-      288,  288,  288,  288,  288,  288,  288,  289,  289,  289,
-      289,  289,  289,  289,  289,  290,  290,  290,  290,  290,
-      290,  290,  290,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  296,  296,  296,  296,  296,  296,  296,  296,
-      296,  300,  300,  300,  300,  300,  300,  300,    0,    0,
+      311,  329,  311,   77,   77,  156,   77,  156,  334,  156,
+      156,  264,  366,  259,  253,  311,   77,   77,   77,   79,
+      329,   79,  373,  252,  156,   79,   79,  334,   79,  210,
+      210,  210,  210,  210,  210,  210,  366,  156,   79,   79,
+       79,   82,   82,   82,  248,  247,  373,   82,   82,  214,
+       82,  214,  214,  214,  214,  214,  214,  388,  388,  388,
+       82,   82,   82,  263,  263,  263,  263,  263,  263,  263,
+      356,  243,  356,  356,  356,   82,   87,  364,   87,  364,
+      364,  364,   87,   87,  267,   87,  267,  267,  267,  267,
+      267,  267,  400,  242,  356,   87,   87,   87,   89,  371,
+
+       89,  371,  371,  371,   89,   89,  236,   89,  285,  285,
+      285,  285,  285,  285,  285,  235,  400,   89,   89,   89,
+       92,  231,   92,  371,   92,  230,   92,   92,  223,   92,
+      286,  286,  286,  286,  286,  286,  222,  216,  410,   92,
+       92,   92,   93,   93,   93,   93,   93,   93,   93,  297,
+      297,  297,  297,  297,  297,  297,  298,  298,  298,  298,
+      298,  298,  410,  215,   93,  118,  211,  118,  118,  118,
+      118,  118,  118,  118,  119,  206,  119,  119,  119,  119,
+      119,  119,  119,  127,  378,  127,  378,  378,  378,  127,
+      127,  205,  127,  301,  301,  301,  301,  301,  301,  301,
+
+      199,  198,  127,  127,  127,  129,  194,  129,  378,  190,
+      189,  129,  129,  188,  129,  302,  302,  302,  302,  302,
+      302,  415,  184,  183,  129,  129,  129,  131,  171,  131,
+      383,  383,  383,  131,  131,  170,  131,  312,  312,  312,
+      312,  312,  312,  312,  165,  415,  131,  131,  131,  133,
+      164,  133,  383,  133,  162,  133,  133,  154,  133,  316,
+      316,  316,  316,  316,  316,  316,  152,  151,  133,  133,
+      133,  134,  134,  134,  134,  134,  134,  134,  358,  358,
+      358,  358,  358,  358,  358,  387,  387,  387,  387,  387,
+      387,  387,  149,  134,  144,  143,  144,  432,  141,  140,
+
+      144,  144,  138,  144,  393,  393,  393,  398,  398,  398,
+      442,  130,  128,  144,  144,  144,  145,  145,  145,  145,
+      126,  432,  145,  145,  447,  145,  393,  123,  122,  398,
+      117,  109,  100,   99,  442,  145,  145,  145,  404,  404,
+      404,  404,  404,  404,  404,   97,   91,   88,  447,   86,
+      145,  148,  148,  148,   85,   83,   81,  148,  148,  408,
+      148,  408,  408,  408,  408,  408,  408,   80,   78,   76,
+      148,  148,  148,  436,  436,  436,  436,  436,  436,  436,
+       75,   69,   68,   64,   62,  148,  153,   61,  153,   55,
+       53,   52,  153,  153,  440,  153,  440,  440,  440,  440,
+
+      440,  440,   51,   49,   48,  153,  153,  153,  155,   37,
+      155,   34,   33,   32,  155,  155,   31,  155,  454,  454,
+      454,  454,  454,  454,  454,   30,   28,  155,  155,  155,
+      157,   27,  157,   18,  157,   15,  157,  157,   13,  157,
+      455,  455,  455,  455,  455,  455,  455,   11,   10,  157,
+      157,  157,  158,  158,  158,  158,  158,  158,  158,  456,
+      456,  456,  456,  456,  456,  456,  467,  467,  467,  467,
+      467,  467,  467,    9,  158,  167,    0,  167,  167,  167,
+      167,  167,  167,  167,  168,    0,  168,  168,  168,  168,
+      168,  168,  168,  169,    0,  169,  169,  169,  169,  169,
+
+      169,  169,  178,    0,  178,    0,    0,    0,  178,  178,
+        0,  178,  465,  465,  465,  465,  465,  465,    0,    0,
+        0,  178,  178,  178,  468,  468,  468,  468,  468,  468,
+        0,    0,    0,    0,  465,    0,  178,  179,    0,  179,
+        0,    0,    0,  179,  179,    0,  179,  471,  471,  471,
+      471,  471,  471,    0,    0,    0,  179,  179,  179,    0,
+      474,  474,  474,  474,  474,  474,    0,    0,    0,  471,
+        0,  179,  180,    0,  180,  180,  180,  180,  180,  180,
+      180,  181,  474,  181,  181,  181,  181,  181,  181,  181,
+      182,    0,  182,  182,  182,  182,  182,  182,  182,  185,
+
+        0,  185,  185,  185,  185,  185,  185,  185,  186,    0,
+      186,  186,  186,  186,  186,  186,  186,  187,    0,  187,
+      187,  187,  187,  187,  187,  187,  195,    0,  195,  195,
+      195,  195,  195,  195,  195,  196,    0,  196,  196,  196,
+      196,  196,  196,  196,  197,    0,  197,  197,  197,  197,
+      197,  197,  197,  200,  200,  200,  200,  200,  200,  200,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  300,  310,  310,  310,  310,  310,  310,
-      310,  310,  311,  311,  311,  311,  311,  311,  311,  311,
-      314,  314,  314,  314,  314,  314,  314,  314,  320,  320,
-      320,  320,  320,  320,  320,  320,  326,    0,  326,  326,
-
-      326,  326,  326,  326,  326,  327,    0,  327,  327,  327,
-      327,  327,  327,  327,  328,    0,  328,  328,  328,  328,
-      328,  328,  328,  329,    0,  329,  329,  329,  329,  329,
-      329,  329,  334,    0,  334,  334,  334,  334,  334,  334,
-      334,  335,    0,  335,  335,  335,  335,  335,  335,  335,
-      336,    0,  336,  336,  336,  336,  336,  336,  336,  337,
-        0,  337,  337,  337,  337,  337,  337,  337,  338,    0,
+        0,    0,    0,    0,    0,  200,  202,    0,  202,  202,
+      202,  202,  202,  202,  202,  203,    0,  203,  203,  203,
+      203,  203,  203,  203,  204,    0,  204,  204,  204,  204,
+
+      204,  204,  204,  212,    0,  212,  212,  212,  212,  212,
+      212,  212,  213,    0,  213,  213,  213,  213,  213,  213,
+      213,  217,    0,  217,  217,  217,  217,  217,  217,  217,
+      219,    0,  219,  219,  219,  219,  219,  219,  219,  220,
+        0,  220,  220,  220,  220,  220,  220,  220,  221,    0,
+      221,  221,  221,  221,  221,  221,  221,  225,    0,  225,
+      225,  225,  225,  225,  225,  225,  227,    0,  227,  227,
+      227,  227,  227,  227,  227,  228,    0,  228,  228,  228,
+      228,  228,  228,  228,  229,    0,  229,  229,  229,  229,
+      229,  229,  229,  232,    0,  232,  232,  232,  232,  232,
+
+      232,  232,  233,    0,  233,  233,  233,  233,  233,  233,
+      233,  234,    0,  234,  234,  234,  234,  234,  234,  234,
+      239,    0,  239,  239,  239,  239,  239,  239,  239,  240,
+        0,  240,  240,  240,  240,  240,  240,  240,  241,    0,
+      241,  241,  241,  241,  241,  241,  241,  244,    0,  244,
+      244,  244,  244,  244,  244,  244,  245,    0,  245,  245,
+      245,  245,  245,  245,  245,  246,    0,  246,  246,  246,
+      246,  246,  246,  246,  249,    0,  249,  249,  249,  249,
+      249,  249,  249,  250,    0,  250,  250,  250,  250,  250,
+      250,  250,  251,    0,  251,  251,  251,  251,  251,  251,
+
+      251,  254,  254,  254,  254,  254,  254,  254,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  254,  256,    0,  256,  256,  256,  256,
+      256,  256,  256,  257,    0,  257,  257,  257,  257,  257,
+      257,  257,  258,    0,  258,  258,  258,  258,  258,  258,
+      258,  265,    0,  265,  265,  265,  265,  265,  265,  265,
+      266,    0,  266,  266,  266,  266,  266,  266,  266,  270,
+        0,  270,  270,  270,  270,  270,  270,  270,  272,    0,
+      272,  272,  272,  272,  272,  272,  272,  273,    0,  273,
+      273,  273,  273,  273,  273,  273,  274,    0,  274,  274,
+
+      274,  274,  274,  274,  274,  277,    0,  277,  277,  277,
+      277,  277,  277,  277,  279,    0,  279,  279,  279,  279,
+      279,  279,  279,  280,    0,  280,  280,  280,  280,  280,
+      280,  280,  281,    0,  281,  281,  281,  281,  281,  281,
+      281,  284,  284,  284,  284,  284,  284,  284,  284,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  284,  292,  292,  292,  292,  292,
+      292,  292,  292,  293,  293,  293,  293,  293,  293,  293,
+      293,  294,  294,  294,  294,  294,  294,  294,  294,  296,
+      296,  296,  296,  296,  296,  296,  296,  296,  300,  300,
+
+      300,  300,  300,  300,  300,  300,  300,  304,  304,  304,
+      304,  304,  304,  304,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  304,
+      314,  314,  314,  314,  314,  314,  314,  314,  315,  315,
+      315,  315,  315,  315,  315,  315,  318,  318,  318,  318,
+      318,  318,  318,  318,  324,  324,  324,  324,  324,  324,
+      324,  324,  330,    0,  330,  330,  330,  330,  330,  330,
+      330,  331,    0,  331,  331,  331,  331,  331,  331,  331,
+      332,    0,  332,  332,  332,  332,  332,  332,  332,  333,
+        0,  333,  333,  333,  333,  333,  333,  333,  338,    0,
+
       338,  338,  338,  338,  338,  338,  338,  339,    0,  339,
       339,  339,  339,  339,  339,  339,  340,    0,  340,  340,
       340,  340,  340,  340,  340,  341,    0,  341,  341,  341,
-
       341,  341,  341,  341,  342,    0,  342,  342,  342,  342,
       342,  342,  342,  343,    0,  343,  343,  343,  343,  343,
       343,  343,  344,    0,  344,  344,  344,  344,  344,  344,
       344,  345,    0,  345,  345,  345,  345,  345,  345,  345,
-      346,  346,  346,  346,  346,  346,  346,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  346,  348,    0,  348,  348,  348,  348,  348,
-      348,  348,  349,    0,  349,  349,  349,  349,  349,  349,
-      349,  350,    0,  350,  350,  350,  350,  350,  350,  350,
-      351,    0,  351,  351,  351,  351,  351,  351,  351,  356,
-
-        0,  356,  356,  356,  356,  356,  356,  356,  357,    0,
-      357,  357,  357,  357,  357,  357,  357,  358,    0,  358,
-      358,  358,  358,  358,  358,  358,  359,    0,  359,  359,
-      359,  359,  359,  359,  359,  361,    0,  361,  361,  361,
-      361,  361,  361,  361,  363,    0,  363,  363,  363,  363,
-      363,  363,  363,  364,    0,  364,  364,  364,  364,  364,
-      364,  364,  365,    0,  365,  365,  365,  365,  365,  365,
-      365,  366,    0,  366,  366,  366,  366,  366,  366,  366,
-      368,    0,  368,  368,  368,  368,  368,  368,  368,  370,
-        0,  370,  370,  370,  370,  370,  370,  370,  371,    0,
-
-      371,  371,  371,  371,  371,  371,  371,  372,    0,  372,
-      372,  372,  372,  372,  372,  372,  373,    0,  373,  373,
-      373,  373,  373,  373,  373,  375,    0,  375,  375,  375,
-      375,  375,  375,  375,  376,    0,  376,  376,  376,  376,
-      376,  376,  376,  377,    0,  377,  377,  377,  377,  377,
-      377,  377,  378,    0,  378,  378,  378,  378,  378,  378,
-      378,  380,    0,  380,  380,  380,  380,  380,  380,  380,
-      381,    0,  381,  381,  381,  381,  381,  381,  381,  382,
-        0,  382,  382,  382,  382,  382,  382,  382,  385,    0,
-      385,  385,  385,  385,  385,  385,  385,  386,    0,  386,
-
-      386,  386,  386,  386,  386,  386,  387,    0,  387,  387,
-      387,  387,  387,  387,  387,  388,    0,  388,  388,  388,
-      388,  388,  388,  388,  390,    0,  390,  390,  390,  390,
-      390,  390,  390,  391,    0,  391,  391,  391,  391,  391,
-      391,  391,  392,    0,  392,  392,  392,  392,  392,  392,
-      392,  393,    0,  393,  393,  393,  393,  393,  393,  393,
-      395,  395,  395,  395,  395,  395,  395,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  395,  397,    0,  397,  397,  397,  397,  397,
-      397,  397,  398,    0,  398,  398,  398,  398,  398,  398,
-
-      398,  399,    0,  399,  399,  399,  399,  399,  399,  399,
-      402,    0,  402,  402,  402,  402,  402,  402,  402,  403,
-        0,  403,  403,  403,  403,  403,  403,  403,  405,  405,
-      405,  405,  405,  405,  405,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      405,  407,    0,  407,  407,  407,  407,  407,  407,  407,
-      408,    0,  408,  408,  408,  408,  408,  408,  408,  409,
-        0,  409,  409,  409,  409,  409,  409,  409,  410,  410,
-      410,  410,  410,  410,  410,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-      410,  412,    0,  412,  412,  412,  412,  412,  412,  412,
-      413,    0,  413,  413,  413,  413,  413,  413,  413,  414,
-        0,  414,  414,  414,  414,  414,  414,  414,  415,    0,
-      415,  415,  415,  415,  415,  415,  415,  416,    0,  416,
+      346,    0,  346,  346,  346,  346,  346,  346,  346,  347,
+        0,  347,  347,  347,  347,  347,  347,  347,  348,    0,
+      348,  348,  348,  348,  348,  348,  348,  349,    0,  349,
+
+      349,  349,  349,  349,  349,  349,  350,  350,  350,  350,
+      350,  350,  350,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  350,  352,
+        0,  352,  352,  352,  352,  352,  352,  352,  353,    0,
+      353,  353,  353,  353,  353,  353,  353,  354,    0,  354,
+      354,  354,  354,  354,  354,  354,  355,    0,  355,  355,
+      355,  355,  355,  355,  355,  360,    0,  360,  360,  360,
+      360,  360,  360,  360,  361,    0,  361,  361,  361,  361,
+      361,  361,  361,  362,    0,  362,  362,  362,  362,  362,
+      362,  362,  363,    0,  363,  363,  363,  363,  363,  363,
+
+      363,  365,    0,  365,  365,  365,  365,  365,  365,  365,
+      367,    0,  367,  367,  367,  367,  367,  367,  367,  368,
+        0,  368,  368,  368,  368,  368,  368,  368,  369,    0,
+      369,  369,  369,  369,  369,  369,  369,  370,    0,  370,
+      370,  370,  370,  370,  370,  370,  372,    0,  372,  372,
+      372,  372,  372,  372,  372,  374,    0,  374,  374,  374,
+      374,  374,  374,  374,  375,    0,  375,  375,  375,  375,
+      375,  375,  375,  376,    0,  376,  376,  376,  376,  376,
+      376,  376,  377,    0,  377,  377,  377,  377,  377,  377,
+      377,  379,    0,  379,  379,  379,  379,  379,  379,  379,
+
+      380,    0,  380,  380,  380,  380,  380,  380,  380,  381,
+        0,  381,  381,  381,  381,  381,  381,  381,  382,    0,
+      382,  382,  382,  382,  382,  382,  382,  384,    0,  384,
+      384,  384,  384,  384,  384,  384,  385,    0,  385,  385,
+      385,  385,  385,  385,  385,  386,    0,  386,  386,  386,
+      386,  386,  386,  386,  389,    0,  389,  389,  389,  389,
+      389,  389,  389,  390,    0,  390,  390,  390,  390,  390,
+      390,  390,  391,    0,  391,  391,  391,  391,  391,  391,
+      391,  392,    0,  392,  392,  392,  392,  392,  392,  392,
+      394,    0,  394,  394,  394,  394,  394,  394,  394,  395,
+
+        0,  395,  395,  395,  395,  395,  395,  395,  396,    0,
+      396,  396,  396,  396,  396,  396,  396,  397,    0,  397,
+      397,  397,  397,  397,  397,  397,  399,  399,  399,  399,
+      399,  399,  399,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  399,  401,
+        0,  401,  401,  401,  401,  401,  401,  401,  402,    0,
+      402,  402,  402,  402,  402,  402,  402,  403,    0,  403,
+      403,  403,  403,  403,  403,  403,  406,    0,  406,  406,
+      406,  406,  406,  406,  406,  407,    0,  407,  407,  407,
+      407,  407,  407,  407,  409,  409,  409,  409,  409,  409,
+
+      409,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  409,  411,    0,  411,
+      411,  411,  411,  411,  411,  411,  412,    0,  412,  412,
+      412,  412,  412,  412,  412,  413,    0,  413,  413,  413,
+      413,  413,  413,  413,  414,  414,  414,  414,  414,  414,
+      414,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  414,  416,    0,  416,
       416,  416,  416,  416,  416,  416,  417,    0,  417,  417,
       417,  417,  417,  417,  417,  418,    0,  418,  418,  418,
       418,  418,  418,  418,  419,    0,  419,  419,  419,  419,
+
       419,  419,  419,  420,    0,  420,  420,  420,  420,  420,
       420,  420,  421,    0,  421,  421,  421,  421,  421,  421,
       421,  422,    0,  422,  422,  422,  422,  422,  422,  422,
-
       423,    0,  423,  423,  423,  423,  423,  423,  423,  424,
         0,  424,  424,  424,  424,  424,  424,  424,  425,    0,
       425,  425,  425,  425,  425,  425,  425,  426,    0,  426,
       426,  426,  426,  426,  426,  426,  427,    0,  427,  427,
-      427,  427,  427,  427,  427,  429,    0,  429,  429,  429,
-      429,  429,  429,  429,  430,    0,  430,  430,  430,  430,
-      430,  430,  430,  431,    0,  431,  431,  431,  431,  431,
-      431,  431,  434,    0,  434,  434,  434,  434,  434,  434,
-      434,  435,    0,  435,  435,  435,  435,  435,  435,  435,
-      437,    0,  437,  437,  437,  437,  437,  437,  437,  439,
-
-        0,  439,  439,  439,  439,  439,  439,  439,  440,    0,
-      440,  440,  440,  440,  440,  440,  440,  441,    0,  441,
-      441,  441,  441,  441,  441,  441,  442,    0,  442,  442,
-      442,  442,  442,  442,  442,  444,    0,  444,  444,  444,
-      444,  444,  444,  444,  445,    0,  445,  445,  445,  445,
-      445,  445,  445,  446,    0,  446,  446,  446,  446,  446,
-      446,  446,  447,    0,  447,  447,  447,  447,  447,  447,
-      447,  448,    0,  448,  448,  448,  448,  448,  448,  448,
-      449,    0,  449,  449,  449,  449,  449,  449,  449,  453,
-        0,  453,  453,  453,  453,  453,  453,  453,  454,    0,
-
-      454,  454,  454,  454,  454,  454,  454,  455,    0,  455,
-      455,  455,  455,  455,  455,  455,  456,    0,  456,  456,
-      456,  456,  456,  456,  456,  457,    0,  457,  457,  457,
+      427,  427,  427,  427,  427,  428,    0,  428,  428,  428,
+      428,  428,  428,  428,  429,    0,  429,  429,  429,  429,
+      429,  429,  429,  430,    0,  430,  430,  430,  430,  430,
+
+      430,  430,  431,    0,  431,  431,  431,  431,  431,  431,
+      431,  433,    0,  433,  433,  433,  433,  433,  433,  433,
+      434,    0,  434,  434,  434,  434,  434,  434,  434,  435,
+        0,  435,  435,  435,  435,  435,  435,  435,  438,    0,
+      438,  438,  438,  438,  438,  438,  438,  439,    0,  439,
+      439,  439,  439,  439,  439,  439,  441,    0,  441,  441,
+      441,  441,  441,  441,  441,  443,    0,  443,  443,  443,
+      443,  443,  443,  443,  444,    0,  444,  444,  444,  444,
+      444,  444,  444,  445,    0,  445,  445,  445,  445,  445,
+      445,  445,  446,    0,  446,  446,  446,  446,  446,  446,
+
+      446,  448,    0,  448,  448,  448,  448,  448,  448,  448,
+      449,    0,  449,  449,  449,  449,  449,  449,  449,  450,
+        0,  450,  450,  450,  450,  450,  450,  450,  451,    0,
+      451,  451,  451,  451,  451,  451,  451,  452,    0,  452,
+      452,  452,  452,  452,  452,  452,  453,    0,  453,  453,
+      453,  453,  453,  453,  453,  457,    0,  457,  457,  457,
       457,  457,  457,  457,  458,    0,  458,  458,  458,  458,
-      458,  458,  458,  460,  460,  460,  460,  460,  460,  460,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  460,  466,  466,  466,  466,
-      466,  466,  466,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  466,  469,
-      469,  469,  469,  469,  469,  469,    0,    0,    0,    0,
+      458,  458,  458,  459,    0,  459,  459,  459,  459,  459,
+      459,  459,  460,    0,  460,  460,  460,  460,  460,  460,
+      460,  461,    0,  461,  461,  461,  461,  461,  461,  461,
 
+      462,    0,  462,  462,  462,  462,  462,  462,  462,  464,
+      464,  464,  464,  464,  464,  464,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  464,  470,  470,  470,  470,  470,  470,  470,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  469,  472,    0,    0,    0,  472,    0,  472,  473,
-      473,  473,  473,  473,  473,  473,  474,    0,    0,    0,
-      474,    0,  474,  475,    0,    0,    0,  475,    0,  475,
-      476,    0,    0,  476,  476,    0,  476,  477,    0,    0,
-      477,  477,  477,  478,    0,    0,  478,  478,  478,  478,
-      479,    0,    0,  479,  479,  479,  479,  480,    0,    0,
-      480,  480,  480,  481,    0,    0,    0,  481,    0,  481,
-      482,    0,    0,    0,  482,    0,  482,  483,    0,    0,
-        0,  483,    0,  483,  484,    0,    0,  484,  484,    0,
-
-      484,  485,    0,    0,    0,  485,    0,  485,  486,  486,
-      486,  486,  486,  486,  486,  487,  487,  487,  487,  487,
-      487,  487,  488,    0,    0,    0,  488,    0,  488,  489,
-        0,    0,    0,  489,    0,  489,  490,    0,    0,  490,
-      490,    0,  490,  491,  491,  491,  491,  491,  491,  491,
-      492,    0,    0,  492,  493,  493,    0,  493,  493,  493,
-      493,  494,  494,    0,  494,  494,  494,  494,  495,  495,
-      495,  495,  495,  495,  495,  496,  496,  496,  496,  496,
-      496,  496,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
-      471,  471,  471
+        0,    0,    0,    0,  470,  473,  473,  473,  473,  473,
+      473,  473,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  473,  476,    0,
+        0,    0,  476,    0,  476,  477,  477,  477,  477,  477,
+      477,  477,  478,    0,    0,    0,  478,    0,  478,  479,
+
+        0,    0,    0,  479,    0,  479,  480,    0,    0,  480,
+      480,    0,  480,  481,    0,    0,  481,  481,  481,  482,
+        0,    0,  482,  482,  482,  482,  483,    0,    0,  483,
+      483,  483,  483,  484,    0,    0,  484,  484,  484,  484,
+      485,    0,    0,    0,  485,    0,  485,  486,    0,    0,
+        0,  486,    0,  486,  487,    0,    0,    0,  487,    0,
+      487,  488,    0,    0,  488,  488,    0,  488,  489,    0,
+        0,    0,  489,    0,  489,  490,  490,  490,  490,  490,
+      490,  490,  491,  491,  491,  491,  491,  491,  491,  492,
+        0,    0,    0,  492,    0,  492,  493,    0,    0,    0,
+
+      493,    0,  493,  494,    0,    0,  494,  494,    0,  494,
+      495,  495,  495,  495,  495,  495,  495,  496,    0,    0,
+      496,    0,    0,  496,  497,  497,    0,  497,  497,  497,
+      497,  498,  498,    0,  498,  498,  498,  498,  499,  499,
+      499,  499,  499,  499,  499,  500,  500,  500,  500,  500,
+      500,  500,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+
+      475,  475,  475
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1286,7 +1302,7 @@ extern void yyerror               __P((char *));
 
 #define GOTDEFS 3
 
-#line 1290 "lex.yy.c"
+#line 1306 "lex.yy.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1442,7 +1458,7 @@ YY_DECL
 
 #line 102 "parse.lex"
 
-#line 1446 "lex.yy.c"
+#line 1462 "lex.yy.c"
 
        if ( yy_init )
                {
@@ -1494,13 +1510,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 472 )
+                               if ( yy_current_state >= 476 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 2983 );
+               while ( yy_base[yy_current_state] != 3053 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1842,7 +1858,7 @@ YY_RULE_SETUP
 #line 324 "parse.lex"
 ECHO;
        YY_BREAK
-#line 1846 "lex.yy.c"
+#line 1862 "lex.yy.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(GOTCMND):
 case YY_STATE_EOF(GOTRUNAS):
@@ -2138,7 +2154,7 @@ static yy_state_type yy_get_previous_state()
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 472 )
+                       if ( yy_current_state >= 476 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2173,11 +2189,11 @@ yy_state_type yy_current_state;
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 472 )
+               if ( yy_current_state >= 476 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 471);
+       yy_is_jam = (yy_current_state == 475);
 
        return yy_is_jam ? 0 : yy_current_state;
        }
@@ -2767,7 +2783,7 @@ fill_cmnd(s, len)
     if (yylval.command.cmnd == NULL)
        yyerror("unable to allocate memory");
 
-    /* copy the string and NULL-terminate it */
+    /* copy the string and NULL-terminate it (escapes handled by fnmatch) */
     (void) strncpy(yylval.command.cmnd, s, len);
     yylval.command.cmnd[len] = '\0';
 
index 2768805f44ada91e69e2f495428c005dfcede84c..12e13c490be62ac8ffb20e2badeff293b9476e04 100644 (file)
--- a/parse.lex
+++ b/parse.lex
@@ -110,7 +110,7 @@ WORD                        ([^@!=:,\(\) \t\n\\]|\\[^\n])+
                            LEXTRACE("\n\t");
                        }                       /* throw away EOL after \ */
 
-<GOTCMND>\\[:\,=\\ \t] {
+<GOTCMND>\\[:\,=\\ \t#]        {
                            LEXTRACE("QUOTEDCHAR ");
                            fill_args(yytext + 1, 1, sawspace);
                            sawspace = FALSE;
@@ -296,7 +296,7 @@ PASSWD[[:blank:]]*: {
                            }
                        }
 
-\/[^\,:=\\ \t\n#]+     {
+\/(\\[\,:= \t#]|[^\,:=\\ \t\n#])+      {
                            /* directories can't have args... */
                            if (yytext[yyleng - 1] == '/') {
                                LEXTRACE("COMMAND ");
@@ -354,7 +354,7 @@ fill_cmnd(s, len)
     if (yylval.command.cmnd == NULL)
        yyerror("unable to allocate memory");
 
-    /* copy the string and NULL-terminate it */
+    /* copy the string and NULL-terminate it (escapes handled by fnmatch) */
     (void) strncpy(yylval.command.cmnd, s, len);
     yylval.command.cmnd[len] = '\0';