Sat Jun 12 15:56:40 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
			  Mumit Khan  <khan@xraylith.wisc.edu>

	* c-parse.in (component_decl): Support anonymous struct/union.
	(%expect): Update.
	* c-parse.y: Regenerate.
	* c-parse.c: Likewise.
	* objc/objc-parse.y: Likewise.
	* objc/objc-parse.c: Likewise.
	* c-decl.c (finish_struct): Don't sort the fields.

Index: gcc-2.95.2/gcc/c-parse.c
===================================================================
RCS file: /homes/khan/src/CVSROOT/gcc-2.95.2/gcc/c-parse.c,v
retrieving revision 1.1.1.1
diff -u -3 -p -r1.1.1.1 c-parse.c
--- gcc-2.95.2/gcc/c-parse.c	1999/11/05 01:09:41	1.1.1.1
+++ gcc-2.95.2/gcc/c-parse.c	1999/11/05 05:50:15
@@ -134,7 +134,7 @@ extern void yyprint			PROTO ((FILE *, in
 
 
 
-#define	YYFINAL		692
+#define	YYFINAL		696
 #define	YYFLAG		-32768
 #define	YYNTBASE	84
 
@@ -203,21 +203,21 @@ static const short yyprhs[] = {     0,
    713,   717,   721,   726,   731,   735,   739,   741,   743,   746,
    748,   751,   753,   756,   757,   765,   771,   774,   775,   783,
    789,   792,   793,   802,   803,   811,   814,   815,   817,   818,
-   820,   822,   825,   826,   830,   833,   837,   839,   843,   845,
-   847,   850,   852,   856,   861,   868,   874,   876,   880,   882,
-   884,   888,   891,   894,   895,   897,   899,   902,   903,   906,
-   910,   914,   917,   921,   926,   930,   933,   937,   940,   944,
-   946,   948,   951,   954,   955,   957,   960,   961,   962,   964,
-   966,   969,   973,   975,   978,   980,   983,   990,   996,  1002,
-  1005,  1008,  1013,  1014,  1019,  1020,  1021,  1025,  1030,  1034,
-  1036,  1038,  1040,  1042,  1045,  1046,  1051,  1053,  1057,  1058,
-  1059,  1067,  1073,  1076,  1077,  1078,  1079,  1092,  1093,  1100,
-  1103,  1106,  1109,  1113,  1120,  1129,  1140,  1153,  1157,  1162,
-  1164,  1166,  1167,  1174,  1178,  1184,  1187,  1191,  1192,  1194,
-  1195,  1197,  1198,  1200,  1202,  1206,  1211,  1213,  1217,  1218,
-  1221,  1224,  1225,  1230,  1233,  1234,  1236,  1238,  1242,  1244,
-  1248,  1253,  1258,  1263,  1268,  1273,  1274,  1277,  1279,  1282,
-  1284,  1288,  1290,  1294
+   820,   822,   825,   826,   830,   833,   837,   843,   847,   849,
+   851,   854,   856,   860,   865,   872,   878,   880,   884,   886,
+   888,   892,   895,   898,   899,   901,   903,   906,   907,   910,
+   914,   918,   921,   925,   930,   934,   937,   941,   944,   948,
+   950,   952,   955,   958,   959,   961,   964,   965,   966,   968,
+   970,   973,   977,   979,   982,   984,   987,   994,  1000,  1006,
+  1009,  1012,  1017,  1018,  1023,  1024,  1025,  1029,  1034,  1038,
+  1040,  1042,  1044,  1046,  1049,  1050,  1055,  1057,  1061,  1062,
+  1063,  1071,  1077,  1080,  1081,  1082,  1083,  1096,  1097,  1104,
+  1107,  1110,  1113,  1117,  1124,  1133,  1144,  1157,  1161,  1166,
+  1168,  1170,  1171,  1178,  1182,  1188,  1191,  1195,  1196,  1198,
+  1199,  1201,  1202,  1204,  1206,  1210,  1215,  1217,  1221,  1222,
+  1225,  1228,  1229,  1234,  1237,  1238,  1240,  1242,  1246,  1248,
+  1252,  1257,  1262,  1267,  1272,  1277,  1278,  1281,  1283,  1286,
+  1288,  1292,  1294,  1298
 };
 
 static const short yyrhs[] = {    -1,
@@ -304,53 +304,53 @@ static const short yyrhs[] = {    -1,
      0,     0,   170,    82,   175,   183,   177,    78,   142,     0,
    170,    97,     0,     0,    81,     0,     0,    81,     0,   179,
      0,   179,   180,     0,     0,   179,   180,    77,     0,   179,
-    77,     0,   131,   122,   181,     0,   131,     0,   187,   122,
-   181,     0,   187,     0,     1,     0,   240,   180,     0,   182,
-     0,   181,    81,   182,     0,   205,   206,   164,   142,     0,
-   205,   206,   164,    38,   107,   142,     0,   205,   206,    38,
-   107,   142,     0,   184,     0,   183,    81,   184,     0,     1,
-     0,    97,     0,    97,    36,   107,     0,   131,   186,     0,
-   187,   186,     0,     0,   189,     0,     7,     0,   187,     7,
-     0,     0,   188,     7,     0,    59,   189,    76,     0,    50,
-   188,   189,     0,    50,   188,     0,   189,    59,   228,     0,
-   189,    60,    99,    83,     0,   189,    60,    83,     0,    59,
-   228,     0,    60,    99,    83,     0,    60,    83,     0,   143,
-   123,   189,     0,   191,     0,   208,     0,   191,   208,     0,
-   191,   193,     0,     0,   190,     0,     1,    77,     0,     0,
-     0,   196,     0,   197,     0,   196,   197,     0,    32,   239,
-    77,     0,   200,     0,     1,   200,     0,    82,     0,   199,
-    78,     0,   199,   194,   195,   121,   192,    78,     0,   199,
-   194,   195,     1,    78,     0,   199,   194,   195,   190,    78,
-     0,   202,   207,     0,   202,     1,     0,    15,    59,    99,
-    76,     0,     0,    18,   204,   207,    17,     0,     0,     0,
-   205,   206,   210,     0,   205,   206,   221,   207,     0,   205,
-   206,   209,     0,   210,     0,   221,     0,   200,     0,   218,
-     0,    99,    77,     0,     0,   201,    16,   211,   207,     0,
-   201,     0,   201,    16,     1,     0,     0,     0,    17,   212,
-    59,    99,    76,   213,   207,     0,   203,    59,    99,    76,
-    77,     0,   203,     1,     0,     0,     0,     0,    19,    59,
-   223,    77,   214,   223,    77,   215,   223,    76,   216,   207,
-     0,     0,    20,    59,    99,    76,   217,   207,     0,    23,
-    77,     0,    24,    77,     0,    25,    77,     0,    25,    99,
-    77,     0,    27,   222,    59,    99,    76,    77,     0,    27,
-   222,    59,    99,    38,   224,    76,    77,     0,    27,   222,
-    59,    99,    38,   224,    38,   224,    76,    77,     0,    27,
-   222,    59,    99,    38,   224,    38,   224,    38,   227,    76,
-    77,     0,    26,    97,    77,     0,    26,    50,    99,    77,
-     0,    77,     0,   219,     0,     0,    19,    59,   113,    76,
-   220,   207,     0,    21,   107,    38,     0,    21,   107,    10,
-   107,    38,     0,    22,    38,     0,    97,    38,   142,     0,
-     0,     7,     0,     0,    99,     0,     0,   225,     0,   226,
-     0,   225,    81,   226,     0,     9,    59,    99,    76,     0,
-   115,     0,   227,    81,   115,     0,     0,   229,   230,     0,
-   232,    76,     0,     0,   233,    77,   231,   230,     0,     1,
-    76,     0,     0,    10,     0,   233,     0,   233,    81,    10,
-     0,   234,     0,   233,    81,   234,     0,   125,   122,   166,
-   142,     0,   125,   122,   167,   142,     0,   125,   122,   186,
-   142,     0,   129,   122,   167,   142,     0,   129,   122,   186,
-   142,     0,     0,   236,   237,     0,   230,     0,   238,    76,
-     0,     3,     0,   238,    81,     3,     0,    97,     0,   239,
-    81,    97,     0,    31,     0
+    77,     0,   131,   122,   181,     0,   131,   122,   205,   206,
+   142,     0,   187,   122,   181,     0,   187,     0,     1,     0,
+   240,   180,     0,   182,     0,   181,    81,   182,     0,   205,
+   206,   164,   142,     0,   205,   206,   164,    38,   107,   142,
+     0,   205,   206,    38,   107,   142,     0,   184,     0,   183,
+    81,   184,     0,     1,     0,    97,     0,    97,    36,   107,
+     0,   131,   186,     0,   187,   186,     0,     0,   189,     0,
+     7,     0,   187,     7,     0,     0,   188,     7,     0,    59,
+   189,    76,     0,    50,   188,   189,     0,    50,   188,     0,
+   189,    59,   228,     0,   189,    60,    99,    83,     0,   189,
+    60,    83,     0,    59,   228,     0,    60,    99,    83,     0,
+    60,    83,     0,   143,   123,   189,     0,   191,     0,   208,
+     0,   191,   208,     0,   191,   193,     0,     0,   190,     0,
+     1,    77,     0,     0,     0,   196,     0,   197,     0,   196,
+   197,     0,    32,   239,    77,     0,   200,     0,     1,   200,
+     0,    82,     0,   199,    78,     0,   199,   194,   195,   121,
+   192,    78,     0,   199,   194,   195,     1,    78,     0,   199,
+   194,   195,   190,    78,     0,   202,   207,     0,   202,     1,
+     0,    15,    59,    99,    76,     0,     0,    18,   204,   207,
+    17,     0,     0,     0,   205,   206,   210,     0,   205,   206,
+   221,   207,     0,   205,   206,   209,     0,   210,     0,   221,
+     0,   200,     0,   218,     0,    99,    77,     0,     0,   201,
+    16,   211,   207,     0,   201,     0,   201,    16,     1,     0,
+     0,     0,    17,   212,    59,    99,    76,   213,   207,     0,
+   203,    59,    99,    76,    77,     0,   203,     1,     0,     0,
+     0,     0,    19,    59,   223,    77,   214,   223,    77,   215,
+   223,    76,   216,   207,     0,     0,    20,    59,    99,    76,
+   217,   207,     0,    23,    77,     0,    24,    77,     0,    25,
+    77,     0,    25,    99,    77,     0,    27,   222,    59,    99,
+    76,    77,     0,    27,   222,    59,    99,    38,   224,    76,
+    77,     0,    27,   222,    59,    99,    38,   224,    38,   224,
+    76,    77,     0,    27,   222,    59,    99,    38,   224,    38,
+   224,    38,   227,    76,    77,     0,    26,    97,    77,     0,
+    26,    50,    99,    77,     0,    77,     0,   219,     0,     0,
+    19,    59,   113,    76,   220,   207,     0,    21,   107,    38,
+     0,    21,   107,    10,   107,    38,     0,    22,    38,     0,
+    97,    38,   142,     0,     0,     7,     0,     0,    99,     0,
+     0,   225,     0,   226,     0,   225,    81,   226,     0,     9,
+    59,    99,    76,     0,   115,     0,   227,    81,   115,     0,
+     0,   229,   230,     0,   232,    76,     0,     0,   233,    77,
+   231,   230,     0,     1,    76,     0,     0,    10,     0,   233,
+     0,   233,    81,    10,     0,   234,     0,   233,    81,   234,
+     0,   125,   122,   166,   142,     0,   125,   122,   167,   142,
+     0,   125,   122,   186,   142,     0,   129,   122,   167,   142,
+     0,   129,   122,   186,   142,     0,     0,   236,   237,     0,
+   230,     0,   238,    76,     0,     3,     0,   238,    81,     3,
+     0,    97,     0,   239,    81,    97,     0,    31,     0
 };
 
 #endif
@@ -383,21 +383,21 @@ static const short yyrline[] = { 0,
   1278,  1280,  1282,  1287,  1289,  1296,  1298,  1301,  1304,  1308,
   1311,  1315,  1318,  1322,  1327,  1329,  1333,  1335,  1337,  1339,
   1343,  1345,  1348,  1351,  1354,  1357,  1361,  1363,  1366,  1368,
-  1373,  1376,  1381,  1383,  1385,  1399,  1406,  1411,  1417,  1422,
-  1424,  1429,  1431,  1435,  1439,  1443,  1453,  1455,  1460,  1465,
-  1468,  1472,  1475,  1479,  1482,  1485,  1488,  1492,  1495,  1499,
-  1503,  1505,  1507,  1509,  1511,  1513,  1515,  1517,  1521,  1529,
-  1537,  1539,  1541,  1545,  1547,  1550,  1553,  1564,  1566,  1571,
-  1573,  1576,  1590,  1593,  1596,  1598,  1600,  1608,  1616,  1627,
-  1632,  1635,  1649,  1658,  1662,  1666,  1670,  1676,  1680,  1685,
-  1688,  1693,  1696,  1697,  1714,  1719,  1722,  1734,  1736,  1746,
-  1756,  1757,  1765,  1768,  1780,  1784,  1801,  1811,  1820,  1825,
-  1830,  1835,  1839,  1843,  1854,  1861,  1868,  1875,  1886,  1892,
-  1895,  1900,  1923,  1957,  1988,  2019,  2034,  2048,  2052,  2056,
-  2059,  2064,  2066,  2069,  2071,  2075,  2080,  2083,  2089,  2094,
-  2099,  2101,  2110,  2111,  2117,  2119,  2129,  2131,  2135,  2138,
-  2144,  2154,  2163,  2172,  2182,  2196,  2201,  2206,  2208,  2217,
-  2220,  2225,  2228,  2232
+  1373,  1376,  1381,  1383,  1385,  1399,  1406,  1420,  1426,  1431,
+  1433,  1438,  1440,  1444,  1448,  1452,  1462,  1464,  1469,  1474,
+  1477,  1481,  1484,  1488,  1491,  1494,  1497,  1501,  1504,  1508,
+  1512,  1514,  1516,  1518,  1520,  1522,  1524,  1526,  1530,  1538,
+  1546,  1548,  1550,  1554,  1556,  1559,  1562,  1573,  1575,  1580,
+  1582,  1585,  1599,  1602,  1605,  1607,  1609,  1617,  1625,  1636,
+  1641,  1644,  1658,  1667,  1671,  1675,  1679,  1685,  1689,  1694,
+  1697,  1702,  1705,  1706,  1723,  1728,  1731,  1743,  1745,  1755,
+  1765,  1766,  1774,  1777,  1789,  1793,  1810,  1820,  1829,  1834,
+  1839,  1844,  1848,  1852,  1863,  1870,  1877,  1884,  1895,  1901,
+  1904,  1909,  1932,  1966,  1997,  2028,  2043,  2057,  2061,  2065,
+  2068,  2073,  2075,  2078,  2080,  2084,  2089,  2092,  2098,  2103,
+  2108,  2110,  2119,  2120,  2126,  2128,  2138,  2140,  2144,  2147,
+  2153,  2163,  2172,  2181,  2191,  2205,  2210,  2215,  2217,  2226,
+  2229,  2234,  2237,  2241
 };
 #endif
 
@@ -512,7 +512,7 @@ static const short yyr2[] = {     0,
      3,     3,     4,     4,     3,     3,     1,     1,     2,     1,
      2,     1,     2,     0,     7,     5,     2,     0,     7,     5,
      2,     0,     8,     0,     7,     2,     0,     1,     0,     1,
-     1,     2,     0,     3,     2,     3,     1,     3,     1,     1,
+     1,     2,     0,     3,     2,     3,     5,     3,     1,     1,
      2,     1,     3,     4,     6,     5,     1,     3,     1,     1,
      3,     2,     2,     0,     1,     1,     2,     0,     2,     3,
      3,     2,     3,     4,     3,     2,     3,     2,     3,     1,
@@ -568,641 +568,643 @@ static const short yydefact[] = {     3,
    380,   297,   299,   293,   295,     0,   174,   176,    86,     0,
    163,   384,   284,   284,   381,   382,     0,   399,     0,     0,
     29,   313,   104,   118,   118,   135,     0,     0,   164,   218,
-     0,   266,   272,   326,   268,   170,   170,   281,   278,   170,
-     0,     0,     0,   309,   310,     0,    80,    83,   294,   179,
-     0,   181,   229,   288,   379,   119,   170,   170,   170,   288,
-   119,   170,   170,     0,   388,   390,   401,   314,   111,     0,
-   112,     0,   135,   133,   189,   187,   186,   168,    21,     0,
-    25,   325,     0,   245,   249,   255,   170,   402,     0,     0,
-     0,   325,     0,     0,   115,   326,   301,   311,   202,    86,
-     0,     0,   199,     0,   201,     0,   257,   192,   198,     0,
-     0,     0,     0,   292,     0,   396,     0,   391,   392,   393,
-   292,     0,   394,   395,   383,     0,     0,   162,   134,   137,
-   136,     0,   165,   273,     0,   170,   253,   312,     0,   318,
-   117,   116,   305,     0,   319,   303,   326,   302,     0,   205,
-     0,     0,   196,    61,     0,   191,     0,   204,   195,    81,
-   180,   227,   228,   223,     0,   226,     0,   109,   110,     0,
-   170,     0,   274,   403,   317,     0,   152,     0,   339,   323,
-     0,     0,     0,     0,     0,     0,     0,     0,   368,   360,
-     0,     0,   113,   118,   118,   332,   337,     0,     0,   329,
-   330,   333,   361,   331,     0,     0,   207,     0,     0,   193,
-   194,   224,   225,   188,   276,   170,     0,     0,   325,   370,
-     0,     0,   366,   350,   351,   352,     0,     0,     0,   369,
-     0,   170,   334,   124,     0,   125,     0,     0,   321,   326,
-   320,   343,     0,   126,     0,   200,   197,   275,     0,     0,
-     0,   371,    45,     0,     0,     0,   364,   353,     0,   358,
-     0,   367,     0,   122,   208,     0,   123,   211,   338,   325,
-     0,     0,   206,   322,     0,   324,   362,   344,   348,     0,
-   359,     0,   120,     0,   121,     0,   336,   327,   325,     0,
-   340,   325,   370,   325,   365,   372,     0,   209,   212,   328,
-   342,   325,   363,     0,   349,     0,     0,   373,   374,   354,
-     0,     0,   341,   345,     0,   372,     0,     0,   210,   213,
-   370,     0,     0,   355,   375,     0,   376,     0,     0,   346,
-   377,     0,   356,   325,     0,     0,   347,   357,   378,     0,
-     0,     0
+     0,   266,   272,   326,   268,   326,   170,   170,   281,   278,
+   170,     0,     0,     0,   309,   310,     0,    80,    83,   294,
+   179,     0,   181,   229,   288,   379,   119,   170,   170,   170,
+   288,   119,   170,   170,     0,   388,   390,   401,   314,   111,
+     0,   112,     0,   135,   133,   189,   187,   186,   168,    21,
+     0,    25,   325,   170,     0,   245,   249,   255,   170,   402,
+     0,     0,     0,   325,     0,     0,   115,   326,   301,   311,
+   202,    86,     0,     0,   199,     0,   201,     0,   257,   192,
+   198,     0,     0,     0,     0,   292,     0,   396,     0,   391,
+   392,   393,   292,     0,   394,   395,   383,     0,     0,   162,
+   134,   137,   136,     0,   165,   273,     0,   267,   119,   170,
+   253,   312,     0,   318,   117,   116,   305,     0,   319,   303,
+   326,   302,     0,   205,     0,     0,   196,    61,     0,   191,
+     0,   204,   195,    81,   180,   227,   228,   223,     0,   226,
+     0,   109,   110,     0,   170,     0,   274,   403,   317,     0,
+   152,     0,   339,   323,     0,     0,     0,     0,     0,     0,
+     0,     0,   368,   360,     0,     0,   113,   118,   118,   332,
+   337,     0,     0,   329,   330,   333,   361,   331,     0,     0,
+   207,     0,     0,   193,   194,   224,   225,   188,   276,   170,
+     0,     0,   325,   370,     0,     0,   366,   350,   351,   352,
+     0,     0,     0,   369,     0,   170,   334,   124,     0,   125,
+     0,     0,   321,   326,   320,   343,     0,   126,     0,   200,
+   197,   275,     0,     0,     0,   371,    45,     0,     0,     0,
+   364,   353,     0,   358,     0,   367,     0,   122,   208,     0,
+   123,   211,   338,   325,     0,     0,   206,   322,     0,   324,
+   362,   344,   348,     0,   359,     0,   120,     0,   121,     0,
+   336,   327,   325,     0,   340,   325,   370,   325,   365,   372,
+     0,   209,   212,   328,   342,   325,   363,     0,   349,     0,
+     0,   373,   374,   354,     0,     0,   341,   345,     0,   372,
+     0,     0,   210,   213,   370,     0,     0,   355,   375,     0,
+   376,     0,     0,   346,   377,     0,   356,   325,     0,     0,
+   347,   357,   378,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   690,
+static const short yydefgoto[] = {   694,
      1,     2,     3,    17,    18,    19,   224,   378,   230,   381,
-   112,   308,   454,    85,   144,   276,    87,    88,    89,    90,
-    91,   396,    92,   261,   260,   258,   462,   259,    93,   145,
-    94,   211,   212,   213,   373,   441,   442,    20,   107,   543,
-   297,    57,   374,   424,   298,    23,    98,   186,    24,   129,
-   117,    44,   113,   118,   430,    45,   377,   216,   217,    26,
-   195,   196,   197,   428,   482,   456,   457,   458,   559,   459,
-   502,   460,   461,   614,   634,   661,   617,   636,   662,   202,
-   121,   407,   122,    27,    28,    29,    30,   238,   240,   245,
-   137,   506,   334,   132,   133,   235,   382,   383,   243,   244,
-   100,   184,   101,   103,   185,   443,   444,   494,   214,   337,
-   393,   394,   395,   371,   249,   372,   547,   548,   549,   569,
-   590,   312,   591,   447,   550,   551,   620,   568,   652,   643,
-   671,   684,   644,   552,   553,   642,   554,   581,   604,   657,
-   658,   659,   682,   281,   282,   299,   414,   300,   301,   302,
-   205,   206,   303,   304,   439,    95
+   112,   308,   456,    85,   144,   276,    87,    88,    89,    90,
+    91,   397,    92,   261,   260,   258,   464,   259,    93,   145,
+    94,   211,   212,   213,   373,   443,   444,    20,   222,   547,
+   297,    57,   374,   425,   298,    23,    98,   186,    24,   129,
+   117,    44,   113,   118,   431,    45,   377,   216,   217,    26,
+   195,   196,   197,   429,   484,   458,   459,   460,   563,   461,
+   506,   462,   463,   618,   638,   665,   621,   640,   666,   202,
+   121,   408,   122,    27,    28,    29,    30,   238,   240,   245,
+   137,   510,   334,   132,   133,   235,   382,   383,   243,   244,
+   100,   184,   101,   103,   185,   445,   446,   498,   214,   337,
+   394,   395,   396,   371,   249,   372,   551,   552,   553,   573,
+   594,   312,   595,   449,   554,   555,   624,   572,   656,   647,
+   675,   688,   648,   556,   557,   646,   558,   585,   608,   661,
+   662,   663,   686,   281,   282,   299,   415,   300,   301,   302,
+   205,   206,   303,   304,   441,    95
 };
 
-static const short yypact[] = {    95,
-   110,  2206,  2206,   260,-32768,-32768,-32768,-32768,    40,    40,
-    40,    57,    59,    89,-32768,-32768,-32768,-32768,-32768,    42,
-    99,  2234,    79,-32768,    40,-32768,    87,    93,   108,-32768,
-  2206,-32768,-32768,-32768,    40,    40,    40,  2068,  2002,   125,
--32768,-32768,    42,   147,-32768,    40,  1355,-32768,   257,-32768,
-    42,    79,-32768,    40,-32768,-32768,   696,-32768,-32768,-32768,
--32768,    76,-32768,   124,-32768,   132,-32768,-32768,-32768,-32768,
--32768,-32768,  2068,  2068,   373,-32768,-32768,-32768,  2068,-32768,
--32768,   721,-32768,-32768,  2068,   149,   153,-32768,  2095,  2122,
--32768,  2335,   881,   231,  2068,-32768,   186,   319,-32768,   203,
-   578,   708,   627,   304,-32768,   257,    42,-32768,   194,-32768,
-  1430,   438,    40,-32768,-32768,   257,   177,-32768,    40,   276,
-   398,   417,   188,  1417,   696,-32768,-32768,-32768,-32768,    40,
--32768,   208,   778,-32768,   214,-32768,   468,-32768,-32768,-32768,
--32768,-32768,   223,   269,   288,   312,-32768,   315,  2068,   721,
--32768,   721,-32768,  2068,  2068,   362,-32768,-32768,  2068,  2068,
-  2068,  2068,  2068,  2068,  2068,  2068,  2068,  2068,  2068,  2068,
--32768,-32768,   373,   373,  2068,  2068,-32768,-32768,-32768,-32768,
-   319,  1457,    40,-32768,   426,   760,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,    50,-32768,   344,-32768,   417,-32768,
--32768,   385,   417,   419,-32768,   611,  1512,-32768,   349,   361,
--32768,   316,    70,-32768,-32768,   405,    40,   545,   323,-32768,
-   257,   257,-32768,   438,    40,-32768,  1539,-32768,-32768,   438,
-    40,-32768,-32768,   428,   370,   198,   953,-32768,    40,-32768,
--32768,   413,   383,-32768,   468,-32768,-32768,-32768,   376,   391,
-  1891,-32768,  2335,   402,   411,  2335,  2335,  2068,   443,  2068,
-  2068,  1564,  1645,  1859,  1078,   747,   838,   838,   356,   356,
--32768,-32768,-32768,-32768,-32768,   432,   153,   412,   463,   485,
--32768,   871,-32768,   434,   319,-32768,  1594,-32768,   760,   445,
-   708,  2149,    54,   448,-32768,-32768,-32768,  1036,-32768,   450,
-   197,-32768,-32768,    81,-32768,-32768,-32768,    39,-32768,-32768,
--32768,   846,-32768,   398,-32768,-32768,   398,-32768,   483,-32768,
--32768,   452,-32768,-32768,-32768,-32768,-32768,-32768,   461,-32768,
-   473,  2068,   373,   480,   383,-32768,   496,-32768,-32768,-32768,
--32768,-32768,   508,  2068,  2258,  1483,-32768,-32768,   426,-32768,
--32768,-32768,   426,-32768,-32768,   493,-32768,-32768,    85,   510,
--32768,-32768,   550,   497,-32768,-32768,  1006,-32768,   585,   288,
--32768,-32768,-32768,   512,   328,-32768,  1291,    39,-32768,-32768,
-    39,   513,-32768,-32768,   513,    40,    40,  2335,-32768,    40,
-   515,   373,   814,   496,-32768,  1111,-32768,  2351,-32768,-32768,
-  2068,-32768,-32768,-32768,   497,    40,   133,   140,    40,-32768,
-    40,   140,    40,   871,-32768,-32768,-32768,-32768,-32768,   257,
--32768,    42,-32768,   692,-32768,-32768,  2335,-32768,-32768,  1291,
--32768,-32768,   430,-32768,-32768,-32768,    40,-32768,   220,   433,
-   641,   518,   520,   894,-32768,-32768,-32768,-32768,-32768,   563,
-   373,  2068,-32768,   564,  2335,   525,   526,-32768,-32768,   326,
-  1231,  2068,   146,   500,   550,-32768,  1621,-32768,-32768,-32768,
-   423,   497,-32768,-32768,-32768,   237,   250,   112,   692,-32768,
--32768,  1111,-32768,-32768,  2068,    49,-32768,-32768,   373,-32768,
--32768,-32768,-32768,   541,-32768,-32768,-32768,-32768,  1757,-32768,
-  2245,  1111,-32768,-32768,  1171,-32768,  1346,-32768,-32768,  2351,
--32768,   504,   504,-32768,  1676,-32768,   537,-32768,-32768,   544,
-  1778,  2068,-32768,-32768,-32768,  1837,   588,   570,-32768,-32768,
-   572,   576,  2068,   598,   566,   596,  2015,   193,   633,-32768,
-   638,   601,-32768,   602,  2238,-32768,   664,   974,    66,-32768,
--32768,-32768,-32768,-32768,  1948,  2068,-32768,   604,  1346,-32768,
--32768,-32768,-32768,-32768,-32768,  1778,  2068,   624,-32768,  2068,
-  2068,  1701,-32768,-32768,-32768,-32768,   615,  2068,   616,-32768,
-   629,    40,-32768,-32768,   257,-32768,    42,  1054,-32768,-32768,
--32768,-32768,  2068,-32768,  2290,-32768,-32768,-32768,   618,  2068,
-   714,-32768,   687,   659,   662,  2068,-32768,-32768,   666,-32768,
-  2068,-32768,   271,-32768,   266,   284,-32768,   158,-32768,-32768,
-  1837,   663,-32768,-32768,   672,-32768,-32768,-32768,-32768,  2308,
--32768,    24,-32768,   438,-32768,   438,-32768,-32768,-32768,   674,
--32768,-32768,  2068,-32768,-32768,   744,   679,-32768,-32768,-32768,
--32768,-32768,-32768,   681,-32768,   700,    43,   684,-32768,-32768,
-   288,   288,-32768,-32768,  2068,   744,   691,   744,-32768,-32768,
-  2068,   702,    61,-32768,-32768,   705,-32768,   419,   706,-32768,
-   231,   176,-32768,-32768,   709,   419,-32768,-32768,   231,   787,
-   789,-32768
+static const short yypact[] = {    97,
+   106,  2218,  2218,   295,-32768,-32768,-32768,-32768,    47,    47,
+    47,    86,    92,    99,-32768,-32768,-32768,-32768,-32768,    98,
+    42,  2246,   355,-32768,    47,-32768,    90,   114,   121,-32768,
+  2218,-32768,-32768,-32768,    47,    47,    47,  2080,  2014,   119,
+-32768,-32768,    98,   116,-32768,    47,  1367,-32768,   331,-32768,
+    98,   355,-32768,    47,-32768,-32768,   874,-32768,-32768,-32768,
+-32768,   127,-32768,   163,-32768,   166,-32768,-32768,-32768,-32768,
+-32768,-32768,  2080,  2080,   396,-32768,-32768,-32768,  2080,-32768,
+-32768,  1066,-32768,-32768,  2080,   125,   182,-32768,  2107,  2134,
+-32768,  2347,   783,   260,  2080,-32768,   212,   222,-32768,   229,
+  1665,   689,   495,   288,-32768,   331,    98,-32768,   252,-32768,
+  1442,   309,    47,-32768,-32768,   331,   174,-32768,    47,   889,
+   349,   382,   189,  1429,   874,-32768,-32768,-32768,-32768,    47,
+-32768,   247,   201,-32768,   287,-32768,   410,-32768,-32768,-32768,
+-32768,-32768,   263,   339,   338,   346,-32768,   347,  2080,  1066,
+-32768,  1066,-32768,  2080,  2080,   388,-32768,-32768,  2080,  2080,
+  2080,  2080,  2080,  2080,  2080,  2080,  2080,  2080,  2080,  2080,
+-32768,-32768,   396,   396,  2080,  2080,-32768,-32768,-32768,-32768,
+   222,  1469,    47,-32768,   387,   517,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,    10,-32768,   369,-32768,   382,-32768,
+-32768,   403,   382,   435,-32768,   855,  1524,-32768,   367,   376,
+-32768,   677,    71,-32768,-32768,   421,    47,   294,   290,-32768,
+   331,   331,-32768,   309,    47,-32768,  1551,-32768,-32768,   309,
+    47,-32768,-32768,-32768,   385,   469,  1314,-32768,    47,-32768,
+-32768,   423,   383,-32768,   410,-32768,-32768,-32768,   390,   404,
+  1903,-32768,  2347,   417,   428,  2347,  2347,  2080,   481,  2080,
+  2080,  1576,  1657,   949,   861,  1372,   658,   658,   384,   384,
+-32768,-32768,-32768,-32768,-32768,   445,   182,   449,   373,   342,
+-32768,  1137,-32768,   452,   222,-32768,  1606,-32768,   517,   458,
+   689,  2161,    66,   462,-32768,-32768,-32768,   773,-32768,   463,
+   203,-32768,-32768,    56,-32768,-32768,-32768,    61,-32768,-32768,
+-32768,   482,-32768,   349,-32768,-32768,   349,-32768,   430,-32768,
+-32768,   457,-32768,-32768,-32768,-32768,-32768,-32768,   450,-32768,
+   471,  2080,   396,   473,   383,-32768,   523,-32768,-32768,-32768,
+-32768,-32768,   518,  2080,  2270,  1495,-32768,-32768,   387,-32768,
+-32768,-32768,   387,-32768,-32768,   475,-32768,-32768,   136,   484,
+-32768,-32768,   327,    96,-32768,-32768,   744,-32768,   558,   338,
+-32768,-32768,-32768,   485,   576,-32768,  1303,    61,-32768,-32768,
+    61,   483,-32768,-32768,   483,-32768,    47,    47,  2347,-32768,
+    47,   493,   396,   712,   523,-32768,  1123,-32768,  2363,-32768,
+-32768,  2080,-32768,-32768,-32768,    96,    47,   181,   214,    47,
+-32768,    47,   214,    47,  1137,-32768,-32768,-32768,-32768,-32768,
+   331,-32768,    98,-32768,   653,-32768,-32768,  2347,-32768,-32768,
+  1303,-32768,-32768,   413,   413,-32768,-32768,-32768,    47,-32768,
+   226,   407,   621,   494,   496,   796,-32768,-32768,-32768,-32768,
+-32768,   537,   396,  2080,-32768,   540,  2347,   501,   503,-32768,
+-32768,   217,  1243,  2080,   147,   325,   327,-32768,  1633,-32768,
+-32768,-32768,   333,    96,-32768,-32768,-32768,   231,   261,   159,
+   653,-32768,-32768,  1123,-32768,-32768,  2080,-32768,   117,    58,
+-32768,-32768,   396,-32768,-32768,-32768,-32768,   507,-32768,-32768,
+-32768,-32768,  1769,-32768,  2257,  1123,-32768,-32768,  1183,-32768,
+  1358,-32768,-32768,  2363,-32768,   440,   440,-32768,  1688,-32768,
+   508,-32768,-32768,   514,  1790,  2080,-32768,-32768,-32768,  1849,
+   548,   535,-32768,-32768,   538,   539,  2080,   561,   519,   525,
+  2027,   184,   596,-32768,   569,   531,-32768,   546,  2250,-32768,
+   640,   925,    82,-32768,-32768,-32768,-32768,-32768,  1960,  2080,
+-32768,   579,  1358,-32768,-32768,-32768,-32768,-32768,-32768,  1790,
+  2080,   603,-32768,  2080,  2080,  1713,-32768,-32768,-32768,-32768,
+   586,  2080,   591,-32768,   613,    47,-32768,-32768,   331,-32768,
+    98,  1009,-32768,-32768,-32768,-32768,  2080,-32768,  2302,-32768,
+-32768,-32768,   597,  2080,   657,-32768,   932,   600,   609,  2080,
+-32768,-32768,   602,-32768,  2080,-32768,   293,-32768,   100,   301,
+-32768,   431,-32768,-32768,  1849,   610,-32768,-32768,   612,-32768,
+-32768,-32768,-32768,  2320,-32768,    83,-32768,   309,-32768,   309,
+-32768,-32768,-32768,   620,-32768,-32768,  2080,-32768,-32768,   693,
+   627,-32768,-32768,-32768,-32768,-32768,-32768,   637,-32768,   663,
+   123,   647,-32768,-32768,   338,   338,-32768,-32768,  2080,   693,
+   667,   693,-32768,-32768,  2080,   671,   160,-32768,-32768,   687,
+-32768,   435,   676,-32768,   260,   219,-32768,-32768,   688,   435,
+-32768,-32768,   260,   764,   768,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,   103,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -24,-32768,   -38,   516,  -110,   477,-32768,-32768,
-   -21,-32768,   255,-32768,-32768,-32768,-32768,-32768,   232,-32768,
-  -194,  -199,   591,-32768,-32768,   363,-32768,    -3,   -60,   252,
-    10,   757,-32768,   389,    19,   -14,   -90,   635,    27,  -169,
-  -390,   -49,  -114,   -68,-32768,-32768,-32768,  -171,    26,    68,
--32768,   522,-32768,   386,-32768,  -347,-32768,   325,-32768,  -405,
--32768,-32768,   406,-32768,-32768,-32768,-32768,-32768,-32768,   -42,
-   -77,   105,    -9,-32768,-32768,-32768,   -43,-32768,-32768,-32768,
--32768,-32768,   511,   -37,-32768,   612,   538,   435,   625,   546,
-   -35,   -92,   -72,   -91,  -105,   429,-32768,-32768,  -185,-32768,
--32768,-32768,   486,    16,-32768,  -125,-32768,-32768,-32768,-32768,
-   -57,  -361,  -461,   456,-32768,   261,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   283,-32768,  -503,   226,
--32768,   238,-32768,   621,-32768,  -250,-32768,-32768,-32768,   543,
-  -193,-32768,-32768,-32768,-32768,    13
+-32768,-32768,-32768,    77,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -24,-32768,   -38,   477,  -126,   426,-32768,-32768,
+   -45,-32768,   451,-32768,-32768,-32768,-32768,-32768,   196,-32768,
+  -177,  -186,   560,-32768,-32768,   332,-32768,    20,     0,   216,
+     8,   728,-32768,   358,    17,    -6,   -69,   595,    21,  -154,
+  -398,   -34,  -102,   -47,-32768,-32768,-32768,  -149,     4,    33,
+-32768,   497,-32768,   359,-32768,  -392,-32768,   284,-32768,  -396,
+-32768,-32768,   334,-32768,-32768,-32768,-32768,-32768,-32768,   -37,
+   -42,    60,   -18,-32768,-32768,-32768,   -21,-32768,-32768,-32768,
+-32768,-32768,   467,    -7,-32768,   571,   479,   365,   564,   491,
+   -19,   -70,   -62,   -85,  -115,   366,-32768,-32768,  -147,-32768,
+-32768,-32768,   436,  -151,-32768,  -124,-32768,-32768,-32768,-32768,
+   -90,  -332,  -464,   380,-32768,   187,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   207,-32768,  -563,   164,
+-32768,   161,-32768,   549,-32768,  -225,-32768,-32768,-32768,   480,
+  -181,-32768,-32768,-32768,-32768,     6
 };
 
 
-#define	YYLAST		2403
+#define	YYLAST		2415
 
 
 static const short yytable[] = {    86,
-    97,   123,    62,    64,    66,   225,   120,    52,   190,   293,
-    47,    21,    21,   131,    31,    31,   288,    49,    51,   250,
-    22,    22,   433,   218,   318,   135,   309,    25,    25,   476,
-   323,   351,   320,   104,    35,    36,    37,   201,   219,   370,
-    21,   124,   234,    31,    41,    46,   146,    54,    53,    22,
-   141,   139,   140,   319,   215,   509,    25,   142,   222,   324,
-   236,   646,   177,   147,   277,    99,   592,   330,    46,    14,
-  -102,    14,   209,   178,   119,   280,    46,   194,    14,   310,
-   666,   131,   130,    55,   499,    56,   522,   225,   279,    59,
-    60,    42,    58,   199,    -1,    59,    60,   203,   678,   647,
-    43,   561,    58,    58,    58,    32,   104,   601,    99,    -2,
-    59,    60,   242,    58,   254,    38,   255,    39,   667,   288,
-   248,    58,   285,   183,   593,   290,   183,   189,    46,   361,
-   291,   119,    46,    67,   520,   526,   679,   278,   109,   654,
-   314,   119,   131,   284,   317,   237,   234,    40,   274,   275,
-   130,  -102,   316,   597,   558,   215,   368,   134,   637,    99,
-   400,   369,    14,   475,   236,   401,   215,   676,    61,    14,
-   110,   111,   215,   349,    63,    48,    99,   650,    99,   353,
-   653,   277,   655,   102,   109,   142,    58,  -162,   322,    65,
-   663,   466,   467,  -162,   613,    59,    60,    58,   110,   111,
-   329,     5,   331,     7,   188,   136,   183,   445,   199,     9,
-    10,    11,   203,   138,   434,   435,   110,   111,   436,   343,
-   242,   511,   687,   105,   148,    13,   149,   106,   621,   340,
-   325,    25,   327,   149,  -162,   468,   469,   470,  -162,   177,
-   473,   474,   578,   119,   418,   131,   119,   119,   356,   237,
-    58,   685,   204,   220,   481,   491,   686,   221,   496,    41,
-   114,   179,   189,    99,   228,   487,   194,   384,   106,   384,
-   409,   413,   514,   366,  -269,  -269,   223,   367,   187,   -19,
-   -19,   -19,   -19,    52,    58,   231,    14,   -19,   -19,   -19,
-   463,   239,   109,   363,   364,  -162,   488,   375,   246,   280,
-   489,  -162,   109,   -19,   183,  -162,   115,    25,   242,   481,
-   183,  -162,   464,   518,   523,   116,   210,   221,   471,  -105,
-  -105,  -105,  -105,    54,    53,  -105,   519,  -105,  -105,  -105,
-   106,     5,    55,     7,    56,   446,    33,    34,   376,     9,
-    10,    11,  -162,  -105,   247,   465,  -162,   633,    14,   565,
-   472,   221,  -162,   408,   412,    13,  -162,   -19,   349,   353,
-   635,   507,   110,   111,   106,   349,   353,   438,   180,   248,
-   420,   422,   477,   546,   384,    59,    60,   181,   182,   200,
-   131,   226,   227,   451,   446,   452,   497,   251,   406,   411,
-   486,   252,    25,   429,   598,   104,   431,  -105,   315,   -82,
-   546,   423,   292,   253,   421,   168,   169,   170,   256,   257,
-   612,   109,   478,   262,   263,   264,   265,   266,   267,   268,
-   269,   270,   271,   272,   273,    41,   500,    70,   517,   198,
-   411,   306,    41,   114,   648,   131,   649,   307,   210,    25,
-   313,  -325,  -325,  -325,  -325,   119,   326,    46,   332,  -325,
-  -325,  -325,    14,   336,   199,   203,   226,   227,   119,    14,
-   542,   199,   203,   333,   524,  -325,   338,   485,   241,   198,
-    59,    60,   410,    58,   541,   110,   111,   341,    58,   115,
-   344,   405,   182,   681,   286,   287,   342,   542,   116,   406,
-   406,   689,    14,   142,   348,   546,   411,   411,   577,    41,
-   225,   541,    41,   403,  -267,  -267,   198,   347,   544,   307,
-   490,   555,   180,   579,   345,   346,   352,   545,   379,  -101,
-   357,   181,   182,   362,    25,   365,    14,   392,   599,    14,
-    52,   602,   605,   178,   380,   669,   670,   616,   386,   609,
-   585,   587,   615,   286,   287,   397,   410,    41,   114,   404,
-   387,   198,    41,   403,   622,   405,   182,   390,   405,   182,
-   350,   625,   466,   467,   544,   151,   153,   555,   512,   513,
-    54,    53,   632,   545,    14,   399,   215,   618,   215,    14,
-    25,     5,   542,     7,   188,   402,   388,   417,   419,     9,
-    10,    11,   437,   432,   115,  -304,   541,   495,   398,   404,
-   -31,   503,   504,   116,   602,    13,   505,    14,   405,   182,
-   119,   294,    46,   295,     5,     6,     7,     8,   525,   563,
-   296,   564,     9,    10,    11,   -32,   672,   180,   567,    41,
-   570,   427,   602,   198,   571,   573,   181,   182,    13,   580,
-    14,   210,   574,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
-   455,  -114,  -114,  -114,  -114,  -114,    14,  -114,  -114,  -114,
+    97,    47,    62,    64,    66,    25,    25,    31,    31,    21,
+    21,   120,    35,    36,    37,    52,   123,   225,    22,    22,
+   250,   215,   478,    46,   104,    54,   293,   139,   140,   218,
+   190,   288,   124,   142,    25,   131,    31,   318,    21,   147,
+    49,    51,    53,   323,   320,   107,    46,    22,   277,   178,
+   141,   434,   119,   435,    46,   135,   351,    58,   201,    99,
+   130,   370,   146,   234,   309,   280,   513,    58,    58,    58,
+   236,  -102,   209,   219,   177,   319,    14,   194,    58,    32,
+   310,   324,   596,   658,   199,   290,    58,    14,   203,   330,
+   291,   524,    59,    60,   279,   526,    -1,   104,    41,   225,
+    41,   183,    99,   131,   183,    -2,    46,    67,   605,   119,
+    46,   680,   242,   562,   565,   503,    59,    60,    48,   119,
+   650,   189,   215,    59,    60,    14,   109,    14,   130,  -162,
+   254,   368,   255,   215,   288,  -162,   369,   278,   237,   215,
+   597,   361,   248,   284,    38,   411,    14,    42,   274,   275,
+    39,    58,  -102,    99,   406,   182,    43,    40,   651,   641,
+   670,   142,    58,   349,   131,   277,   601,   234,   530,   353,
+    99,    61,    99,   316,   236,   314,  -162,   102,   654,   317,
+  -162,   657,   285,   659,   183,   109,    59,    60,   322,   477,
+   617,   667,   105,  -171,  -171,    63,   106,   682,   671,   199,
+   148,   232,    65,   203,     5,   340,     7,    96,   134,    25,
+    14,   401,     9,    10,    11,    58,   402,   110,   111,   343,
+   242,   119,   515,   691,   119,   119,   430,   149,    13,   432,
+   329,    15,   331,   582,   384,   683,   386,   436,   437,   468,
+   469,   438,   237,    14,   136,   419,   447,   138,   356,    58,
+   220,    14,   511,   325,   221,   327,   189,    99,   470,   471,
+   472,   625,   149,   475,   476,   228,   194,   131,   177,   106,
+   483,   180,   110,   111,   453,   465,   454,   233,  -261,   366,
+   181,   182,   183,   367,   488,    25,   518,   179,   183,   491,
+   280,    52,   410,   414,   689,   495,    41,   114,   500,   690,
+   198,    54,   492,   448,   187,   375,   493,   522,   242,   210,
+   204,   221,  -325,  -325,  -325,  -325,   363,   364,    53,   466,
+  -325,  -325,  -325,    14,   231,   473,   483,    41,   404,    41,
+   404,   198,   376,    41,   114,    41,  -325,   523,   246,   198,
+   527,   106,   386,   115,   409,   413,   110,   111,   226,   227,
+   349,   353,   116,   448,    14,   501,    14,   349,   353,    55,
+    14,    56,    14,   200,   239,   315,   407,   412,   440,   637,
+    25,    33,    34,   221,   405,   569,   405,   639,   550,   198,
+   115,   106,   411,   406,   182,   406,   182,   104,   479,   116,
+  -101,   406,   182,   421,   423,   424,   490,   490,    59,    60,
+   286,   287,    14,   131,   480,   550,   467,   226,   227,   412,
+   241,   474,    59,    60,   247,    41,   114,   350,    25,   248,
+   602,   251,   180,   252,   119,   -82,    46,   292,   504,   109,
+   521,   181,   182,   168,   169,   170,   616,   489,   119,    58,
+   110,   111,    14,    70,    58,   286,   287,   199,   203,   306,
+   487,   652,   307,   653,   199,   203,   313,   109,   332,   131,
+  -162,   326,   115,   333,   546,   379,  -162,   336,   528,   407,
+   407,   116,     5,   142,     7,   188,   412,   412,   545,   338,
+     9,    10,    11,   307,   494,     5,     6,     7,     8,   110,
+   111,   546,   341,     9,    10,    11,    13,    41,   468,   469,
+   550,   198,   581,   342,   685,   545,    25,  -162,   559,    13,
+   548,  -162,   693,   178,   151,   153,   225,   583,   344,   549,
+   347,    58,   127,   128,    14,   516,   517,   387,     9,    10,
+    11,   348,   603,   357,   352,   606,   609,   362,   365,   380,
+   673,   674,    52,   613,    42,  -269,  -269,   215,   388,   215,
+   391,   619,    54,    43,   393,   398,   620,   400,   626,   403,
+   418,   420,    25,   433,   559,   629,   548,   589,   591,    53,
+   439,  -304,   622,   499,   -31,   549,   636,   507,   508,     5,
+    55,     7,    56,   509,   529,   -32,   546,     9,    10,    11,
+   567,   568,   119,   571,    46,   578,   574,   575,   577,   253,
+   545,   579,   584,    13,   256,   257,   586,   587,   606,   262,
+   263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+   273,   210,   588,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
+   676,  -114,  -114,  -114,  -114,  -114,   606,  -114,  -114,  -114,
   -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
-  -114,  -114,   575,  -114,  -114,   582,    42,   583,   584,   588,
-  -114,   596,   600,  -114,   427,    43,  -385,   611,  -114,  -114,
-  -114,   608,   610,   624,  -114,  -114,   480,   127,   128,  -114,
-   126,   127,   128,     9,    10,    11,   501,     9,    10,    11,
-    59,    60,   191,   192,   193,   455,   510,  -114,  -114,  -114,
-  -114,   143,  -114,    68,     5,    14,     7,    96,    69,    70,
-   626,    71,     9,    10,    11,   628,   455,   629,   640,   521,
-   171,   172,   631,   173,   174,   175,   176,   641,    13,    72,
-   651,    15,   656,    73,    74,   660,   455,   664,   665,   455,
-    75,   455,   627,    76,   668,   127,   128,   674,    77,    78,
-    79,     9,    10,    11,    80,    81,   566,   677,   232,    82,
-   680,     5,   683,     7,    96,   688,   691,   572,   692,     9,
-    10,    11,   164,   165,   166,   167,   168,   169,   170,    83,
-    84,   603,   -91,   311,   492,    13,   594,   360,    15,   125,
-   595,   479,   358,   455,   440,   483,  -325,  -325,  -325,  -325,
-  -325,  -325,  -325,   289,  -325,  -325,  -325,  -325,  -325,   560,
+  -114,  -114,   422,  -114,  -114,   592,   600,   482,   127,   128,
+  -114,   604,   612,  -114,     9,    10,    11,   614,  -114,  -114,
+  -114,   615,   628,   630,  -114,  -114,   632,   210,   635,  -114,
+  -105,  -105,  -105,  -105,   633,   644,  -105,   645,  -105,  -105,
+  -105,    59,    60,   191,   192,   193,   655,  -114,  -114,  -114,
+  -114,   660,  -114,   664,  -105,   166,   167,   168,   169,   170,
+   345,   346,   442,   668,  -325,  -325,  -325,  -325,  -325,  -325,
+  -325,   669,  -325,  -325,  -325,  -325,  -325,   672,  -325,  -325,
   -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
-  -325,  -325,  -325,  -325,  -325,   391,  -325,  -325,   328,     5,
-     6,     7,     8,  -325,   233,  -261,  -325,     9,    10,    11,
-   630,  -325,  -325,  -325,   385,   508,   484,  -325,  -325,   335,
-   493,   294,  -325,    13,     5,     6,     7,     8,   389,   448,
-   296,   638,     9,    10,    11,   166,   167,   168,   169,   170,
-  -325,   673,  -325,  -325,   210,  -325,  -325,  -325,    13,   498,
-    14,  -325,  -325,   639,  -325,   675,   354,     0,  -325,   416,
-  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
-  -325,     0,  -325,     0,  -325,     0,  -325,  -325,     0,     0,
-     0,     0,     0,  -325,   171,   172,  -325,   173,   174,   175,
-   176,  -325,  -325,  -325,     0,     0,  -385,  -325,  -325,     0,
-     0,     0,  -325,   232,     0,     0,     5,     0,     7,    96,
-     0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
-  -325,  -300,  -325,  -325,   589,  -325,  -325,  -325,     0,     0,
-    13,  -325,  -325,    15,  -325,     0,     0,     0,  -325,     0,
-  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
-  -325,     0,  -325,     0,  -325,     0,  -325,  -325,     0,     5,
-     6,     7,     8,  -325,     0,   415,  -325,     9,    10,    11,
-     0,  -325,  -325,  -325,     0,     0,     0,  -325,  -325,     0,
-     0,     0,  -325,    13,     0,    14,     0,     0,     0,     5,
-     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
-  -325,     0,  -325,  -325,   619,  -325,  -335,  -335,     0,     0,
-     0,  -335,  -335,    13,  -335,    14,     0,     0,  -335,     0,
-  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
-  -335,     0,  -335,     0,  -335,     0,  -335,  -335,     0,     0,
-     0,     0,     0,  -335,     0,     0,  -335,     0,     0,     0,
-     0,  -335,  -335,  -335,     0,     0,     0,  -335,  -335,     0,
-     0,   449,  -335,   450,    60,     0,     0,     0,    69,    70,
-     0,    71,   163,   164,   165,   166,   167,   168,   169,   170,
-  -335,     0,  -335,  -335,     0,  -335,     0,     0,     0,    72,
-     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
-    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
-    79,     0,     0,     0,    80,    81,     0,     0,   451,    82,
-   452,   449,     0,   450,    60,     0,     0,     0,    69,    70,
-     0,    71,     0,     0,     0,     0,     0,     0,  -190,    83,
-    84,     0,   453,     0,     0,     0,     0,     0,     0,    72,
-     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
-    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
-    79,     0,     0,     0,    80,    81,     0,     0,   451,    82,
-   452,   449,     0,    68,     0,     0,     0,     0,    69,    70,
-     0,    71,     0,     0,     0,     0,     0,     0,  -258,    83,
-    84,     0,   453,     0,     0,     0,     0,     0,     0,    72,
-     0,    15,     0,    73,    74,     0,  -203,     0,     0,     0,
-    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
-    79,     0,     0,     0,    80,    81,     0,     0,  -203,    82,
-  -203,   425,     0,    68,     0,     0,     0,     0,    69,    70,
-     0,    71,     0,     0,     0,     0,     0,     0,     0,    83,
-    84,     0,   453,     0,     0,     0,     0,     0,     0,    72,
-     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
-    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
-    79,     0,     0,     0,    80,    81,   449,     0,    68,    82,
-     0,     0,     0,    69,    70,   108,    71,     0,   -27,   -27,
-   -27,   -27,     0,     0,     0,     0,   -27,   -27,   -27,    83,
-    84,     0,   426,     0,    72,     0,    15,     0,    73,    74,
-     0,   109,   -27,     0,  -162,    75,     0,     0,    76,     0,
-  -162,     0,     0,    77,    78,    79,     0,     0,     0,    80,
-    81,     0,     0,     0,    82,     0,     0,     0,     0,     0,
-     0,     0,     0,   110,   111,     0,     0,   229,     0,     0,
-   -23,   -23,   -23,   -23,    83,    84,     0,   453,   -23,   -23,
-   -23,  -162,    68,     0,     0,  -162,   -27,    69,    70,     0,
-    71,     0,     0,   109,   -23,     0,  -162,     0,     0,     0,
-     0,     0,  -162,     0,     0,     0,     0,     0,    72,    68,
-    15,     0,    73,    74,    69,    70,     0,    71,     0,    75,
-     0,     0,    76,     0,     0,   110,   111,    77,    78,   207,
-     0,     0,     0,    80,    81,    72,     0,    15,    82,    73,
-    74,     0,     0,  -162,     0,     0,    75,  -162,   -23,    76,
-     0,     0,     0,     0,    77,    78,    79,     0,    83,    84,
-    80,    81,   208,     0,    68,    82,     0,     0,     0,    69,
-    70,     0,    71,   159,   160,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,   170,    83,    84,     0,     0,   283,
+  -325,  -325,  -325,   678,  -325,  -325,   681,     5,     6,     7,
+     8,  -325,   687,   416,  -325,     9,    10,    11,  -105,  -325,
+  -325,  -325,   684,   695,   692,  -325,  -325,   696,   360,   607,
+  -325,    13,   311,    14,   598,   496,     5,     6,     7,     8,
+   125,   481,   389,   289,     9,    10,    11,   358,  -325,   485,
+  -325,  -325,   564,  -325,   399,   512,   210,   486,  -325,  -325,
+    13,   392,    14,  -325,  -325,   385,  -325,   328,   335,   497,
+  -325,   642,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
+  -325,  -325,  -325,   390,  -325,   502,  -325,   428,  -325,  -325,
+   450,   643,   679,   677,   354,  -325,   171,   172,  -325,   173,
+   174,   175,   176,  -325,  -325,  -325,   417,   457,     0,  -325,
+  -325,     0,     0,     0,  -325,   294,     0,   295,     5,     6,
+     7,     8,     0,     0,   296,     0,     9,    10,    11,     0,
+     0,     0,  -325,  -300,  -325,  -325,     0,  -325,   126,   127,
+   128,   428,    13,     0,    14,     9,    10,    11,     0,   223,
+     0,     0,   -19,   -19,   -19,   -19,     0,     0,     0,     0,
+   -19,   -19,   -19,    14,   505,   163,   164,   165,   166,   167,
+   168,   169,   170,   457,   514,   109,   -19,     0,  -162,     0,
+     0,     0,     0,     0,  -162,   593,     0,  -325,  -325,     0,
+  -385,     0,  -325,  -325,   457,  -325,     0,   525,     0,  -325,
+     0,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
+  -325,  -325,     0,  -325,     0,  -325,   457,  -325,  -325,   457,
+     0,   457,     0,     0,  -325,  -162,     0,  -325,     0,  -162,
+   -19,     0,  -325,  -325,  -325,     0,   570,     0,  -325,  -325,
+     0,     0,     0,  -325,     0,   171,   172,   576,   173,   174,
+   175,   176,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,  -325,     0,  -325,  -325,     0,  -325,   631,     0,   623,
+   599,  -335,  -335,   457,     0,     0,  -335,  -335,     0,  -335,
+     0,     0,     0,  -335,     0,  -335,  -335,  -335,  -335,  -335,
+  -335,  -335,  -335,  -335,  -335,  -335,     0,  -335,     0,  -335,
+     0,  -335,  -335,     0,     0,     0,     0,     0,  -335,     0,
+     0,  -335,     0,     0,     0,     0,  -335,  -335,  -335,     0,
+   634,     0,  -335,  -335,     0,     0,   143,  -335,    68,     5,
+     0,     7,    96,    69,    70,     0,    71,     9,    10,    11,
+     0,     0,     0,     0,     0,  -335,     0,  -335,  -335,     0,
+  -335,     0,     0,    13,    72,     0,    15,     0,    73,    74,
+     0,     0,     0,     0,     0,    75,     0,     0,    76,     0,
+     0,     0,     0,    77,    78,    79,     0,     0,     0,    80,
+    81,     0,     0,   451,    82,   452,    60,     0,     0,     0,
+    69,    70,     0,    71,     0,     0,     0,   294,     0,     0,
+     5,     6,     7,     8,    83,    84,   296,   -91,     9,    10,
+    11,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,    13,    76,    14,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+   453,    82,   454,   451,     0,   452,    60,     0,     0,     0,
+    69,    70,     0,    71,     0,     0,     0,     0,     0,     0,
+  -190,    83,    84,     0,   455,     0,     0,     0,     0,     0,
+     0,    72,  -385,    15,     0,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+   453,    82,   454,   451,     0,    68,     0,     0,     0,     0,
+    69,    70,     0,    71,     0,     0,     0,     0,     0,     0,
+  -258,    83,    84,     0,   455,     0,     0,     0,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,     0,  -203,     0,
+     0,     0,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+  -203,    82,  -203,   426,     0,    68,     0,     0,     0,     0,
+    69,    70,     0,    71,   232,     0,     0,     5,     0,     7,
+    96,    83,    84,     0,   455,     9,    10,    11,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+     0,    13,    75,     0,    15,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,   451,     0,
+    68,    82,     0,     0,     0,    69,    70,   108,    71,     0,
+   -27,   -27,   -27,   -27,     0,     0,     0,     0,   -27,   -27,
+   -27,    83,    84,     0,   427,     0,    72,     0,    15,     0,
+    73,    74,     0,   109,   -27,     0,  -162,    75,     0,     0,
+    76,     0,  -162,     0,     0,    77,    78,    79,     0,     0,
+     0,    80,    81,     0,     0,     0,    82,   164,   165,   166,
+   167,   168,   169,   170,     0,   110,   111,     0,     0,   229,
+     0,     0,   -23,   -23,   -23,   -23,    83,    84,     0,   455,
+   -23,   -23,   -23,  -162,    68,     0,     0,  -162,   -27,    69,
+    70,     0,    71,     0,     0,   109,   -23,     0,  -162,     0,
+     0,     0,     0,     0,  -162,     0,     0,     0,     0,     0,
     72,    68,    15,     0,    73,    74,    69,    70,     0,    71,
-     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,    72,     0,    15,
-    82,    73,    74,     0,     0,     0,     0,     0,    75,     0,
-     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
-    83,    84,    80,    81,   305,     0,    68,    82,     0,     0,
-     0,    69,    70,     0,    71,   160,   161,   162,   163,   164,
-   165,   166,   167,   168,   169,   170,     0,    83,    84,     0,
-     0,   321,    72,    68,    15,     0,    73,    74,    69,    70,
+     0,    75,     0,     0,    76,     0,     0,   110,   111,    77,
+    78,   207,     0,     0,     0,    80,    81,    72,     0,    15,
+    82,    73,    74,     0,     0,  -162,     0,     0,    75,  -162,
+   -23,    76,     0,     0,     0,     0,    77,    78,    79,     0,
+    83,    84,    80,    81,   208,     0,    68,    82,     0,     0,
+     0,    69,    70,     0,    71,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,    83,    84,     0,
+     0,   283,    72,    68,    15,     0,    73,    74,    69,    70,
      0,    71,     0,    75,     0,     0,    76,     0,     0,     0,
      0,    77,    78,    79,     0,     0,     0,    80,    81,    72,
      0,    15,    82,    73,    74,     0,     0,     0,     0,     0,
     75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
-   515,     0,    83,    84,    80,    81,   355,     0,    68,    82,
-     0,     0,     0,    69,    70,     0,    71,   161,   162,   163,
-   164,   165,   166,   167,   168,   169,   170,     0,     0,    83,
-    84,     0,     0,   516,    72,     0,    15,     0,    73,    74,
-   606,     0,     0,     0,     0,    75,     0,     0,    76,     0,
+    79,     0,    83,    84,    80,    81,   305,     0,    68,    82,
+     0,     0,     0,    69,    70,     0,    71,   160,   161,   162,
+   163,   164,   165,   166,   167,   168,   169,   170,     0,    83,
+    84,     0,     0,   321,    72,    68,    15,     0,    73,    74,
+    69,    70,     0,    71,     0,    75,     0,     0,    76,     0,
      0,     0,     0,    77,    78,    79,     0,     0,     0,    80,
-    81,     0,     0,     0,    82,   154,   155,   156,   607,   157,
-   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-   168,   169,   170,     0,    83,    84,     0,     0,   562,   450,
-   527,     6,     7,     8,    69,    70,     0,    71,     9,    10,
-    11,   528,     0,   529,   530,   531,   532,   533,   534,   535,
-   536,   537,   538,   539,    13,    72,    14,    15,     0,    73,
-    74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
-     0,     0,     0,     0,    77,    78,    79,    14,     0,     0,
-    80,    81,   154,   155,   156,    82,   157,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-     0,     0,     0,   540,     0,    83,    84,     0,   248,   450,
-    60,     0,     0,     0,    69,    70,     0,    71,     0,     0,
-     0,   528,     0,   529,   530,   531,   532,   533,   534,   535,
-   536,   537,   538,   539,     0,    72,     0,    15,     0,    73,
-    74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
-     0,     0,     0,     0,    77,    78,    79,     0,     0,     0,
-    80,    81,     0,    68,     0,    82,     0,     0,    69,    70,
-     0,    71,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,     0,     0,   540,     0,    83,    84,     0,   248,    72,
-     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
-    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
-    79,     0,     0,     0,    80,    81,     0,     0,     0,    82,
-    68,     5,     6,     7,     8,    69,    70,     0,    71,     9,
-    10,    11,     0,     0,     0,     0,     0,     0,     0,    83,
-    84,     0,   339,     0,     0,    13,    72,    14,    15,     0,
-    73,    74,     0,     0,     0,     0,     0,    75,     0,     0,
-    76,     0,     0,     0,     0,    77,    78,    79,     0,     0,
-     0,    80,    81,     0,    68,     5,    82,     7,    96,    69,
-    70,     0,    71,     9,    10,    11,     0,    68,     0,     0,
-     0,     0,    69,    70,     0,    71,    83,    84,     0,    13,
-    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
-     0,    75,     0,    72,    76,    15,     0,    73,    74,    77,
-    78,    79,     0,     0,    75,    80,    81,    76,     0,     0,
-    82,     0,    77,    78,    79,     0,     0,     0,    80,    81,
-    68,     0,     0,    82,     0,    69,    70,     0,    71,     0,
-    83,    84,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   576,     0,    83,    84,     0,    72,    68,    15,     0,
-    73,    74,    69,    70,     0,    71,     0,    75,     0,     0,
+    81,    72,     0,    15,    82,    73,    74,     0,     5,     0,
+     7,   188,    75,     0,     0,    76,     9,    10,    11,     0,
+    77,    78,   519,     0,    83,    84,    80,    81,   355,     0,
+    68,    82,    13,     0,    14,    69,    70,     0,    71,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,     0,
+     0,    83,    84,     0,   180,   520,    72,     0,    15,     0,
+    73,    74,   610,   181,   182,     0,     0,    75,     0,     0,
     76,     0,     0,     0,     0,    77,    78,    79,     0,     0,
-     0,    80,    81,    72,    68,    15,    82,    73,    74,    69,
-    70,     0,    71,     0,    75,     0,     0,    76,     0,     0,
-     0,     0,    77,    78,    79,     0,    83,    84,    80,    81,
-    72,   359,    15,   150,    73,    74,    69,    70,     0,    71,
-     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,    83,    84,    80,    81,    72,     0,    15,
-   152,    73,    74,     0,     0,     0,     0,     0,    75,     0,
+     0,    80,    81,     0,     0,     0,    82,   154,   155,   156,
+   611,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,   170,     0,    83,    84,     0,     0,
+   566,   452,   531,     6,     7,     8,    69,    70,     0,    71,
+     9,    10,    11,   532,     0,   533,   534,   535,   536,   537,
+   538,   539,   540,   541,   542,   543,    13,    72,    14,    15,
+     0,    73,    74,     0,     0,     0,     0,     0,    75,     0,
+     0,    76,     0,     0,     0,     0,    77,    78,    79,    14,
+     0,     0,    80,    81,   154,   155,   156,    82,   157,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+   169,   170,     0,     0,     0,   544,     0,    83,    84,     0,
+   248,   452,    60,     0,     0,     0,    69,    70,     0,    71,
+     0,     0,     0,   532,     0,   533,   534,   535,   536,   537,
+   538,   539,   540,   541,   542,   543,     0,    72,     0,    15,
+     0,    73,    74,     0,     0,     0,     0,     0,    75,     0,
      0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
-    83,    84,    80,    81,     0,     0,     4,    82,  -118,     5,
-     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
-     0,     0,     0,     0,     0,     0,     0,    83,    84,     0,
-     0,     0,    12,    13,     0,    14,    15,     5,     6,     7,
-     8,     5,     6,     7,     8,     9,    10,    11,     0,     9,
-    10,    11,     0,     0,   556,  -118,     0,     0,     0,     0,
-     0,    13,     0,    14,  -118,    13,     0,    14,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   154,
-   155,   156,    16,   157,   158,   159,   160,   161,   162,   163,
-   164,   165,   166,   167,   168,   169,   170,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-    50,     0,     0,     0,   586,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   154,   155,   156,   557,   157,   158,
+     0,     0,    80,    81,     0,    68,     0,    82,     0,     0,
+    69,    70,     0,    71,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   544,     0,    83,    84,     0,
+   248,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+     0,    82,    68,     5,     6,     7,     8,    69,    70,     0,
+    71,     9,    10,    11,     0,     0,     0,     0,     0,     0,
+     0,    83,    84,     0,   339,     0,     0,    13,    72,    14,
+    15,     0,    73,    74,     0,     0,     0,     0,     0,    75,
+     0,     0,    76,     0,     0,     0,     0,    77,    78,    79,
+     0,     0,     0,    80,    81,     0,    68,     5,    82,     7,
+    96,    69,    70,     0,    71,     9,    10,    11,     0,    68,
+     0,     0,     0,     0,    69,    70,     0,    71,    83,    84,
+     0,    13,    72,     0,    15,     0,    73,    74,     0,     0,
+     0,     0,     0,    75,     0,    72,    76,    15,     0,    73,
+    74,    77,    78,    79,     0,     0,    75,    80,    81,    76,
+     0,     0,    82,     0,    77,    78,    79,     0,     0,     0,
+    80,    81,    68,     0,     0,    82,     0,    69,    70,     0,
+    71,     0,    83,    84,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   580,     0,    83,    84,     0,    72,    68,
+    15,     0,    73,    74,    69,    70,     0,    71,     0,    75,
+     0,     0,    76,     0,     0,     0,     0,    77,    78,    79,
+     0,     0,     0,    80,    81,    72,    68,    15,    82,    73,
+    74,    69,    70,     0,    71,     0,    75,     0,     0,    76,
+     0,     0,     0,     0,    77,    78,    79,     0,    83,    84,
+    80,    81,    72,   359,    15,   150,    73,    74,    69,    70,
+     0,    71,     0,    75,     0,     0,    76,     0,     0,     0,
+     0,    77,    78,    79,     0,    83,    84,    80,    81,    72,
+     0,    15,   152,    73,    74,     0,     0,     0,     0,     0,
+    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
+    79,     0,    83,    84,    80,    81,     0,     0,     4,    82,
+  -118,     5,     6,     7,     8,     0,     0,     0,     0,     9,
+    10,    11,     0,     0,     0,     0,     0,     0,     0,    83,
+    84,     0,     0,     0,    12,    13,     0,    14,    15,     5,
+     6,     7,     8,     5,     6,     7,     8,     9,    10,    11,
+     0,     9,    10,    11,     0,     0,   560,  -118,     0,     0,
+     0,     0,     0,    13,     0,    14,  -118,    13,     0,    14,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   154,   155,   156,    16,   157,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,   158,
    159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,   154,   155,   156,   645,   157,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   154,
-   155,   156,   623,   157,   158,   159,   160,   161,   162,   163,
-   164,   165,   166,   167,   168,   169,   170,   156,     0,   157,
-   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-   168,   169,   170
+   169,   170,    50,     0,     0,     0,   590,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   154,   155,   156,   561,
+   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,   168,   169,   170,   154,   155,   156,   649,   157,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+   169,   170,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   154,   155,   156,   627,   157,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,   156,
+     0,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,   170
 };
 
 static const short yycheck[] = {    38,
-    39,    51,    27,    28,    29,   120,    49,    22,   101,   204,
-    20,     2,     3,    57,     2,     3,   186,    21,    22,   145,
-     2,     3,   384,   115,   224,    63,   212,     2,     3,   420,
-   230,   282,   226,    43,     9,    10,    11,   106,   116,     1,
-    31,    51,   133,    31,     3,    20,    82,    22,    22,    31,
-    75,    73,    74,   225,   112,   461,    31,    79,   119,   231,
-   133,    38,     9,    85,   175,    39,     1,   239,    43,    30,
-     1,    30,   111,    95,    49,   181,    51,   102,    30,    10,
-    38,   125,    57,     5,   446,     7,    38,   202,   180,     3,
-     4,    50,    25,   103,     0,     3,     4,   107,    38,    76,
-    59,   507,    35,    36,    37,     3,   116,   569,    82,     0,
-     3,     4,   137,    46,   150,    59,   152,    59,    76,   289,
-    82,    54,   183,    98,    59,    76,   101,   101,   103,    76,
-    81,   106,   107,    31,   482,   497,    76,   176,    27,   643,
-   218,   116,   186,   182,   222,   133,   237,    59,   173,   174,
-   125,    82,   221,   559,   502,   213,    76,    82,   620,   133,
-    76,    81,    30,   414,   237,    81,   224,   671,    82,    30,
-    59,    60,   230,   279,    82,    77,   150,   639,   152,   285,
-   642,   292,   644,    59,    27,   207,   119,    30,   227,    82,
-   652,    59,    60,    36,   585,     3,     4,   130,    59,    60,
-   238,     4,   240,     6,     7,    82,   181,   393,   218,    12,
-    13,    14,   222,    82,   386,   387,    59,    60,   390,   258,
-   245,    76,   684,    77,    76,    28,    81,    81,   590,   251,
-   234,   206,   236,    81,    77,   407,   408,   409,    81,     9,
-   412,   413,    50,   218,   370,   289,   221,   222,   287,   237,
-   183,    76,    59,    77,   424,   441,    81,    81,   444,     3,
-     4,    76,   236,   237,    77,   437,   291,   325,    81,   327,
-   363,   364,   466,    77,    77,    78,     1,    81,    76,     4,
-     5,     6,     7,   298,   217,    78,    30,    12,    13,    14,
-   401,    78,    27,   297,   298,    30,    77,   312,    76,   405,
-    81,    36,    27,    28,   279,    30,    50,   282,   333,   479,
-   285,    36,   404,    77,   486,    59,     1,    81,   410,     4,
-     5,     6,     7,   298,   298,    10,    77,    12,    13,    14,
-    81,     4,     5,     6,     7,   393,    77,    78,   312,    12,
-    13,    14,    77,    28,    76,   406,    81,    77,    30,   521,
-   411,    81,    77,   363,   364,    28,    81,    82,   464,   465,
-    77,    36,    59,    60,    81,   471,   472,   392,    50,    82,
-   374,   375,   422,   499,   432,     3,     4,    59,    60,    76,
-   424,    59,    60,    58,   442,    60,   444,    76,   363,   364,
-   433,    77,   367,   378,   566,   405,   381,    82,    76,    38,
-   526,   375,    59,   149,    77,    50,    51,    52,   154,   155,
-   582,    27,   422,   159,   160,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,   170,     3,   451,     9,   467,     7,
-   405,    83,     3,     4,   634,   479,   636,    77,     1,   414,
-    36,     4,     5,     6,     7,   420,    77,   422,    36,    12,
-    13,    14,    30,    78,   464,   465,    59,    60,   433,    30,
-   499,   471,   472,    81,   489,    28,    76,    38,     1,     7,
-     3,     4,    50,   406,   499,    59,    60,    76,   411,    50,
-    38,    59,    60,   678,    59,    60,    76,   526,    59,   464,
-   465,   686,    30,   515,    83,   621,   471,   472,   537,     3,
-   615,   526,     3,     4,    77,    78,     7,    76,   499,    77,
-    78,   499,    50,   538,   260,   261,    83,   499,    36,    82,
-    76,    59,    60,    76,   499,    76,    30,    32,   567,    30,
-   545,   570,   571,   555,    83,   661,   662,   587,    78,   578,
-   544,   545,   585,    59,    60,    38,    50,     3,     4,    50,
-    78,     7,     3,     4,   593,    59,    60,    78,    59,    60,
-    76,   600,    59,    60,   555,    89,    90,   555,   464,   465,
-   545,   545,   611,   555,    30,    83,   634,   587,   636,    30,
-   555,     4,   621,     6,     7,    76,   332,     3,    77,    12,
-    13,    14,    78,    81,    50,    78,   621,    78,   344,    50,
-    38,    38,    78,    59,   643,    28,    81,    30,    59,    60,
-   585,     1,   587,     3,     4,     5,     6,     7,    78,    83,
-    10,    78,    12,    13,    14,    38,   665,    50,    59,     3,
-    59,   377,   671,     7,    59,    38,    59,    60,    28,     7,
-    30,     1,    77,     3,     4,     5,     6,     7,     8,     9,
-   396,    11,    12,    13,    14,    15,    30,    17,    18,    19,
+    39,    20,    27,    28,    29,     2,     3,     2,     3,     2,
+     3,    49,     9,    10,    11,    22,    51,   120,     2,     3,
+   145,   112,   421,    20,    43,    22,   204,    73,    74,   115,
+   101,   186,    51,    79,    31,    57,    31,   224,    31,    85,
+    21,    22,    22,   230,   226,    46,    43,    31,   175,    95,
+    75,   384,    49,   386,    51,    63,   282,    25,   106,    39,
+    57,     1,    82,   133,   212,   181,   463,    35,    36,    37,
+   133,     1,   111,   116,     9,   225,    30,   102,    46,     3,
+    10,   231,     1,   647,   103,    76,    54,    30,   107,   239,
+    81,   484,     3,     4,   180,    38,     0,   116,     3,   202,
+     3,    98,    82,   125,   101,     0,   103,    31,   573,   106,
+   107,   675,   137,   506,   511,   448,     3,     4,    77,   116,
+    38,   101,   213,     3,     4,    30,    27,    30,   125,    30,
+   150,    76,   152,   224,   289,    36,    81,   176,   133,   230,
+    59,    76,    82,   182,    59,    50,    30,    50,   173,   174,
+    59,   119,    82,   133,    59,    60,    59,    59,    76,   624,
+    38,   207,   130,   279,   186,   292,   563,   237,   501,   285,
+   150,    82,   152,   221,   237,   218,    77,    59,   643,   222,
+    81,   646,   183,   648,   181,    27,     3,     4,   227,   415,
+   589,   656,    77,    77,    78,    82,    81,    38,    76,   218,
+    76,     1,    82,   222,     4,   251,     6,     7,    82,   206,
+    30,    76,    12,    13,    14,   183,    81,    59,    60,   258,
+   245,   218,    76,   688,   221,   222,   378,    81,    28,   381,
+   238,    31,   240,    50,   325,    76,   327,   387,   388,    59,
+    60,   391,   237,    30,    82,   370,   394,    82,   287,   217,
+    77,    30,    36,   234,    81,   236,   236,   237,   408,   409,
+   410,   594,    81,   413,   414,    77,   291,   289,     9,    81,
+   425,    50,    59,    60,    58,   402,    60,    77,    78,    77,
+    59,    60,   279,    81,   434,   282,   468,    76,   285,   439,
+   406,   298,   363,   364,    76,   443,     3,     4,   446,    81,
+     7,   298,    77,   394,    76,   312,    81,    77,   333,     1,
+    59,    81,     4,     5,     6,     7,   297,   298,   298,   405,
+    12,    13,    14,    30,    78,   411,   481,     3,     4,     3,
+     4,     7,   312,     3,     4,     3,    28,    77,    76,     7,
+   490,    81,   433,    50,   363,   364,    59,    60,    59,    60,
+   466,   467,    59,   444,    30,   446,    30,   473,   474,     5,
+    30,     7,    30,    76,    78,    76,   363,   364,   393,    77,
+   367,    77,    78,    81,    50,   525,    50,    77,   503,     7,
+    50,    81,    50,    59,    60,    59,    60,   406,   423,    59,
+    82,    59,    60,   374,   375,   375,   434,   435,     3,     4,
+    59,    60,    30,   425,   423,   530,   407,    59,    60,   406,
+     1,   412,     3,     4,    76,     3,     4,    76,   415,    82,
+   570,    76,    50,    77,   421,    38,   423,    59,   453,    27,
+   469,    59,    60,    50,    51,    52,   586,   434,   435,   407,
+    59,    60,    30,     9,   412,    59,    60,   466,   467,    83,
+    38,   638,    77,   640,   473,   474,    36,    27,    36,   481,
+    30,    77,    50,    81,   503,    36,    36,    78,   493,   466,
+   467,    59,     4,   519,     6,     7,   473,   474,   503,    76,
+    12,    13,    14,    77,    78,     4,     5,     6,     7,    59,
+    60,   530,    76,    12,    13,    14,    28,     3,    59,    60,
+   625,     7,   541,    76,   682,   530,   503,    77,   503,    28,
+   503,    81,   690,   559,    89,    90,   619,   542,    38,   503,
+    76,   489,     6,     7,    30,   466,   467,    78,    12,    13,
+    14,    83,   571,    76,    83,   574,   575,    76,    76,    83,
+   665,   666,   549,   582,    50,    77,    78,   638,    78,   640,
+    78,   589,   549,    59,    32,    38,   591,    83,   597,    76,
+     3,    77,   559,    81,   559,   604,   559,   548,   549,   549,
+    78,    78,   591,    78,    38,   559,   615,    38,    78,     4,
+     5,     6,     7,    81,    78,    38,   625,    12,    13,    14,
+    83,    78,   589,    59,   591,    77,    59,    59,    38,   149,
+   625,    77,     7,    28,   154,   155,    38,    77,   647,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,     1,    77,     3,     4,     5,     6,     7,     8,     9,
+   669,    11,    12,    13,    14,    15,   675,    17,    18,    19,
     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-    30,    31,    77,    33,    34,    38,    50,    77,    77,    16,
-    40,    78,    59,    43,   430,    59,    76,    59,    48,    49,
-    50,    77,    77,    76,    54,    55,     5,     6,     7,    59,
-     5,     6,     7,    12,    13,    14,   452,    12,    13,    14,
-     3,     4,     5,     6,     7,   461,   462,    77,    78,    79,
-    80,     1,    82,     3,     4,    30,     6,     7,     8,     9,
-    17,    11,    12,    13,    14,    77,   482,    76,    76,   485,
-    54,    55,    77,    57,    58,    59,    60,    76,    28,    29,
-    77,    31,     9,    33,    34,    77,   502,    77,    59,   505,
-    40,   507,    76,    43,    81,     6,     7,    77,    48,    49,
-    50,    12,    13,    14,    54,    55,   522,    76,     1,    59,
-    76,     4,    77,     6,     7,    77,     0,   533,     0,    12,
-    13,    14,    46,    47,    48,    49,    50,    51,    52,    79,
-    80,   570,    82,   213,   442,    28,   555,   292,    31,    53,
-   556,   423,   291,   559,     1,   430,     3,     4,     5,     6,
-     7,     8,     9,   189,    11,    12,    13,    14,    15,   505,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,    31,   335,    33,    34,   237,     4,
-     5,     6,     7,    40,    77,    78,    43,    12,    13,    14,
-   606,    48,    49,    50,   327,   460,   432,    54,    55,   245,
-   442,     1,    59,    28,     4,     5,     6,     7,   333,   394,
-    10,   621,    12,    13,    14,    48,    49,    50,    51,    52,
-    77,   666,    79,    80,     1,    82,     3,     4,    28,   444,
-    30,     8,     9,   621,    11,   668,   286,    -1,    15,   367,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,    59,
-    60,    48,    49,    50,    -1,    -1,    76,    54,    55,    -1,
-    -1,    -1,    59,     1,    -1,    -1,     4,    -1,     6,     7,
-    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
-    77,    78,    79,    80,     1,    82,     3,     4,    -1,    -1,
-    28,     8,     9,    31,    11,    -1,    -1,    -1,    15,    -1,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,     4,
-     5,     6,     7,    40,    -1,    10,    43,    12,    13,    14,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    28,    -1,    30,    -1,    -1,    -1,     4,
-     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
-    77,    -1,    79,    80,     1,    82,     3,     4,    -1,    -1,
-    -1,     8,     9,    28,    11,    30,    -1,    -1,    15,    -1,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,     1,    59,     3,     4,    -1,    -1,    -1,     8,     9,
-    -1,    11,    45,    46,    47,    48,    49,    50,    51,    52,
-    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
-    60,     1,    -1,     3,     4,    -1,    -1,    -1,     8,     9,
-    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
-    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
-    60,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,     9,
-    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
-    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,
-    -1,    31,    -1,    33,    34,    -1,    36,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
-    60,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,     9,
-    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
-    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,     1,    -1,     3,    59,
-    -1,    -1,    -1,     8,     9,     1,    11,    -1,     4,     5,
-     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    79,
-    80,    -1,    82,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,    27,    28,    -1,    30,    40,    -1,    -1,    43,    -1,
-    36,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    59,    60,    -1,    -1,     1,    -1,    -1,
-     4,     5,     6,     7,    79,    80,    -1,    82,    12,    13,
-    14,    77,     3,    -1,    -1,    81,    82,     8,     9,    -1,
-    11,    -1,    -1,    27,    28,    -1,    30,    -1,    -1,    -1,
-    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    29,     3,
-    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    59,    60,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    29,    -1,    31,    59,    33,
-    34,    -1,    -1,    77,    -1,    -1,    40,    81,    82,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,
-    54,    55,    83,    -1,     3,    59,    -1,    -1,    -1,     8,
-     9,    -1,    11,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    79,    80,    -1,    -1,    83,
+    30,    31,    77,    33,    34,    16,    78,     5,     6,     7,
+    40,    59,    77,    43,    12,    13,    14,    77,    48,    49,
+    50,    59,    76,    17,    54,    55,    77,     1,    77,    59,
+     4,     5,     6,     7,    76,    76,    10,    76,    12,    13,
+    14,     3,     4,     5,     6,     7,    77,    77,    78,    79,
+    80,     9,    82,    77,    28,    48,    49,    50,    51,    52,
+   260,   261,     1,    77,     3,     4,     5,     6,     7,     8,
+     9,    59,    11,    12,    13,    14,    15,    81,    17,    18,
+    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+    29,    30,    31,    77,    33,    34,    76,     4,     5,     6,
+     7,    40,    77,    10,    43,    12,    13,    14,    82,    48,
+    49,    50,    76,     0,    77,    54,    55,     0,   292,   574,
+    59,    28,   213,    30,   559,   444,     4,     5,     6,     7,
+    53,   424,   332,   189,    12,    13,    14,   291,    77,   431,
+    79,    80,   509,    82,   344,   462,     1,   433,     3,     4,
+    28,   335,    30,     8,     9,   327,    11,   237,   245,   444,
+    15,   625,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,   333,    29,   446,    31,   377,    33,    34,
+   395,   625,   672,   670,   286,    40,    54,    55,    43,    57,
+    58,    59,    60,    48,    49,    50,   367,   397,    -1,    54,
+    55,    -1,    -1,    -1,    59,     1,    -1,     3,     4,     5,
+     6,     7,    -1,    -1,    10,    -1,    12,    13,    14,    -1,
+    -1,    -1,    77,    78,    79,    80,    -1,    82,     5,     6,
+     7,   431,    28,    -1,    30,    12,    13,    14,    -1,     1,
+    -1,    -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
+    12,    13,    14,    30,   454,    45,    46,    47,    48,    49,
+    50,    51,    52,   463,   464,    27,    28,    -1,    30,    -1,
+    -1,    -1,    -1,    -1,    36,     1,    -1,     3,     4,    -1,
+    76,    -1,     8,     9,   484,    11,    -1,   487,    -1,    15,
+    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    -1,    29,    -1,    31,   506,    33,    34,   509,
+    -1,   511,    -1,    -1,    40,    77,    -1,    43,    -1,    81,
+    82,    -1,    48,    49,    50,    -1,   526,    -1,    54,    55,
+    -1,    -1,    -1,    59,    -1,    54,    55,   537,    57,    58,
+    59,    60,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    77,    -1,    79,    80,    -1,    82,    76,    -1,     1,
+   560,     3,     4,   563,    -1,    -1,     8,     9,    -1,    11,
+    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+   610,    -1,    54,    55,    -1,    -1,     1,    59,     3,     4,
+    -1,     6,     7,     8,     9,    -1,    11,    12,    13,    14,
+    -1,    -1,    -1,    -1,    -1,    77,    -1,    79,    80,    -1,
+    82,    -1,    -1,    28,    29,    -1,    31,    -1,    33,    34,
+    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
+    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    -1,    -1,     1,    59,     3,     4,    -1,    -1,    -1,
+     8,     9,    -1,    11,    -1,    -1,    -1,     1,    -1,    -1,
+     4,     5,     6,     7,    79,    80,    10,    82,    12,    13,
+    14,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    28,    43,    30,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    58,    59,    60,     1,    -1,     3,     4,    -1,    -1,    -1,
+     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,
+    78,    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,
+    -1,    29,    76,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    58,    59,    60,     1,    -1,     3,    -1,    -1,    -1,    -1,
+     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,
+    78,    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    -1,    36,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    58,    59,    60,     1,    -1,     3,    -1,    -1,    -1,    -1,
+     8,     9,    -1,    11,     1,    -1,    -1,     4,    -1,     6,
+     7,    79,    80,    -1,    82,    12,    13,    14,    -1,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    28,    40,    -1,    31,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,     1,    -1,
+     3,    59,    -1,    -1,    -1,     8,     9,     1,    11,    -1,
+     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
+    14,    79,    80,    -1,    82,    -1,    29,    -1,    31,    -1,
+    33,    34,    -1,    27,    28,    -1,    30,    40,    -1,    -1,
+    43,    -1,    36,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,    -1,    -1,    59,    46,    47,    48,
+    49,    50,    51,    52,    -1,    59,    60,    -1,    -1,     1,
+    -1,    -1,     4,     5,     6,     7,    79,    80,    -1,    82,
+    12,    13,    14,    77,     3,    -1,    -1,    81,    82,     8,
+     9,    -1,    11,    -1,    -1,    27,    28,    -1,    30,    -1,
+    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,
     29,     3,    31,    -1,    33,    34,     8,     9,    -1,    11,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
+    -1,    40,    -1,    -1,    43,    -1,    -1,    59,    60,    48,
     49,    50,    -1,    -1,    -1,    54,    55,    29,    -1,    31,
-    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+    59,    33,    34,    -1,    -1,    77,    -1,    -1,    40,    81,
+    82,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
     79,    80,    54,    55,    83,    -1,     3,    59,    -1,    -1,
-    -1,     8,     9,    -1,    11,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52,    -1,    79,    80,    -1,
+    -1,     8,     9,    -1,    11,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    79,    80,    -1,
     -1,    83,    29,     3,    31,    -1,    33,    34,     8,     9,
     -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
     -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    29,
     -1,    31,    59,    33,    34,    -1,    -1,    -1,    -1,    -1,
     40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
     50,    -1,    79,    80,    54,    55,    83,    -1,     3,    59,
-    -1,    -1,    -1,     8,     9,    -1,    11,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    -1,    -1,    79,
-    80,    -1,    -1,    83,    29,    -1,    31,    -1,    33,    34,
-    10,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
+    -1,    -1,    -1,     8,     9,    -1,    11,    42,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    -1,    79,
+    80,    -1,    -1,    83,    29,     3,    31,    -1,    33,    34,
+     8,     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,
     -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    35,    36,    37,    38,    39,
-    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    -1,    79,    80,    -1,    -1,    83,     3,
-     4,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
-    14,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,    30,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    30,    -1,    -1,
-    54,    55,    35,    36,    37,    59,    39,    40,    41,    42,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    -1,    -1,    -1,    77,    -1,    79,    80,    -1,    82,     3,
-     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
-    -1,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,     3,    -1,    59,    -1,    -1,     8,     9,
-    -1,    11,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    -1,    -1,    77,    -1,    79,    80,    -1,    82,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
-     3,     4,     5,     6,     7,     8,     9,    -1,    11,    12,
-    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
-    80,    -1,    82,    -1,    -1,    28,    29,    30,    31,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    -1,     3,     4,    59,     6,     7,     8,
-     9,    -1,    11,    12,    13,    14,    -1,     3,    -1,    -1,
-    -1,    -1,     8,     9,    -1,    11,    79,    80,    -1,    28,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    29,    43,    31,    -1,    33,    34,    48,
-    49,    50,    -1,    -1,    40,    54,    55,    43,    -1,    -1,
-    59,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-     3,    -1,    -1,    59,    -1,     8,     9,    -1,    11,    -1,
-    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    77,    -1,    79,    80,    -1,    29,     3,    31,    -1,
-    33,    34,     8,     9,    -1,    11,    -1,    40,    -1,    -1,
+    55,    29,    -1,    31,    59,    33,    34,    -1,     4,    -1,
+     6,     7,    40,    -1,    -1,    43,    12,    13,    14,    -1,
+    48,    49,    50,    -1,    79,    80,    54,    55,    83,    -1,
+     3,    59,    28,    -1,    30,     8,     9,    -1,    11,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
+    -1,    79,    80,    -1,    50,    83,    29,    -1,    31,    -1,
+    33,    34,    10,    59,    60,    -1,    -1,    40,    -1,    -1,
     43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    29,     3,    31,    59,    33,    34,     8,
-     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    79,    80,    54,    55,
-    29,     3,    31,    59,    33,    34,     8,     9,    -1,    11,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    79,    80,    54,    55,    29,    -1,    31,
-    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    54,    55,    -1,    -1,    -1,    59,    35,    36,    37,
+    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52,    -1,    79,    80,    -1,    -1,
+    83,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
+    12,    13,    14,    15,    -1,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    30,
+    -1,    -1,    54,    55,    35,    36,    37,    59,    39,    40,
+    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    -1,    -1,    -1,    77,    -1,    79,    80,    -1,
+    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,
+    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
     -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    79,    80,    54,    55,    -1,    -1,     1,    59,     3,     4,
-     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    -1,
-    -1,    -1,    27,    28,    -1,    30,    31,     4,     5,     6,
-     7,     4,     5,     6,     7,    12,    13,    14,    -1,    12,
-    13,    14,    -1,    -1,    10,    50,    -1,    -1,    -1,    -1,
-    -1,    28,    -1,    30,    59,    28,    -1,    30,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
-    36,    37,    77,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    40,    41,    42,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    77,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    35,    36,    37,    83,    39,    40,
+    -1,    -1,    54,    55,    -1,     3,    -1,    59,    -1,    -1,
+     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    77,    -1,    79,    80,    -1,
+    82,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    -1,    59,     3,     4,     5,     6,     7,     8,     9,    -1,
+    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    79,    80,    -1,    82,    -1,    -1,    28,    29,    30,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,     3,     4,    59,     6,
+     7,     8,     9,    -1,    11,    12,    13,    14,    -1,     3,
+    -1,    -1,    -1,    -1,     8,     9,    -1,    11,    79,    80,
+    -1,    28,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    29,    43,    31,    -1,    33,
+    34,    48,    49,    50,    -1,    -1,    40,    54,    55,    43,
+    -1,    -1,    59,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,     3,    -1,    -1,    59,    -1,     8,     9,    -1,
+    11,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    77,    -1,    79,    80,    -1,    29,     3,
+    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    29,     3,    31,    59,    33,
+    34,     8,     9,    -1,    11,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,
+    54,    55,    29,     3,    31,    59,    33,    34,     8,     9,
+    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
+    -1,    48,    49,    50,    -1,    79,    80,    54,    55,    29,
+    -1,    31,    59,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    79,    80,    54,    55,    -1,    -1,     1,    59,
+     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
+    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
+    80,    -1,    -1,    -1,    27,    28,    -1,    30,    31,     4,
+     5,     6,     7,     4,     5,     6,     7,    12,    13,    14,
+    -1,    12,    13,    14,    -1,    -1,    10,    50,    -1,    -1,
+    -1,    -1,    -1,    28,    -1,    30,    59,    28,    -1,    30,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    35,    36,    37,    77,    39,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    40,
+    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    77,    -1,    -1,    -1,    77,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    37,    83,
+    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+    49,    50,    51,    52,    35,    36,    37,    38,    39,    40,
     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-    51,    52,    35,    36,    37,    38,    39,    40,    41,    42,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
-    36,    37,    83,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    37,    -1,    39,
-    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52
+    51,    52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    35,    36,    37,    83,    39,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    37,
+    -1,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/lib/bison.simple"
@@ -2918,13 +2920,22 @@ case 266:
     break;}
 case 267:
 #line 1407 "c-parse.y"
-{ if (pedantic)
-		    pedwarn ("ANSI C forbids member declarations with no members");
-		  shadow_tag(yyvsp[0].ttype);
-		  yyval.ttype = NULL_TREE; ;
+{
+		  /* Support for unnamed structs or unions as members of 
+		     structs or unions (which is [a] useful and [b] supports 
+		     MS P-SDK).  */
+		  if (pedantic)
+		    pedwarn ("ANSI C doesn't support unnamed structs/unions");
+
+		  yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE);
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-3].itype);
+		;
     break;}
 case 268:
-#line 1412 "c-parse.y"
+#line 1421 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  current_declspecs = TREE_VALUE (declspec_stack);
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -2932,144 +2943,144 @@ case 268:
 		  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 269:
-#line 1418 "c-parse.y"
+#line 1427 "c-parse.y"
 { if (pedantic)
 		    pedwarn ("ANSI C forbids member declarations with no members");
 		  shadow_tag(yyvsp[0].ttype);
 		  yyval.ttype = NULL_TREE; ;
     break;}
 case 270:
-#line 1423 "c-parse.y"
+#line 1432 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 271:
-#line 1425 "c-parse.y"
+#line 1434 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  pedantic = yyvsp[-1].itype; ;
     break;}
 case 273:
-#line 1432 "c-parse.y"
+#line 1441 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 274:
-#line 1437 "c-parse.y"
+#line 1446 "c-parse.y"
 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
 		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
 case 275:
-#line 1441 "c-parse.y"
+#line 1450 "c-parse.y"
 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
 		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
 case 276:
-#line 1444 "c-parse.y"
+#line 1453 "c-parse.y"
 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
 		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
 case 278:
-#line 1456 "c-parse.y"
+#line 1465 "c-parse.y"
 { if (yyvsp[-2].ttype == error_mark_node)
 		    yyval.ttype = yyvsp[-2].ttype;
 		  else
 		    yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
     break;}
 case 279:
-#line 1461 "c-parse.y"
+#line 1470 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 280:
-#line 1467 "c-parse.y"
+#line 1476 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 281:
-#line 1469 "c-parse.y"
+#line 1478 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 282:
-#line 1474 "c-parse.y"
+#line 1483 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 283:
-#line 1476 "c-parse.y"
+#line 1485 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 284:
-#line 1481 "c-parse.y"
+#line 1490 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 286:
-#line 1487 "c-parse.y"
+#line 1496 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 287:
-#line 1489 "c-parse.y"
+#line 1498 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 288:
-#line 1494 "c-parse.y"
+#line 1503 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 289:
-#line 1496 "c-parse.y"
+#line 1505 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 290:
-#line 1501 "c-parse.y"
+#line 1510 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 291:
-#line 1504 "c-parse.y"
+#line 1513 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 292:
-#line 1506 "c-parse.y"
+#line 1515 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 293:
-#line 1508 "c-parse.y"
+#line 1517 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 294:
-#line 1510 "c-parse.y"
+#line 1519 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 295:
-#line 1512 "c-parse.y"
+#line 1521 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 296:
-#line 1514 "c-parse.y"
+#line 1523 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 297:
-#line 1516 "c-parse.y"
+#line 1525 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 298:
-#line 1518 "c-parse.y"
+#line 1527 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
 case 299:
-#line 1522 "c-parse.y"
+#line 1531 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 300:
-#line 1531 "c-parse.y"
+#line 1540 "c-parse.y"
 {
 		  if (pedantic && yyvsp[0].ends_in_label)
 		    pedwarn ("ANSI C forbids label at end of compound statement");
 		;
     break;}
 case 302:
-#line 1540 "c-parse.y"
+#line 1549 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 303:
-#line 1542 "c-parse.y"
+#line 1551 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
 case 307:
-#line 1554 "c-parse.y"
+#line 1563 "c-parse.y"
 { emit_line_note (input_filename, lineno);
 		  pushlevel (0);
 		  clear_last_expr ();
@@ -3078,12 +3089,12 @@ case 307:
 		;
     break;}
 case 309:
-#line 1567 "c-parse.y"
+#line 1576 "c-parse.y"
 { if (pedantic)
 		    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
 case 312:
-#line 1578 "c-parse.y"
+#line 1587 "c-parse.y"
 { tree link;
 		  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
 		    {
@@ -3094,19 +3105,19 @@ case 312:
 		;
     break;}
 case 313:
-#line 1592 "c-parse.y"
+#line 1601 "c-parse.y"
 {;
     break;}
 case 315:
-#line 1596 "c-parse.y"
+#line 1605 "c-parse.y"
 { compstmt_count++; ;
     break;}
 case 316:
-#line 1599 "c-parse.y"
+#line 1608 "c-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
 case 317:
-#line 1601 "c-parse.y"
+#line 1610 "c-parse.y"
 { emit_line_note (input_filename, lineno);
 		  expand_end_bindings (getdecls (), 1, 0);
 		  yyval.ttype = poplevel (1, 1, 0);
@@ -3116,7 +3127,7 @@ case 317:
 		    pop_momentary (); ;
     break;}
 case 318:
-#line 1609 "c-parse.y"
+#line 1618 "c-parse.y"
 { emit_line_note (input_filename, lineno);
 		  expand_end_bindings (getdecls (), kept_level_p (), 0);
 		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3126,7 +3137,7 @@ case 318:
 		    pop_momentary (); ;
     break;}
 case 319:
-#line 1617 "c-parse.y"
+#line 1626 "c-parse.y"
 { emit_line_note (input_filename, lineno);
 		  expand_end_bindings (getdecls (), kept_level_p (), 0);
 		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3136,7 +3147,7 @@ case 319:
 		    pop_momentary (); ;
     break;}
 case 322:
-#line 1637 "c-parse.y"
+#line 1646 "c-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
 		  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
 				       compstmt_count);
@@ -3146,7 +3157,7 @@ case 322:
 		  position_after_white_space (); ;
     break;}
 case 323:
-#line 1651 "c-parse.y"
+#line 1660 "c-parse.y"
 { stmt_count++;
 		  compstmt_count++;
 		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3156,43 +3167,43 @@ case 323:
 		  position_after_white_space (); ;
     break;}
 case 324:
-#line 1659 "c-parse.y"
+#line 1668 "c-parse.y"
 { expand_loop_continue_here (); ;
     break;}
 case 325:
-#line 1663 "c-parse.y"
+#line 1672 "c-parse.y"
 { yyval.filename = input_filename; ;
     break;}
 case 326:
-#line 1667 "c-parse.y"
+#line 1676 "c-parse.y"
 { yyval.lineno = lineno; ;
     break;}
 case 327:
-#line 1672 "c-parse.y"
+#line 1681 "c-parse.y"
 { ;
     break;}
 case 328:
-#line 1677 "c-parse.y"
+#line 1686 "c-parse.y"
 { ;
     break;}
 case 329:
-#line 1682 "c-parse.y"
+#line 1691 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 330:
-#line 1687 "c-parse.y"
+#line 1696 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
 case 331:
-#line 1689 "c-parse.y"
+#line 1698 "c-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
 case 332:
-#line 1695 "c-parse.y"
+#line 1704 "c-parse.y"
 { stmt_count++; ;
     break;}
 case 334:
-#line 1698 "c-parse.y"
+#line 1707 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 /* It appears that this should not be done--that a non-lvalue array
@@ -3211,19 +3222,19 @@ case 334:
 		  clear_momentary (); ;
     break;}
 case 335:
-#line 1715 "c-parse.y"
+#line 1724 "c-parse.y"
 { c_expand_start_else ();
 		  yyvsp[-1].itype = stmt_count;
 		  position_after_white_space (); ;
     break;}
 case 336:
-#line 1719 "c-parse.y"
+#line 1728 "c-parse.y"
 { c_expand_end_cond ();
 		  if (extra_warnings && stmt_count == yyvsp[-3].itype)
 		    warning ("empty body in an else-statement"); ;
     break;}
 case 337:
-#line 1723 "c-parse.y"
+#line 1732 "c-parse.y"
 { c_expand_end_cond ();
 		  /* This warning is here instead of in simple_if, because we
 		     do not want a warning if an empty if is followed by an
@@ -3234,11 +3245,11 @@ case 337:
 						"empty body in an if-statement"); ;
     break;}
 case 338:
-#line 1735 "c-parse.y"
+#line 1744 "c-parse.y"
 { c_expand_end_cond (); ;
     break;}
 case 339:
-#line 1737 "c-parse.y"
+#line 1746 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
 		  /* The emit_nop used to come before emit_line_note,
@@ -3250,7 +3261,7 @@ case 339:
 		  emit_nop (); ;
     break;}
 case 340:
-#line 1747 "c-parse.y"
+#line 1756 "c-parse.y"
 { /* Don't start the loop till we have succeeded
 		     in parsing the end test.  This is to make sure
 		     that we end every loop we start.  */
@@ -3261,11 +3272,11 @@ case 340:
 		  position_after_white_space (); ;
     break;}
 case 341:
-#line 1756 "c-parse.y"
+#line 1765 "c-parse.y"
 { expand_end_loop (); ;
     break;}
 case 342:
-#line 1759 "c-parse.y"
+#line 1768 "c-parse.y"
 { emit_line_note (input_filename, lineno);
 		  expand_exit_loop_if_false (NULL_PTR,
 					     truthvalue_conversion (yyvsp[-2].ttype));
@@ -3273,12 +3284,12 @@ case 342:
 		  clear_momentary (); ;
     break;}
 case 343:
-#line 1766 "c-parse.y"
+#line 1775 "c-parse.y"
 { expand_end_loop ();
 		  clear_momentary (); ;
     break;}
 case 344:
-#line 1770 "c-parse.y"
+#line 1779 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
 		  /* See comment in `while' alternative, above.  */
@@ -3291,12 +3302,12 @@ case 344:
 		;
     break;}
 case 345:
-#line 1782 "c-parse.y"
+#line 1791 "c-parse.y"
 { yyvsp[0].lineno = lineno;
 		  yyval.filename = input_filename; ;
     break;}
 case 346:
-#line 1785 "c-parse.y"
+#line 1794 "c-parse.y"
 { 
 		  /* Start the loop.  Doing this after parsing
 		     all the expressions ensures we will end the loop.  */
@@ -3314,7 +3325,7 @@ case 346:
 		  position_after_white_space (); ;
     break;}
 case 347:
-#line 1801 "c-parse.y"
+#line 1810 "c-parse.y"
 { /* Emit the increment expression, with a line number.  */
 		  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
 		  expand_loop_continue_here ();
@@ -3327,7 +3338,7 @@ case 347:
 		  expand_end_loop (); ;
     break;}
 case 348:
-#line 1812 "c-parse.y"
+#line 1821 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
 		  c_expand_start_case (yyvsp[-1].ttype);
@@ -3337,7 +3348,7 @@ case 348:
 		  position_after_white_space (); ;
     break;}
 case 349:
-#line 1820 "c-parse.y"
+#line 1829 "c-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
 		  if (yychar == CONSTANT || yychar == STRING)
 		    pop_momentary_nofree ();
@@ -3345,33 +3356,33 @@ case 349:
 		    pop_momentary (); ;
     break;}
 case 350:
-#line 1826 "c-parse.y"
+#line 1835 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 		  if ( ! expand_exit_something ())
 		    error ("break statement not within loop or switch"); ;
     break;}
 case 351:
-#line 1831 "c-parse.y"
+#line 1840 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 		  if (! expand_continue_loop (NULL_PTR))
 		    error ("continue statement not within a loop"); ;
     break;}
 case 352:
-#line 1836 "c-parse.y"
+#line 1845 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 		  c_expand_return (NULL_TREE); ;
     break;}
 case 353:
-#line 1840 "c-parse.y"
+#line 1849 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
 		  c_expand_return (yyvsp[-1].ttype); ;
     break;}
 case 354:
-#line 1844 "c-parse.y"
+#line 1853 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
 		  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3383,7 +3394,7 @@ case 354:
 		    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 355:
-#line 1855 "c-parse.y"
+#line 1864 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
 		  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
@@ -3391,7 +3402,7 @@ case 355:
 					 input_filename, lineno); ;
     break;}
 case 356:
-#line 1862 "c-parse.y"
+#line 1871 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
 		  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
@@ -3399,7 +3410,7 @@ case 356:
 					 input_filename, lineno); ;
     break;}
 case 357:
-#line 1870 "c-parse.y"
+#line 1879 "c-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
 		  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
@@ -3407,7 +3418,7 @@ case 357:
 					 input_filename, lineno); ;
     break;}
 case 358:
-#line 1876 "c-parse.y"
+#line 1885 "c-parse.y"
 { tree decl;
 		  stmt_count++;
 		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3420,7 +3431,7 @@ case 358:
 		;
     break;}
 case 359:
-#line 1887 "c-parse.y"
+#line 1896 "c-parse.y"
 { if (pedantic)
 		    pedwarn ("ANSI C forbids `goto *expr;'");
 		  stmt_count++;
@@ -3428,7 +3439,7 @@ case 359:
 		  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
 case 362:
-#line 1902 "c-parse.y"
+#line 1911 "c-parse.y"
 {
 	    /* The value returned by this action is  */
 	    /*      1 if everything is OK */ 
@@ -3451,14 +3462,14 @@ case 362:
 	  ;
     break;}
 case 363:
-#line 1923 "c-parse.y"
+#line 1932 "c-parse.y"
 {
 	    if (yyvsp[-1].itype)
 	      iterator_for_loop_end (yyvsp[-3].ttype);
 	  ;
     break;}
 case 364:
-#line 1958 "c-parse.y"
+#line 1967 "c-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
 		  register tree label
 		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -3491,7 +3502,7 @@ case 364:
 		  position_after_white_space (); ;
     break;}
 case 365:
-#line 1989 "c-parse.y"
+#line 1998 "c-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
 		  register tree value2 = check_case_value (yyvsp[-1].ttype);
 		  register tree label
@@ -3524,7 +3535,7 @@ case 365:
 		  position_after_white_space (); ;
     break;}
 case 366:
-#line 2020 "c-parse.y"
+#line 2029 "c-parse.y"
 {
 		  tree duplicate;
 		  register tree label
@@ -3541,7 +3552,7 @@ case 366:
 		  position_after_white_space (); ;
     break;}
 case 367:
-#line 2035 "c-parse.y"
+#line 2044 "c-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
 		  stmt_count++;
 		  emit_nop ();
@@ -3553,52 +3564,52 @@ case 367:
 		  position_after_white_space (); ;
     break;}
 case 368:
-#line 2050 "c-parse.y"
+#line 2059 "c-parse.y"
 { emit_line_note (input_filename, lineno);
 		  yyval.ttype = NULL_TREE; ;
     break;}
 case 369:
-#line 2053 "c-parse.y"
+#line 2062 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
 case 370:
-#line 2058 "c-parse.y"
+#line 2067 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 372:
-#line 2065 "c-parse.y"
+#line 2074 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 375:
-#line 2072 "c-parse.y"
+#line 2081 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 376:
-#line 2077 "c-parse.y"
+#line 2086 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 377:
-#line 2082 "c-parse.y"
+#line 2091 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
 case 378:
-#line 2084 "c-parse.y"
+#line 2093 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
 case 379:
-#line 2090 "c-parse.y"
+#line 2099 "c-parse.y"
 { pushlevel (0);
 		  clear_parm_order ();
 		  declare_parm_level (0); ;
     break;}
 case 380:
-#line 2094 "c-parse.y"
+#line 2103 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  parmlist_tags_warning ();
 		  poplevel (0, 0, 0); ;
     break;}
 case 382:
-#line 2102 "c-parse.y"
+#line 2111 "c-parse.y"
 { tree parm;
 		  if (pedantic)
 		    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3608,19 +3619,19 @@ case 382:
 		  clear_parm_order (); ;
     break;}
 case 383:
-#line 2110 "c-parse.y"
+#line 2119 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 384:
-#line 2112 "c-parse.y"
+#line 2121 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
 case 385:
-#line 2118 "c-parse.y"
+#line 2127 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 386:
-#line 2120 "c-parse.y"
+#line 2129 "c-parse.y"
 { yyval.ttype = get_parm_info (0);
 		  /* Gcc used to allow this as an extension.  However, it does
 		     not work for all targets, and thus has been disabled.
@@ -3632,23 +3643,23 @@ case 386:
 		;
     break;}
 case 387:
-#line 2130 "c-parse.y"
+#line 2139 "c-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
 case 388:
-#line 2132 "c-parse.y"
+#line 2141 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 389:
-#line 2137 "c-parse.y"
+#line 2146 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 390:
-#line 2139 "c-parse.y"
+#line 2148 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 391:
-#line 2146 "c-parse.y"
+#line 2155 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -3659,7 +3670,7 @@ case 391:
 		  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 392:
-#line 2155 "c-parse.y"
+#line 2164 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -3670,7 +3681,7 @@ case 392:
 		  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 393:
-#line 2164 "c-parse.y"
+#line 2173 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -3681,7 +3692,7 @@ case 393:
 		  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 394:
-#line 2173 "c-parse.y"
+#line 2182 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -3692,7 +3703,7 @@ case 394:
 		  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 395:
-#line 2183 "c-parse.y"
+#line 2192 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -3703,19 +3714,19 @@ case 395:
 		  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 396:
-#line 2197 "c-parse.y"
+#line 2206 "c-parse.y"
 { pushlevel (0);
 		  clear_parm_order ();
 		  declare_parm_level (1); ;
     break;}
 case 397:
-#line 2201 "c-parse.y"
+#line 2210 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  parmlist_tags_warning ();
 		  poplevel (0, 0, 0); ;
     break;}
 case 399:
-#line 2209 "c-parse.y"
+#line 2218 "c-parse.y"
 { tree t;
 		  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
 		    if (TREE_VALUE (t) == NULL_TREE)
@@ -3723,23 +3734,23 @@ case 399:
 		  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 400:
-#line 2219 "c-parse.y"
+#line 2228 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 401:
-#line 2221 "c-parse.y"
+#line 2230 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 402:
-#line 2227 "c-parse.y"
+#line 2236 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 403:
-#line 2229 "c-parse.y"
+#line 2238 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 404:
-#line 2234 "c-parse.y"
+#line 2243 "c-parse.y"
 { yyval.itype = pedantic;
 		  pedantic = 0; ;
     break;}
@@ -3941,5 +3952,5 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 2238 "c-parse.y"
+#line 2247 "c-parse.y"
 
Index: gcc-2.95.2/gcc/c-parse.y
===================================================================
RCS file: /homes/khan/src/CVSROOT/gcc-2.95.2/gcc/c-parse.y,v
retrieving revision 1.1.1.1
diff -u -3 -p -r1.1.1.1 c-parse.y
--- gcc-2.95.2/gcc/c-parse.y	1999/11/05 01:09:41	1.1.1.1
+++ gcc-2.95.2/gcc/c-parse.y	1999/11/05 05:50:15
@@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA.  */
 /* To whomever it may concern: I have heard that such a thing was once
    written by AT&T, but I have never seen it.  */
 
-%expect 51
+%expect 52
 
 /* These are the 23 conflicts you should get in parse.output;
    the state numbers may vary if minor changes in the grammar are made.
@@ -1403,12 +1403,21 @@ component_decl:
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
 		  declspec_stack = TREE_CHAIN (declspec_stack);
 		  resume_momentary ($2); }
-	| typed_typespecs
-		{ if (pedantic)
-		    pedwarn ("ANSI C forbids member declarations with no members");
-		  shadow_tag($1);
-		  $$ = NULL_TREE; }
-	| nonempty_type_quals setspecs components
+	| typed_typespecs setspecs save_filename save_lineno maybe_attribute
+		{
+		  /* Support for unnamed structs or unions as members of 
+		     structs or unions (which is [a] useful and [b] supports 
+		     MS P-SDK).  */
+		  if (pedantic)
+		    pedwarn ("ANSI C doesn't support unnamed structs/unions");
+
+		  $$ = grokfield($3, $4, NULL, current_declspecs, NULL_TREE);
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2);
+		}
+    | nonempty_type_quals setspecs components
 		{ $$ = $3;
 		  current_declspecs = TREE_VALUE (declspec_stack);
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
Index: gcc-2.95.2/gcc/c-parse.in
===================================================================
RCS file: /homes/khan/src/CVSROOT/gcc-2.95.2/gcc/c-parse.in,v
retrieving revision 1.1.1.1
diff -u -3 -p -r1.1.1.1 c-parse.in
--- gcc-2.95.2/gcc/c-parse.in	1999/11/05 01:09:41	1.1.1.1
+++ gcc-2.95.2/gcc/c-parse.in	1999/11/05 05:50:15
@@ -28,10 +28,10 @@ Boston, MA 02111-1307, USA.  */
    written by AT&T, but I have never seen it.  */
 
 ifobjc
-%expect 66
+%expect 73
 end ifobjc
 ifc
-%expect 51
+%expect 52
 
 /* These are the 23 conflicts you should get in parse.output;
    the state numbers may vary if minor changes in the grammar are made.
@@ -1594,12 +1594,21 @@ component_decl:
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
 		  declspec_stack = TREE_CHAIN (declspec_stack);
 		  resume_momentary ($2); }
-	| typed_typespecs
-		{ if (pedantic)
-		    pedwarn ("ANSI C forbids member declarations with no members");
-		  shadow_tag($1);
-		  $$ = NULL_TREE; }
-	| nonempty_type_quals setspecs components
+	| typed_typespecs setspecs save_filename save_lineno maybe_attribute
+		{
+		  /* Support for unnamed structs or unions as members of 
+		     structs or unions (which is [a] useful and [b] supports 
+		     MS P-SDK).  */
+		  if (pedantic)
+		    pedwarn ("ANSI C doesn't support unnamed structs/unions");
+
+		  $$ = grokfield($3, $4, NULL, current_declspecs, NULL_TREE);
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2);
+		}
+    	| nonempty_type_quals setspecs components
 		{ $$ = $3;
 		  current_declspecs = TREE_VALUE (declspec_stack);
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
Index: gcc-2.95.2/gcc/objc/objc-parse.y
===================================================================
RCS file: /homes/khan/src/CVSROOT/gcc-2.95.2/gcc/objc/objc-parse.y,v
retrieving revision 1.1.1.1
diff -u -3 -p -r1.1.1.1 objc-parse.y
--- gcc-2.95.2/gcc/objc-parse.y	1999/11/05 01:09:58	1.1.1.1
+++ gcc-2.95.2/gcc/objc-parse.y	1999/11/05 05:46:18
@@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA.  */
 /* To whomever it may concern: I have heard that such a thing was once
    written by AT&T, but I have never seen it.  */
 
-%expect 66
+%expect 73
 
 %{
 #include "config.h"
@@ -1510,12 +1510,21 @@ component_decl:
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
 		  declspec_stack = TREE_CHAIN (declspec_stack);
 		  resume_momentary ($2); }
-	| typed_typespecs
-		{ if (pedantic)
-		    pedwarn ("ANSI C forbids member declarations with no members");
-		  shadow_tag($1);
-		  $$ = NULL_TREE; }
-	| nonempty_type_quals setspecs components
+	| typed_typespecs setspecs save_filename save_lineno maybe_attribute
+		{
+		  /* Support for unnamed structs or unions as members of 
+		     structs or unions (which is [a] useful and [b] supports 
+		     MS P-SDK).  */
+		  if (pedantic)
+		    pedwarn ("ANSI C doesn't support unnamed structs/unions");
+
+		  $$ = grokfield($3, $4, NULL, current_declspecs, NULL_TREE);
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary ($2);
+		}
+    | nonempty_type_quals setspecs components
 		{ $$ = $3;
 		  current_declspecs = TREE_VALUE (declspec_stack);
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
Index: gcc-2.95.2/gcc/objc/objc-parse.c
===================================================================
RCS file: /homes/khan/src/CVSROOT/gcc-2.95.2/gcc/objc/objc-parse.c,v
retrieving revision 1.1.1.1
diff -u -3 -p -r1.1.1.1 objc-parse.c
--- gcc-2.95.2/gcc/objc-parse.c	1999/11/05 01:09:58	1.1.1.1
+++ gcc-2.95.2/gcc/objc-parse.c	1999/11/05 05:46:18
@@ -146,7 +146,7 @@ extern void yyprint			PROTO ((FILE *, in
 
 
 
-#define	YYFINAL		955
+#define	YYFINAL		959
 #define	YYFLAG		-32768
 #define	YYNTBASE	84
 
@@ -216,36 +216,36 @@ static const short yyprhs[] = {     0,
    725,   729,   733,   737,   742,   746,   750,   752,   754,   757,
    759,   762,   764,   767,   768,   776,   782,   785,   786,   794,
    800,   803,   804,   813,   814,   822,   825,   826,   828,   829,
-   831,   833,   836,   837,   841,   844,   849,   853,   855,   859,
-   861,   863,   866,   868,   872,   877,   884,   890,   892,   896,
-   898,   900,   904,   907,   910,   911,   913,   915,   918,   919,
-   922,   926,   930,   933,   937,   942,   946,   949,   953,   956,
-   960,   962,   964,   967,   970,   971,   973,   976,   977,   978,
-   980,   982,   985,   989,   991,   994,   996,   999,  1006,  1012,
-  1018,  1021,  1024,  1029,  1030,  1035,  1036,  1037,  1041,  1046,
-  1050,  1052,  1054,  1056,  1058,  1061,  1062,  1067,  1069,  1073,
-  1074,  1075,  1083,  1089,  1092,  1093,  1094,  1095,  1108,  1109,
-  1116,  1119,  1122,  1125,  1129,  1136,  1145,  1156,  1169,  1173,
-  1178,  1180,  1182,  1183,  1190,  1194,  1200,  1203,  1207,  1208,
-  1210,  1211,  1213,  1214,  1216,  1218,  1222,  1227,  1229,  1233,
-  1234,  1237,  1240,  1241,  1246,  1249,  1250,  1252,  1254,  1258,
-  1260,  1264,  1269,  1274,  1279,  1284,  1289,  1290,  1293,  1295,
-  1298,  1300,  1304,  1306,  1310,  1312,  1314,  1316,  1318,  1320,
-  1322,  1324,  1326,  1330,  1334,  1339,  1340,  1341,  1352,  1353,
-  1360,  1361,  1362,  1375,  1376,  1385,  1386,  1393,  1396,  1397,
-  1406,  1411,  1412,  1422,  1428,  1429,  1436,  1437,  1439,  1443,
-  1447,  1449,  1451,  1453,  1455,  1456,  1460,  1463,  1467,  1471,
-  1473,  1474,  1476,  1480,  1482,  1486,  1489,  1490,  1491,  1492,
-  1500,  1501,  1502,  1503,  1511,  1512,  1513,  1516,  1518,  1520,
-  1523,  1524,  1528,  1530,  1532,  1533,  1534,  1540,  1541,  1542,
-  1548,  1553,  1555,  1561,  1564,  1565,  1568,  1569,  1571,  1573,
-  1575,  1578,  1581,  1586,  1589,  1592,  1594,  1598,  1601,  1604,
-  1607,  1608,  1611,  1612,  1616,  1618,  1620,  1623,  1625,  1627,
-  1629,  1631,  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
-  1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
-  1669,  1671,  1673,  1680,  1684,  1690,  1693,  1695,  1697,  1699,
-  1702,  1704,  1708,  1711,  1713,  1715,  1716,  1717,  1724,  1726,
-  1728,  1730,  1733,  1736,  1738,  1743,  1748
+   831,   833,   836,   837,   841,   844,   849,   853,   859,   863,
+   865,   867,   870,   872,   876,   881,   888,   894,   896,   900,
+   902,   904,   908,   911,   914,   915,   917,   919,   922,   923,
+   926,   930,   934,   937,   941,   946,   950,   953,   957,   960,
+   964,   966,   968,   971,   974,   975,   977,   980,   981,   982,
+   984,   986,   989,   993,   995,   998,  1000,  1003,  1010,  1016,
+  1022,  1025,  1028,  1033,  1034,  1039,  1040,  1041,  1045,  1050,
+  1054,  1056,  1058,  1060,  1062,  1065,  1066,  1071,  1073,  1077,
+  1078,  1079,  1087,  1093,  1096,  1097,  1098,  1099,  1112,  1113,
+  1120,  1123,  1126,  1129,  1133,  1140,  1149,  1160,  1173,  1177,
+  1182,  1184,  1186,  1187,  1194,  1198,  1204,  1207,  1211,  1212,
+  1214,  1215,  1217,  1218,  1220,  1222,  1226,  1231,  1233,  1237,
+  1238,  1241,  1244,  1245,  1250,  1253,  1254,  1256,  1258,  1262,
+  1264,  1268,  1273,  1278,  1283,  1288,  1293,  1294,  1297,  1299,
+  1302,  1304,  1308,  1310,  1314,  1316,  1318,  1320,  1322,  1324,
+  1326,  1328,  1330,  1334,  1338,  1343,  1344,  1345,  1356,  1357,
+  1364,  1365,  1366,  1379,  1380,  1389,  1390,  1397,  1400,  1401,
+  1410,  1415,  1416,  1426,  1432,  1433,  1440,  1441,  1443,  1447,
+  1451,  1453,  1455,  1457,  1459,  1460,  1464,  1467,  1471,  1475,
+  1477,  1478,  1480,  1484,  1486,  1490,  1493,  1494,  1495,  1496,
+  1504,  1505,  1506,  1507,  1515,  1516,  1517,  1520,  1522,  1524,
+  1527,  1528,  1532,  1534,  1536,  1537,  1538,  1544,  1545,  1546,
+  1552,  1557,  1559,  1565,  1568,  1569,  1572,  1573,  1575,  1577,
+  1579,  1582,  1585,  1590,  1593,  1596,  1598,  1602,  1605,  1608,
+  1611,  1612,  1615,  1616,  1620,  1622,  1624,  1627,  1629,  1631,
+  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,  1649,  1651,
+  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,  1669,  1671,
+  1673,  1675,  1677,  1684,  1688,  1694,  1697,  1699,  1701,  1703,
+  1706,  1708,  1712,  1715,  1717,  1719,  1720,  1721,  1728,  1730,
+  1732,  1734,  1737,  1740,  1742,  1747,  1752
 };
 
 static const short yyrhs[] = {    -1,
@@ -334,97 +334,97 @@ static const short yyrhs[] = {    -1,
      0,   171,    97,     0,     0,    81,     0,     0,    81,     0,
    180,     0,   180,   181,     0,     0,   180,   181,    77,     0,
    180,    77,     0,    65,    59,    67,    76,     0,   132,   123,
-   182,     0,   132,     0,   188,   123,   182,     0,   188,     0,
-     1,     0,   241,   181,     0,   183,     0,   182,    81,   183,
-     0,   206,   207,   165,   143,     0,   206,   207,   165,    38,
-   107,   143,     0,   206,   207,    38,   107,   143,     0,   185,
-     0,   184,    81,   185,     0,     1,     0,    97,     0,    97,
-    36,   107,     0,   132,   187,     0,   188,   187,     0,     0,
-   190,     0,     7,     0,   188,     7,     0,     0,   189,     7,
-     0,    59,   190,    76,     0,    50,   189,   190,     0,    50,
-   189,     0,   190,    59,   229,     0,   190,    60,    99,    83,
-     0,   190,    60,    83,     0,    59,   229,     0,    60,    99,
-    83,     0,    60,    83,     0,   144,   124,   190,     0,   192,
-     0,   209,     0,   192,   209,     0,   192,   194,     0,     0,
-   191,     0,     1,    77,     0,     0,     0,   197,     0,   198,
-     0,   197,   198,     0,    32,   240,    77,     0,   201,     0,
-     1,   201,     0,    82,     0,   200,    78,     0,   200,   195,
-   196,   122,   193,    78,     0,   200,   195,   196,     1,    78,
-     0,   200,   195,   196,   191,    78,     0,   203,   208,     0,
-   203,     1,     0,    15,    59,    99,    76,     0,     0,    18,
-   205,   208,    17,     0,     0,     0,   206,   207,   211,     0,
-   206,   207,   222,   208,     0,   206,   207,   210,     0,   211,
-     0,   222,     0,   201,     0,   219,     0,    99,    77,     0,
-     0,   202,    16,   212,   208,     0,   202,     0,   202,    16,
-     1,     0,     0,     0,    17,   213,    59,    99,    76,   214,
-   208,     0,   204,    59,    99,    76,    77,     0,   204,     1,
-     0,     0,     0,     0,    19,    59,   224,    77,   215,   224,
-    77,   216,   224,    76,   217,   208,     0,     0,    20,    59,
-    99,    76,   218,   208,     0,    23,    77,     0,    24,    77,
-     0,    25,    77,     0,    25,    99,    77,     0,    27,   223,
-    59,    99,    76,    77,     0,    27,   223,    59,    99,    38,
-   225,    76,    77,     0,    27,   223,    59,    99,    38,   225,
-    38,   225,    76,    77,     0,    27,   223,    59,    99,    38,
-   225,    38,   225,    38,   228,    76,    77,     0,    26,    97,
-    77,     0,    26,    50,    99,    77,     0,    77,     0,   220,
-     0,     0,    19,    59,   113,    76,   221,   208,     0,    21,
-   107,    38,     0,    21,   107,    10,   107,    38,     0,    22,
-    38,     0,    97,    38,   143,     0,     0,     7,     0,     0,
-    99,     0,     0,   226,     0,   227,     0,   226,    81,   227,
-     0,     9,    59,    99,    76,     0,   115,     0,   228,    81,
-   115,     0,     0,   230,   231,     0,   233,    76,     0,     0,
-   234,    77,   232,   231,     0,     1,    76,     0,     0,    10,
-     0,   234,     0,   234,    81,    10,     0,   235,     0,   234,
-    81,   235,     0,   126,   123,   167,   143,     0,   126,   123,
-   168,   143,     0,   126,   123,   187,   143,     0,   130,   123,
-   168,   143,     0,   130,   123,   187,   143,     0,     0,   237,
-   238,     0,   231,     0,   239,    76,     0,     3,     0,   239,
-    81,     3,     0,    97,     0,   240,    81,    97,     0,    31,
-     0,   246,     0,   244,     0,   245,     0,   256,     0,   266,
-     0,    63,     0,    97,     0,   243,    81,    97,     0,    73,
-   243,    77,     0,    74,    97,    97,    77,     0,     0,     0,
-    61,    97,   258,    82,   247,   260,    78,   248,   273,    63,
-     0,     0,    61,    97,   258,   249,   273,    63,     0,     0,
-     0,    61,    97,    38,    97,   258,    82,   250,   260,    78,
-   251,   273,    63,     0,     0,    61,    97,    38,    97,   258,
-   252,   273,    63,     0,     0,    62,    97,    82,   253,   260,
-    78,     0,    62,    97,     0,     0,    62,    97,    38,    97,
-    82,   254,   260,    78,     0,    62,    97,    38,    97,     0,
-     0,    61,    97,    59,    97,    76,   258,   255,   273,    63,
-     0,    62,    97,    59,    97,    76,     0,     0,    71,    97,
-   258,   257,   273,    63,     0,     0,   259,     0,    45,   243,
-    45,     0,   260,   261,   262,     0,   262,     0,    69,     0,
-    70,     0,    68,     0,     0,   262,   263,    77,     0,   262,
-    77,     0,   132,   123,   264,     0,   188,   123,   264,     0,
-     1,     0,     0,   265,     0,   264,    81,   265,     0,   165,
-     0,   165,    38,   107,     0,    38,   107,     0,     0,     0,
-     0,    48,   267,   283,   268,   284,   269,   199,     0,     0,
-     0,     0,    49,   270,   283,   271,   284,   272,   199,     0,
-     0,     0,   274,   275,     0,   278,     0,    89,     0,   275,
-   278,     0,     0,   275,   276,    89,     0,    77,     0,     1,
-     0,     0,     0,    48,   279,   283,   280,   277,     0,     0,
-     0,    49,   281,   283,   282,   277,     0,    59,   186,    76,
-   292,     0,   292,     0,    59,   186,    76,   293,   290,     0,
-   293,   290,     0,     0,    77,   285,     0,     0,   286,     0,
-   287,     0,   194,     0,   286,   287,     0,   287,   194,     0,
-   126,   123,   288,    77,     0,   126,    77,     0,   130,    77,
-     0,   289,     0,   288,    81,   289,     0,   167,   143,     0,
-   168,   143,     0,   187,   143,     0,     0,    81,    10,     0,
-     0,    81,   291,   233,     0,   294,     0,   296,     0,   293,
-   296,     0,     3,     0,     4,     0,    72,     0,   295,     0,
-    12,     0,    13,     0,    14,     0,    15,     0,    16,     0,
-    17,     0,    18,     0,    19,     0,    20,     0,    21,     0,
-    22,     0,    23,     0,    24,     0,    25,     0,    26,     0,
-    27,     0,    11,     0,    28,     0,    29,     0,     6,     0,
-     7,     0,   294,    38,    59,   186,    76,    97,     0,   294,
-    38,    97,     0,    38,    59,   186,    76,    97,     0,    38,
-    97,     0,   294,     0,   298,     0,   300,     0,   298,   300,
-     0,   101,     0,   294,    38,   299,     0,    38,   299,     0,
-    99,     0,    67,     0,     0,     0,    60,   303,   301,   304,
-   297,    83,     0,   294,     0,   306,     0,   307,     0,   306,
-   307,     0,   294,    38,     0,    38,     0,    64,    59,   305,
-    76,     0,    71,    59,    97,    76,     0,    66,    59,   186,
-    76,     0
+   182,     0,   132,   123,   206,   207,   143,     0,   188,   123,
+   182,     0,   188,     0,     1,     0,   241,   181,     0,   183,
+     0,   182,    81,   183,     0,   206,   207,   165,   143,     0,
+   206,   207,   165,    38,   107,   143,     0,   206,   207,    38,
+   107,   143,     0,   185,     0,   184,    81,   185,     0,     1,
+     0,    97,     0,    97,    36,   107,     0,   132,   187,     0,
+   188,   187,     0,     0,   190,     0,     7,     0,   188,     7,
+     0,     0,   189,     7,     0,    59,   190,    76,     0,    50,
+   189,   190,     0,    50,   189,     0,   190,    59,   229,     0,
+   190,    60,    99,    83,     0,   190,    60,    83,     0,    59,
+   229,     0,    60,    99,    83,     0,    60,    83,     0,   144,
+   124,   190,     0,   192,     0,   209,     0,   192,   209,     0,
+   192,   194,     0,     0,   191,     0,     1,    77,     0,     0,
+     0,   197,     0,   198,     0,   197,   198,     0,    32,   240,
+    77,     0,   201,     0,     1,   201,     0,    82,     0,   200,
+    78,     0,   200,   195,   196,   122,   193,    78,     0,   200,
+   195,   196,     1,    78,     0,   200,   195,   196,   191,    78,
+     0,   203,   208,     0,   203,     1,     0,    15,    59,    99,
+    76,     0,     0,    18,   205,   208,    17,     0,     0,     0,
+   206,   207,   211,     0,   206,   207,   222,   208,     0,   206,
+   207,   210,     0,   211,     0,   222,     0,   201,     0,   219,
+     0,    99,    77,     0,     0,   202,    16,   212,   208,     0,
+   202,     0,   202,    16,     1,     0,     0,     0,    17,   213,
+    59,    99,    76,   214,   208,     0,   204,    59,    99,    76,
+    77,     0,   204,     1,     0,     0,     0,     0,    19,    59,
+   224,    77,   215,   224,    77,   216,   224,    76,   217,   208,
+     0,     0,    20,    59,    99,    76,   218,   208,     0,    23,
+    77,     0,    24,    77,     0,    25,    77,     0,    25,    99,
+    77,     0,    27,   223,    59,    99,    76,    77,     0,    27,
+   223,    59,    99,    38,   225,    76,    77,     0,    27,   223,
+    59,    99,    38,   225,    38,   225,    76,    77,     0,    27,
+   223,    59,    99,    38,   225,    38,   225,    38,   228,    76,
+    77,     0,    26,    97,    77,     0,    26,    50,    99,    77,
+     0,    77,     0,   220,     0,     0,    19,    59,   113,    76,
+   221,   208,     0,    21,   107,    38,     0,    21,   107,    10,
+   107,    38,     0,    22,    38,     0,    97,    38,   143,     0,
+     0,     7,     0,     0,    99,     0,     0,   226,     0,   227,
+     0,   226,    81,   227,     0,     9,    59,    99,    76,     0,
+   115,     0,   228,    81,   115,     0,     0,   230,   231,     0,
+   233,    76,     0,     0,   234,    77,   232,   231,     0,     1,
+    76,     0,     0,    10,     0,   234,     0,   234,    81,    10,
+     0,   235,     0,   234,    81,   235,     0,   126,   123,   167,
+   143,     0,   126,   123,   168,   143,     0,   126,   123,   187,
+   143,     0,   130,   123,   168,   143,     0,   130,   123,   187,
+   143,     0,     0,   237,   238,     0,   231,     0,   239,    76,
+     0,     3,     0,   239,    81,     3,     0,    97,     0,   240,
+    81,    97,     0,    31,     0,   246,     0,   244,     0,   245,
+     0,   256,     0,   266,     0,    63,     0,    97,     0,   243,
+    81,    97,     0,    73,   243,    77,     0,    74,    97,    97,
+    77,     0,     0,     0,    61,    97,   258,    82,   247,   260,
+    78,   248,   273,    63,     0,     0,    61,    97,   258,   249,
+   273,    63,     0,     0,     0,    61,    97,    38,    97,   258,
+    82,   250,   260,    78,   251,   273,    63,     0,     0,    61,
+    97,    38,    97,   258,   252,   273,    63,     0,     0,    62,
+    97,    82,   253,   260,    78,     0,    62,    97,     0,     0,
+    62,    97,    38,    97,    82,   254,   260,    78,     0,    62,
+    97,    38,    97,     0,     0,    61,    97,    59,    97,    76,
+   258,   255,   273,    63,     0,    62,    97,    59,    97,    76,
+     0,     0,    71,    97,   258,   257,   273,    63,     0,     0,
+   259,     0,    45,   243,    45,     0,   260,   261,   262,     0,
+   262,     0,    69,     0,    70,     0,    68,     0,     0,   262,
+   263,    77,     0,   262,    77,     0,   132,   123,   264,     0,
+   188,   123,   264,     0,     1,     0,     0,   265,     0,   264,
+    81,   265,     0,   165,     0,   165,    38,   107,     0,    38,
+   107,     0,     0,     0,     0,    48,   267,   283,   268,   284,
+   269,   199,     0,     0,     0,     0,    49,   270,   283,   271,
+   284,   272,   199,     0,     0,     0,   274,   275,     0,   278,
+     0,    89,     0,   275,   278,     0,     0,   275,   276,    89,
+     0,    77,     0,     1,     0,     0,     0,    48,   279,   283,
+   280,   277,     0,     0,     0,    49,   281,   283,   282,   277,
+     0,    59,   186,    76,   292,     0,   292,     0,    59,   186,
+    76,   293,   290,     0,   293,   290,     0,     0,    77,   285,
+     0,     0,   286,     0,   287,     0,   194,     0,   286,   287,
+     0,   287,   194,     0,   126,   123,   288,    77,     0,   126,
+    77,     0,   130,    77,     0,   289,     0,   288,    81,   289,
+     0,   167,   143,     0,   168,   143,     0,   187,   143,     0,
+     0,    81,    10,     0,     0,    81,   291,   233,     0,   294,
+     0,   296,     0,   293,   296,     0,     3,     0,     4,     0,
+    72,     0,   295,     0,    12,     0,    13,     0,    14,     0,
+    15,     0,    16,     0,    17,     0,    18,     0,    19,     0,
+    20,     0,    21,     0,    22,     0,    23,     0,    24,     0,
+    25,     0,    26,     0,    27,     0,    11,     0,    28,     0,
+    29,     0,     6,     0,     7,     0,   294,    38,    59,   186,
+    76,    97,     0,   294,    38,    97,     0,    38,    59,   186,
+    76,    97,     0,    38,    97,     0,   294,     0,   298,     0,
+   300,     0,   298,   300,     0,   101,     0,   294,    38,   299,
+     0,    38,   299,     0,    99,     0,    67,     0,     0,     0,
+    60,   303,   301,   304,   297,    83,     0,   294,     0,   306,
+     0,   307,     0,   306,   307,     0,   294,    38,     0,    38,
+     0,    64,    59,   305,    76,     0,    71,    59,    97,    76,
+     0,    66,    59,   186,    76,     0
 };
 
 #endif
@@ -458,36 +458,36 @@ static const short yyrline[] = { 0,
   1370,  1376,  1378,  1380,  1382,  1389,  1391,  1394,  1397,  1401,
   1404,  1408,  1411,  1415,  1420,  1422,  1426,  1428,  1430,  1432,
   1436,  1438,  1441,  1444,  1447,  1450,  1454,  1456,  1459,  1461,
-  1466,  1469,  1474,  1476,  1478,  1482,  1506,  1513,  1518,  1524,
-  1529,  1531,  1536,  1538,  1542,  1546,  1550,  1560,  1562,  1567,
-  1572,  1575,  1579,  1582,  1586,  1589,  1592,  1595,  1599,  1602,
-  1606,  1610,  1612,  1614,  1616,  1618,  1620,  1622,  1624,  1628,
-  1636,  1644,  1646,  1648,  1652,  1654,  1657,  1660,  1673,  1675,
-  1680,  1682,  1685,  1699,  1702,  1705,  1707,  1709,  1717,  1725,
-  1736,  1741,  1744,  1758,  1767,  1771,  1775,  1779,  1785,  1789,
-  1794,  1797,  1802,  1805,  1806,  1823,  1828,  1831,  1843,  1845,
-  1855,  1865,  1866,  1874,  1877,  1889,  1893,  1910,  1920,  1929,
-  1934,  1939,  1944,  1948,  1952,  1963,  1970,  1977,  1984,  1995,
-  2001,  2004,  2009,  2032,  2066,  2097,  2128,  2143,  2157,  2161,
-  2165,  2168,  2173,  2175,  2178,  2180,  2184,  2189,  2192,  2198,
-  2203,  2208,  2210,  2219,  2220,  2226,  2228,  2238,  2240,  2244,
-  2247,  2253,  2263,  2272,  2281,  2291,  2305,  2310,  2315,  2317,
-  2326,  2329,  2334,  2337,  2341,  2349,  2351,  2352,  2353,  2354,
-  2355,  2369,  2372,  2376,  2382,  2388,  2395,  2400,  2406,  2413,
-  2419,  2425,  2430,  2436,  2443,  2449,  2455,  2461,  2469,  2475,
-  2481,  2489,  2496,  2502,  2511,  2518,  2526,  2531,  2534,  2544,
-  2546,  2549,  2551,  2552,  2555,  2560,  2561,  2578,  2585,  2591,
-  2595,  2598,  2599,  2602,  2610,  2616,  2625,  2635,  2642,  2646,
-  2651,  2660,  2667,  2671,  2681,  2683,  2684,  2686,  2688,  2689,
-  2690,  2691,  2693,  2695,  2698,  2706,  2713,  2713,  2720,  2726,
-  2728,  2734,  2739,  2744,  2753,  2755,  2761,  2763,  2766,  2768,
-  2769,  2770,  2773,  2779,  2781,  2785,  2788,  2795,  2801,  2806,
-  2813,  2818,  2823,  2828,  2835,  2839,  2842,  2848,  2850,  2851,
-  2852,  2855,  2857,  2858,  2859,  2860,  2861,  2862,  2863,  2864,
-  2865,  2866,  2867,  2868,  2869,  2870,  2871,  2872,  2873,  2874,
-  2875,  2875,  2878,  2884,  2889,  2894,  2900,  2902,  2905,  2907,
-  2914,  2926,  2931,  2937,  2939,  2945,  2949,  2950,  2956,  2958,
-  2961,  2963,  2969,  2974,  2980,  2987,  2996
+  1466,  1469,  1474,  1476,  1478,  1482,  1506,  1513,  1527,  1533,
+  1538,  1540,  1545,  1547,  1551,  1555,  1559,  1569,  1571,  1576,
+  1581,  1584,  1588,  1591,  1595,  1598,  1601,  1604,  1608,  1611,
+  1615,  1619,  1621,  1623,  1625,  1627,  1629,  1631,  1633,  1637,
+  1645,  1653,  1655,  1657,  1661,  1663,  1666,  1669,  1682,  1684,
+  1689,  1691,  1694,  1708,  1711,  1714,  1716,  1718,  1726,  1734,
+  1745,  1750,  1753,  1767,  1776,  1780,  1784,  1788,  1794,  1798,
+  1803,  1806,  1811,  1814,  1815,  1832,  1837,  1840,  1852,  1854,
+  1864,  1874,  1875,  1883,  1886,  1898,  1902,  1919,  1929,  1938,
+  1943,  1948,  1953,  1957,  1961,  1972,  1979,  1986,  1993,  2004,
+  2010,  2013,  2018,  2041,  2075,  2106,  2137,  2152,  2166,  2170,
+  2174,  2177,  2182,  2184,  2187,  2189,  2193,  2198,  2201,  2207,
+  2212,  2217,  2219,  2228,  2229,  2235,  2237,  2247,  2249,  2253,
+  2256,  2262,  2272,  2281,  2290,  2300,  2314,  2319,  2324,  2326,
+  2335,  2338,  2343,  2346,  2350,  2358,  2360,  2361,  2362,  2363,
+  2364,  2378,  2381,  2385,  2391,  2397,  2404,  2409,  2415,  2422,
+  2428,  2434,  2439,  2445,  2452,  2458,  2464,  2470,  2478,  2484,
+  2490,  2498,  2505,  2511,  2520,  2527,  2535,  2540,  2543,  2553,
+  2555,  2558,  2560,  2561,  2564,  2569,  2570,  2587,  2594,  2600,
+  2604,  2607,  2608,  2611,  2619,  2625,  2634,  2644,  2651,  2655,
+  2660,  2669,  2676,  2680,  2690,  2692,  2693,  2695,  2697,  2698,
+  2699,  2700,  2702,  2704,  2707,  2715,  2722,  2722,  2729,  2735,
+  2737,  2743,  2748,  2753,  2762,  2764,  2770,  2772,  2775,  2777,
+  2778,  2779,  2782,  2788,  2790,  2794,  2797,  2804,  2810,  2815,
+  2822,  2827,  2832,  2837,  2844,  2848,  2851,  2857,  2859,  2860,
+  2861,  2864,  2866,  2867,  2868,  2869,  2870,  2871,  2872,  2873,
+  2874,  2875,  2876,  2877,  2878,  2879,  2880,  2881,  2882,  2883,
+  2884,  2884,  2887,  2893,  2898,  2903,  2909,  2911,  2914,  2916,
+  2923,  2935,  2940,  2946,  2948,  2954,  2958,  2959,  2965,  2967,
+  2970,  2972,  2978,  2983,  2989,  2996,  3005
 };
 #endif
 
@@ -628,7 +628,7 @@ static const short yyr2[] = {     0,
      3,     3,     3,     4,     3,     3,     1,     1,     2,     1,
      2,     1,     2,     0,     7,     5,     2,     0,     7,     5,
      2,     0,     8,     0,     7,     2,     0,     1,     0,     1,
-     1,     2,     0,     3,     2,     4,     3,     1,     3,     1,
+     1,     2,     0,     3,     2,     4,     3,     5,     3,     1,
      1,     2,     1,     3,     4,     6,     5,     1,     3,     1,
      1,     3,     2,     2,     0,     1,     1,     2,     0,     2,
      3,     3,     2,     3,     4,     3,     2,     3,     2,     3,
@@ -718,796 +718,796 @@ static const short yydefact[] = {     3,
    437,   455,   460,   457,   128,   128,     0,   446,   176,   395,
    295,   295,   392,   393,     0,   410,     0,     0,    30,   324,
    114,   128,   128,   145,     0,     0,   177,   229,     0,   276,
-   277,   283,   337,   279,   183,   183,   292,   289,   183,     0,
-     0,     0,   320,   321,     0,     0,   547,     0,   548,   549,
-    83,    86,   305,   192,     0,   194,   545,   493,   504,   295,
-   505,   501,   502,   470,     0,   474,   455,     0,   476,   427,
-     0,     0,   175,     0,     0,     0,   480,     0,     0,   461,
-   461,   456,   240,   299,   390,   129,   183,   183,   183,   299,
-   129,   183,   183,     0,   399,   401,   412,   325,   121,     0,
-   122,     0,   145,   143,   202,   200,   199,   181,    22,     0,
-    26,   336,     0,   255,   259,   265,   183,   413,     0,     0,
-     0,   336,     0,     0,   125,   337,   312,   322,   215,    89,
-     0,   212,     0,   214,     0,   267,   205,   211,     0,     0,
-   551,   553,     0,   558,     0,   550,     0,     0,   183,   183,
-   183,     0,   506,   543,     0,   435,     0,   476,   486,   489,
-   482,   440,     0,   464,   458,   462,   459,   303,     0,   407,
-     0,   402,   403,   404,   303,     0,   405,   406,   394,     0,
-     0,   144,   147,   146,     0,   178,   284,     0,   183,   263,
-   323,     0,   329,   127,   126,   316,     0,   330,   314,   337,
-   313,     0,   218,     0,   209,    64,     0,   204,     0,   217,
-   208,   552,    84,   193,   508,   509,   510,   503,   295,   432,
-   443,     0,     0,     0,   466,     0,     0,   238,   239,   235,
-   237,     0,   119,   120,     0,   183,     0,   285,   414,   328,
-     0,   162,     0,   350,   334,     0,     0,     0,     0,     0,
-     0,     0,     0,   379,   447,   447,   371,     0,     0,   123,
-   128,   128,   343,   348,     0,     0,   340,   341,   344,   372,
-   342,     0,     0,     0,   206,   207,   507,   476,   428,   484,
-   483,   487,   490,   465,   463,   236,   201,   287,   183,     0,
-     0,   336,   381,     0,     0,   377,   361,   362,   363,     0,
-     0,     0,   380,     0,   183,   345,   134,     0,   135,     0,
-     0,   332,   337,   331,   354,     0,   136,   213,   210,     0,
-   286,     0,     0,     0,   382,    48,     0,     0,     0,   375,
-   364,     0,   369,     0,   378,     0,   132,   219,     0,   133,
-   222,   349,   336,     0,     0,   433,   333,     0,   335,   373,
-   355,   359,     0,   370,     0,   130,     0,   131,     0,   347,
-   338,   336,     0,   351,   336,   381,   336,   376,   383,     0,
-   220,   223,   339,   353,   336,   374,     0,   360,     0,     0,
-   384,   385,   365,     0,     0,   352,   356,     0,   383,     0,
-     0,   221,   224,   381,     0,     0,   366,   386,     0,   387,
-     0,     0,   357,   388,     0,   367,   336,     0,     0,   358,
-   368,   389,     0,     0,     0
+   277,   283,   337,   279,   337,   183,   183,   292,   289,   183,
+     0,     0,     0,   320,   321,     0,     0,   547,     0,   548,
+   549,    83,    86,   305,   192,     0,   194,   545,   493,   504,
+   295,   505,   501,   502,   470,     0,   474,   455,     0,   476,
+   427,     0,     0,   175,     0,     0,     0,   480,     0,     0,
+   461,   461,   456,   240,   299,   390,   129,   183,   183,   183,
+   299,   129,   183,   183,     0,   399,   401,   412,   325,   121,
+     0,   122,     0,   145,   143,   202,   200,   199,   181,    22,
+     0,    26,   336,   183,     0,   255,   259,   265,   183,   413,
+     0,     0,     0,   336,     0,     0,   125,   337,   312,   322,
+   215,    89,     0,   212,     0,   214,     0,   267,   205,   211,
+     0,     0,   551,   553,     0,   558,     0,   550,     0,     0,
+   183,   183,   183,     0,   506,   543,     0,   435,     0,   476,
+   486,   489,   482,   440,     0,   464,   458,   462,   459,   303,
+     0,   407,     0,   402,   403,   404,   303,     0,   405,   406,
+   394,     0,     0,   144,   147,   146,     0,   178,   284,     0,
+   278,   129,   183,   263,   323,     0,   329,   127,   126,   316,
+     0,   330,   314,   337,   313,     0,   218,     0,   209,    64,
+     0,   204,     0,   217,   208,   552,    84,   193,   508,   509,
+   510,   503,   295,   432,   443,     0,     0,     0,   466,     0,
+     0,   238,   239,   235,   237,     0,   119,   120,     0,   183,
+     0,   285,   414,   328,     0,   162,     0,   350,   334,     0,
+     0,     0,     0,     0,     0,     0,     0,   379,   447,   447,
+   371,     0,     0,   123,   128,   128,   343,   348,     0,     0,
+   340,   341,   344,   372,   342,     0,     0,     0,   206,   207,
+   507,   476,   428,   484,   483,   487,   490,   465,   463,   236,
+   201,   287,   183,     0,     0,   336,   381,     0,     0,   377,
+   361,   362,   363,     0,     0,     0,   380,     0,   183,   345,
+   134,     0,   135,     0,     0,   332,   337,   331,   354,     0,
+   136,   213,   210,     0,   286,     0,     0,     0,   382,    48,
+     0,     0,     0,   375,   364,     0,   369,     0,   378,     0,
+   132,   219,     0,   133,   222,   349,   336,     0,     0,   433,
+   333,     0,   335,   373,   355,   359,     0,   370,     0,   130,
+     0,   131,     0,   347,   338,   336,     0,   351,   336,   381,
+   336,   376,   383,     0,   220,   223,   339,   353,   336,   374,
+     0,   360,     0,     0,   384,   385,   365,     0,     0,   352,
+   356,     0,   383,     0,     0,   221,   224,   381,     0,     0,
+   366,   386,     0,   387,     0,     0,   357,   388,     0,   367,
+   336,     0,     0,   358,   368,   389,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   953,
+static const short yydefgoto[] = {   957,
      1,     2,     3,    28,    29,    30,   336,   566,   342,   569,
-   198,   449,   673,   122,   232,   399,   124,   125,   126,   127,
-   128,   585,   129,   384,   383,   381,   687,   382,   130,   233,
-   131,   132,   323,   324,   325,   561,   661,   662,    31,   193,
-   800,   439,    91,   562,   644,   440,    34,   140,   279,    35,
-   216,   204,    78,   199,   205,   650,    79,   565,   328,   329,
-    37,   288,   289,   290,   648,   725,   675,   676,   677,   814,
-   678,   744,   679,   680,   877,   897,   924,   880,   899,   925,
-   315,   208,   689,   209,    38,    39,    40,    41,   351,   353,
-   358,   225,   748,   476,   220,   221,   348,   571,   572,   356,
-   357,   142,   691,   143,   189,   278,   663,   664,   737,   326,
-   479,   582,   583,   584,   559,   362,   560,   804,   805,   806,
-   832,   853,   453,   854,   667,   807,   808,   883,   831,   915,
-   906,   934,   947,   907,   809,   810,   905,   811,   844,   867,
-   920,   921,   922,   945,   404,   405,   441,   634,   442,   443,
-   444,   318,   319,   445,   446,   659,   133,    43,    64,    44,
-    45,    46,   427,   698,   305,   607,   818,   525,   308,   537,
-   609,    47,   309,    69,    48,   432,   542,   433,   547,   705,
-   706,    49,    65,   295,   519,    66,   301,   523,   428,   429,
-   535,   616,   822,   536,   611,   763,   612,   764,   173,   419,
-   516,   517,   518,   692,   693,   297,   421,   174,   175,   176,
-   177,   178,   588,   589,   682,   590,   367,   134,   235,   483,
+   198,   449,   675,   122,   232,   399,   124,   125,   126,   127,
+   128,   586,   129,   384,   383,   381,   689,   382,   130,   233,
+   131,   132,   323,   324,   325,   561,   663,   664,    31,   334,
+   804,   439,    91,   562,   645,   440,    34,   140,   279,    35,
+   216,   204,    78,   199,   205,   651,    79,   565,   328,   329,
+    37,   288,   289,   290,   649,   727,   677,   678,   679,   818,
+   680,   748,   681,   682,   881,   901,   928,   884,   903,   929,
+   315,   208,   691,   209,    38,    39,    40,    41,   351,   353,
+   358,   225,   752,   476,   220,   221,   348,   571,   572,   356,
+   357,   142,   693,   143,   189,   278,   665,   666,   741,   326,
+   479,   583,   584,   585,   559,   362,   560,   808,   809,   810,
+   836,   857,   453,   858,   669,   811,   812,   887,   835,   919,
+   910,   938,   951,   911,   813,   814,   909,   815,   848,   871,
+   924,   925,   926,   949,   404,   405,   441,   635,   442,   443,
+   444,   318,   319,   445,   446,   661,   133,    43,    64,    44,
+    45,    46,   427,   700,   305,   608,   822,   525,   308,   537,
+   610,    47,   309,    69,    48,   432,   542,   433,   547,   707,
+   708,    49,    65,   295,   519,    66,   301,   523,   428,   429,
+   535,   617,   826,   536,   612,   767,   613,   768,   173,   419,
+   516,   517,   518,   694,   695,   297,   421,   174,   175,   176,
+   177,   178,   589,   590,   684,   591,   367,   134,   235,   483,
    370,   371,   372,   135,   136,   137
 };
 
-static const short yypact[] = {   109,
-   118,  3183,  3183,   412,-32768,-32768,-32768,-32768,    91,    91,
-    91,    65,   100,   136,-32768,   270,-32768,-32768,   270,   270,
--32768,   132,   270,   132,   270,   270,-32768,-32768,-32768,-32768,
-   103,   128,   699,   378,-32768,    91,-32768,   119,   131,   203,
--32768,  3183,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    91,    91,    91,  2892,  2730,   155,-32768,-32768,
--32768,-32768,-32768,    68,  3447,  3447,    70,    61,-32768,-32768,
-   132,-32768,   112,   270,-32768,-32768,   103,   167,-32768,    91,
-  1306,-32768,   434,-32768,   103,   378,-32768,    91,-32768,-32768,
-   900,-32768,   160,   153,   160,   159,-32768,   175,-32768,-32768,
--32768,-32768,-32768,-32768,  2892,  2892,   270,-32768,-32768,-32768,
-  2892,-32768,-32768,  1480,-32768,   195,   231,   239,-32768,-32768,
--32768,  2892,   216,   225,-32768,  2946,  3000,-32768,  3714,  1127,
-   315,   255,  2892,-32768,-32768,-32768,-32768,-32768,   251,   418,
--32768,   279,  2078,   314,-32768,   270,-32768,-32768,-32768,-32768,
+static const short yypact[] = {    83,
+   168,  3124,  3124,    56,-32768,-32768,-32768,-32768,   164,   164,
+   164,   138,   159,   162,-32768,   285,-32768,-32768,   285,   285,
+-32768,   188,   285,   188,   285,   285,-32768,-32768,-32768,-32768,
+   339,   173,  2604,   119,-32768,   164,-32768,   113,   116,   135,
+-32768,  3124,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   164,   164,   164,  2833,  2671,   203,-32768,-32768,
+-32768,-32768,-32768,   151,  3385,  3385,   278,    66,-32768,-32768,
+   188,-32768,    30,   285,-32768,-32768,   339,    32,-32768,   164,
+  1878,-32768,   311,-32768,   339,   119,-32768,   164,-32768,-32768,
+   690,-32768,   220,   246,   220,   256,-32768,   263,-32768,-32768,
+-32768,-32768,-32768,-32768,  2833,  2833,   285,-32768,-32768,-32768,
+  2833,-32768,-32768,  1488,-32768,   260,   292,   303,-32768,-32768,
+-32768,  2833,   282,   306,-32768,  2887,  2941,-32768,  3713,  1131,
+   364,   317,  2833,-32768,-32768,-32768,-32768,-32768,   319,   367,
+-32768,   326,  2078,   299,-32768,   285,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   292,
-  3610,-32768,-32768,-32768,  2624,   327,-32768,-32768,-32768,   270,
-   270,   286,   270,   270,-32768,-32768,-32768,   321,   252,   301,
--32768,   434,   103,-32768,   319,-32768,  2093,   744,    91,-32768,
--32768,   434,-32768,   188,-32768,    91,  1969,   422,   471,   259,
-  1950,   900,-32768,-32768,-32768,-32768,    91,-32768,   332,   340,
-  1881,-32768,   347,-32768,   227,-32768,-32768,-32768,-32768,-32768,
-   357,   359,   338,   368,  2784,  3475,  3610,   270,-32768,   377,
-  2892,  1480,-32768,  1480,-32768,  2892,  2892,   408,-32768,-32768,
-  2892,  2892,  2892,  2892,  2892,  2892,  2892,  2892,  2892,  2892,
-  2892,  2892,-32768,-32768,   270,   270,  2892,  2892,-32768,-32768,
--32768,-32768,-32768,   418,  2152,    91,-32768,   481,   708,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,    22,-32768,   411,
--32768,  3610,-32768,   391,   402,   491,-32768,   327,-32768,   404,
-   402,   132,   433,-32768,   449,   441,   439,-32768,   449,-32768,
--32768,   471,-32768,-32768,   518,   471,   538,-32768,  3336,-32768,
-   467,   483,-32768,  1021,    82,-32768,-32768,   536,    91,   386,
-   350,-32768,   434,   434,-32768,   744,    91,-32768,  2211,-32768,
--32768,   744,   520,    91,-32768,-32768,   475,   502,  1385,  3385,
-   160,    91,   160,-32768,   560,   523,-32768,   227,-32768,-32768,
--32768,   540,   525,  2544,-32768,-32768,-32768,-32768,   578,   544,
-  3475,-32768,   562,   565,-32768,  3714,   569,   570,  3714,  3714,
-  2892,   604,  2892,  2892,  1690,  1278,   969,   958,  1297,   563,
-   563,   533,   533,-32768,-32768,-32768,-32768,-32768,   571,   225,
-   577,   369,   355,-32768,  3355,-32768,   579,   418,-32768,  2270,
--32768,   708,   580,   314,  3054,   588,  3511,  2048,-32768,-32768,
-  3568,  3610,-32768,-32768,   583,   132,-32768,   590,  3258,-32768,
--32768,   457,  3131,   608,    75,   591,-32768,-32768,-32768,  3614,
--32768,   596,   276,-32768,-32768,   232,-32768,-32768,    90,-32768,
--32768,-32768,   848,-32768,   422,-32768,-32768,   422,-32768,   637,
--32768,-32768,   593,-32768,   601,-32768,-32768,-32768,-32768,-32768,
-   600,-32768,   602,  2892,   270,   603,   523,-32768,   650,-32768,
--32768,-32768,  3539,-32768,-32768,   578,-32768,-32768,-32768,-32768,
--32768,   646,  2892,  1612,   996,-32768,-32768,   481,-32768,-32768,
--32768,   481,-32768,-32768,   612,-32768,-32768,   234,   609,   270,
--32768,  2624,   610,  2663,-32768,-32768,  3614,  2067,    90,-32768,
-   618,   624,    90,-32768,   449,-32768,   530,-32768,-32768,-32768,
--32768,   103,   128,   699,   450,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,  3644,   631,-32768,-32768,-32768,
-   573,   344,-32768,-32768,  3580,-32768,   706,   338,-32768,-32768,
--32768,   640,   550,-32768,  1795,    90,-32768,-32768,    90,-32768,
-   629,-32768,-32768,   629,    91,    91,  3714,-32768,    91,   641,
-   270,  1056,   650,-32768,  1560,  2892,   685,   643,  3539,-32768,
--32768,  1533,-32768,-32768,  2892,-32768,-32768,-32768,-32768,   573,
--32768,-32768,-32768,-32768,   270,-32768,-32768,   661,   449,-32768,
-  3447,  3447,   245,   434,   103,  3286,-32768,   561,  3149,   284,
-   284,-32768,-32768,-32768,   344,    91,   202,   220,    91,-32768,
-    91,   220,    91,  3355,-32768,-32768,-32768,-32768,-32768,   434,
--32768,   103,-32768,   796,-32768,-32768,  3714,-32768,-32768,  1795,
--32768,-32768,   436,-32768,-32768,-32768,    91,-32768,   285,   512,
-   920,   652,   653,  1140,-32768,-32768,-32768,-32768,-32768,   694,
-   270,-32768,   695,  3714,   656,   654,-32768,-32768,    80,  1720,
-   225,-32768,  2892,-32768,   685,-32768,  2892,   250,   202,   220,
-    91,   294,-32768,-32768,   581,-32768,   675,   449,-32768,-32768,
--32768,-32768,  2892,   702,   662,-32768,   662,   633,   573,-32768,
-  2329,-32768,-32768,-32768,   342,   344,-32768,-32768,-32768,   336,
-   426,   796,-32768,-32768,  1560,-32768,-32768,  2892,    89,-32768,
--32768,   270,-32768,-32768,-32768,-32768,   664,-32768,-32768,-32768,
--32768,  2410,-32768,  1560,-32768,-32768,  1640,-32768,  1870,-32768,
--32768,-32768,  1533,-32768,-32768,-32768,-32768,-32768,   573,-32768,
--32768,   683,    81,    81,  3714,  2892,   284,   566,   566,-32768,
--32768,   669,-32768,-32768,   677,  3678,  2892,-32768,-32768,-32768,
-  2490,   715,   700,-32768,-32768,   701,   705,  2892,   727,   691,
-   707,  2838,   170,   780,   222,   233,-32768,   750,   716,-32768,
-   717,  3366,-32768,   776,  1220,    87,-32768,-32768,-32768,-32768,
--32768,  2652,   720,  1870,-32768,-32768,-32768,   449,-32768,-32768,
--32768,-32768,-32768,  3714,-32768,-32768,-32768,-32768,  3678,  2892,
-   736,-32768,  2892,  2892,  3655,-32768,-32768,-32768,-32768,   722,
-  2892,   729,-32768,   753,    91,-32768,-32768,   434,-32768,   103,
-  1400,-32768,-32768,-32768,-32768,  2892,-32768,-32768,-32768,   751,
--32768,   739,  2892,   802,-32768,   787,   743,   746,  2892,-32768,
--32768,   748,-32768,  2892,-32768,   447,-32768,   172,   462,-32768,
-   461,-32768,-32768,  2490,   747,-32768,-32768,   754,-32768,-32768,
--32768,-32768,  3696,-32768,    64,-32768,   744,-32768,   744,-32768,
--32768,-32768,   752,-32768,-32768,  2892,-32768,-32768,   818,   756,
--32768,-32768,-32768,-32768,-32768,-32768,   760,-32768,   779,    79,
-   762,-32768,-32768,   338,   338,-32768,-32768,  2892,   818,   771,
-   818,-32768,-32768,  2892,   775,   162,-32768,-32768,   781,-32768,
-   538,   782,-32768,   315,   257,-32768,-32768,   788,   538,-32768,
--32768,   315,   858,   867,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    88,
+  3621,-32768,-32768,-32768,  2565,   374,-32768,-32768,-32768,   285,
+   285,   333,   285,   285,-32768,-32768,-32768,   356,   196,   149,
+-32768,   311,   339,-32768,   376,-32768,   896,   741,   164,-32768,
+-32768,   311,-32768,   214,-32768,   164,  1976,   212,   455,   232,
+  1897,   690,-32768,-32768,-32768,-32768,   164,-32768,   412,   369,
+   262,-32768,   411,-32768,   332,-32768,-32768,-32768,-32768,-32768,
+   431,   440,   448,   459,  2725,  3447,  3621,   285,-32768,   466,
+  2833,  1488,-32768,  1488,-32768,  2833,  2833,   528,-32768,-32768,
+  2833,  2833,  2833,  2833,  2833,  2833,  2833,  2833,  2833,  2833,
+  2833,  2833,-32768,-32768,   285,   285,  2833,  2833,-32768,-32768,
+-32768,-32768,-32768,   367,  2093,   164,-32768,   492,   889,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   279,-32768,   511,
+-32768,  3621,-32768,   503,   513,   584,-32768,   374,-32768,   436,
+   513,   188,   526,-32768,   552,   527,   547,-32768,   552,-32768,
+-32768,   455,-32768,-32768,   597,   455,   617,-32768,  3227,-32768,
+   544,   555,-32768,  1995,    75,-32768,-32768,   602,   164,   360,
+   267,-32768,   311,   311,-32768,   741,   164,-32768,  2152,-32768,
+-32768,   741,   575,   164,-32768,-32768,-32768,   568,  3274,   505,
+   220,   164,   220,-32768,   607,   565,-32768,   332,-32768,-32768,
+-32768,   570,   574,  2485,-32768,-32768,-32768,-32768,   615,   578,
+  3447,-32768,   579,   582,-32768,  3713,   588,   590,  3713,  3713,
+  2833,   618,  2833,  2833,  2644,  1284,   820,   871,  1460,  1049,
+  1049,   430,   430,-32768,-32768,-32768,-32768,-32768,   594,   306,
+   577,   237,   272,-32768,  3255,-32768,   591,   367,-32768,  2211,
+-32768,   889,   603,   299,  2995,   606,  3475,  2021,-32768,-32768,
+  3546,  3621,-32768,-32768,   596,   188,-32768,   621,  3199,-32768,
+-32768,   316,  3072,   625,    89,   631,-32768,-32768,-32768,  3591,
+-32768,   633,   240,-32768,-32768,   315,-32768,-32768,    96,-32768,
+-32768,-32768,  3602,-32768,   212,-32768,-32768,   212,-32768,   655,
+-32768,-32768,   610,-32768,   634,-32768,-32768,-32768,-32768,-32768,
+   616,-32768,   630,  2833,   285,   636,   565,-32768,   680,-32768,
+-32768,-32768,  3511,-32768,-32768,   615,-32768,-32768,-32768,-32768,
+-32768,   677,  2833,  1620,  1694,-32768,-32768,   492,-32768,-32768,
+-32768,   492,-32768,-32768,   635,-32768,-32768,   342,   643,   285,
+-32768,  2565,   644,  3300,-32768,-32768,  3591,  2067,    96,-32768,
+   642,   649,    96,-32768,   552,-32768,   453,-32768,-32768,-32768,
+-32768,   339,   173,  2604,   407,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,  3639,   650,-32768,-32768,-32768,
+   497,   580,-32768,-32768,  3557,-32768,   723,   448,-32768,-32768,
+-32768,   651,  3350,-32768,  1723,    96,-32768,-32768,    96,-32768,
+   653,-32768,-32768,   653,-32768,   164,   164,  3713,-32768,   164,
+   652,   285,  1062,   680,-32768,  1315,  2833,   693,   658,  3511,
+-32768,-32768,  1541,-32768,-32768,  2833,-32768,-32768,-32768,-32768,
+   497,-32768,-32768,-32768,-32768,   285,-32768,-32768,   672,   552,
+-32768,  3385,  3385,   183,   311,   339,  1809,-32768,   543,  3090,
+   378,   378,-32768,-32768,-32768,   580,   164,   201,   252,   164,
+-32768,   164,   252,   164,  3255,-32768,-32768,-32768,-32768,-32768,
+   311,-32768,   339,-32768,   833,-32768,-32768,  3713,-32768,-32768,
+  1723,-32768,-32768,   454,   454,-32768,-32768,-32768,   164,-32768,
+   344,   481,   977,   660,   661,  1144,-32768,-32768,-32768,-32768,
+-32768,   698,   285,-32768,   705,  3713,   666,   668,-32768,-32768,
+    64,  1648,   306,-32768,  2833,-32768,   693,-32768,  2833,   353,
+   201,   252,   164,   365,-32768,-32768,   566,-32768,   687,   552,
+-32768,-32768,-32768,-32768,  2833,   721,   679,-32768,   679,   495,
+   497,-32768,  2270,-32768,-32768,-32768,   546,   580,-32768,-32768,
+-32768,   388,   410,   833,-32768,-32768,  1315,-32768,-32768,  2833,
+-32768,   128,   163,-32768,-32768,   285,-32768,-32768,-32768,-32768,
+   683,-32768,-32768,-32768,-32768,  2351,-32768,  1315,-32768,-32768,
+  1568,-32768,  1798,-32768,-32768,-32768,  1541,-32768,-32768,-32768,
+-32768,-32768,   497,-32768,-32768,   699,    74,    74,  3713,  2833,
+   378,   502,   502,-32768,-32768,   682,-32768,-32768,   689,  3389,
+  2833,-32768,-32768,-32768,  2431,   730,   711,-32768,-32768,   713,
+   714,  2833,   737,   707,   708,  2779,   474,   780,   178,   235,
+-32768,   750,   716,-32768,   717,  3304,-32768,   774,  1226,    95,
+-32768,-32768,-32768,-32768,-32768,  2593,   728,  1798,-32768,-32768,
+-32768,   552,-32768,-32768,-32768,-32768,-32768,  3713,-32768,-32768,
+-32768,-32768,  3389,  2833,   732,-32768,  2833,  2833,  3677,-32768,
+-32768,-32768,-32768,   722,  2833,   733,-32768,   748,   164,-32768,
+-32768,   311,-32768,   339,  1408,-32768,-32768,-32768,-32768,  2833,
+-32768,-32768,-32768,   749,-32768,   738,  2833,   798,-32768,   743,
+   739,   742,  2833,-32768,-32768,   744,-32768,  2833,-32768,   451,
+-32768,   656,   467,-32768,   592,-32768,-32768,  2431,   751,-32768,
+-32768,   753,-32768,-32768,-32768,-32768,  3695,-32768,    67,-32768,
+   741,-32768,   741,-32768,-32768,-32768,   747,-32768,-32768,  2833,
+-32768,-32768,   811,   754,-32768,-32768,-32768,-32768,-32768,-32768,
+   756,-32768,   766,   146,   745,-32768,-32768,   448,   448,-32768,
+-32768,  2833,   811,   757,   811,-32768,-32768,  2833,   759,   154,
+-32768,-32768,   761,-32768,   617,   764,-32768,   364,   355,-32768,
+-32768,   771,   617,-32768,-32768,   364,   830,   843,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    83,  -371,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -14,-32768,   -56,   453,  -228,   508,-32768,-32768,
-   -32,-32768,   628,-32768,-32768,-32768,-32768,-32768,    38,-32768,
-  -297,-32768,  -305,   548,-32768,-32768,   215,-32768,     3,  -166,
-    88,     5,   804,-32768,   249,    12,   -29,  -170,   613,    47,
-  -249,  -572,   -69,  -189,  -111,-32768,-32768,-32768,   207,    54,
-    17,-32768,   480,-32768,   253,-32768,  -630,-32768,   152,-32768,
-  -605,-32768,-32768,   229,-32768,-32768,-32768,-32768,-32768,-32768,
-   -51,  -113,  -482,   -18,-32768,-32768,-32768,   -64,-32768,-32768,
--32768,-32768,-32768,   424,   -50,-32768,   559,   442,   258,   558,
-   443,   -59,   -99,  -169,  -173,  -198,   260,-32768,-32768,  -282,
--32768,-32768,-32768,   334,  -412,-32768,  -223,-32768,-32768,-32768,
--32768,  -160,  -524,  -755,   288,-32768,    35,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,    71,-32768,  -738,
-    27,-32768,    26,-32768,   549,-32768,  -357,-32768,   541,   543,
-   406,  -304,-32768,-32768,-32768,-32768,    19,-32768,   934,-32768,
+-32768,-32768,-32768,    79,  -358,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -14,-32768,   -56,   434,  -240,   458,-32768,-32768,
+   -64,-32768,   632,-32768,-32768,-32768,-32768,-32768,    13,-32768,
+  -304,-32768,  -308,   530,-32768,-32768,   187,-32768,    54,   -63,
+    37,    12,   769,-32768,   231,    20,   -29,  -177,   595,    57,
+  -236,  -588,   -78,  -197,  -118,-32768,-32768,-32768,   281,    46,
+    48,-32768,   483,-32768,   229,-32768,  -633,-32768,   130,-32768,
+  -604,-32768,-32768,   225,-32768,-32768,-32768,-32768,-32768,-32768,
+   -47,  -143,  -470,   -12,-32768,-32768,-32768,   -59,-32768,-32768,
+-32768,-32768,-32768,   435,   -43,-32768,   558,   444,   271,   573,
+   457,    -8,   -79,  -176,  -163,  -258,   264,-32768,-32768,  -291,
+-32768,-32768,-32768,   349,  -424,-32768,  -212,-32768,-32768,-32768,
+-32768,  -190,  -507,  -747,   268,-32768,    38,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,    49,-32768,  -830,
+     5,-32768,     6,-32768,   533,-32768,  -365,-32768,   522,   531,
+   392,  -299,-32768,-32768,-32768,-32768,    28,-32768,   923,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   -21,    -5,  -349,-32768,   425,-32768,   345,
-   204,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -286,-32768,
--32768,-32768,   208,   438,-32768,-32768,-32768,-32768,   -37,   676,
--32768,-32768,   459,-32768,   219,   469,-32768,   568,   572,  -142,
--32768,  -132,-32768,-32768,   299,   399,-32768,-32768,-32768,-32768,
--32768,-32768,   619,-32768,-32768,-32768
+-32768,-32768,-32768,   -21,    -4,  -355,-32768,   415,-32768,   327,
+   182,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -280,-32768,
+-32768,-32768,   186,   423,-32768,-32768,-32768,-32768,   -31,   662,
+-32768,-32768,   442,-32768,   198,   452,-32768,   548,   549,  -124,
+-32768,  -138,-32768,-32768,   283,   379,-32768,-32768,-32768,-32768,
+-32768,-32768,   599,-32768,-32768,-32768
 };
 
 
-#define	YYLAST		3766
+#define	YYLAST		3765
 
 
 static const short yytable[] = {   123,
-   139,    63,    72,    86,    67,    68,    32,    32,    71,   363,
-    63,    74,    81,    33,    33,   210,    70,   337,    70,   435,
-    42,    42,   434,    94,    96,    98,   218,   330,   179,   411,
-   459,   207,   298,   461,    83,    85,   464,   327,   400,   334,
-   277,   450,   299,   283,   223,   182,    32,   500,   653,   186,
-   347,   349,    92,    33,   234,    36,    36,   531,   190,   188,
-    42,    70,    53,    54,    55,    70,   211,   720,   627,    92,
-    92,    92,   227,   228,   751,   403,   864,   527,   230,    87,
-   314,   820,  -112,   269,    80,    50,    88,   855,   331,   239,
-   558,   451,   229,   369,   775,    36,    92,   413,   183,   402,
-   271,   909,   414,   141,    92,    75,   604,   180,    -1,   408,
-   606,   294,   145,   813,    16,   749,   929,    -2,    14,   184,
-    14,    59,    60,    56,    99,   337,   777,   900,   181,   287,
-    80,   291,    14,    59,    60,   515,   206,   671,    80,   910,
-   321,   742,   185,   816,   217,   856,   913,   218,   146,   916,
-   549,   918,    76,   649,   930,   293,   651,   821,    57,   926,
-   141,    77,   411,  -112,   327,   302,   303,   917,   306,   307,
-   312,   361,    59,    60,   316,   327,    16,   373,   366,   347,
-   349,   327,   377,   190,   378,    61,   400,   618,   187,   282,
-    62,   950,   146,   276,    58,   939,   276,    61,   195,   941,
-    93,  -175,    62,   498,    82,    59,    60,  -175,   859,   502,
-   355,   401,    95,   144,   218,   781,   455,   141,   407,   841,
-   458,   457,    92,   374,   219,   768,   769,   354,   486,    59,
-    60,    14,   416,    92,   222,   603,    61,   942,   608,   350,
-   224,    62,    80,   191,   701,   206,    80,   192,  -175,    14,
-   397,   398,  -175,   236,    75,   206,   226,   695,   311,   -35,
-   710,   711,   545,   546,   332,   217,    16,   141,   333,    61,
-   -34,   195,    59,    60,    62,   876,   719,    16,   196,   197,
-   425,    14,   463,   141,    97,   423,    75,   200,   141,   237,
-   141,   240,    92,    61,    59,    60,    70,   238,    62,   665,
-   471,    76,   473,   196,   197,   241,   573,   556,   573,   594,
-    77,   312,   557,    14,   595,   316,    59,    60,   284,   285,
-   286,   703,   697,   269,   492,   754,   272,   276,   884,   270,
-   241,   482,   948,   201,   638,   340,    61,   949,   141,   192,
-   587,    62,   202,   355,    75,    92,    75,   218,   311,   467,
-   292,   469,   554,   505,   280,   203,   555,   681,    61,   196,
-   197,   731,   522,    62,   300,   732,   688,   304,   350,   298,
-   758,    14,    36,    14,   759,   311,   313,   317,   734,   299,
-    61,   739,    89,   206,    90,    62,   206,   206,    75,   200,
-   343,   630,   311,   630,   724,   282,   141,   310,    14,   287,
-   625,   275,   625,   275,   526,   770,    59,    60,   338,   339,
-    86,   762,   773,   409,   410,    14,   333,   344,   273,   361,
-    70,   666,   513,   563,   352,   456,   403,   274,   275,   514,
-   499,   532,   359,   533,   360,   201,    75,   200,    75,   200,
-   534,   551,   552,   364,   202,   -85,   685,    14,   545,   546,
-   708,   629,   633,   375,   681,   276,   715,   203,    36,   709,
-   355,   276,   422,    14,   716,    14,   417,   273,   141,   415,
-    61,    36,   724,   728,    36,    62,   274,   275,   418,   141,
-   338,   339,    36,   201,    86,   201,    87,   195,    51,    52,
-  -175,   573,   202,    88,   202,   597,  -175,   529,   530,   564,
-   420,   666,   774,   740,    86,   203,   192,   203,   426,   498,
-   502,  -475,  -477,   613,   431,   600,   498,   502,   803,   196,
-   197,   513,   430,   896,   538,   539,   540,   333,   514,   196,
-   197,   860,   628,   632,   541,   614,   615,  -175,   898,   409,
-   410,  -175,   192,   460,   195,   210,   102,   620,   621,   447,
-   466,  -278,  -278,     5,    89,     7,    90,   803,   472,   448,
-    87,     9,    10,    11,   640,   642,   658,    88,   704,   704,
-    36,   454,   721,   699,   700,    75,   623,    13,   468,   218,
-    87,   690,   260,   261,   262,    80,   465,    88,   448,   733,
-   694,   911,   282,   912,    16,   474,   613,   538,   539,   540,
-   480,   729,    14,   475,   626,   631,   190,   610,    36,   643,
-   258,   259,   260,   261,   262,   484,    22,   478,   532,   485,
-   533,    24,   624,   613,   710,   711,   641,   534,   538,   539,
-   540,   625,   275,   243,   245,    75,   623,   488,   702,   311,
-   489,   493,    92,   944,   490,   491,   496,    92,   538,   539,
-   540,   952,   528,   626,   772,   506,   743,   218,   760,   497,
-   803,   501,    14,   510,   524,   141,   550,   206,    80,    36,
-   548,   553,   567,   206,   206,   568,   570,   575,   631,   576,
-   579,   581,   624,   591,   596,   799,   599,    36,   337,   312,
-   316,   625,   275,   206,   593,    80,   312,   316,   555,   605,
-   932,   933,     5,     6,     7,     8,   206,   622,   637,   652,
-     9,    10,    11,   214,   215,   704,   639,   779,   657,     9,
-    10,    11,   683,   696,   799,   684,    13,   798,    14,  -315,
-   738,   -32,   745,   746,   747,   840,   327,   761,   327,   766,
-   690,   780,   767,    16,   322,   819,   801,  -336,  -336,  -336,
-  -336,   826,   -33,   802,   827,  -336,  -336,  -336,   830,   833,
-   812,   626,   626,   834,   836,    22,   798,   837,   631,   631,
-    24,  -336,    86,   862,    72,    84,   865,   868,   842,   271,
-   879,   654,   655,   838,   872,   656,   843,   845,  -336,    70,
-    70,   851,   846,   847,   863,    36,   878,   858,   871,   885,
-   723,   214,   215,   848,   850,   873,   888,     9,    10,    11,
-  -336,   874,   626,   886,   887,  -336,   801,   895,   889,   891,
-   206,   892,   903,   802,   894,  -111,   919,   799,   914,   904,
-   812,   881,   923,   712,   713,   714,   927,   928,   717,   718,
-   263,   264,   931,   265,   266,   267,   268,   937,    87,   865,
-   940,     5,     6,     7,     8,    88,   943,   954,   946,     9,
-    10,    11,   890,   730,   951,    36,   955,   509,   376,   798,
-   866,   935,   452,   379,   380,    13,   735,   865,   385,   386,
-   387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
-   212,   722,    16,   507,   412,   755,   756,   757,   815,   857,
-   580,   206,   726,    80,   213,   214,   215,   750,   470,   727,
-   574,     9,    10,    11,    22,   477,   668,   578,   901,    24,
-   322,   736,  -124,  -124,  -124,  -124,  -124,  -124,  -124,    14,
-  -124,  -124,  -124,  -124,  -124,   778,  -124,  -124,  -124,  -124,
-  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
-  -124,   741,  -124,  -124,   902,   936,   938,   503,    73,  -124,
-   636,   520,  -124,   521,  -124,   707,   619,  -124,  -124,  -124,
-   825,   823,   617,  -124,  -124,   602,   424,   817,  -124,  -124,
-   598,   752,   828,  -124,   511,  -124,  -124,   686,   512,   487,
-  -124,  -124,     0,     0,  -124,     0,  -124,  -124,  -124,  -124,
-     0,  -124,   255,   256,   257,   258,   259,   260,   261,   262,
-   494,   495,   254,   255,   256,   257,   258,   259,   260,   261,
-   262,   322,     0,     0,  -115,  -115,  -115,  -115,     0,     0,
-  -115,     0,  -115,  -115,  -115,   861,   251,   252,   253,   254,
-   255,   256,   257,   258,   259,   260,   261,   262,  -115,     0,
-     0,   875,     0,     0,     0,     0,   660,     0,  -336,  -336,
-  -336,  -336,  -336,  -336,  -336,  -115,  -336,  -336,  -336,  -336,
+   139,    63,    72,    86,    67,    68,   210,   327,    71,   337,
+    63,    74,   435,    32,    32,   403,   193,    70,    81,    70,
+   363,    33,    33,    94,    96,    98,   400,   459,   434,    42,
+    42,   218,   450,   464,   179,   207,   299,   330,   461,   500,
+   227,   228,   411,   347,   349,   182,   230,    36,    36,   186,
+   298,   223,   722,    32,    53,    54,    55,   239,   331,   188,
+   277,    33,    70,   283,   190,   654,    70,   655,   271,    42,
+   531,   527,   211,   314,   824,  -112,    80,   755,    88,   921,
+   628,    50,    -1,    92,   451,    83,    85,    36,   868,    87,
+    59,    60,   229,   779,   605,   859,   558,   269,   607,   753,
+    92,    92,    92,   183,   913,   234,   187,   943,   191,   402,
+   146,   369,   192,   141,   817,    59,    60,   337,    59,    60,
+    99,   673,    80,    89,   184,    90,   515,    92,   206,   287,
+    80,   291,    51,    52,   327,    92,   217,    59,    60,   904,
+   321,   650,   914,   498,   652,   327,   292,   185,   820,   502,
+   825,   327,   218,   860,    61,   293,  -112,    14,   917,    62,
+   746,   920,   294,   922,   549,   302,   303,    -2,   306,   307,
+   141,   930,   347,   349,   400,   411,   312,   361,   366,    61,
+   316,   619,    61,   933,    62,   276,   455,    62,   276,   190,
+   458,   945,    14,    14,    93,   145,    56,    95,    75,   282,
+   781,    61,   311,   954,  -184,  -184,    62,   196,   197,   195,
+   355,   401,   408,   863,   457,   -35,    97,    57,   407,   218,
+    58,   934,    16,   374,   313,    14,   604,   141,   373,   946,
+    14,   146,    16,   377,    80,   378,   785,   206,    80,   772,
+   773,   196,   197,   311,   609,    76,   486,   206,   350,    82,
+   397,   398,   697,    92,    77,   545,   546,   217,   703,   712,
+   713,   144,   345,   880,    92,     5,    14,     7,   138,   721,
+   338,   339,   -34,     9,    10,    11,   573,   141,   575,    16,
+   425,    14,   463,   416,   219,   423,   273,    59,    60,    13,
+   332,   667,    15,   141,   333,   274,   275,    70,   141,   482,
+   141,    59,    60,   284,   285,   286,    16,   471,   340,   473,
+   196,   197,   192,    75,   200,   180,   554,   312,   236,   276,
+   555,   316,    16,    92,   492,   338,   339,   222,    22,   699,
+   409,   410,   354,    24,    59,    60,   181,   224,   346,  -271,
+    14,    75,   456,   355,   226,   639,   683,   499,   141,   888,
+   237,    61,   218,   505,   413,   690,    62,   240,   588,   414,
+   201,   238,    75,   200,    36,    61,   311,   403,    14,   202,
+    62,   738,   269,   299,   743,   206,    92,   350,   206,   206,
+    75,   200,   203,   538,   539,   540,   241,   298,    76,    14,
+   556,   270,   668,   541,   272,   557,    14,    77,    61,   287,
+   467,   280,   469,    62,   526,   282,   141,    14,   726,   201,
+    86,   300,   774,   522,   304,   705,   273,   595,   202,   766,
+   735,    70,   596,   563,   736,   274,   275,   201,   758,   513,
+   952,   203,   310,   241,   317,   953,   202,   514,    59,    60,
+   533,   762,   545,   546,   683,   763,   344,   276,   534,   203,
+    36,   498,   502,   276,   529,   530,    75,   200,   498,   502,
+   355,   710,   575,    36,   777,   687,    36,   717,   333,  -477,
+   343,   630,   634,   668,    36,   744,    59,    60,   141,   260,
+   261,   262,   532,    14,    86,    88,   778,   726,   352,   141,
+   192,   730,   551,   552,   422,   598,    87,    75,   624,    75,
+   624,   311,    61,   201,    86,   345,   359,    62,     5,   564,
+     7,   138,   202,   196,   197,   360,     9,    10,    11,   614,
+   538,   539,   540,   845,    14,   203,    14,   900,   513,   361,
+   611,   333,    13,   807,   364,    15,   514,   210,   629,   633,
+    61,   864,   375,   902,   625,    62,   625,   192,    75,    16,
+   409,   410,   311,   626,   275,   626,   275,   448,   737,    88,
+   712,   713,    36,   711,   723,   -85,   601,   660,   718,   415,
+    87,    22,   807,   706,   706,    14,    24,    80,   417,    88,
+   701,   702,    75,   243,   245,   218,   615,   616,   692,   418,
+    87,   696,   915,   420,   916,   631,   627,   632,   621,   622,
+    36,   426,   282,   614,   626,   275,   733,   733,   430,    14,
+   538,   539,   540,   190,  -475,   641,   643,   460,   195,   644,
+   704,  -175,   431,   195,   466,   102,   447,  -175,   533,   631,
+   614,   448,   472,   538,   539,   540,   534,   454,   626,   275,
+   948,   465,   474,   764,   468,   475,   627,   478,   956,   480,
+   196,   197,   484,   485,   488,   493,   776,   489,   747,   497,
+   206,    80,    36,   490,   218,   491,   206,   206,  -175,   496,
+   532,   632,  -175,   501,    92,   807,   141,   524,   506,    92,
+    36,   510,   195,   528,   337,  -175,   206,   548,    80,   803,
+   567,  -175,   568,   576,   213,   214,   215,   312,   316,   732,
+   206,     9,    10,    11,   312,   316,   550,   577,   553,   570,
+   327,   582,   327,   580,   592,   936,   937,   594,   597,    14,
+   600,   783,   555,   706,   606,   638,   623,   640,   803,   659,
+   685,   802,  -175,   653,   698,   -32,  -175,  -315,   742,   844,
+   686,   322,   749,   750,  -336,  -336,  -336,  -336,   751,   765,
+   692,   271,  -336,  -336,  -336,   627,   627,   805,   770,   771,
+   784,   823,   632,   632,   830,   806,   831,   -33,  -336,   834,
+   802,   837,   838,   816,   840,   883,    86,   866,    72,    92,
+   869,   872,   846,   841,   842,  -336,   847,   849,   876,   855,
+   867,    36,   850,   851,    70,    70,   263,   264,   875,   265,
+   266,   267,   268,   889,   882,   862,   878,  -336,   627,   877,
+   892,   890,  -336,   891,   893,   895,   206,   896,   894,   923,
+   898,   899,  -111,   918,   932,   935,   907,   805,   908,   958,
+   927,   803,   931,   941,   944,   806,   947,   725,   214,   215,
+   950,   885,   959,   816,     9,    10,    11,   955,   509,   870,
+   739,    88,   861,   869,   452,   212,   656,   657,   852,   854,
+   658,    36,    87,   254,   255,   256,   257,   258,   259,   260,
+   261,   262,   376,   802,   724,   939,   412,   379,   380,   728,
+   819,   869,   385,   386,   387,   388,   389,   390,   391,   392,
+   393,   394,   395,   396,   214,   215,   507,   206,   100,    80,
+     9,    10,    11,   101,   102,   754,   103,   470,   714,   715,
+   716,   581,   574,   719,   720,   255,   256,   257,   258,   259,
+   260,   261,   262,   729,   104,   905,    15,   740,   105,   106,
+   477,   579,   670,   745,   731,   107,   906,   940,   108,   734,
+   942,   503,   520,   109,   110,   111,   637,    73,   709,   112,
+   113,   521,   829,   827,   114,   115,   620,   618,   603,   116,
+   821,   117,   424,   599,   511,   512,   118,   756,   688,   487,
+   119,   759,   760,   761,   120,   121,     0,   322,   320,  -124,
+  -124,  -124,  -124,  -124,  -124,  -124,     0,  -124,  -124,  -124,
+  -124,  -124,     0,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
+  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,     0,  -124,
+  -124,     0,     0,   782,   494,   495,  -124,     0,     0,  -124,
+     0,  -124,     0,     0,  -124,  -124,  -124,     0,     0,     0,
+  -124,  -124,     0,     0,     0,  -124,  -124,     0,     0,     0,
+  -124,     0,  -124,  -124,     0,     0,     0,  -124,  -124,     0,
+     0,  -124,     0,  -124,  -124,  -124,  -124,     0,  -124,     0,
+   832,     0,   662,     0,  -336,  -336,  -336,  -336,  -336,  -336,
+  -336,     0,  -336,  -336,  -336,  -336,  -336,     0,  -336,  -336,
+  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,
+  -336,  -336,  -336,     0,  -336,  -336,   258,   259,   260,   261,
+   262,  -336,     0,     0,  -336,   578,  -336,     0,     0,  -336,
+  -336,  -336,     0,   865,     0,  -336,  -336,     0,     0,     0,
+  -336,  -336,     0,     0,   593,  -336,     0,  -336,  -336,   879,
+     0,     0,  -336,  -336,     0,     0,  -336,     0,  -336,     0,
+  -336,  -336,     0,  -336,   322,     0,  -336,  -336,     0,     0,
+     0,  -336,  -336,     0,  -336,     0,     0,     0,  -336,     0,
+  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,
+  -336,     0,  -336,     0,  -336,     0,  -336,  -336,     0,     0,
+     0,     0,     0,  -336,   263,   264,  -336,   265,   266,   267,
+   268,  -336,  -336,  -336,     0,     0,   648,  -336,  -336,     0,
+     0,     0,  -336,  -336,     0,     0,     0,  -336,     0,  -336,
+  -336,     0,     0,     0,  -336,  -336,     0,   676,  -336,     0,
+  -336,  -311,  -336,  -336,     0,  -336,   856,     0,  -336,  -336,
+     0,     0,     0,  -336,  -336,     0,  -336,     0,     0,     0,
   -336,     0,  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,
-  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -115,  -336,  -336,
-     0,     0,  -115,     0,     0,  -336,     0,     0,  -336,     0,
-  -336,   577,  -115,  -336,  -336,  -336,     0,     0,     0,  -336,
-  -336,     0,     0,     0,  -336,  -336,     0,     0,     0,  -336,
-   592,  -336,  -336,     0,     0,     0,  -336,  -336,     0,     0,
+  -336,  -336,  -336,     0,  -336,     0,  -336,     0,  -336,  -336,
+     0,     0,     0,     0,     0,  -336,     0,     0,  -336,     0,
+     0,     0,     0,  -336,  -336,  -336,     0,     0,     0,  -336,
+  -336,     0,   648,     0,  -336,  -336,     0,     0,     0,  -336,
+     0,  -336,  -336,     0,     0,     0,  -336,  -336,     0,     0,
   -336,     0,  -336,     0,  -336,  -336,     0,  -336,     0,     0,
-   322,     0,  -336,  -336,     0,     0,     0,  -336,  -336,     0,
-  -336,     0,     0,     0,  -336,     0,  -336,  -336,  -336,  -336,
-  -336,  -336,  -336,  -336,  -336,  -336,  -336,     0,  -336,     0,
-  -336,     0,  -336,  -336,     0,     0,     0,     0,     0,  -336,
-   263,   264,  -336,   265,   266,   267,   268,  -336,  -336,  -336,
-     0,     0,   647,  -336,  -336,     0,     0,     0,  -336,  -336,
-     0,     0,     0,  -336,     0,  -336,  -336,     0,     0,     0,
-  -336,  -336,   674,     0,  -336,     0,  -336,  -311,  -336,  -336,
-   852,  -336,  -336,  -336,     0,     0,     0,  -336,  -336,     0,
-  -336,     0,     0,     0,  -336,     0,  -336,  -336,  -336,  -336,
-  -336,  -336,  -336,  -336,  -336,  -336,  -336,     0,  -336,     0,
-  -336,     0,  -336,  -336,     0,     0,     0,     0,     0,  -336,
-     0,     0,  -336,     0,     0,     0,     0,  -336,  -336,  -336,
-     0,     0,     0,  -336,  -336,     0,     0,   647,  -336,  -336,
-     0,     0,     0,  -336,     0,  -336,  -336,     0,     0,     0,
-  -336,  -336,     0,     0,  -336,     0,  -336,     0,  -336,  -336,
-     0,  -336,     0,     0,     0,     0,   194,   674,     0,   -28,
-   -28,   -28,   -28,     0,   753,     0,     0,   -28,   -28,   -28,
-   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-   765,     0,   195,   -28,     0,  -175,     0,     0,     0,     0,
-     0,  -175,   256,   257,   258,   259,   260,   261,   262,     0,
-   -28,     0,   674,     0,     0,   776,     0,     0,     0,     0,
-     0,     0,     0,     0,   196,   197,     0,     0,     0,     0,
-     0,   674,   -28,     0,   674,     0,   674,   -28,     0,     0,
-     0,     0,  -175,     0,     0,     0,  -175,   -28,     5,     0,
-     7,   281,     0,   824,     0,     0,     9,    10,    11,     0,
-   882,     0,  -346,  -346,   829,     0,     0,  -346,  -346,     0,
-  -346,     0,    13,     0,  -346,   835,  -346,  -346,  -346,  -346,
-  -346,  -346,  -346,  -346,  -346,  -346,  -346,     0,  -346,    16,
-  -346,     0,  -346,  -346,     0,     0,     0,     0,     0,  -346,
-     0,   674,  -346,     0,     0,     0,     0,  -346,  -346,  -346,
-     0,    22,     0,  -346,  -346,     0,    24,     0,  -346,  -346,
-     0,  -280,  -280,  -346,     0,  -346,  -346,     0,     0,     0,
-  -346,  -346,     0,     0,  -346,     0,  -346,     0,  -346,  -346,
-   231,  -346,   100,     5,     0,     7,   138,   101,   102,     0,
-   103,     9,    10,    11,     0,     0,   893,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    13,   104,     0,
-    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
-     0,     0,   108,     0,    16,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,     0,     0,     0,   114,   115,
-     0,     0,     0,   116,     0,   117,    22,     0,     0,     0,
-   118,    24,     0,     0,   119,     0,     0,     0,   120,   121,
-   669,   -94,   670,    60,     0,     0,     0,   101,   102,   248,
-   103,   249,   250,   251,   252,   253,   254,   255,   256,   257,
-   258,   259,   260,   261,   262,     0,     0,     0,   104,     0,
-    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
-     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,     0,     0,   671,   114,   115,
-     0,     0,     0,   116,     0,   117,    61,     0,     0,     0,
-   118,    62,     0,     0,   119,     0,     0,  -203,   120,   121,
-   669,   672,   670,    60,     0,     0,     0,   101,   102,     0,
-   103,   250,   251,   252,   253,   254,   255,   256,   257,   258,
-   259,   260,   261,   262,     0,     0,     0,     0,   104,     0,
-    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
-     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,     0,     0,   671,   114,   115,
-     0,     0,     0,   116,     0,   117,    61,     0,     0,     0,
-   118,    62,     0,     0,   119,     0,     0,  -268,   120,   121,
-   669,   672,   100,     0,     0,     0,     0,   101,   102,     0,
-   103,   252,   253,   254,   255,   256,   257,   258,   259,   260,
-   261,   262,     0,     0,     0,     0,     0,     0,   104,     0,
-    15,     0,   105,   106,     0,  -216,     0,     0,     0,   107,
-     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,     0,     0,  -216,   114,   115,
-     0,     0,     0,   116,     0,   117,     0,     0,     0,     0,
-   118,     0,     0,     0,   119,   645,     0,   100,   120,   121,
-     0,   672,   101,   102,     0,   103,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   676,     0,   671,     0,   672,    60,     0,
+   757,     0,   101,   102,     0,   103,   253,   254,   255,   256,
+   257,   258,   259,   260,   261,   262,   769,     0,     0,     0,
      0,     0,     0,   104,     0,    15,     0,   105,   106,     0,
-     0,     0,     0,     0,   107,     0,     0,   108,     0,     0,
-     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
-     0,     0,     0,   114,   115,     0,     0,     0,   116,     0,
-   117,     0,     0,     0,     0,   118,     0,     0,     0,   119,
-   669,     0,   100,   120,   121,     0,   646,   101,   102,     0,
-   103,   345,     0,     0,     5,     0,     7,   138,     0,     0,
-     0,     0,     9,    10,    11,     0,     0,     0,   104,     0,
-    15,     0,   105,   106,     0,     0,     0,     0,    13,   107,
-     0,    15,   108,     0,     0,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,    16,     0,     0,   114,   115,
-     0,     0,     0,   116,     0,   117,     0,     0,     0,     0,
-   118,     0,     0,     0,   119,     0,     0,    22,   120,   121,
-   341,   672,    24,   -24,   -24,   -24,   -24,   346,  -271,     0,
-     0,   -24,   -24,   -24,     0,     0,     0,     0,     0,   335,
-     0,     0,   -20,   -20,   -20,   -20,   195,   -24,     0,  -175,
-   -20,   -20,   -20,     0,     0,  -175,     0,     0,     0,     0,
-     0,     0,     0,     0,   -24,   195,   -20,     0,  -175,     0,
-     0,     0,     0,     0,  -175,     0,     0,     0,   196,   197,
-     0,     0,     0,   -20,     0,     0,   -24,     0,     0,     0,
-     0,   -24,     0,     0,     0,     0,  -175,     0,     0,     0,
-  -175,   -24,     0,     0,     0,   -20,     0,     0,     0,     0,
-   -20,     0,     0,     0,     0,  -175,     0,     0,   322,  -175,
-   -20,     5,     6,     7,     8,     0,     0,     0,     0,     9,
-    10,    11,     0,     0,     0,     0,     0,   322,     0,     0,
-  -499,  -499,  -499,  -499,     0,    13,     0,    14,  -499,  -499,
-  -499,     5,     0,     7,   281,     0,     0,     0,     0,     9,
-    10,    11,    16,     0,  -499,   100,  -499,     0,     0,     0,
-   101,   102,     0,   103,     0,    13,     0,    14,     0,     0,
-     0,  -499,     0,     0,    22,     0,     0,     0,     0,    24,
-     0,   104,    16,    15,     0,   105,   106,   273,     0,  -497,
+     0,     0,     0,     0,   107,     0,     0,   108,   676,     0,
+     0,   780,   109,   110,   111,     0,     0,     0,   112,   113,
+     0,     0,   673,   114,   115,     0,     0,     0,   116,   676,
+   117,    61,   676,     0,   676,   118,    62,     0,     0,   119,
+     0,     0,  -203,   120,   121,     0,   674,     0,     0,     0,
+     0,   828,     0,     0,     0,     0,     0,     0,   886,     0,
+  -346,  -346,   833,     0,     0,  -346,  -346,     0,  -346,     0,
+     0,     0,  -346,   839,  -346,  -346,  -346,  -346,  -346,  -346,
+  -346,  -346,  -346,  -346,  -346,     0,  -346,     0,  -346,     0,
+  -346,  -346,     0,     0,     0,     0,     0,  -346,     0,   676,
+  -346,     0,     0,     0,     0,  -346,  -346,  -346,     0,     0,
+     0,  -346,  -346,     0,     0,     0,  -346,  -346,     0,     0,
+     0,  -346,     0,  -346,  -346,     0,     0,     0,  -346,  -346,
+     0,     0,  -346,     0,  -346,     0,  -346,  -346,   231,  -346,
+   100,     5,     0,     7,   138,   101,   102,     0,   103,     9,
+    10,    11,     0,     0,   897,   256,   257,   258,   259,   260,
+   261,   262,     0,     0,     0,    13,   104,     0,    15,     0,
+   105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
+   108,     0,    16,     0,     0,   109,   110,   111,     0,     0,
+     0,   112,   113,     0,     0,     0,   114,   115,     0,     0,
+     0,   116,     0,   117,    22,     0,     0,     0,   118,    24,
+     0,     0,   119,     0,     0,     0,   120,   121,   671,   -94,
+   672,    60,     0,     0,     0,   101,   102,   248,   103,   249,
+   250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+   260,   261,   262,     0,     0,     0,   104,     0,    15,     0,
+   105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
+   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
+     0,   112,   113,     0,     0,   673,   114,   115,     0,     0,
+     0,   116,     0,   117,    61,     0,     0,     0,   118,    62,
+     0,     0,   119,     0,     0,  -268,   120,   121,   671,   674,
+   100,     0,     0,     0,     0,   101,   102,     0,   103,   250,
+   251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
+   261,   262,     0,     0,     0,     0,   104,     0,    15,     0,
+   105,   106,     0,  -216,     0,     0,     0,   107,     0,     0,
+   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
+     0,   112,   113,     0,     0,  -216,   114,   115,     0,     0,
+     0,   116,     0,   117,     0,     0,     0,     0,   118,     0,
+     0,     0,   119,   646,     0,   100,   120,   121,     0,   674,
+   101,   102,     0,   103,   251,   252,   253,   254,   255,   256,
+   257,   258,   259,   260,   261,   262,     0,     0,     0,     0,
+     0,   104,     0,    15,     0,   105,   106,     0,     0,     0,
+     0,     0,   107,     0,     0,   108,     0,     0,     0,     0,
+   109,   110,   111,     0,     0,     0,   112,   113,     0,     0,
+     0,   114,   115,     0,     0,     0,   116,     0,   117,     0,
+     0,     0,     0,   118,     0,     0,     0,   119,   671,     0,
+   100,   120,   121,     0,   647,   101,   102,     0,   103,     4,
+     0,  -128,     5,     6,     7,     8,     0,     0,     0,     0,
+     9,    10,    11,     0,     0,     0,   104,     0,    15,     0,
+   105,   106,     0,     0,     0,     0,    13,   107,    14,     0,
+   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
+     0,   112,   113,    16,     0,     0,   114,   115,  -128,     0,
+     0,   116,     0,   117,     0,     0,     0,  -128,   118,     0,
+     0,     0,   119,     0,     0,    22,   120,   121,   194,   674,
+    24,   -28,   -28,   -28,   -28,    27,     0,     0,     0,   -28,
+   -28,   -28,     0,     0,     0,     0,     0,   341,     0,     0,
+   -24,   -24,   -24,   -24,   195,   -28,     0,  -175,   -24,   -24,
+   -24,     0,     0,  -175,     0,     0,     0,     0,     0,     0,
+     0,     0,   -28,   195,   -24,     0,  -175,     0,     0,     0,
+     0,     0,  -175,     0,     0,     0,   196,   197,     0,     0,
+     0,   -24,     0,     0,   -28,     0,     0,     0,     0,   -28,
+     0,     0,     0,     0,  -175,   196,   197,     0,  -175,   -28,
+     0,     0,     0,   -24,     0,     0,     0,     0,   -24,     0,
+     0,     0,     0,  -175,     0,     0,   335,  -175,   -24,   -20,
+   -20,   -20,   -20,     0,     0,     0,     0,   -20,   -20,   -20,
+     0,     0,     0,     0,     0,   322,     0,     0,  -115,  -115,
+  -115,  -115,   195,   -20,  -115,  -175,  -115,  -115,  -115,     0,
+     0,  -175,     0,     0,     0,     0,     0,     0,     0,     0,
+   -20,   322,  -115,     0,     5,     6,     7,     8,     0,     0,
+     0,     0,     9,    10,    11,     0,     0,     0,     0,  -115,
+     0,     0,   -20,     0,     0,     0,     0,   -20,    13,     0,
+    14,     0,  -175,     0,     0,     0,  -175,   -20,     0,     0,
+     0,  -115,     0,     0,     0,    16,  -115,   322,     0,     0,
+  -499,  -499,  -499,  -499,     0,     0,  -115,     0,  -499,  -499,
+  -499,     5,     0,     7,   281,     0,     0,    22,     0,     9,
+    10,    11,    24,     0,  -499,   100,  -499,     0,     0,     0,
+   101,   102,  -497,   103,     0,    13,     0,    14,     0,     0,
+     0,  -499,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   104,    16,    15,     0,   105,   106,   273,     0,     0,
      0,     0,   107,  -499,     0,   108,   274,   275,  -499,     0,
    109,   110,   111,     0,    22,     0,   112,   113,  -499,    24,
      0,   114,   115,     0,   100,     0,   116,     0,   117,   101,
    102,     0,   103,   118,     0,     0,     0,   119,     0,     0,
-     0,   120,   121,     0,     0,   320,     0,     0,     0,     0,
+     0,   120,   121,     0,     0,   406,     0,     0,     0,     0,
    104,     0,    15,     0,   105,   106,     0,     0,     0,     0,
      0,   107,     0,     0,   108,     0,     0,     0,     0,   109,
    110,   111,     0,     0,     0,   112,   113,     0,     0,     0,
    114,   115,     0,   100,     0,   116,     0,   117,   101,   102,
      0,   103,   118,     0,     0,     0,   119,     0,     0,     0,
-   120,   121,     0,     0,   406,     0,     0,     0,     0,   104,
+   120,   121,     0,     0,   462,     0,     0,     0,     0,   104,
      0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
    107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
    111,     0,     0,     0,   112,   113,     0,     0,     0,   114,
    115,     0,   100,     0,   116,     0,   117,   101,   102,     0,
    103,   118,     0,     0,     0,   119,     0,     0,     0,   120,
-   121,     0,     0,   462,     0,     0,     0,     0,   104,     0,
+   121,     0,     0,   504,     0,     0,     0,     0,   104,     0,
     15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
      0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
      0,     0,     0,   112,   113,     0,     0,     0,   114,   115,
-     0,   100,     0,   116,     0,   117,   101,   102,     0,   103,
+     0,     0,     0,   116,     0,   117,     0,     0,     0,     0,
    118,     0,     0,     0,   119,     0,     0,     0,   120,   121,
-     0,     0,   504,     0,     0,     0,     0,   104,     0,    15,
+     0,     0,   775,   672,   786,     6,     7,     8,   101,   102,
+     0,   103,     9,    10,    11,   787,     0,   788,   789,   790,
+   791,   792,   793,   794,   795,   796,   797,   798,    13,   104,
+    14,    15,     0,   105,   106,     0,     0,     0,     0,     0,
+   107,     0,     0,   108,     0,    16,     0,     0,   109,   110,
+   111,     0,     0,     0,   112,   113,     0,     0,     0,   114,
+   115,     0,     0,     0,   116,     0,   117,   799,     0,     0,
+     0,   118,   800,     0,     0,   119,     0,   801,     0,   120,
+   121,     0,   361,   672,    60,     0,     0,     0,   101,   102,
+     0,   103,     0,     0,     0,   787,     0,   788,   789,   790,
+   791,   792,   793,   794,   795,   796,   797,   798,     0,   104,
+     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
+   107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
+   111,     0,     0,     0,   112,   113,     0,   100,     0,   114,
+   115,     0,   101,   102,   116,   103,   117,    61,     0,     0,
+     0,   118,    62,     0,     0,   119,     0,   801,     0,   120,
+   121,     0,   361,   104,     0,    15,     0,   105,   106,     0,
+     0,     0,     0,     0,   107,     0,     0,   108,     0,     0,
+     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
+     0,     0,     0,   114,   115,     0,     0,     0,   116,     0,
+   117,     0,     0,     0,     0,   118,     0,     0,     0,   119,
+     0,     0,     0,   120,   121,     0,   481,   147,   148,     0,
+   149,   150,     0,     0,     0,   151,   152,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,     0,   100,     5,     6,     7,     8,
+   101,   102,   170,   103,     9,    10,    11,     5,     6,     7,
+     8,     0,     0,     0,     0,     9,    10,    11,     0,     0,
+    13,   104,    14,    15,     0,   105,   106,     0,     0,     0,
+     0,    13,   107,    14,     0,   108,   172,    16,     0,     0,
+   109,   110,   111,     0,     0,   296,   112,   113,    16,     0,
+     0,   114,   115,     0,     0,     0,   116,     0,   117,    22,
+     0,     0,     0,   118,    24,     0,     0,   119,     0,     0,
+    22,   120,   121,   100,     5,    24,     7,   138,   101,   102,
+    84,   103,     9,    10,    11,   252,   253,   254,   255,   256,
+   257,   258,   259,   260,   261,   262,     0,     0,    13,   104,
+     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
+   107,     0,     0,   108,     0,    16,     0,     0,   109,   110,
+   111,     0,     0,     0,   112,   113,     0,   100,     0,   114,
+   115,     0,   101,   102,   116,   103,   117,    22,     0,     0,
+     0,   118,    24,     0,     0,   119,     0,     0,     0,   120,
+   121,     0,     0,   104,     0,    15,     0,   105,   106,     0,
+     0,     0,     0,     0,   107,     0,     0,   108,     0,     0,
+     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
+     0,   100,     0,   114,   115,     0,   101,   102,   116,   103,
+   117,   365,     0,     0,     0,   118,     0,     0,     0,   119,
+     0,     0,     0,   120,   121,     0,     0,   104,     0,    15,
      0,   105,   106,     0,     0,     0,     0,     0,   107,     0,
      0,   108,     0,     0,     0,     0,   109,   110,   111,     0,
-     0,     0,   112,   113,     0,     0,     0,   114,   115,     0,
-     0,     0,   116,     0,   117,     0,     0,     0,     0,   118,
-     0,     0,     0,   119,     0,     0,     0,   120,   121,     0,
-     0,   771,   670,   782,     6,     7,     8,   101,   102,     0,
-   103,     9,    10,    11,   783,     0,   784,   785,   786,   787,
-   788,   789,   790,   791,   792,   793,   794,    13,   104,    14,
-    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
-     0,     0,   108,     0,    16,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,     0,     0,     0,   114,   115,
-     0,     0,     0,   116,     0,   117,   795,     0,     0,     0,
-   118,   796,     0,     0,   119,     0,   797,     0,   120,   121,
-     0,   361,   670,    60,     0,     0,     0,   101,   102,     0,
-   103,     0,     0,     0,   783,     0,   784,   785,   786,   787,
-   788,   789,   790,   791,   792,   793,   794,     0,   104,     0,
-    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
-     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,     0,   100,     0,   114,   115,
-     0,   101,   102,   116,   103,   117,    61,     0,     0,     0,
-   118,    62,     0,     0,   119,     0,   797,     0,   120,   121,
-     0,   361,   104,     0,    15,     0,   105,   106,     0,     0,
-     0,     0,     0,   107,     0,     0,   108,     0,     0,     0,
-     0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
-     0,     0,   114,   115,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,     0,   118,     0,     0,     0,   119,     0,
-     0,     0,   120,   121,     0,   481,   147,   148,     0,   149,
-   150,     0,     0,     0,   151,   152,   153,   154,   155,   156,
-   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   167,   168,   169,     0,   100,     5,     6,     7,     8,   101,
-   102,   170,   103,     9,    10,    11,     5,     6,     7,     8,
-     0,     0,     0,     0,     9,    10,    11,     0,     0,    13,
-   104,    14,    15,     0,   105,   106,     0,     0,     0,     0,
-    13,   107,    14,     0,   108,   172,    16,     0,     0,   109,
-   110,   111,     0,     0,   296,   112,   113,    16,     0,     0,
-   114,   115,     0,     0,     0,   116,     0,   117,    22,     0,
-     0,     0,   118,    24,     0,     0,   119,     0,     0,    22,
-   120,   121,   100,     5,    24,     7,   138,   101,   102,   601,
-   103,     9,    10,    11,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    13,   104,     0,
-    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
-     0,     0,   108,     0,    16,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,     0,   100,     0,   114,   115,
-     0,   101,   102,   116,   103,   117,    22,     0,     0,     0,
-   118,    24,     0,     0,   119,     0,     0,     0,   120,   121,
-     0,     0,   104,     0,    15,     0,   105,   106,     0,     0,
-     0,     0,     0,   107,     0,     0,   108,     0,     0,     0,
-     0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
-   100,     0,   114,   115,     0,   101,   102,   116,   103,   117,
-   365,     0,     0,     0,   118,     0,     0,     0,   119,     0,
-     0,     0,   120,   121,     0,     0,   104,     0,    15,     0,
-   105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
-   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
-     0,   112,   113,     0,   100,     0,   114,   115,     0,   101,
-   102,   116,   103,   117,     0,     0,     0,     0,   118,     0,
-     0,     0,   119,     0,   839,     0,   120,   121,     0,     0,
-   104,     0,    15,     0,   105,   106,     0,     0,     0,     0,
-     0,   107,     0,     0,   108,     0,     0,     0,     0,   109,
-   110,   111,     0,     0,     0,   112,   113,     0,   100,     0,
-   114,   115,     0,   101,   102,   116,   103,   117,     0,     0,
-     0,     0,   118,     0,     0,     0,   119,     0,     0,     0,
-   120,   121,     0,     0,   104,     0,    15,     0,   105,   106,
-     0,     0,     0,     0,     0,   107,     0,     0,   108,     0,
-     0,     0,     0,   109,   110,   111,     0,     0,     0,   112,
-   113,     0,   100,     0,   242,   115,     0,   101,   102,   116,
-   103,   117,     0,     0,     0,     0,   118,     0,     0,     0,
-   119,     0,     0,     0,   120,   121,     0,     0,   104,     0,
-    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
-     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,     0,   508,     0,   244,   115,
-     0,   101,   102,   116,   103,   117,     0,     0,     0,     0,
-   118,     0,     0,     0,   119,     0,     0,     0,   120,   121,
-     0,     0,   104,     0,    15,     0,   105,   106,     0,     0,
-     0,     0,     0,   107,     0,     0,   108,     0,     0,     0,
-     0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
-     0,     0,   114,   115,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,     0,   118,     0,     0,     0,   119,     0,
-     0,   543,   120,   121,     5,     0,     7,   138,     0,     0,
-     0,     0,     9,    10,    11,     0,     0,     0,     0,   543,
-     0,     0,     5,     0,     7,   138,     0,     0,    13,     0,
+     0,     0,   112,   113,     0,   100,     0,   114,   115,     0,
+   101,   102,   116,   103,   117,     0,     0,     0,     0,   118,
+     0,     0,     0,   119,     0,   843,     0,   120,   121,     0,
+     0,   104,     0,    15,     0,   105,   106,     0,     0,     0,
+     0,     0,   107,     0,     0,   108,     0,     0,     0,     0,
+   109,   110,   111,     0,     0,     0,   112,   113,     0,   100,
+     0,   114,   115,     0,   101,   102,   116,   103,   117,     0,
+     0,     0,     0,   118,     0,     0,     0,   119,     0,     0,
+     0,   120,   121,     0,     0,   104,     0,    15,     0,   105,
+   106,     0,     0,     0,     0,     0,   107,     0,     0,   108,
+     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
+   112,   113,     0,   100,     0,   242,   115,     0,   101,   102,
+   116,   103,   117,     0,     0,     0,     0,   118,     0,     0,
+     0,   119,     0,     0,     0,   120,   121,     0,     0,   104,
+     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
+   107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
+   111,     0,     0,     0,   112,   113,     0,   508,     0,   244,
+   115,     0,   101,   102,   116,   103,   117,     0,     0,     0,
+     0,   118,     0,     0,     0,   119,     0,     0,     0,   120,
+   121,     0,     0,   104,     0,    15,     0,   105,   106,     0,
+     0,     0,     0,     0,   107,     0,     0,   108,     0,     0,
+     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
+     0,     0,     0,   114,   115,     0,     0,     0,   116,     0,
+   117,     0,     0,     0,     0,   118,     0,     0,     0,   119,
+     0,     0,   543,   120,   121,     5,     0,     7,   138,     0,
+     0,     0,     0,     9,    10,    11,     0,     0,     0,     0,
+   543,     0,     0,     5,     0,     7,   138,     0,     0,    13,
+     0,     9,    10,    11,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    16,    13,     0,     0,
+     0,     0,     0,     0,     4,     0,  -128,     5,     6,     7,
+     8,     0,     0,     0,    16,     9,    10,    11,    22,  -451,
+  -451,  -451,     0,    24,     0,     0,     0,     0,   544,  -451,
+    12,    13,     0,    14,    15,     0,    22,  -450,  -450,  -450,
+     0,    24,     0,     0,     0,     0,   544,  -450,    16,     0,
+     0,    17,    18,  -128,     0,     0,     0,     0,     0,     0,
+     0,     0,  -128,     0,    19,    20,    21,     0,     0,     0,
+    22,     0,     0,     0,    23,    24,    25,    26,     0,     4,
+    27,  -128,     5,     6,     7,     8,     0,     0,     0,     0,
      9,    10,    11,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,    16,    13,     0,     0,     0,
-     0,     0,     0,     4,     0,  -128,     5,     6,     7,     8,
-     0,     0,     0,    16,     9,    10,    11,    22,  -451,  -451,
-  -451,     0,    24,     0,     0,     0,     0,   544,  -451,    12,
-    13,     0,    14,    15,     0,    22,  -450,  -450,  -450,     0,
-    24,     0,     0,     0,     0,   544,  -450,    16,     0,     0,
-    17,    18,  -128,     0,     0,     0,     0,     0,     0,     0,
-     0,  -128,     0,    19,    20,    21,     0,     0,     0,    22,
-     0,     0,     0,    23,    24,    25,    26,     0,     4,    27,
-  -128,     5,     6,     7,     8,     0,     0,     0,     0,     9,
-    10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,    13,     4,    14,  -128,     5,
-     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
-     0,     0,    16,     0,     0,   529,   530,  -128,     0,     0,
-     0,     0,     0,    13,     0,    14,  -128,     0,     0,     0,
-     0,     0,     0,     0,    22,     0,     0,     0,     0,    24,
-    16,     0,     0,     0,    27,  -128,   436,     0,   437,     5,
-     6,     7,     8,     0,  -128,   438,     0,     9,    10,    11,
-     0,     0,    22,     0,     0,   436,     0,    24,     5,     6,
-     7,     8,    27,    13,   438,    14,     9,    10,    11,     5,
-     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
-    16,     0,    13,     0,    14,   345,     0,     0,     5,     0,
-     7,   138,     0,    13,     0,    14,     9,    10,    11,    16,
-     0,     0,    22,     0,     0,     0,     0,    24,     0,     0,
-    16,  -396,    13,     0,     0,    15,     0,     0,     0,     0,
-     0,    22,     0,     0,     0,     0,    24,     0,     0,    16,
-  -396,     0,    22,     0,     0,     0,     0,    24,     0,     0,
-     0,     0,   849,     0,     0,     0,     0,     0,     0,   147,
-   148,    22,   149,   150,     0,     0,    24,   151,   152,   153,
+     0,     0,     0,     0,     0,     0,    13,   436,    14,   437,
+     5,     6,     7,     8,     0,     0,   438,     0,     9,    10,
+    11,     0,     0,    16,     0,     0,   529,   530,  -128,     0,
+     0,     0,     0,     0,    13,   436,    14,  -128,     5,     6,
+     7,     8,     0,     0,   438,    22,     9,    10,    11,     0,
+    24,    16,     0,     0,     0,    27,     0,     5,     0,     7,
+   281,     0,    13,     0,    14,     9,    10,    11,     0,     0,
+     0,     0,     0,    22,     0,     0,     0,     0,    24,    16,
+     0,    13,  -396,     5,     6,     7,     8,     5,     6,     7,
+     8,     9,    10,    11,     0,     9,    10,    11,    16,     0,
+     0,    22,     0,     0,     0,     0,    24,    13,     0,    14,
+  -396,    13,     0,    14,     0,     0,     0,     0,     0,     0,
+    22,     0,     0,     0,    16,    24,     0,     0,    16,     0,
+  -280,  -280,     0,     5,    89,     7,    90,     0,     0,     0,
+     0,     9,    10,    11,     0,     0,    22,     0,     0,     0,
+    22,    24,     0,     0,     0,    24,   602,    13,     0,     0,
+   853,     0,     0,     0,     0,     0,     0,   147,   148,     0,
+   149,   150,     0,     0,    16,   151,   152,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,     0,     0,    22,     0,    14,     0,
+     0,    24,   170,   246,   247,   248,   642,   249,   250,   251,
+   252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
+   262,     0,     0,   171,     0,     0,     0,     0,     0,   147,
+   148,     0,   149,   150,     0,     0,   172,   151,   152,   153,
    154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
    164,   165,   166,   167,   168,   169,     0,   147,   148,     0,
-   149,   150,     0,     0,   170,   151,   152,   153,   154,   155,
+   149,   150,     0,     0,   368,   151,   152,   153,   154,   155,
    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,     0,   171,     0,     0,     0,     0,
-     0,     0,   368,   147,   148,     0,   149,   150,   172,     0,
+   166,   167,   168,   169,     0,     0,     0,     0,     0,     0,
+     0,     0,   170,   147,   148,     0,   149,   150,   172,     0,
      0,   151,   152,   153,   154,   155,   156,   157,   158,   159,
    160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-     0,   147,   148,     0,   149,   150,   172,     0,   170,   151,
-   152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-   162,   163,   164,   165,   166,   167,   168,   169,     0,     0,
-     0,     5,     6,     7,     8,     0,   586,   438,     0,     9,
-    10,    11,   172,     5,     6,     7,     8,     0,     0,   635,
-     0,     9,    10,    11,     0,    13,     0,    14,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    13,     0,    14,
-   172,     0,    16,     5,     0,     7,   138,     5,     6,     7,
-     8,     9,    10,    11,    16,     9,    10,    11,     0,     0,
-     0,     0,     0,     0,    22,     0,     0,    13,     0,    24,
-     0,    13,     0,    14,     0,     0,    22,     5,     0,     7,
-   281,    24,     0,     0,    16,     9,    10,    11,    16,     0,
-     0,     0,     0,     0,   869,     0,     0,     0,     0,     0,
-     0,    13,     0,     0,     0,     0,    22,     0,     0,     0,
-    22,    24,     0,     0,     0,    24,     0,     0,    16,   246,
-   247,   248,   870,   249,   250,   251,   252,   253,   254,   255,
-   256,   257,   258,   259,   260,   261,   262,    14,     0,     0,
-    22,     0,   246,   247,   248,    24,   249,   250,   251,   252,
-   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-   246,   247,   248,   908,   249,   250,   251,   252,   253,   254,
-   255,   256,   257,   258,   259,   260,   261,   262,   246,   247,
-   248,     0,   249,   250,   251,   252,   253,   254,   255,   256,
-   257,   258,   259,   260,   261,   262
+     0,     0,     0,     0,     0,     0,   172,     0,   587,     5,
+     6,     7,     8,     0,     0,   438,     0,     9,    10,    11,
+     5,     6,     7,     8,     0,     0,   636,     0,     9,    10,
+    11,     0,     0,    13,     0,    14,     0,     0,     0,     0,
+     0,     0,   172,     0,    13,     0,    14,     0,     0,     0,
+    16,     0,     0,     0,     5,     6,     7,     8,     0,     0,
+     0,    16,     9,    10,    11,     5,     6,     7,     8,     0,
+     0,     0,    22,     9,    10,    11,     0,    24,    13,     0,
+    14,     0,     0,    22,     5,     0,     7,   138,    24,    13,
+     0,     0,     9,    10,    11,    16,     0,     0,     0,     0,
+     0,     0,     5,     0,     7,   281,    16,     0,    13,     0,
+     9,    10,    11,     0,     0,     0,     0,    22,     0,     0,
+     0,     0,    24,     0,     0,    16,    13,     0,    22,     0,
+     0,     0,     0,    24,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    16,     0,     0,   873,    22,     0,     0,
+     0,     0,    24,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    22,     0,     0,     0,     0,
+    24,   246,   247,   248,   874,   249,   250,   251,   252,   253,
+   254,   255,   256,   257,   258,   259,   260,   261,   262,   246,
+   247,   248,   912,   249,   250,   251,   252,   253,   254,   255,
+   256,   257,   258,   259,   260,   261,   262,   246,   247,   248,
+     0,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+   258,   259,   260,   261,   262
 };
 
 static const short yycheck[] = {    56,
-    57,    16,    24,    33,    19,    20,     2,     3,    23,   233,
-    25,    26,    31,     2,     3,    85,    22,   207,    24,   317,
-     2,     3,   309,    38,    39,    40,    91,   201,    66,   279,
-   336,    83,   175,   338,    32,    33,   342,   198,   267,   206,
-   140,   324,   175,   143,    95,    67,    42,   405,   573,    71,
-   221,   221,    36,    42,   114,     2,     3,   429,    77,    74,
-    42,    67,     9,    10,    11,    71,    85,   640,   551,    53,
-    54,    55,   105,   106,   680,   274,   832,   427,   111,    33,
-   192,     1,     1,     9,    31,     3,    33,     1,   202,   122,
-     1,    10,   107,   236,   725,    42,    80,    76,    38,   273,
-   133,    38,    81,    57,    88,     3,   519,    38,     0,   276,
-   523,   171,    45,   744,    45,    36,    38,     0,    30,    59,
-    30,     3,     4,    59,    42,   315,    38,   883,    59,   144,
-    77,   146,    30,     3,     4,   418,    83,    58,    85,    76,
-   197,   666,    82,   749,    91,    59,   902,   212,    81,   905,
-    76,   907,    50,   566,    76,   170,   569,    77,    59,   915,
-   114,    59,   412,    82,   325,   180,   181,   906,   183,   184,
-   189,    82,     3,     4,   193,   336,    45,   237,   235,   350,
-   350,   342,   242,   202,   244,    67,   415,   537,    77,   143,
-    72,   947,    81,   140,    59,   934,   143,    67,    27,    38,
-    82,    30,    72,   402,    77,     3,     4,    36,   814,   408,
-   225,   268,    82,    59,   279,   740,   330,   171,   275,    50,
-   334,   333,   206,   238,    65,   708,   709,     1,   371,     3,
-     4,    30,   292,   217,    82,   518,    67,    76,   525,   221,
-    82,    72,   189,    77,   616,   192,   193,    81,    77,    30,
-   265,   266,    81,    59,     3,   202,    82,   607,     7,    38,
-    59,    60,   433,   433,    77,   212,    45,   221,    81,    67,
-    38,    27,     3,     4,    72,   848,   634,    45,    59,    60,
-   302,    30,   339,   237,    82,   300,     3,     4,   242,    59,
-   244,    76,   276,    67,     3,     4,   302,    59,    72,   582,
-   351,    50,   353,    59,    60,    81,   467,    76,   469,    76,
-    59,   330,    81,    30,    81,   334,     3,     4,     5,     6,
-     7,    38,   609,     9,   381,    76,    76,   274,   853,    75,
-    81,   364,    76,    50,   558,    77,    67,    81,   292,    81,
-   483,    72,    59,   358,     3,   329,     3,   412,     7,   347,
-    59,   349,    77,   410,    76,    72,    81,   586,    67,    59,
-    60,    77,   422,    72,    38,    81,   595,    82,   350,   512,
-    77,    30,   319,    30,    81,     7,    76,    59,   661,   512,
-    67,   664,     5,   330,     7,    72,   333,   334,     3,     4,
-    59,    50,     7,    50,   644,   349,   350,    77,    30,   414,
-    59,    60,    59,    60,   426,   710,     3,     4,    59,    60,
-   440,   698,    77,    59,    60,    30,    81,    78,    50,    82,
-   426,   582,   418,   453,    78,    76,   625,    59,    60,   418,
-    76,   429,    76,   429,    76,    50,     3,     4,     3,     4,
-   429,   439,   440,    76,    59,    38,   589,    30,   619,   619,
-   624,   551,   552,    77,   683,   402,   630,    72,   405,   626,
-   475,   408,    59,    30,   631,    30,    76,    50,   422,    59,
-    67,   418,   722,    38,   421,    72,    59,    60,    77,   433,
-    59,    60,   429,    50,   514,    50,   440,    27,    77,    78,
-    30,   652,    59,   440,    59,   510,    36,    48,    49,   453,
-    10,   662,    77,   664,   534,    72,    81,    72,    76,   708,
-   709,    63,    63,   532,    76,   513,   715,   716,   742,    59,
-    60,   517,    82,    77,    68,    69,    70,    81,   517,    59,
-    60,   818,   551,   552,    78,   533,   534,    77,    77,    59,
-    60,    81,    81,   337,    27,   615,     9,   545,   546,    83,
-   344,    77,    78,     4,     5,     6,     7,   781,   352,    77,
-   514,    12,    13,    14,   562,   563,   581,   514,   620,   621,
-   517,    36,   642,   611,   612,     3,     4,    28,    77,   644,
-   534,   600,    50,    51,    52,   532,    67,   534,    77,    78,
-   605,   897,   546,   899,    45,    36,   615,    68,    69,    70,
-    76,   653,    30,    81,   551,   552,   625,    78,   555,   563,
-    48,    49,    50,    51,    52,    38,    67,    78,   616,    76,
-   616,    72,    50,   642,    59,    60,    77,   616,    68,    69,
-    70,    59,    60,   126,   127,     3,     4,    76,    78,     7,
-    76,    38,   626,   941,    76,    76,    76,   631,    68,    69,
-    70,   949,    63,   600,   711,    76,   671,   722,    78,    83,
-   884,    83,    30,    76,    82,   619,    76,   614,   615,   616,
-    63,    76,    36,   620,   621,    83,    76,    78,   625,    78,
-    78,    32,    50,    38,    76,   742,    77,   634,   878,   708,
-   709,    59,    60,   640,    83,   642,   715,   716,    81,    76,
-   924,   925,     4,     5,     6,     7,   653,    77,     3,    81,
-    12,    13,    14,     6,     7,   767,    77,   732,    78,    12,
-    13,    14,    38,    63,   781,    83,    28,   742,    30,    78,
-    78,    38,    38,    78,    81,   792,   897,    63,   899,    38,
-   759,    78,    81,    45,     1,    63,   742,     4,     5,     6,
-     7,    83,    38,   742,    78,    12,    13,    14,    59,    59,
-   742,   708,   709,    59,    38,    67,   781,    77,   715,   716,
-    72,    28,   802,   830,   796,    77,   833,   834,   793,   812,
-   850,   575,   576,    77,   841,   579,     7,    38,    45,   795,
-   796,    16,    77,    77,    59,   742,   848,    78,    77,   856,
-     5,     6,     7,   801,   802,    77,   863,    12,    13,    14,
-    67,    59,   759,    63,    76,    72,   812,   874,    17,    77,
-   767,    76,    76,   812,    77,    82,     9,   884,    77,    76,
-   812,   850,    77,   627,   628,   629,    77,    59,   632,   633,
-    54,    55,    81,    57,    58,    59,    60,    77,   802,   906,
-    76,     4,     5,     6,     7,   802,    76,     0,    77,    12,
-    13,    14,    76,   657,    77,   812,     0,   415,   241,   884,
-   833,   928,   325,   246,   247,    28,   662,   934,   251,   252,
-   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-    87,   643,    45,   414,   282,   689,   690,   691,   747,   812,
-   477,   848,   650,   850,     5,     6,     7,   679,   350,   652,
-   469,    12,    13,    14,    67,   358,   583,   475,   884,    72,
-     1,   662,     3,     4,     5,     6,     7,     8,     9,    30,
-    11,    12,    13,    14,    15,   729,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-    31,   664,    33,    34,   884,   929,   931,   409,    25,    40,
-   555,   421,    43,   421,    45,   621,   542,    48,    49,    50,
-   767,   764,   535,    54,    55,   517,   301,   759,    59,    60,
-   512,   683,   776,    64,   417,    66,    67,   589,   417,   371,
-    71,    72,    -1,    -1,    75,    -1,    77,    78,    79,    80,
-    -1,    82,    45,    46,    47,    48,    49,    50,    51,    52,
-   383,   384,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,     1,    -1,    -1,     4,     5,     6,     7,    -1,    -1,
-    10,    -1,    12,    13,    14,   829,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    28,    -1,
-    -1,   845,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
-     5,     6,     7,     8,     9,    45,    11,    12,    13,    14,
+    57,    16,    24,    33,    19,    20,    85,   198,    23,   207,
+    25,    26,   317,     2,     3,   274,    80,    22,    31,    24,
+   233,     2,     3,    38,    39,    40,   267,   336,   309,     2,
+     3,    91,   324,   342,    66,    83,   175,   201,   338,   405,
+   105,   106,   279,   221,   221,    67,   111,     2,     3,    71,
+   175,    95,   641,    42,     9,    10,    11,   122,   202,    74,
+   140,    42,    67,   143,    77,   573,    71,   575,   133,    42,
+   429,   427,    85,   192,     1,     1,    31,   682,    33,   910,
+   551,     3,     0,    36,    10,    32,    33,    42,   836,    33,
+     3,     4,   107,   727,   519,     1,     1,     9,   523,    36,
+    53,    54,    55,    38,    38,   114,    77,   938,    77,   273,
+    81,   236,    81,    57,   748,     3,     4,   315,     3,     4,
+    42,    58,    77,     5,    59,     7,   418,    80,    83,   144,
+    85,   146,    77,    78,   325,    88,    91,     3,     4,   887,
+   197,   566,    76,   402,   569,   336,    59,    82,   753,   408,
+    77,   342,   212,    59,    67,   170,    82,    30,   906,    72,
+   668,   909,   171,   911,    76,   180,   181,     0,   183,   184,
+   114,   919,   350,   350,   415,   412,   189,    82,   235,    67,
+   193,   537,    67,    38,    72,   140,   330,    72,   143,   202,
+   334,    38,    30,    30,    82,    45,    59,    82,     3,   143,
+    38,    67,     7,   951,    77,    78,    72,    59,    60,    27,
+   225,   268,   276,   818,   333,    38,    82,    59,   275,   279,
+    59,    76,    45,   238,    76,    30,   518,   171,   237,    76,
+    30,    81,    45,   242,   189,   244,   744,   192,   193,   710,
+   711,    59,    60,     7,   525,    50,   371,   202,   221,    77,
+   265,   266,   608,   206,    59,   433,   433,   212,   617,    59,
+    60,    59,     1,   852,   217,     4,    30,     6,     7,   635,
+    59,    60,    38,    12,    13,    14,   467,   221,   469,    45,
+   302,    30,   339,   292,    65,   300,    50,     3,     4,    28,
+    77,   583,    31,   237,    81,    59,    60,   302,   242,   364,
+   244,     3,     4,     5,     6,     7,    45,   351,    77,   353,
+    59,    60,    81,     3,     4,    38,    77,   330,    59,   274,
+    81,   334,    45,   276,   381,    59,    60,    82,    67,   610,
+    59,    60,     1,    72,     3,     4,    59,    82,    77,    78,
+    30,     3,    76,   358,    82,   558,   587,    76,   292,   857,
+    59,    67,   412,   410,    76,   596,    72,    76,   483,    81,
+    50,    59,     3,     4,   319,    67,     7,   626,    30,    59,
+    72,   663,     9,   512,   666,   330,   329,   350,   333,   334,
+     3,     4,    72,    68,    69,    70,    81,   512,    50,    30,
+    76,    75,   583,    78,    76,    81,    30,    59,    67,   414,
+   347,    76,   349,    72,   426,   349,   350,    30,   645,    50,
+   440,    38,   712,   422,    82,    38,    50,    76,    59,   700,
+    77,   426,    81,   453,    81,    59,    60,    50,    76,   418,
+    76,    72,    77,    81,    59,    81,    59,   418,     3,     4,
+   429,    77,   620,   620,   685,    81,    78,   402,   429,    72,
+   405,   710,   711,   408,    48,    49,     3,     4,   717,   718,
+   475,   625,   653,   418,    77,   590,   421,   631,    81,    63,
+    59,   551,   552,   664,   429,   666,     3,     4,   422,    50,
+    51,    52,   429,    30,   514,   440,    77,   724,    78,   433,
+    81,    38,   439,   440,    59,   510,   440,     3,     4,     3,
+     4,     7,    67,    50,   534,     1,    76,    72,     4,   453,
+     6,     7,    59,    59,    60,    76,    12,    13,    14,   532,
+    68,    69,    70,    50,    30,    72,    30,    77,   517,    82,
+    78,    81,    28,   746,    76,    31,   517,   616,   551,   552,
+    67,   822,    77,    77,    50,    72,    50,    81,     3,    45,
+    59,    60,     7,    59,    60,    59,    60,    77,    78,   514,
+    59,    60,   517,   627,   643,    38,   513,   582,   632,    59,
+   514,    67,   785,   621,   622,    30,    72,   532,    76,   534,
+   612,   613,     3,   126,   127,   645,   533,   534,   601,    77,
+   534,   606,   901,    10,   903,    50,   551,   552,   545,   546,
+   555,    76,   546,   616,    59,    60,   654,   655,    82,    30,
+    68,    69,    70,   626,    63,   562,   563,   337,    27,   563,
+    78,    30,    76,    27,   344,     9,    83,    36,   617,    50,
+   643,    77,   352,    68,    69,    70,   617,    36,    59,    60,
+   945,    67,    36,    78,    77,    81,   601,    78,   953,    76,
+    59,    60,    38,    76,    76,    38,   713,    76,   673,    83,
+   615,   616,   617,    76,   724,    76,   621,   622,    77,    76,
+   617,   626,    81,    83,   627,   888,   620,    82,    76,   632,
+   635,    76,    27,    63,   882,    30,   641,    63,   643,   746,
+    36,    36,    83,    78,     5,     6,     7,   710,   711,   654,
+   655,    12,    13,    14,   717,   718,    76,    78,    76,    76,
+   901,    32,   903,    78,    38,   928,   929,    83,    76,    30,
+    77,   736,    81,   771,    76,     3,    77,    77,   785,    78,
+    38,   746,    77,    81,    63,    38,    81,    78,    78,   796,
+    83,     1,    38,    78,     4,     5,     6,     7,    81,    63,
+   763,   816,    12,    13,    14,   710,   711,   746,    38,    81,
+    78,    63,   717,   718,    83,   746,    78,    38,    28,    59,
+   785,    59,    59,   746,    38,   854,   806,   834,   800,   732,
+   837,   838,   797,    77,    77,    45,     7,    38,   845,    16,
+    59,   746,    77,    77,   799,   800,    54,    55,    77,    57,
+    58,    59,    60,   860,   852,    78,    59,    67,   763,    77,
+   867,    63,    72,    76,    17,    77,   771,    76,    76,     9,
+    77,   878,    82,    77,    59,    81,    76,   816,    76,     0,
+    77,   888,    77,    77,    76,   816,    76,     5,     6,     7,
+    77,   854,     0,   816,    12,    13,    14,    77,   415,   837,
+   664,   806,   816,   910,   325,    87,   576,   577,   805,   806,
+   580,   816,   806,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,   241,   888,   644,   932,   282,   246,   247,   651,
+   751,   938,   251,   252,   253,   254,   255,   256,   257,   258,
+   259,   260,   261,   262,     6,     7,   414,   852,     3,   854,
+    12,    13,    14,     8,     9,   681,    11,   350,   628,   629,
+   630,   477,   469,   633,   634,    45,    46,    47,    48,    49,
+    50,    51,    52,   653,    29,   888,    31,   664,    33,    34,
+   358,   475,   584,   666,   654,    40,   888,   933,    43,   659,
+   935,   409,   421,    48,    49,    50,   555,    25,   622,    54,
+    55,   421,   771,   768,    59,    60,   542,   535,   517,    64,
+   763,    66,   301,   512,   417,   417,    71,   685,   590,   371,
+    75,   691,   692,   693,    79,    80,    -1,     1,    83,     3,
+     4,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
+    14,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    30,    31,    -1,    33,
+    34,    -1,    -1,   733,   383,   384,    40,    -1,    -1,    43,
+    -1,    45,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
+    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
+    -1,    75,    -1,    77,    78,    79,    80,    -1,    82,    -1,
+   780,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
+     9,    -1,    11,    12,    13,    14,    15,    -1,    17,    18,
+    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+    29,    30,    31,    -1,    33,    34,    48,    49,    50,    51,
+    52,    40,    -1,    -1,    43,   474,    45,    -1,    -1,    48,
+    49,    50,    -1,   833,    -1,    54,    55,    -1,    -1,    -1,
+    59,    60,    -1,    -1,   493,    64,    -1,    66,    67,   849,
+    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,
+    79,    80,    -1,    82,     1,    -1,     3,     4,    -1,    -1,
+    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    15,    -1,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,    59,
+    60,    48,    49,    50,    -1,    -1,   565,    54,    55,    -1,
+    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,
+    67,    -1,    -1,    -1,    71,    72,    -1,   586,    75,    -1,
+    77,    78,    79,    80,    -1,    82,     1,    -1,     3,     4,
+    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,
     15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    28,    29,    30,    31,    67,    33,    34,
-    -1,    -1,    72,    -1,    -1,    40,    -1,    -1,    43,    -1,
-    45,   474,    82,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
-   493,    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,
+    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,
+    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
+    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    -1,   651,    -1,    59,    60,    -1,    -1,    -1,    64,
+    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,
     75,    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,
-     1,    -1,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
-    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    54,    55,    43,    57,    58,    59,    60,    48,    49,    50,
-    -1,    -1,   565,    54,    55,    -1,    -1,    -1,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
-    71,    72,   585,    -1,    75,    -1,    77,    78,    79,    80,
-     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
-    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,   650,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
-    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
-    -1,    82,    -1,    -1,    -1,    -1,     1,   680,    -1,     4,
-     5,     6,     7,    -1,   687,    -1,    -1,    12,    13,    14,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-   703,    -1,    27,    28,    -1,    30,    -1,    -1,    -1,    -1,
-    -1,    36,    46,    47,    48,    49,    50,    51,    52,    -1,
-    45,    -1,   725,    -1,    -1,   728,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
-    -1,   744,    67,    -1,   747,    -1,   749,    72,    -1,    -1,
-    -1,    -1,    77,    -1,    -1,    -1,    81,    82,     4,    -1,
-     6,     7,    -1,   766,    -1,    -1,    12,    13,    14,    -1,
-     1,    -1,     3,     4,   777,    -1,    -1,     8,     9,    -1,
-    11,    -1,    28,    -1,    15,   788,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    -1,    29,    45,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,   814,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    67,    -1,    54,    55,    -1,    72,    -1,    59,    60,
-    -1,    77,    78,    64,    -1,    66,    67,    -1,    -1,    -1,
-    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
-     1,    82,     3,     4,    -1,     6,     7,     8,     9,    -1,
-    11,    12,    13,    14,    -1,    -1,   869,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
-    71,    72,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
-     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    37,
-    11,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    -1,    -1,    -1,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
-    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
-     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
-    11,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    -1,    -1,    -1,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
-    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
-     1,    82,     3,    -1,    -1,    -1,    -1,     8,     9,    -1,
-    11,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-    51,    52,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,
-    31,    -1,    33,    34,    -1,    36,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,
-    71,    -1,    -1,    -1,    75,     1,    -1,     3,    79,    80,
-    -1,    82,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   682,    -1,     1,    -1,     3,     4,    -1,
+   689,    -1,     8,     9,    -1,    11,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,   705,    -1,    -1,    -1,
     -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
-    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
-     1,    -1,     3,    79,    80,    -1,    82,     8,     9,    -1,
-    11,     1,    -1,    -1,     4,    -1,     6,     7,    -1,    -1,
-    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    28,    40,
-    -1,    31,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    45,    -1,    -1,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,
-    71,    -1,    -1,    -1,    75,    -1,    -1,    67,    79,    80,
-     1,    82,    72,     4,     5,     6,     7,    77,    78,    -1,
-    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,     1,
-    -1,    -1,     4,     5,     6,     7,    27,    28,    -1,    30,
-    12,    13,    14,    -1,    -1,    36,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    45,    27,    28,    -1,    30,    -1,
-    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    59,    60,
-    -1,    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,
-    81,    82,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,     1,    81,
-    82,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
+    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,   727,    -1,
+    -1,   730,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    -1,    -1,    58,    59,    60,    -1,    -1,    -1,    64,   748,
+    66,    67,   751,    -1,   753,    71,    72,    -1,    -1,    75,
+    -1,    -1,    78,    79,    80,    -1,    82,    -1,    -1,    -1,
+    -1,   770,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
+     3,     4,   781,    -1,    -1,     8,     9,    -1,    11,    -1,
+    -1,    -1,    15,   792,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,   818,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,
+    -1,    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,
+    -1,    -1,    75,    -1,    77,    -1,    79,    80,     1,    82,
+     3,     4,    -1,     6,     7,     8,     9,    -1,    11,    12,
+    13,    14,    -1,    -1,   873,    46,    47,    48,    49,    50,
+    51,    52,    -1,    -1,    -1,    28,    29,    -1,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
+    43,    -1,    45,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,
+    -1,    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,
+    -1,    -1,    75,    -1,    -1,    -1,    79,    80,     1,    82,
+     3,     4,    -1,    -1,    -1,     8,     9,    37,    11,    39,
+    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    -1,    -1,    -1,    29,    -1,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,    -1,    58,    59,    60,    -1,    -1,
+    -1,    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,
+    -1,    -1,    75,    -1,    -1,    78,    79,    80,     1,    82,
+     3,    -1,    -1,    -1,    -1,     8,     9,    -1,    11,    40,
+    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,
+    33,    34,    -1,    36,    -1,    -1,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,    -1,    58,    59,    60,    -1,    -1,
+    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,
+    -1,    -1,    75,     1,    -1,     3,    79,    80,    -1,    82,
+     8,     9,    -1,    11,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    -1,
+    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,     1,    -1,
+     3,    79,    80,    -1,    82,     8,     9,    -1,    11,     1,
+    -1,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
+    12,    13,    14,    -1,    -1,    -1,    29,    -1,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    28,    40,    30,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    45,    -1,    -1,    59,    60,    50,    -1,
+    -1,    64,    -1,    66,    -1,    -1,    -1,    59,    71,    -1,
+    -1,    -1,    75,    -1,    -1,    67,    79,    80,     1,    82,
+    72,     4,     5,     6,     7,    77,    -1,    -1,    -1,    12,
     13,    14,    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,
-     4,     5,     6,     7,    -1,    28,    -1,    30,    12,    13,
-    14,     4,    -1,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    45,    -1,    28,     3,    30,    -1,    -1,    -1,
-     8,     9,    -1,    11,    -1,    28,    -1,    30,    -1,    -1,
+     4,     5,     6,     7,    27,    28,    -1,    30,    12,    13,
+    14,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    45,    27,    28,    -1,    30,    -1,    -1,    -1,
+    -1,    -1,    36,    -1,    -1,    -1,    59,    60,    -1,    -1,
     -1,    45,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    -1,    29,    45,    31,    -1,    33,    34,    50,    -1,    82,
+    -1,    -1,    -1,    -1,    77,    59,    60,    -1,    81,    82,
+    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,
+    -1,    -1,    -1,    77,    -1,    -1,     1,    81,    82,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,     4,     5,
+     6,     7,    27,    28,    10,    30,    12,    13,    14,    -1,
+    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    45,     1,    28,    -1,     4,     5,     6,     7,    -1,    -1,
+    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    45,
+    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    28,    -1,
+    30,    -1,    77,    -1,    -1,    -1,    81,    82,    -1,    -1,
+    -1,    67,    -1,    -1,    -1,    45,    72,     1,    -1,    -1,
+     4,     5,     6,     7,    -1,    -1,    82,    -1,    12,    13,
+    14,     4,    -1,     6,     7,    -1,    -1,    67,    -1,    12,
+    13,    14,    72,    -1,    28,     3,    30,    -1,    -1,    -1,
+     8,     9,    82,    11,    -1,    28,    -1,    30,    -1,    -1,
+    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    29,    45,    31,    -1,    33,    34,    50,    -1,    -1,
     -1,    -1,    40,    67,    -1,    43,    59,    60,    72,    -1,
     48,    49,    50,    -1,    67,    -1,    54,    55,    82,    72,
     -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,     8,
@@ -1528,150 +1528,150 @@ static const short yycheck[] = {    56,
     31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
     -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
     -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
-    -1,     3,    -1,    64,    -1,    66,     8,     9,    -1,    11,
+    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,
     71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
-    -1,    -1,    83,    -1,    -1,    -1,    -1,    29,    -1,    31,
+    -1,    -1,    83,     3,     4,     5,     6,     7,     8,     9,
+    -1,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
+    80,    -1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,
+    60,    -1,     8,     9,    64,    11,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
+    80,    -1,    82,    29,    -1,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
+    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
+    -1,    -1,    -1,    79,    80,    -1,    82,     3,     4,    -1,
+     6,     7,    -1,    -1,    -1,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    -1,     3,     4,     5,     6,     7,
+     8,     9,    38,    11,    12,    13,    14,     4,     5,     6,
+     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,
+    28,    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    28,    40,    30,    -1,    43,    72,    45,    -1,    -1,
+    48,    49,    50,    -1,    -1,    81,    54,    55,    45,    -1,
+    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,
+    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    -1,
+    67,    79,    80,     3,     4,    72,     6,     7,     8,     9,
+    77,    11,    12,    13,    14,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    -1,    -1,    28,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,
+    60,    -1,     8,     9,    64,    11,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    -1,    79,
+    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,    11,
+    66,    67,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
+    -1,    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,
     -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
     -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
-    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,
-    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,
-    -1,    83,     3,     4,     5,     6,     7,     8,     9,    -1,
-    11,    12,    13,    14,    15,    -1,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
-    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
-    -1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
-    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,
-    -1,     8,     9,    64,    11,    66,    67,    -1,    -1,    -1,
-    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
-    -1,    82,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,
-    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
-    -1,    -1,    79,    80,    -1,    82,     3,     4,    -1,     6,
-     7,    -1,    -1,    -1,    11,    12,    13,    14,    15,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    -1,     3,     4,     5,     6,     7,     8,
-     9,    38,    11,    12,    13,    14,     4,     5,     6,     7,
-    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    28,
-    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    28,    40,    30,    -1,    43,    72,    45,    -1,    -1,    48,
-    49,    50,    -1,    -1,    81,    54,    55,    45,    -1,    -1,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    67,
-    79,    80,     3,     4,    72,     6,     7,     8,     9,    77,
-    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,
-    -1,     8,     9,    64,    11,    66,    67,    -1,    -1,    -1,
-    71,    72,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
-    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-     3,    -1,    59,    60,    -1,     8,     9,    64,    11,    66,
-    67,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
-    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,     8,
-     9,    64,    11,    66,    -1,    -1,    -1,    -1,    71,    -1,
-    -1,    -1,    75,    -1,    77,    -1,    79,    80,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,
-    59,    60,    -1,     8,     9,    64,    11,    66,    -1,    -1,
-    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
-    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,
-    11,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
-    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,
-    -1,     8,     9,    64,    11,    66,    -1,    -1,    -1,    -1,
-    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
-    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,
-    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
-    -1,     1,    79,    80,     4,    -1,     6,     7,    -1,    -1,
-    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,     1,
-    -1,    -1,     4,    -1,     6,     7,    -1,    -1,    28,    -1,
+    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,
+     8,     9,    64,    11,    66,    -1,    -1,    -1,    -1,    71,
+    -1,    -1,    -1,    75,    -1,    77,    -1,    79,    80,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,
+    -1,    59,    60,    -1,     8,     9,    64,    11,    66,    -1,
+    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
+    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,     3,    -1,    59,    60,    -1,     8,     9,
+    64,    11,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,
+    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,
+    60,    -1,     8,     9,    64,    11,    66,    -1,    -1,    -1,
+    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,
+    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
+    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
+    -1,    -1,     1,    79,    80,     4,    -1,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
+     1,    -1,    -1,     4,    -1,     6,     7,    -1,    -1,    28,
+    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    45,    28,    -1,    -1,
+    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,
+     7,    -1,    -1,    -1,    45,    12,    13,    14,    67,    68,
+    69,    70,    -1,    72,    -1,    -1,    -1,    -1,    77,    78,
+    27,    28,    -1,    30,    31,    -1,    67,    68,    69,    70,
+    -1,    72,    -1,    -1,    -1,    -1,    77,    78,    45,    -1,
+    -1,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    59,    -1,    61,    62,    63,    -1,    -1,    -1,
+    67,    -1,    -1,    -1,    71,    72,    73,    74,    -1,     1,
+    77,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
     12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    45,    28,    -1,    -1,    -1,
-    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
-    -1,    -1,    -1,    45,    12,    13,    14,    67,    68,    69,
-    70,    -1,    72,    -1,    -1,    -1,    -1,    77,    78,    27,
-    28,    -1,    30,    31,    -1,    67,    68,    69,    70,    -1,
-    72,    -1,    -1,    -1,    -1,    77,    78,    45,    -1,    -1,
-    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    59,    -1,    61,    62,    63,    -1,    -1,    -1,    67,
-    -1,    -1,    -1,    71,    72,    73,    74,    -1,     1,    77,
-     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    28,     1,    30,     3,     4,
-     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
-    -1,    -1,    45,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    -1,    -1,    28,    -1,    30,    59,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    45,    -1,    -1,    -1,    77,    50,     1,    -1,     3,     4,
-     5,     6,     7,    -1,    59,    10,    -1,    12,    13,    14,
-    -1,    -1,    67,    -1,    -1,     1,    -1,    72,     4,     5,
-     6,     7,    77,    28,    10,    30,    12,    13,    14,     4,
-     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
-    45,    -1,    28,    -1,    30,     1,    -1,    -1,     4,    -1,
-     6,     7,    -1,    28,    -1,    30,    12,    13,    14,    45,
-    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
-    45,    76,    28,    -1,    -1,    31,    -1,    -1,    -1,    -1,
-    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    45,
-    76,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
-    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,     3,
-     4,    67,     6,     7,    -1,    -1,    72,    11,    12,    13,
+    -1,    -1,    -1,    -1,    -1,    -1,    28,     1,    30,     3,
+     4,     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,
+    14,    -1,    -1,    45,    -1,    -1,    48,    49,    50,    -1,
+    -1,    -1,    -1,    -1,    28,     1,    30,    59,     4,     5,
+     6,     7,    -1,    -1,    10,    67,    12,    13,    14,    -1,
+    72,    45,    -1,    -1,    -1,    77,    -1,     4,    -1,     6,
+     7,    -1,    28,    -1,    30,    12,    13,    14,    -1,    -1,
+    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    45,
+    -1,    28,    76,     4,     5,     6,     7,     4,     5,     6,
+     7,    12,    13,    14,    -1,    12,    13,    14,    45,    -1,
+    -1,    67,    -1,    -1,    -1,    -1,    72,    28,    -1,    30,
+    76,    28,    -1,    30,    -1,    -1,    -1,    -1,    -1,    -1,
+    67,    -1,    -1,    -1,    45,    72,    -1,    -1,    45,    -1,
+    77,    78,    -1,     4,     5,     6,     7,    -1,    -1,    -1,
+    -1,    12,    13,    14,    -1,    -1,    67,    -1,    -1,    -1,
+    67,    72,    -1,    -1,    -1,    72,    77,    28,    -1,    -1,
+    77,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
+     6,     7,    -1,    -1,    45,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    -1,    -1,    67,    -1,    30,    -1,
+    -1,    72,    38,    35,    36,    37,    77,    39,    40,    41,
+    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,     3,
+     4,    -1,     6,     7,    -1,    -1,    72,    11,    12,    13,
     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     24,    25,    26,    27,    28,    29,    -1,     3,     4,    -1,
      6,     7,    -1,    -1,    38,    11,    12,    13,    14,    15,
     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    -1,    59,    -1,    -1,    -1,    -1,
+    26,    27,    28,    29,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    38,     3,     4,    -1,     6,     7,    72,    -1,
     -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-    -1,     3,     4,    -1,     6,     7,    72,    -1,    38,    11,
-    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-    22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
-    -1,     4,     5,     6,     7,    -1,    38,    10,    -1,    12,
-    13,    14,    72,     4,     5,     6,     7,    -1,    -1,    10,
-    -1,    12,    13,    14,    -1,    28,    -1,    30,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,
-    72,    -1,    45,     4,    -1,     6,     7,     4,     5,     6,
-     7,    12,    13,    14,    45,    12,    13,    14,    -1,    -1,
-    -1,    -1,    -1,    -1,    67,    -1,    -1,    28,    -1,    72,
-    -1,    28,    -1,    30,    -1,    -1,    67,     4,    -1,     6,
-     7,    72,    -1,    -1,    45,    12,    13,    14,    45,    -1,
-    -1,    -1,    -1,    -1,    10,    -1,    -1,    -1,    -1,    -1,
-    -1,    28,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
-    67,    72,    -1,    -1,    -1,    72,    -1,    -1,    45,    35,
+    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    38,     4,
+     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,    14,
+     4,     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,
+    14,    -1,    -1,    28,    -1,    30,    -1,    -1,    -1,    -1,
+    -1,    -1,    72,    -1,    28,    -1,    30,    -1,    -1,    -1,
+    45,    -1,    -1,    -1,     4,     5,     6,     7,    -1,    -1,
+    -1,    45,    12,    13,    14,     4,     5,     6,     7,    -1,
+    -1,    -1,    67,    12,    13,    14,    -1,    72,    28,    -1,
+    30,    -1,    -1,    67,     4,    -1,     6,     7,    72,    28,
+    -1,    -1,    12,    13,    14,    45,    -1,    -1,    -1,    -1,
+    -1,    -1,     4,    -1,     6,     7,    45,    -1,    28,    -1,
+    12,    13,    14,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+    -1,    -1,    72,    -1,    -1,    45,    28,    -1,    67,    -1,
+    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    45,    -1,    -1,    10,    67,    -1,    -1,
+    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
+    72,    35,    36,    37,    38,    39,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    35,
     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    30,    -1,    -1,
-    67,    -1,    35,    36,    37,    72,    39,    40,    41,    42,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    35,    36,
-    37,    -1,    39,    40,    41,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52
+    46,    47,    48,    49,    50,    51,    52,    35,    36,    37,
+    -1,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/lib/bison.simple"
@@ -3493,13 +3493,22 @@ case 277:
     break;}
 case 278:
 #line 1514 "objc-parse.y"
-{ if (pedantic)
-		    pedwarn ("ANSI C forbids member declarations with no members");
-		  shadow_tag(yyvsp[0].ttype);
-		  yyval.ttype = NULL_TREE; ;
+{
+		  /* Support for unnamed structs or unions as members of 
+		     structs or unions (which is [a] useful and [b] supports 
+		     MS P-SDK).  */
+		  if (pedantic)
+		    pedwarn ("ANSI C doesn't support unnamed structs/unions");
+
+		  yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE);
+		  current_declspecs = TREE_VALUE (declspec_stack);
+		  prefix_attributes = TREE_PURPOSE (declspec_stack);
+		  declspec_stack = TREE_CHAIN (declspec_stack);
+		  resume_momentary (yyvsp[-3].itype);
+		;
     break;}
 case 279:
-#line 1519 "objc-parse.y"
+#line 1528 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  current_declspecs = TREE_VALUE (declspec_stack);
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -3507,144 +3516,144 @@ case 279:
 		  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 280:
-#line 1525 "objc-parse.y"
+#line 1534 "objc-parse.y"
 { if (pedantic)
 		    pedwarn ("ANSI C forbids member declarations with no members");
 		  shadow_tag(yyvsp[0].ttype);
 		  yyval.ttype = NULL_TREE; ;
     break;}
 case 281:
-#line 1530 "objc-parse.y"
+#line 1539 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 282:
-#line 1532 "objc-parse.y"
+#line 1541 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  pedantic = yyvsp[-1].itype; ;
     break;}
 case 284:
-#line 1539 "objc-parse.y"
+#line 1548 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 285:
-#line 1544 "objc-parse.y"
+#line 1553 "objc-parse.y"
 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
 		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
 case 286:
-#line 1548 "objc-parse.y"
+#line 1557 "objc-parse.y"
 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
 		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
 case 287:
-#line 1551 "objc-parse.y"
+#line 1560 "objc-parse.y"
 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
 		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
 case 289:
-#line 1563 "objc-parse.y"
+#line 1572 "objc-parse.y"
 { if (yyvsp[-2].ttype == error_mark_node)
 		    yyval.ttype = yyvsp[-2].ttype;
 		  else
 		    yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
     break;}
 case 290:
-#line 1568 "objc-parse.y"
+#line 1577 "objc-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 291:
-#line 1574 "objc-parse.y"
+#line 1583 "objc-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 292:
-#line 1576 "objc-parse.y"
+#line 1585 "objc-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 293:
-#line 1581 "objc-parse.y"
+#line 1590 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 294:
-#line 1583 "objc-parse.y"
+#line 1592 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 295:
-#line 1588 "objc-parse.y"
+#line 1597 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 297:
-#line 1594 "objc-parse.y"
+#line 1603 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 298:
-#line 1596 "objc-parse.y"
+#line 1605 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 299:
-#line 1601 "objc-parse.y"
+#line 1610 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 300:
-#line 1603 "objc-parse.y"
+#line 1612 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 301:
-#line 1608 "objc-parse.y"
+#line 1617 "objc-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 302:
-#line 1611 "objc-parse.y"
+#line 1620 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 303:
-#line 1613 "objc-parse.y"
+#line 1622 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 304:
-#line 1615 "objc-parse.y"
+#line 1624 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 305:
-#line 1617 "objc-parse.y"
+#line 1626 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 306:
-#line 1619 "objc-parse.y"
+#line 1628 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 307:
-#line 1621 "objc-parse.y"
+#line 1630 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 308:
-#line 1623 "objc-parse.y"
+#line 1632 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 309:
-#line 1625 "objc-parse.y"
+#line 1634 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
 case 310:
-#line 1629 "objc-parse.y"
+#line 1638 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 311:
-#line 1638 "objc-parse.y"
+#line 1647 "objc-parse.y"
 {
 		  if (pedantic && yyvsp[0].ends_in_label)
 		    pedwarn ("ANSI C forbids label at end of compound statement");
 		;
     break;}
 case 313:
-#line 1647 "objc-parse.y"
+#line 1656 "objc-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 314:
-#line 1649 "objc-parse.y"
+#line 1658 "objc-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
 case 318:
-#line 1661 "objc-parse.y"
+#line 1670 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
 		  pushlevel (0);
 		  clear_last_expr ();
@@ -3655,12 +3664,12 @@ case 318:
 		;
     break;}
 case 320:
-#line 1676 "objc-parse.y"
+#line 1685 "objc-parse.y"
 { if (pedantic)
 		    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
 case 323:
-#line 1687 "objc-parse.y"
+#line 1696 "objc-parse.y"
 { tree link;
 		  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
 		    {
@@ -3671,19 +3680,19 @@ case 323:
 		;
     break;}
 case 324:
-#line 1701 "objc-parse.y"
+#line 1710 "objc-parse.y"
 {;
     break;}
 case 326:
-#line 1705 "objc-parse.y"
+#line 1714 "objc-parse.y"
 { compstmt_count++; ;
     break;}
 case 327:
-#line 1708 "objc-parse.y"
+#line 1717 "objc-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
 case 328:
-#line 1710 "objc-parse.y"
+#line 1719 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
 		  expand_end_bindings (getdecls (), 1, 0);
 		  yyval.ttype = poplevel (1, 1, 0);
@@ -3693,7 +3702,7 @@ case 328:
 		    pop_momentary (); ;
     break;}
 case 329:
-#line 1718 "objc-parse.y"
+#line 1727 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
 		  expand_end_bindings (getdecls (), kept_level_p (), 0);
 		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3703,7 +3712,7 @@ case 329:
 		    pop_momentary (); ;
     break;}
 case 330:
-#line 1726 "objc-parse.y"
+#line 1735 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
 		  expand_end_bindings (getdecls (), kept_level_p (), 0);
 		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3713,7 +3722,7 @@ case 330:
 		    pop_momentary (); ;
     break;}
 case 333:
-#line 1746 "objc-parse.y"
+#line 1755 "objc-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
 		  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
 				       compstmt_count);
@@ -3723,7 +3732,7 @@ case 333:
 		  position_after_white_space (); ;
     break;}
 case 334:
-#line 1760 "objc-parse.y"
+#line 1769 "objc-parse.y"
 { stmt_count++;
 		  compstmt_count++;
 		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3733,43 +3742,43 @@ case 334:
 		  position_after_white_space (); ;
     break;}
 case 335:
-#line 1768 "objc-parse.y"
+#line 1777 "objc-parse.y"
 { expand_loop_continue_here (); ;
     break;}
 case 336:
-#line 1772 "objc-parse.y"
+#line 1781 "objc-parse.y"
 { yyval.filename = input_filename; ;
     break;}
 case 337:
-#line 1776 "objc-parse.y"
+#line 1785 "objc-parse.y"
 { yyval.lineno = lineno; ;
     break;}
 case 338:
-#line 1781 "objc-parse.y"
+#line 1790 "objc-parse.y"
 { ;
     break;}
 case 339:
-#line 1786 "objc-parse.y"
+#line 1795 "objc-parse.y"
 { ;
     break;}
 case 340:
-#line 1791 "objc-parse.y"
+#line 1800 "objc-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 341:
-#line 1796 "objc-parse.y"
+#line 1805 "objc-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
 case 342:
-#line 1798 "objc-parse.y"
+#line 1807 "objc-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
 case 343:
-#line 1804 "objc-parse.y"
+#line 1813 "objc-parse.y"
 { stmt_count++; ;
     break;}
 case 345:
-#line 1807 "objc-parse.y"
+#line 1816 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 /* It appears that this should not be done--that a non-lvalue array
@@ -3788,19 +3797,19 @@ case 345:
 		  clear_momentary (); ;
     break;}
 case 346:
-#line 1824 "objc-parse.y"
+#line 1833 "objc-parse.y"
 { c_expand_start_else ();
 		  yyvsp[-1].itype = stmt_count;
 		  position_after_white_space (); ;
     break;}
 case 347:
-#line 1828 "objc-parse.y"
+#line 1837 "objc-parse.y"
 { c_expand_end_cond ();
 		  if (extra_warnings && stmt_count == yyvsp[-3].itype)
 		    warning ("empty body in an else-statement"); ;
     break;}
 case 348:
-#line 1832 "objc-parse.y"
+#line 1841 "objc-parse.y"
 { c_expand_end_cond ();
 		  /* This warning is here instead of in simple_if, because we
 		     do not want a warning if an empty if is followed by an
@@ -3811,11 +3820,11 @@ case 348:
 						"empty body in an if-statement"); ;
     break;}
 case 349:
-#line 1844 "objc-parse.y"
+#line 1853 "objc-parse.y"
 { c_expand_end_cond (); ;
     break;}
 case 350:
-#line 1846 "objc-parse.y"
+#line 1855 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
 		  /* The emit_nop used to come before emit_line_note,
@@ -3827,7 +3836,7 @@ case 350:
 		  emit_nop (); ;
     break;}
 case 351:
-#line 1856 "objc-parse.y"
+#line 1865 "objc-parse.y"
 { /* Don't start the loop till we have succeeded
 		     in parsing the end test.  This is to make sure
 		     that we end every loop we start.  */
@@ -3838,11 +3847,11 @@ case 351:
 		  position_after_white_space (); ;
     break;}
 case 352:
-#line 1865 "objc-parse.y"
+#line 1874 "objc-parse.y"
 { expand_end_loop (); ;
     break;}
 case 353:
-#line 1868 "objc-parse.y"
+#line 1877 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
 		  expand_exit_loop_if_false (NULL_PTR,
 					     truthvalue_conversion (yyvsp[-2].ttype));
@@ -3850,12 +3859,12 @@ case 353:
 		  clear_momentary (); ;
     break;}
 case 354:
-#line 1875 "objc-parse.y"
+#line 1884 "objc-parse.y"
 { expand_end_loop ();
 		  clear_momentary (); ;
     break;}
 case 355:
-#line 1879 "objc-parse.y"
+#line 1888 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
 		  /* See comment in `while' alternative, above.  */
@@ -3868,12 +3877,12 @@ case 355:
 		;
     break;}
 case 356:
-#line 1891 "objc-parse.y"
+#line 1900 "objc-parse.y"
 { yyvsp[0].lineno = lineno;
 		  yyval.filename = input_filename; ;
     break;}
 case 357:
-#line 1894 "objc-parse.y"
+#line 1903 "objc-parse.y"
 { 
 		  /* Start the loop.  Doing this after parsing
 		     all the expressions ensures we will end the loop.  */
@@ -3891,7 +3900,7 @@ case 357:
 		  position_after_white_space (); ;
     break;}
 case 358:
-#line 1910 "objc-parse.y"
+#line 1919 "objc-parse.y"
 { /* Emit the increment expression, with a line number.  */
 		  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
 		  expand_loop_continue_here ();
@@ -3904,7 +3913,7 @@ case 358:
 		  expand_end_loop (); ;
     break;}
 case 359:
-#line 1921 "objc-parse.y"
+#line 1930 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
 		  c_expand_start_case (yyvsp[-1].ttype);
@@ -3914,7 +3923,7 @@ case 359:
 		  position_after_white_space (); ;
     break;}
 case 360:
-#line 1929 "objc-parse.y"
+#line 1938 "objc-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
 		  if (yychar == CONSTANT || yychar == STRING)
 		    pop_momentary_nofree ();
@@ -3922,33 +3931,33 @@ case 360:
 		    pop_momentary (); ;
     break;}
 case 361:
-#line 1935 "objc-parse.y"
+#line 1944 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 		  if ( ! expand_exit_something ())
 		    error ("break statement not within loop or switch"); ;
     break;}
 case 362:
-#line 1940 "objc-parse.y"
+#line 1949 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 		  if (! expand_continue_loop (NULL_PTR))
 		    error ("continue statement not within a loop"); ;
     break;}
 case 363:
-#line 1945 "objc-parse.y"
+#line 1954 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 		  c_expand_return (NULL_TREE); ;
     break;}
 case 364:
-#line 1949 "objc-parse.y"
+#line 1958 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
 		  c_expand_return (yyvsp[-1].ttype); ;
     break;}
 case 365:
-#line 1953 "objc-parse.y"
+#line 1962 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
 		  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3960,7 +3969,7 @@ case 365:
 		    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 366:
-#line 1964 "objc-parse.y"
+#line 1973 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
 		  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
@@ -3968,7 +3977,7 @@ case 366:
 					 input_filename, lineno); ;
     break;}
 case 367:
-#line 1971 "objc-parse.y"
+#line 1980 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
 		  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
@@ -3976,7 +3985,7 @@ case 367:
 					 input_filename, lineno); ;
     break;}
 case 368:
-#line 1979 "objc-parse.y"
+#line 1988 "objc-parse.y"
 { stmt_count++;
 		  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
 		  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
@@ -3984,7 +3993,7 @@ case 368:
 					 input_filename, lineno); ;
     break;}
 case 369:
-#line 1985 "objc-parse.y"
+#line 1994 "objc-parse.y"
 { tree decl;
 		  stmt_count++;
 		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3997,7 +4006,7 @@ case 369:
 		;
     break;}
 case 370:
-#line 1996 "objc-parse.y"
+#line 2005 "objc-parse.y"
 { if (pedantic)
 		    pedwarn ("ANSI C forbids `goto *expr;'");
 		  stmt_count++;
@@ -4005,7 +4014,7 @@ case 370:
 		  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
 case 373:
-#line 2011 "objc-parse.y"
+#line 2020 "objc-parse.y"
 {
 	    /* The value returned by this action is  */
 	    /*      1 if everything is OK */ 
@@ -4028,14 +4037,14 @@ case 373:
 	  ;
     break;}
 case 374:
-#line 2032 "objc-parse.y"
+#line 2041 "objc-parse.y"
 {
 	    if (yyvsp[-1].itype)
 	      iterator_for_loop_end (yyvsp[-3].ttype);
 	  ;
     break;}
 case 375:
-#line 2067 "objc-parse.y"
+#line 2076 "objc-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
 		  register tree label
 		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -4068,7 +4077,7 @@ case 375:
 		  position_after_white_space (); ;
     break;}
 case 376:
-#line 2098 "objc-parse.y"
+#line 2107 "objc-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
 		  register tree value2 = check_case_value (yyvsp[-1].ttype);
 		  register tree label
@@ -4101,7 +4110,7 @@ case 376:
 		  position_after_white_space (); ;
     break;}
 case 377:
-#line 2129 "objc-parse.y"
+#line 2138 "objc-parse.y"
 {
 		  tree duplicate;
 		  register tree label
@@ -4118,7 +4127,7 @@ case 377:
 		  position_after_white_space (); ;
     break;}
 case 378:
-#line 2144 "objc-parse.y"
+#line 2153 "objc-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
 		  stmt_count++;
 		  emit_nop ();
@@ -4130,52 +4139,52 @@ case 378:
 		  position_after_white_space (); ;
     break;}
 case 379:
-#line 2159 "objc-parse.y"
+#line 2168 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
 		  yyval.ttype = NULL_TREE; ;
     break;}
 case 380:
-#line 2162 "objc-parse.y"
+#line 2171 "objc-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
 case 381:
-#line 2167 "objc-parse.y"
+#line 2176 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 383:
-#line 2174 "objc-parse.y"
+#line 2183 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 386:
-#line 2181 "objc-parse.y"
+#line 2190 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 387:
-#line 2186 "objc-parse.y"
+#line 2195 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 388:
-#line 2191 "objc-parse.y"
+#line 2200 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
 case 389:
-#line 2193 "objc-parse.y"
+#line 2202 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
 case 390:
-#line 2199 "objc-parse.y"
+#line 2208 "objc-parse.y"
 { pushlevel (0);
 		  clear_parm_order ();
 		  declare_parm_level (0); ;
     break;}
 case 391:
-#line 2203 "objc-parse.y"
+#line 2212 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  parmlist_tags_warning ();
 		  poplevel (0, 0, 0); ;
     break;}
 case 393:
-#line 2211 "objc-parse.y"
+#line 2220 "objc-parse.y"
 { tree parm;
 		  if (pedantic)
 		    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -4185,19 +4194,19 @@ case 393:
 		  clear_parm_order (); ;
     break;}
 case 394:
-#line 2219 "objc-parse.y"
+#line 2228 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 395:
-#line 2221 "objc-parse.y"
+#line 2230 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
 case 396:
-#line 2227 "objc-parse.y"
+#line 2236 "objc-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 397:
-#line 2229 "objc-parse.y"
+#line 2238 "objc-parse.y"
 { yyval.ttype = get_parm_info (0);
 		  /* Gcc used to allow this as an extension.  However, it does
 		     not work for all targets, and thus has been disabled.
@@ -4209,23 +4218,23 @@ case 397:
 		;
     break;}
 case 398:
-#line 2239 "objc-parse.y"
+#line 2248 "objc-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
 case 399:
-#line 2241 "objc-parse.y"
+#line 2250 "objc-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 400:
-#line 2246 "objc-parse.y"
+#line 2255 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 401:
-#line 2248 "objc-parse.y"
+#line 2257 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 402:
-#line 2255 "objc-parse.y"
+#line 2264 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -4236,7 +4245,7 @@ case 402:
 		  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 403:
-#line 2264 "objc-parse.y"
+#line 2273 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -4247,7 +4256,7 @@ case 403:
 		  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 404:
-#line 2273 "objc-parse.y"
+#line 2282 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -4258,7 +4267,7 @@ case 404:
 		  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 405:
-#line 2282 "objc-parse.y"
+#line 2291 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -4269,7 +4278,7 @@ case 405:
 		  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 406:
-#line 2292 "objc-parse.y"
+#line 2301 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
@@ -4280,19 +4289,19 @@ case 406:
 		  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 407:
-#line 2306 "objc-parse.y"
+#line 2315 "objc-parse.y"
 { pushlevel (0);
 		  clear_parm_order ();
 		  declare_parm_level (1); ;
     break;}
 case 408:
-#line 2310 "objc-parse.y"
+#line 2319 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  parmlist_tags_warning ();
 		  poplevel (0, 0, 0); ;
     break;}
 case 410:
-#line 2318 "objc-parse.y"
+#line 2327 "objc-parse.y"
 { tree t;
 		  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
 		    if (TREE_VALUE (t) == NULL_TREE)
@@ -4300,28 +4309,28 @@ case 410:
 		  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 411:
-#line 2328 "objc-parse.y"
+#line 2337 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 412:
-#line 2330 "objc-parse.y"
+#line 2339 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 413:
-#line 2336 "objc-parse.y"
+#line 2345 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 414:
-#line 2338 "objc-parse.y"
+#line 2347 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 415:
-#line 2343 "objc-parse.y"
+#line 2352 "objc-parse.y"
 { yyval.itype = pedantic;
 		  pedantic = 0; ;
     break;}
 case 421:
-#line 2356 "objc-parse.y"
+#line 2365 "objc-parse.y"
 {
 		  if (objc_implementation_context)
                     {
@@ -4334,27 +4343,27 @@ case 421:
 		;
     break;}
 case 422:
-#line 2371 "objc-parse.y"
+#line 2380 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 423:
-#line 2373 "objc-parse.y"
+#line 2382 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 424:
-#line 2378 "objc-parse.y"
+#line 2387 "objc-parse.y"
 {
 		  objc_declare_class (yyvsp[-1].ttype);
 		;
     break;}
 case 425:
-#line 2384 "objc-parse.y"
+#line 2393 "objc-parse.y"
 {
 		  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
 		;
     break;}
 case 426:
-#line 2390 "objc-parse.y"
+#line 2399 "objc-parse.y"
 {
 		  objc_interface_context = objc_ivar_context
 		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
@@ -4362,20 +4371,20 @@ case 426:
 		;
     break;}
 case 427:
-#line 2396 "objc-parse.y"
+#line 2405 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
 		;
     break;}
 case 428:
-#line 2401 "objc-parse.y"
+#line 2410 "objc-parse.y"
 {
 		  finish_class (objc_interface_context);
 		  objc_interface_context = NULL_TREE;
 		;
     break;}
 case 429:
-#line 2407 "objc-parse.y"
+#line 2416 "objc-parse.y"
 {
 		  objc_interface_context
 		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
@@ -4383,14 +4392,14 @@ case 429:
 		;
     break;}
 case 430:
-#line 2414 "objc-parse.y"
+#line 2423 "objc-parse.y"
 {
 		  finish_class (objc_interface_context);
 		  objc_interface_context = NULL_TREE;
 		;
     break;}
 case 431:
-#line 2420 "objc-parse.y"
+#line 2429 "objc-parse.y"
 {
 		  objc_interface_context = objc_ivar_context
 		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
@@ -4398,20 +4407,20 @@ case 431:
 		;
     break;}
 case 432:
-#line 2426 "objc-parse.y"
+#line 2435 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
 		;
     break;}
 case 433:
-#line 2431 "objc-parse.y"
+#line 2440 "objc-parse.y"
 {
 		  finish_class (objc_interface_context);
 		  objc_interface_context = NULL_TREE;
 		;
     break;}
 case 434:
-#line 2437 "objc-parse.y"
+#line 2446 "objc-parse.y"
 {
 		  objc_interface_context
 		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
@@ -4419,14 +4428,14 @@ case 434:
 		;
     break;}
 case 435:
-#line 2444 "objc-parse.y"
+#line 2453 "objc-parse.y"
 {
 		  finish_class (objc_interface_context);
 		  objc_interface_context = NULL_TREE;
 		;
     break;}
 case 436:
-#line 2450 "objc-parse.y"
+#line 2459 "objc-parse.y"
 {
 		  objc_implementation_context = objc_ivar_context
 		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
@@ -4434,14 +4443,14 @@ case 436:
 		;
     break;}
 case 437:
-#line 2456 "objc-parse.y"
+#line 2465 "objc-parse.y"
 {
                   objc_ivar_chain
 		    = continue_class (objc_implementation_context);
 		;
     break;}
 case 438:
-#line 2462 "objc-parse.y"
+#line 2471 "objc-parse.y"
 {
 		  objc_implementation_context
 		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
@@ -4450,7 +4459,7 @@ case 438:
 		;
     break;}
 case 439:
-#line 2470 "objc-parse.y"
+#line 2479 "objc-parse.y"
 {
 		  objc_implementation_context = objc_ivar_context
 		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
@@ -4458,14 +4467,14 @@ case 439:
 		;
     break;}
 case 440:
-#line 2476 "objc-parse.y"
+#line 2485 "objc-parse.y"
 {
                   objc_ivar_chain
 		    = continue_class (objc_implementation_context);
 		;
     break;}
 case 441:
-#line 2482 "objc-parse.y"
+#line 2491 "objc-parse.y"
 {
 		  objc_implementation_context
 		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
@@ -4474,7 +4483,7 @@ case 441:
 		;
     break;}
 case 442:
-#line 2490 "objc-parse.y"
+#line 2499 "objc-parse.y"
 {
 		  objc_interface_context
 		    = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
@@ -4482,14 +4491,14 @@ case 442:
 		;
     break;}
 case 443:
-#line 2497 "objc-parse.y"
+#line 2506 "objc-parse.y"
 {
 		  finish_class (objc_interface_context);
 		  objc_interface_context = NULL_TREE;
 		;
     break;}
 case 444:
-#line 2503 "objc-parse.y"
+#line 2512 "objc-parse.y"
 {
 		  objc_implementation_context
 		    = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
@@ -4498,7 +4507,7 @@ case 444:
 		;
     break;}
 case 445:
-#line 2513 "objc-parse.y"
+#line 2522 "objc-parse.y"
 {
 		  remember_protocol_qualifiers ();
 		  objc_interface_context
@@ -4506,7 +4515,7 @@ case 445:
 		;
     break;}
 case 446:
-#line 2519 "objc-parse.y"
+#line 2528 "objc-parse.y"
 {
 		  forget_protocol_qualifiers();
 		  finish_protocol(objc_interface_context);
@@ -4514,13 +4523,13 @@ case 446:
 		;
     break;}
 case 447:
-#line 2528 "objc-parse.y"
+#line 2537 "objc-parse.y"
 {
 		  yyval.ttype = NULL_TREE;
 		;
     break;}
 case 449:
-#line 2536 "objc-parse.y"
+#line 2545 "objc-parse.y"
 {
 		  if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
 		    yyval.ttype = yyvsp[-1].ttype;
@@ -4529,32 +4538,32 @@ case 449:
 		;
     break;}
 case 452:
-#line 2550 "objc-parse.y"
+#line 2559 "objc-parse.y"
 { objc_public_flag = 2; ;
     break;}
 case 453:
-#line 2551 "objc-parse.y"
+#line 2560 "objc-parse.y"
 { objc_public_flag = 0; ;
     break;}
 case 454:
-#line 2552 "objc-parse.y"
+#line 2561 "objc-parse.y"
 { objc_public_flag = 1; ;
     break;}
 case 455:
-#line 2557 "objc-parse.y"
+#line 2566 "objc-parse.y"
 {
                   yyval.ttype = NULL_TREE;
                 ;
     break;}
 case 457:
-#line 2562 "objc-parse.y"
+#line 2571 "objc-parse.y"
 {
                   if (pedantic)
 		    pedwarn ("extra semicolon in struct or union specified");
                 ;
     break;}
 case 458:
-#line 2580 "objc-parse.y"
+#line 2589 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  current_declspecs = TREE_VALUE (declspec_stack);
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -4562,7 +4571,7 @@ case 458:
 		  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 459:
-#line 2586 "objc-parse.y"
+#line 2595 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
 		  current_declspecs = TREE_VALUE (declspec_stack);
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -4570,15 +4579,15 @@ case 459:
 		  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 460:
-#line 2592 "objc-parse.y"
+#line 2601 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 461:
-#line 2597 "objc-parse.y"
+#line 2606 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 464:
-#line 2604 "objc-parse.y"
+#line 2613 "objc-parse.y"
 {
 		  yyval.ttype = add_instance_variable (objc_ivar_context,
 					      objc_public_flag,
@@ -4587,7 +4596,7 @@ case 464:
                 ;
     break;}
 case 465:
-#line 2611 "objc-parse.y"
+#line 2620 "objc-parse.y"
 {
 		  yyval.ttype = add_instance_variable (objc_ivar_context,
 					      objc_public_flag,
@@ -4595,7 +4604,7 @@ case 465:
                 ;
     break;}
 case 466:
-#line 2617 "objc-parse.y"
+#line 2626 "objc-parse.y"
 {
 		  yyval.ttype = add_instance_variable (objc_ivar_context,
 					      objc_public_flag,
@@ -4604,7 +4613,7 @@ case 466:
                 ;
     break;}
 case 467:
-#line 2627 "objc-parse.y"
+#line 2636 "objc-parse.y"
 {
 		  remember_protocol_qualifiers ();
 		  if (objc_implementation_context)
@@ -4614,7 +4623,7 @@ case 467:
 		;
     break;}
 case 468:
-#line 2635 "objc-parse.y"
+#line 2644 "objc-parse.y"
 {
 		  forget_protocol_qualifiers ();
 		  add_class_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4623,20 +4632,20 @@ case 468:
 		;
     break;}
 case 469:
-#line 2642 "objc-parse.y"
+#line 2651 "objc-parse.y"
 {
 		  continue_method_def ();
 		;
     break;}
 case 470:
-#line 2646 "objc-parse.y"
+#line 2655 "objc-parse.y"
 {
 		  finish_method_def ();
 		  objc_method_context = NULL_TREE;
 		;
     break;}
 case 471:
-#line 2652 "objc-parse.y"
+#line 2661 "objc-parse.y"
 {
 		  remember_protocol_qualifiers ();
 		  if (objc_implementation_context)
@@ -4646,7 +4655,7 @@ case 471:
 		;
     break;}
 case 472:
-#line 2660 "objc-parse.y"
+#line 2669 "objc-parse.y"
 {
 		  forget_protocol_qualifiers ();
 		  add_instance_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4655,28 +4664,28 @@ case 472:
 		;
     break;}
 case 473:
-#line 2667 "objc-parse.y"
+#line 2676 "objc-parse.y"
 {
 		  continue_method_def ();
 		;
     break;}
 case 474:
-#line 2671 "objc-parse.y"
+#line 2680 "objc-parse.y"
 {
 		  finish_method_def ();
 		  objc_method_context = NULL_TREE;
 		;
     break;}
 case 476:
-#line 2683 "objc-parse.y"
+#line 2692 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 481:
-#line 2690 "objc-parse.y"
+#line 2699 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 485:
-#line 2700 "objc-parse.y"
+#line 2709 "objc-parse.y"
 {
 		  /* Remember protocol qualifiers in prototypes.  */
 		  remember_protocol_qualifiers ();
@@ -4684,7 +4693,7 @@ case 485:
 		;
     break;}
 case 486:
-#line 2706 "objc-parse.y"
+#line 2715 "objc-parse.y"
 {
 		  /* Forget protocol qualifiers here.  */
 		  forget_protocol_qualifiers ();
@@ -4692,7 +4701,7 @@ case 486:
 		;
     break;}
 case 488:
-#line 2714 "objc-parse.y"
+#line 2723 "objc-parse.y"
 {
 		  /* Remember protocol qualifiers in prototypes.  */
 		  remember_protocol_qualifiers ();
@@ -4700,7 +4709,7 @@ case 488:
 		;
     break;}
 case 489:
-#line 2720 "objc-parse.y"
+#line 2729 "objc-parse.y"
 {
 		  /* Forget protocol qualifiers here.  */
 		  forget_protocol_qualifiers ();
@@ -4708,94 +4717,94 @@ case 489:
 		;
     break;}
 case 491:
-#line 2730 "objc-parse.y"
+#line 2739 "objc-parse.y"
 {
 		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
 		;
     break;}
 case 492:
-#line 2735 "objc-parse.y"
+#line 2744 "objc-parse.y"
 {
 		  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
 		;
     break;}
 case 493:
-#line 2740 "objc-parse.y"
+#line 2749 "objc-parse.y"
 {
 		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
 		;
     break;}
 case 494:
-#line 2745 "objc-parse.y"
+#line 2754 "objc-parse.y"
 {
 		  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
 		;
     break;}
 case 503:
-#line 2775 "objc-parse.y"
+#line 2784 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
 		  prefix_attributes = TREE_PURPOSE (declspec_stack);
 		  declspec_stack = TREE_CHAIN (declspec_stack);
 		  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 504:
-#line 2780 "objc-parse.y"
+#line 2789 "objc-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 505:
-#line 2782 "objc-parse.y"
+#line 2791 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 506:
-#line 2787 "objc-parse.y"
+#line 2796 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 507:
-#line 2789 "objc-parse.y"
+#line 2798 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 508:
-#line 2797 "objc-parse.y"
+#line 2806 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
 							 yyvsp[0].ttype)); ;
     break;}
 case 509:
-#line 2802 "objc-parse.y"
+#line 2811 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
 							 yyvsp[0].ttype)); ;
     break;}
 case 510:
-#line 2807 "objc-parse.y"
+#line 2816 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
 							 yyvsp[-1].ttype),
 					build_tree_list (prefix_attributes,
 							 yyvsp[0].ttype)); ;
     break;}
 case 511:
-#line 2815 "objc-parse.y"
+#line 2824 "objc-parse.y"
 {
 	    	  yyval.ttype = NULL_TREE;
 		;
     break;}
 case 512:
-#line 2819 "objc-parse.y"
+#line 2828 "objc-parse.y"
 {
 		  /* oh what a kludge! */
 		  yyval.ttype = (tree)1;
 		;
     break;}
 case 513:
-#line 2824 "objc-parse.y"
+#line 2833 "objc-parse.y"
 {
 		  pushlevel (0);
 		;
     break;}
 case 514:
-#line 2828 "objc-parse.y"
+#line 2837 "objc-parse.y"
 {
 	  	  /* returns a tree list node generated by get_parm_info */
 		  yyval.ttype = yyvsp[0].ttype;
@@ -4803,119 +4812,119 @@ case 514:
 		;
     break;}
 case 517:
-#line 2843 "objc-parse.y"
+#line 2852 "objc-parse.y"
 {
 		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
 		;
     break;}
 case 522:
-#line 2856 "objc-parse.y"
+#line 2865 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 523:
-#line 2857 "objc-parse.y"
+#line 2866 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 524:
-#line 2858 "objc-parse.y"
+#line 2867 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 525:
-#line 2859 "objc-parse.y"
+#line 2868 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 526:
-#line 2860 "objc-parse.y"
+#line 2869 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 527:
-#line 2861 "objc-parse.y"
+#line 2870 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 528:
-#line 2862 "objc-parse.y"
+#line 2871 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 529:
-#line 2863 "objc-parse.y"
+#line 2872 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 530:
-#line 2864 "objc-parse.y"
+#line 2873 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 531:
-#line 2865 "objc-parse.y"
+#line 2874 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 532:
-#line 2866 "objc-parse.y"
+#line 2875 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 533:
-#line 2867 "objc-parse.y"
+#line 2876 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 534:
-#line 2868 "objc-parse.y"
+#line 2877 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 535:
-#line 2869 "objc-parse.y"
+#line 2878 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 536:
-#line 2870 "objc-parse.y"
+#line 2879 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 537:
-#line 2871 "objc-parse.y"
+#line 2880 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 538:
-#line 2872 "objc-parse.y"
+#line 2881 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 539:
-#line 2873 "objc-parse.y"
+#line 2882 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 540:
-#line 2874 "objc-parse.y"
+#line 2883 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 543:
-#line 2880 "objc-parse.y"
+#line 2889 "objc-parse.y"
 {
 		  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
 		;
     break;}
 case 544:
-#line 2885 "objc-parse.y"
+#line 2894 "objc-parse.y"
 {
 		  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
 		;
     break;}
 case 545:
-#line 2890 "objc-parse.y"
+#line 2899 "objc-parse.y"
 {
 		  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
 		;
     break;}
 case 546:
-#line 2895 "objc-parse.y"
+#line 2904 "objc-parse.y"
 {
 		  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
 		;
     break;}
 case 550:
-#line 2908 "objc-parse.y"
+#line 2917 "objc-parse.y"
 {
 		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
 		;
     break;}
 case 551:
-#line 2916 "objc-parse.y"
+#line 2925 "objc-parse.y"
 {
 		  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
 		    /* just return the expr., remove a level of indirection */
@@ -4926,69 +4935,69 @@ case 551:
 		;
     break;}
 case 552:
-#line 2928 "objc-parse.y"
+#line 2937 "objc-parse.y"
 {
 		  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
 		;
     break;}
 case 553:
-#line 2932 "objc-parse.y"
+#line 2941 "objc-parse.y"
 {
 		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
 		;
     break;}
 case 555:
-#line 2940 "objc-parse.y"
+#line 2949 "objc-parse.y"
 {
 		  yyval.ttype = get_class_reference (yyvsp[0].ttype);
 		;
     break;}
 case 556:
-#line 2947 "objc-parse.y"
+#line 2956 "objc-parse.y"
 { objc_receiver_context = 1; ;
     break;}
 case 557:
-#line 2949 "objc-parse.y"
+#line 2958 "objc-parse.y"
 { objc_receiver_context = 0; ;
     break;}
 case 558:
-#line 2951 "objc-parse.y"
+#line 2960 "objc-parse.y"
 {
 		  yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
 		;
     break;}
 case 562:
-#line 2964 "objc-parse.y"
+#line 2973 "objc-parse.y"
 {
 		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
 		;
     break;}
 case 563:
-#line 2971 "objc-parse.y"
+#line 2980 "objc-parse.y"
 {
 		  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
 		;
     break;}
 case 564:
-#line 2975 "objc-parse.y"
+#line 2984 "objc-parse.y"
 {
 		  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
 		;
     break;}
 case 565:
-#line 2982 "objc-parse.y"
+#line 2991 "objc-parse.y"
 {
 		  yyval.ttype = yyvsp[-1].ttype;
 		;
     break;}
 case 566:
-#line 2989 "objc-parse.y"
+#line 2998 "objc-parse.y"
 {
 		  yyval.ttype = yyvsp[-1].ttype;
 		;
     break;}
 case 567:
-#line 2998 "objc-parse.y"
+#line 3007 "objc-parse.y"
 {
 		  yyval.ttype = groktypename (yyvsp[-1].ttype);
 		;
@@ -5191,5 +5200,5 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 3003 "objc-parse.y"
+#line 3012 "objc-parse.y"
 
Index: gcc-2.95.2/gcc/c-decl.c
===================================================================
RCS file: /homes/khan/src/CVSROOT/gcc-2.95.2/gcc/c-decl.c,v
retrieving revision 1.1.1.1
diff -u -3 -p -r1.1.1.1 c-decl.c
--- gcc-2.95.2/gcc/c-decl.c	1999/11/05 01:09:41	1.1.1.1
+++ gcc-2.95.2/gcc/c-decl.c	1999/11/05 05:46:18
@@ -6044,43 +6044,6 @@ finish_struct (t, fieldlist, attributes)
 
   TYPE_FIELDS (t) = fieldlist;
 
-  /* If there are lots of fields, sort so we can look through them fast.
-     We arbitrarily consider 16 or more elts to be "a lot".  */
-  {
-    int len = 0;
-
-    for (x = fieldlist; x; x = TREE_CHAIN (x))
-      {
-	if (len > 15)
-	  break;
-	len += 1;
-      }
-    if (len > 15)
-      {
-	tree *field_array;
-	char *space;
-
-	len += list_length (x);
-	/* Use the same allocation policy here that make_node uses, to
-	   ensure that this lives as long as the rest of the struct decl.
-	   All decls in an inline function need to be saved.  */
-	if (allocation_temporary_p ())
-	  space = savealloc (sizeof (struct lang_type) + len * sizeof (tree));
-	else
-	  space = oballoc (sizeof (struct lang_type) + len * sizeof (tree));
-
-	TYPE_LANG_SPECIFIC (t) = (struct lang_type *) space;
-	TYPE_LANG_SPECIFIC (t)->len = len;
-
-	field_array = &TYPE_LANG_SPECIFIC (t)->elts[0];
-	len = 0;
-	for (x = fieldlist; x; x = TREE_CHAIN (x))
-	  field_array[len++] = x;
-
-	qsort (field_array, len, sizeof (tree), field_decl_cmp);
-      }
-  }
-
   for (x = TYPE_MAIN_VARIANT (t); x; x = TYPE_NEXT_VARIANT (x))
     {
       TYPE_FIELDS (x) = TYPE_FIELDS (t);
