parse.c   [plain text]



/*  A Bison parser, made from /Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y
    by GNU Bison version 1.28  */

#define YYBISON 1  /* Identify Bison output.  */

#define	IDENTIFIER	257
#define	TYPENAME	258
#define	SELFNAME	259
#define	PFUNCNAME	260
#define	SCSPEC	261
#define	TYPESPEC	262
#define	CV_QUALIFIER	263
#define	CONSTANT	264
#define	STRING	265
#define	ELLIPSIS	266
#define	SIZEOF	267
#define	ENUM	268
#define	IF	269
#define	ELSE	270
#define	WHILE	271
#define	DO	272
#define	FOR	273
#define	SWITCH	274
#define	CASE	275
#define	DEFAULT	276
#define	BREAK	277
#define	CONTINUE	278
#define	RETURN_KEYWORD	279
#define	GOTO	280
#define	ASM_KEYWORD	281
#define	TYPEOF	282
#define	ALIGNOF	283
#define	SIGOF	284
#define	ATTRIBUTE	285
#define	EXTENSION	286
#define	LABEL	287
#define	REALPART	288
#define	IMAGPART	289
#define	VEC_STEP	290
#define	AGGR	291
#define	VISSPEC	292
#define	DELETE	293
#define	NEW	294
#define	THIS	295
#define	OPERATOR	296
#define	CXX_TRUE	297
#define	CXX_FALSE	298
#define	NAMESPACE	299
#define	TYPENAME_KEYWORD	300
#define	USING	301
#define	LEFT_RIGHT	302
#define	TEMPLATE	303
#define	TYPEID	304
#define	DYNAMIC_CAST	305
#define	STATIC_CAST	306
#define	REINTERPRET_CAST	307
#define	CONST_CAST	308
#define	SCOPE	309
#define	EMPTY	310
#define	PTYPENAME	311
#define	NSNAME	312
#define	THROW	313
#define	ASSIGN	314
#define	OROR	315
#define	ANDAND	316
#define	MIN_MAX	317
#define	EQCOMPARE	318
#define	ARITHCOMPARE	319
#define	LSHIFT	320
#define	RSHIFT	321
#define	POINTSAT_STAR	322
#define	DOT_STAR	323
#define	UNARY	324
#define	PLUSPLUS	325
#define	MINUSMINUS	326
#define	HYPERUNARY	327
#define	PAREN_STAR_PAREN	328
#define	POINTSAT	329
#define	TRY	330
#define	CATCH	331
#define	PRE_PARSED_FUNCTION_DECL	332
#define	EXTERN_LANG_STRING	333
#define	ALL	334
#define	PRE_PARSED_CLASS_DECL	335
#define	DEFARG	336
#define	DEFARG_MARKER	337
#define	TYPENAME_DEFN	338
#define	IDENTIFIER_DEFN	339
#define	PTYPENAME_DEFN	340
#define	END_OF_LINE	341
#define	END_OF_SAVED_INPUT	342

#line 29 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"

/* Cause the `yydebug' variable to be defined.  */
#define YYDEBUG 1

#include "config.h"

#include "system.h"

#include "tree.h"
#include "input.h"
#include "flags.h"
#include "lex.h"
#include "cp-tree.h"
#include "output.h"
#include "except.h"
#include "toplev.h"

/* Since parsers are distinct for each language, put the language string
   definition here.  (fnf) */
char *language_string = "GNU C++";

extern tree void_list_node;
extern struct obstack permanent_obstack;

extern int end_of_file;

/* Like YYERROR but do call yyerror.  */
#define YYERROR1 { yyerror ("syntax error"); YYERROR; }

#define OP0(NODE) (TREE_OPERAND (NODE, 0))
#define OP1(NODE) (TREE_OPERAND (NODE, 1))

/* Contains the statement keyword (if/while/do) to include in an
   error message if the user supplies an empty conditional expression.  */
static const char *cond_stmt_keyword;

static tree empty_parms PROTO((void));
static int parse_decl PROTO((tree, tree, tree, int, tree *));

/* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
int have_extern_spec;
int used_extern_spec;

/* Cons up an empty parameter list.  */
#ifdef __GNUC__
__inline
#endif
static tree
empty_parms ()
{
  tree parms;

  if (strict_prototype
      || current_class_type != NULL)
    parms = void_list_node;
  else
    parms = NULL_TREE;
  return parms;
}


#line 93 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
#line 289 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"

/* List of types and structure classes of the current declaration.  */
static tree current_declspecs;

/* List of prefix attributes in effect.
   Prefix attributes are parsed by the reserved_declspecs and declmods
   rules.  They create a list that contains *both* declspecs and attrs.  */
/* ??? It is not clear yet that all cases where an attribute can now appear in
   a declspec list have been updated.  */
static tree prefix_attributes;

/* When defining an aggregate, this is the kind of the most recent one
   being defined.  (For example, this might be class_type_node.)  */
tree current_aggr;

/* When defining an enumeration, this is the type of the enumeration.  */
static tree current_enum_type;

/* Tell yyparse how to print a token's value, if yydebug is set.  */

#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
extern void yyprint			PROTO((FILE *, int, YYSTYPE));
extern tree combine_strings		PROTO((tree));

static int
parse_decl(declarator, specs_attrs, attributes, initialized, decl)
  tree declarator;
  tree specs_attrs;
  tree attributes;
  int initialized;
  tree* decl;
{
  int  sm;

  split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
  if (current_declspecs
      && TREE_CODE (current_declspecs) != TREE_LIST)
    current_declspecs = build_decl_list (NULL_TREE, current_declspecs);
  if (have_extern_spec && !used_extern_spec)
    {
      current_declspecs = decl_tree_cons (NULL_TREE, 
					  get_identifier ("extern"), 
					  current_declspecs);
      used_extern_spec = 1;
    }
  sm = suspend_momentary ();
  *decl = start_decl (declarator, current_declspecs, initialized,
		      attributes, prefix_attributes);
  return sm;
}
#include <stdio.h>

#ifndef __cplusplus
#ifndef __STDC__
#define const
#endif
#endif



#define	YYFINAL		1675
#define	YYFLAG		-32768
#define	YYNTBASE	113

#define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 401)

static const char yytranslate[] = {     0,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,   111,     2,     2,     2,    83,    71,     2,    94,
   109,    81,    79,    60,    80,    93,    82,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    63,    61,    75,
    65,    76,    66,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    95,     2,   112,    70,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,    59,    69,   110,    89,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    57,    58,    62,    64,    67,    68,    72,    73,    74,    77,
    78,    84,    85,    86,    87,    88,    90,    91,    92,    96,
    97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
   107,   108
};

#if YYDEBUG != 0
static const short yyprhs[] = {     0,
     0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
    17,    19,    20,    23,    26,    28,    30,    36,    41,    47,
    52,    53,    60,    61,    67,    69,    72,    74,    77,    78,
    85,    88,    92,    96,   100,   104,   109,   110,   116,   119,
   123,   125,   127,   130,   133,   135,   138,   139,   145,   149,
   151,   155,   157,   158,   161,   164,   168,   170,   174,   176,
   180,   182,   186,   189,   192,   195,   197,   199,   205,   210,
   213,   216,   220,   224,   227,   230,   234,   238,   241,   244,
   247,   250,   253,   255,   257,   259,   260,   262,   265,   266,
   268,   273,   277,   281,   282,   291,   297,   298,   308,   315,
   316,   325,   331,   332,   342,   349,   352,   355,   357,   360,
   362,   369,   374,   381,   386,   389,   391,   394,   397,   399,
   402,   404,   407,   410,   415,   418,   422,   423,   424,   426,
   430,   433,   437,   439,   444,   447,   452,   455,   460,   463,
   465,   467,   469,   471,   473,   475,   477,   479,   481,   483,
   485,   486,   493,   494,   501,   502,   508,   509,   515,   516,
   524,   525,   533,   534,   541,   542,   549,   550,   551,   557,
   563,   565,   567,   573,   579,   580,   582,   584,   585,   587,
   589,   593,   595,   597,   599,   601,   603,   605,   607,   609,
   611,   613,   615,   619,   621,   625,   626,   628,   630,   631,
   639,   641,   643,   647,   652,   656,   657,   661,   663,   667,
   671,   675,   679,   681,   683,   685,   688,   691,   694,   697,
   700,   703,   706,   711,   714,   719,   722,   727,   730,   734,
   738,   743,   749,   756,   763,   771,   774,   779,   785,   788,
   791,   793,   794,   799,   804,   808,   810,   814,   817,   821,
   826,   828,   833,   836,   842,   844,   848,   852,   856,   860,
   864,   868,   872,   876,   880,   884,   888,   892,   896,   900,
   904,   908,   912,   916,   920,   926,   930,   934,   936,   939,
   943,   947,   949,   951,   953,   955,   957,   958,   964,   970,
   976,   982,   988,   990,   992,   994,   996,   999,  1001,  1004,
  1007,  1011,  1016,  1021,  1023,  1025,  1027,  1031,  1033,  1035,
  1037,  1039,  1043,  1047,  1051,  1052,  1057,  1062,  1065,  1070,
  1073,  1078,  1081,  1084,  1086,  1091,  1093,  1101,  1109,  1117,
  1125,  1130,  1135,  1138,  1141,  1144,  1146,  1151,  1154,  1157,
  1163,  1167,  1170,  1173,  1179,  1183,  1189,  1193,  1198,  1205,
  1208,  1210,  1213,  1215,  1218,  1220,  1222,  1224,  1227,  1228,
  1231,  1234,  1238,  1242,  1246,  1249,  1252,  1255,  1257,  1259,
  1261,  1264,  1267,  1270,  1273,  1275,  1277,  1279,  1281,  1284,
  1287,  1291,  1295,  1299,  1304,  1306,  1309,  1312,  1315,  1317,
  1319,  1321,  1324,  1327,  1330,  1332,  1334,  1337,  1340,  1344,
  1346,  1349,  1351,  1353,  1355,  1360,  1365,  1370,  1375,  1377,
  1379,  1381,  1383,  1387,  1389,  1393,  1395,  1399,  1400,  1405,
  1406,  1413,  1417,  1418,  1423,  1425,  1429,  1433,  1434,  1439,
  1443,  1444,  1446,  1448,  1451,  1458,  1460,  1464,  1465,  1467,
  1472,  1479,  1484,  1486,  1488,  1490,  1492,  1494,  1498,  1499,
  1502,  1504,  1507,  1511,  1516,  1518,  1520,  1524,  1529,  1533,
  1539,  1541,  1546,  1550,  1554,  1555,  1559,  1563,  1567,  1568,
  1571,  1574,  1575,  1583,  1588,  1589,  1596,  1600,  1603,  1606,
  1609,  1610,  1611,  1612,  1623,  1625,  1626,  1628,  1629,  1631,
  1633,  1636,  1639,  1642,  1645,  1648,  1651,  1654,  1657,  1660,
  1664,  1669,  1673,  1676,  1680,  1682,  1683,  1687,  1690,  1693,
  1695,  1697,  1698,  1701,  1705,  1707,  1712,  1714,  1718,  1720,
  1722,  1727,  1732,  1735,  1738,  1742,  1746,  1747,  1749,  1753,
  1756,  1759,  1761,  1764,  1767,  1770,  1773,  1776,  1779,  1782,
  1784,  1787,  1790,  1794,  1797,  1800,  1805,  1810,  1813,  1815,
  1821,  1826,  1828,  1829,  1831,  1835,  1836,  1838,  1842,  1844,
  1846,  1848,  1850,  1855,  1860,  1865,  1870,  1875,  1879,  1884,
  1889,  1894,  1899,  1903,  1905,  1909,  1911,  1915,  1918,  1920,
  1928,  1929,  1932,  1934,  1937,  1938,  1941,  1946,  1951,  1954,
  1959,  1961,  1964,  1968,  1972,  1975,  1978,  1982,  1984,  1989,
  1994,  1998,  2002,  2005,  2007,  2009,  2012,  2014,  2016,  2019,
  2022,  2024,  2027,  2031,  2035,  2038,  2041,  2045,  2047,  2051,
  2055,  2058,  2061,  2065,  2067,  2072,  2076,  2081,  2085,  2087,
  2090,  2093,  2096,  2099,  2102,  2104,  2107,  2112,  2117,  2120,
  2122,  2124,  2126,  2128,  2131,  2136,  2139,  2142,  2145,  2148,
  2150,  2153,  2156,  2159,  2162,  2166,  2168,  2171,  2175,  2180,
  2183,  2186,  2189,  2192,  2195,  2198,  2203,  2206,  2208,  2211,
  2214,  2218,  2220,  2224,  2227,  2231,  2234,  2237,  2241,  2243,
  2247,  2252,  2254,  2257,  2261,  2264,  2267,  2269,  2273,  2276,
  2279,  2281,  2284,  2288,  2290,  2294,  2296,  2303,  2308,  2313,
  2317,  2323,  2327,  2331,  2335,  2338,  2340,  2342,  2345,  2348,
  2351,  2352,  2354,  2356,  2359,  2363,  2365,  2368,  2369,  2373,
  2374,  2375,  2381,  2383,  2384,  2387,  2389,  2391,  2393,  2396,
  2397,  2402,  2404,  2405,  2406,  2412,  2413,  2414,  2422,  2423,
  2424,  2425,  2426,  2439,  2440,  2441,  2449,  2450,  2456,  2457,
  2465,  2466,  2471,  2474,  2477,  2480,  2484,  2491,  2500,  2511,
  2524,  2529,  2533,  2536,  2539,  2541,  2543,  2545,  2547,  2549,
  2550,  2551,  2558,  2559,  2560,  2566,  2568,  2571,  2572,  2573,
  2579,  2581,  2583,  2587,  2591,  2594,  2597,  2600,  2603,  2606,
  2608,  2611,  2612,  2614,  2615,  2617,  2619,  2620,  2622,  2624,
  2628,  2633,  2635,  2639,  2640,  2642,  2644,  2646,  2649,  2652,
  2655,  2657,  2660,  2663,  2664,  2668,  2670,  2672,  2674,  2677,
  2680,  2683,  2688,  2691,  2694,  2697,  2700,  2703,  2706,  2708,
  2711,  2713,  2716,  2718,  2720,  2721,  2722,  2724,  2725,  2730,
  2733,  2735,  2737,  2741,  2742,  2746,  2750,  2754,  2756,  2759,
  2762,  2765,  2768,  2771,  2774,  2777,  2780,  2783,  2786,  2789,
  2792,  2795,  2798,  2801,  2804,  2807,  2810,  2813,  2816,  2819,
  2822,  2825,  2829,  2832,  2835,  2838,  2841,  2845,  2848,  2851,
  2856,  2861,  2865
};

static const short yyrhs[] = {    -1,
   114,     0,     0,   115,   121,     0,   114,   121,     0,   114,
     0,     0,     0,     0,    32,     0,    27,     0,     0,   122,
   123,     0,   149,   148,     0,   145,     0,   142,     0,   120,
    94,   220,   109,    61,     0,   134,    59,   116,   110,     0,
   134,   117,   149,   118,   148,     0,   134,   117,   145,   118,
     0,     0,    45,   164,    59,   124,   116,   110,     0,     0,
    45,    59,   125,   116,   110,     0,   126,     0,   128,    61,
     0,   130,     0,   119,   123,     0,     0,    45,   164,    65,
   127,   133,    61,     0,    47,   314,     0,    47,   328,   314,
     0,    47,   328,   210,     0,    47,   132,   164,     0,    47,
   328,   164,     0,    47,   328,   132,   164,     0,     0,    47,
    45,   131,   133,    61,     0,    58,    55,     0,   132,    58,
    55,     0,   210,     0,   314,     0,   328,   314,     0,   328,
   210,     0,    99,     0,   134,    99,     0,     0,    49,    75,
   136,   137,    76,     0,    49,    75,    76,     0,   141,     0,
   137,    60,   141,     0,   164,     0,     0,   270,   138,     0,
    46,   138,     0,   135,   270,   138,     0,   139,     0,   139,
    65,   226,     0,   392,     0,   392,    65,   205,     0,   140,
     0,   140,    65,   185,     0,   135,   143,     0,   135,     1,
     0,   149,   148,     0,   144,     0,   142,     0,   134,   117,
   149,   118,   148,     0,   134,   117,   144,   118,     0,   119,
   143,     0,   237,    61,     0,   230,   236,    61,     0,   227,
   235,    61,     0,   262,    61,     0,   237,    61,     0,   230,
   236,    61,     0,   227,   235,    61,     0,   230,    61,     0,
   167,    61,     0,   227,    61,     0,     1,    61,     0,     1,
   110,     0,    61,     0,   221,     0,   160,     0,     0,   159,
     0,   159,    61,     0,     0,   108,     0,   155,   147,   146,
   339,     0,   155,   147,   363,     0,   155,   147,     1,     0,
     0,   319,     5,    94,   151,   383,   109,   299,   395,     0,
   319,     5,    48,   299,   395,     0,     0,   328,   319,     5,
    94,   152,   383,   109,   299,   395,     0,   328,   319,     5,
    48,   299,   395,     0,     0,   319,   180,    94,   153,   383,
   109,   299,   395,     0,   319,   180,    48,   299,   395,     0,
     0,   328,   319,   180,    94,   154,   383,   109,   299,   395,
     0,   328,   319,   180,    48,   299,   395,     0,   227,   224,
     0,   230,   311,     0,   311,     0,   230,   150,     0,   150,
     0,     5,    94,   383,   109,   299,   395,     0,     5,    48,
   299,   395,     0,   180,    94,   383,   109,   299,   395,     0,
   180,    48,   299,   395,     0,   230,   156,     0,   156,     0,
   227,   224,     0,   230,   311,     0,   311,     0,   230,   150,
     0,   150,     0,    25,     3,     0,   158,   254,     0,   158,
    94,   197,   109,     0,   158,    48,     0,    63,   161,   162,
     0,     0,     0,   163,     0,   162,    60,   163,     0,   162,
     1,     0,    94,   197,   109,     0,    48,     0,   165,    94,
   197,   109,     0,   165,    48,     0,   307,    94,   197,   109,
     0,   307,    48,     0,   321,    94,   197,   109,     0,   321,
    48,     0,     3,     0,     4,     0,     5,     0,    57,     0,
    58,     0,     3,     0,    57,     0,    58,     0,   105,     0,
   104,     0,   106,     0,     0,    49,   176,   233,    61,   168,
   177,     0,     0,    49,   176,   227,   224,   169,   177,     0,
     0,    49,   176,   311,   170,   177,     0,     0,    49,   176,
   150,   171,   177,     0,     0,     7,    49,   176,   233,    61,
   172,   177,     0,     0,     7,    49,   176,   227,   224,   173,
   177,     0,     0,     7,    49,   176,   311,   174,   177,     0,
     0,     7,    49,   176,   150,   175,   177,     0,     0,     0,
    57,    75,   183,   182,   181,     0,     4,    75,   183,   182,
   181,     0,   180,     0,   178,     0,   164,    75,   183,    76,
   181,     0,     5,    75,   183,   182,   181,     0,     0,    76,
     0,    78,     0,     0,   184,     0,   185,     0,   184,    60,
   185,     0,   226,     0,    57,     0,   205,     0,    80,     0,
    79,     0,    87,     0,    88,     0,   111,     0,   196,     0,
   205,     0,    48,     0,    94,   187,   109,     0,    48,     0,
    94,   191,   109,     0,     0,   191,     0,     1,     0,     0,
   373,   224,   238,   247,    65,   192,   255,     0,   187,     0,
   110,     0,   336,   334,   110,     0,   336,   334,     1,   110,
     0,   336,     1,   110,     0,     0,    59,   195,   193,     0,
   348,     0,   205,    60,   205,     0,   205,    60,     1,     0,
   196,    60,   205,     0,   196,    60,     1,     0,   205,     0,
   196,     0,   215,     0,   119,   204,     0,    81,   204,     0,
    71,   204,     0,    89,   204,     0,   186,   204,     0,    68,
   164,     0,    13,   198,     0,    13,    94,   226,   109,     0,
    29,   198,     0,    29,    94,   226,   109,     0,    36,   198,
     0,    36,    94,   226,   109,     0,   217,   298,     0,   217,
   298,   202,     0,   217,   201,   298,     0,   217,   201,   298,
   202,     0,   217,    94,   200,   226,   199,     0,   217,    94,
   200,   226,   199,   202,     0,   217,   201,    94,   200,   226,
   199,     0,   217,   201,    94,   200,   226,   199,   202,     0,
   218,   204,     0,   218,    95,   112,   204,     0,   218,    95,
   187,   112,   204,     0,    34,   204,     0,    35,   204,     0,
   109,     0,     0,    94,   200,   197,   109,     0,    59,   200,
   197,   110,     0,    94,   197,   109,     0,    48,     0,    94,
   233,   109,     0,    65,   255,     0,    94,   226,   109,     0,
   203,    94,   226,   109,     0,   198,     0,   203,    94,   196,
   109,     0,   203,   198,     0,   203,    59,   256,   268,   110,
     0,   204,     0,   205,    84,   205,     0,   205,    85,   205,
     0,   205,    79,   205,     0,   205,    80,   205,     0,   205,
    81,   205,     0,   205,    82,   205,     0,   205,    83,   205,
     0,   205,    77,   205,     0,   205,    78,   205,     0,   205,
    74,   205,     0,   205,    75,   205,     0,   205,    76,   205,
     0,   205,    73,   205,     0,   205,    72,   205,     0,   205,
    71,   205,     0,   205,    69,   205,     0,   205,    70,   205,
     0,   205,    68,   205,     0,   205,    67,   205,     0,   205,
    66,   378,    63,   205,     0,   205,    65,   205,     0,   205,
    64,   205,     0,    62,     0,    62,   205,     0,    89,   393,
   164,     0,    89,   393,   178,     0,   208,     0,   400,     0,
     3,     0,    57,     0,    58,     0,     0,     6,    75,   207,
   183,   182,     0,   400,    75,   207,   183,   182,     0,    49,
   164,    75,   183,   182,     0,    49,     6,    75,   183,   182,
     0,    49,   400,    75,   183,   182,     0,   206,     0,     4,
     0,     5,     0,   212,     0,   248,   212,     0,   206,     0,
    81,   211,     0,    71,   211,     0,    94,   211,   109,     0,
     3,    75,   183,   182,     0,    58,    75,   184,   182,     0,
   313,     0,   206,     0,   213,     0,    94,   211,   109,     0,
   206,     0,    10,     0,   219,     0,   220,     0,    94,   187,
   109,     0,    94,   211,   109,     0,    94,     1,   109,     0,
     0,    94,   216,   340,   109,     0,   206,    94,   197,   109,
     0,   206,    48,     0,   215,    94,   197,   109,     0,   215,
    48,     0,   215,    95,   187,   112,     0,   215,    87,     0,
   215,    88,     0,    41,     0,     9,    94,   197,   109,     0,
   317,     0,    51,    75,   226,    76,    94,   187,   109,     0,
    52,    75,   226,    76,    94,   187,   109,     0,    53,    75,
   226,    76,    94,   187,   109,     0,    54,    75,   226,    76,
    94,   187,   109,     0,    50,    94,   187,   109,     0,    50,
    94,   226,   109,     0,   328,     3,     0,   328,   208,     0,
   328,   400,     0,   316,     0,   316,    94,   197,   109,     0,
   316,    48,     0,   222,   209,     0,   222,   209,    94,   197,
   109,     0,   222,   209,    48,     0,   222,   210,     0,   222,
   316,     0,   222,   210,    94,   197,   109,     0,   222,   210,
    48,     0,   222,   316,    94,   197,   109,     0,   222,   316,
    48,     0,   222,    89,     8,    48,     0,   222,     8,    55,
    89,     8,    48,     0,   222,     1,     0,    40,     0,   328,
    40,     0,    39,     0,   328,   218,     0,    43,     0,    44,
     0,    11,     0,   220,    11,     0,     0,   215,    93,     0,
   215,    92,     0,   233,   235,    61,     0,   227,   235,    61,
     0,   230,   236,    61,     0,   227,    61,     0,   230,    61,
     0,   119,   223,     0,   305,     0,   311,     0,    48,     0,
   225,    48,     0,   231,   332,     0,   300,   332,     0,   233,
   332,     0,   231,     0,   300,     0,   231,     0,   228,     0,
   230,   233,     0,   233,   229,     0,   233,   232,   229,     0,
   230,   233,   229,     0,   230,   233,   232,     0,   230,   233,
   232,   229,     0,     7,     0,   229,   234,     0,   229,     7,
     0,   229,   248,     0,   248,     0,   300,     0,     7,     0,
   230,     9,     0,   230,     7,     0,   230,   248,     0,   248,
     0,   233,     0,   300,   233,     0,   233,   232,     0,   300,
   233,   232,     0,   234,     0,   232,   234,     0,   262,     0,
     8,     0,   308,     0,    28,    94,   187,   109,     0,    28,
    94,   226,   109,     0,    30,    94,   187,   109,     0,    30,
    94,   226,   109,     0,     8,     0,     9,     0,   262,     0,
   243,     0,   235,    60,   239,     0,   244,     0,   236,    60,
   239,     0,   245,     0,   237,    60,   239,     0,     0,   120,
    94,   220,   109,     0,     0,   224,   238,   247,    65,   240,
   255,     0,   224,   238,   247,     0,     0,   247,    65,   242,
   255,     0,   247,     0,   224,   238,   241,     0,   311,   238,
   241,     0,     0,   311,   238,   246,   241,     0,   150,   238,
   247,     0,     0,   248,     0,   249,     0,   248,   249,     0,
    31,    94,    94,   250,   109,   109,     0,   251,     0,   250,
    60,   251,     0,     0,   252,     0,   252,    94,     3,   109,
     0,   252,    94,     3,    60,   197,   109,     0,   252,    94,
   197,   109,     0,   164,     0,     7,     0,     8,     0,     9,
     0,   164,     0,   253,    60,   164,     0,     0,    65,   255,
     0,   205,     0,    59,   110,     0,    59,   256,   110,     0,
    59,   256,    60,   110,     0,     1,     0,   255,     0,   256,
    60,   255,     0,    95,   205,   112,   255,     0,   164,    63,
   255,     0,   256,    60,   164,    63,   255,     0,    98,     0,
   257,   147,   146,   339,     0,   257,   147,   363,     0,   257,
   147,     1,     0,     0,   259,   258,   148,     0,   103,   205,
   108,     0,   103,     1,   108,     0,     0,   261,   260,     0,
   261,     1,     0,     0,    14,   164,    59,   263,   296,   269,
   110,     0,    14,   164,    59,   110,     0,     0,    14,    59,
   264,   296,   269,   110,     0,    14,    59,   110,     0,    14,
   164,     0,    14,   326,     0,    46,   321,     0,     0,     0,
     0,   277,    59,   265,   283,   110,   247,   266,   261,   267,
   259,     0,   277,     0,     0,    60,     0,     0,    60,     0,
    37,     0,   270,     7,     0,   270,     8,     0,   270,     9,
     0,   270,    37,     0,   270,   248,     0,   270,   164,     0,
   270,   166,     0,   271,    59,     0,   271,    63,     0,   270,
   319,   164,     0,   270,   328,   319,   164,     0,   270,   328,
   164,     0,   270,   179,     0,   270,   319,   179,     0,   271,
     0,     0,   272,   275,   278,     0,   273,   278,     0,   270,
    59,     0,   276,     0,   274,     0,     0,    63,   393,     0,
    63,   393,   279,     0,   280,     0,   279,    60,   393,   280,
     0,   281,     0,   282,   393,   281,     0,   321,     0,   307,
     0,    30,    94,   187,   109,     0,    30,    94,   226,   109,
     0,    38,   393,     0,     7,   393,     0,   282,    38,   393,
     0,   282,     7,   393,     0,     0,   285,     0,   283,   284,
   285,     0,   283,   284,     0,    38,    63,     0,   286,     0,
   285,   286,     0,   287,    61,     0,   287,   110,     0,   157,
    63,     0,   157,    96,     0,   157,    25,     0,   157,    59,
     0,    61,     0,   119,   286,     0,   135,   286,     0,   135,
   227,    61,     0,   227,   288,     0,   230,   289,     0,   311,
   238,   247,   254,     0,   150,   238,   247,   254,     0,    63,
   205,     0,     1,     0,   230,   156,   238,   247,   254,     0,
   156,   238,   247,   254,     0,   128,     0,     0,   290,     0,
   288,    60,   291,     0,     0,   293,     0,   289,    60,   295,
     0,   292,     0,   293,     0,   294,     0,   295,     0,   305,
   238,   247,   254,     0,     4,    63,   205,   247,     0,   311,
   238,   247,   254,     0,   150,   238,   247,   254,     0,     3,
    63,   205,   247,     0,    63,   205,   247,     0,   305,   238,
   247,   254,     0,     4,    63,   205,   247,     0,   311,   238,
   247,   254,     0,     3,    63,   205,   247,     0,    63,   205,
   247,     0,   297,     0,   296,    60,   297,     0,   164,     0,
   164,    65,   205,     0,   373,   329,     0,   373,     0,    94,
   200,   226,   199,    95,   187,   112,     0,     0,   299,     9,
     0,     9,     0,   300,     9,     0,     0,   301,   187,     0,
   301,    94,   197,   109,     0,   301,    94,   383,   109,     0,
   301,    48,     0,   301,    94,     1,   109,     0,   305,     0,
   248,   305,     0,    81,   300,   304,     0,    71,   300,   304,
     0,    81,   304,     0,    71,   304,     0,   327,   299,   304,
     0,   306,     0,   306,   303,   299,   395,     0,   306,    95,
   302,   112,     0,   306,    95,   112,     0,    94,   304,   109,
     0,   319,   318,     0,   318,     0,   318,     0,   328,   318,
     0,   307,     0,   309,     0,   328,   309,     0,   319,   318,
     0,   311,     0,   248,   311,     0,    81,   300,   310,     0,
    71,   300,   310,     0,    81,   310,     0,    71,   310,     0,
   327,   299,   310,     0,   214,     0,    81,   300,   310,     0,
    71,   300,   310,     0,    81,   312,     0,    71,   312,     0,
   327,   299,   310,     0,   313,     0,   214,   303,   299,   395,
     0,    94,   312,   109,     0,   214,    95,   302,   112,     0,
   214,    95,   112,     0,   315,     0,   319,   213,     0,   319,
   210,     0,   319,   209,     0,   319,   206,     0,   319,   209,
     0,   315,     0,   328,   315,     0,   233,    94,   197,   109,
     0,   233,    94,   211,   109,     0,   233,   225,     0,     4,
     0,     5,     0,   178,     0,   320,     0,   319,   320,     0,
   319,    49,   325,    55,     0,     4,    55,     0,     5,    55,
     0,    58,    55,     0,   178,    55,     0,   322,     0,   328,
   322,     0,   323,   164,     0,   323,   178,     0,   323,   325,
     0,   323,    49,   325,     0,   324,     0,   323,   324,     0,
   323,   325,    55,     0,   323,    49,   325,    55,     0,     4,
    55,     0,     5,    55,     0,   178,    55,     0,    57,    55,
     0,     3,    55,     0,    58,    55,     0,   164,    75,   183,
   182,     0,   328,   318,     0,   309,     0,   328,   309,     0,
   319,    81,     0,   328,   319,    81,     0,    55,     0,    81,
   299,   329,     0,    81,   299,     0,    71,   299,   329,     0,
    71,   299,     0,   327,   299,     0,   327,   299,   329,     0,
   330,     0,    95,   187,   112,     0,   330,    95,   302,   112,
     0,   332,     0,   248,   332,     0,    81,   300,   331,     0,
    81,   331,     0,    81,   300,     0,    81,     0,    71,   300,
   331,     0,    71,   331,     0,    71,   300,     0,    71,     0,
   327,   299,     0,   327,   299,   331,     0,   333,     0,    94,
   331,   109,     0,    91,     0,   333,    94,   383,   109,   299,
   395,     0,   333,    48,   299,   395,     0,   333,    95,   302,
   112,     0,   333,    95,   112,     0,    94,   384,   109,   299,
   395,     0,   203,   299,   395,     0,   225,   299,   395,     0,
    95,   302,   112,     0,    95,   112,     0,   347,     0,   335,
     0,   334,   347,     0,   334,   335,     0,     1,    61,     0,
     0,   337,     0,   338,     0,   337,   338,     0,    33,   253,
    61,     0,   340,     0,     1,   340,     0,     0,    59,   341,
   193,     0,     0,     0,    15,   343,   189,   344,   345,     0,
   340,     0,     0,   346,   348,     0,   340,     0,   348,     0,
   223,     0,   187,    61,     0,     0,   342,    16,   349,   345,
     0,   342,     0,     0,     0,    17,   350,   189,   351,   194,
     0,     0,     0,    18,   352,   345,    17,   353,   188,    61,
     0,     0,     0,     0,     0,    19,   354,    94,   376,   355,
   190,    61,   356,   378,   109,   357,   194,     0,     0,     0,
    20,   358,    94,   191,   109,   359,   345,     0,     0,    21,
   205,    63,   360,   347,     0,     0,    21,   205,    12,   205,
    63,   361,   347,     0,     0,    22,    63,   362,   347,     0,
    23,    61,     0,    24,    61,     0,    25,    61,     0,    25,
   187,    61,     0,   120,   377,    94,   220,   109,    61,     0,
   120,   377,    94,   220,    63,   379,   109,    61,     0,   120,
   377,    94,   220,    63,   379,    63,   379,   109,    61,     0,
   120,   377,    94,   220,    63,   379,    63,   379,    63,   382,
   109,    61,     0,    26,    81,   187,    61,     0,    26,   164,
    61,     0,   375,   347,     0,   375,   110,     0,    61,     0,
   366,     0,   130,     0,   129,     0,   126,     0,     0,     0,
    96,   364,   146,   340,   365,   369,     0,     0,     0,    96,
   367,   340,   368,   369,     0,   370,     0,   369,   370,     0,
     0,     0,    97,   371,   374,   372,   340,     0,   231,     0,
   300,     0,    94,    12,   109,     0,    94,   392,   109,     0,
     3,    63,     0,    57,    63,     0,     4,    63,     0,     5,
    63,     0,   378,    61,     0,   223,     0,    59,   193,     0,
     0,     9,     0,     0,   187,     0,     1,     0,     0,   380,
     0,   381,     0,   380,    60,   381,     0,    11,    94,   187,
   109,     0,    11,     0,   382,    60,    11,     0,     0,   384,
     0,   226,     0,   388,     0,   389,    12,     0,   388,    12,
     0,   226,    12,     0,    12,     0,   388,    63,     0,   226,
    63,     0,     0,    65,   386,   387,     0,   102,     0,   255,
     0,   390,     0,   392,   385,     0,   389,   391,     0,   389,
   394,     0,   389,   394,    65,   255,     0,   388,    60,     0,
   226,    60,     0,   228,   224,     0,   231,   224,     0,   233,
   224,     0,   228,   332,     0,   228,     0,   230,   311,     0,
   392,     0,   392,   385,     0,   390,     0,   226,     0,     0,
     0,   311,     0,     0,    62,    94,   397,   109,     0,    62,
    48,     0,   226,     0,   396,     0,   397,    60,   396,     0,
     0,    81,   299,   398,     0,    71,   299,   398,     0,   327,
   299,   398,     0,    42,     0,   399,    81,     0,   399,    82,
     0,   399,    83,     0,   399,    79,     0,   399,    80,     0,
   399,    71,     0,   399,    69,     0,   399,    70,     0,   399,
    89,     0,   399,    60,     0,   399,    74,     0,   399,    75,
     0,   399,    76,     0,   399,    73,     0,   399,    64,     0,
   399,    65,     0,   399,    77,     0,   399,    78,     0,   399,
    87,     0,   399,    88,     0,   399,    68,     0,   399,    67,
     0,   399,   111,     0,   399,    66,    63,     0,   399,    72,
     0,   399,    92,     0,   399,    84,     0,   399,    48,     0,
   399,    95,   112,     0,   399,    40,     0,   399,    39,     0,
   399,    40,    95,   112,     0,   399,    39,    95,   112,     0,
   399,   373,   398,     0,   399,     1,     0
};

#endif

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   342,   344,   352,   355,   356,   360,   362,   365,   370,   374,
   380,   384,   387,   391,   394,   396,   398,   401,   403,   406,
   409,   411,   413,   415,   417,   418,   420,   421,   425,   428,
   437,   440,   442,   446,   449,   451,   455,   458,   470,   477,
   485,   487,   488,   490,   494,   497,   503,   506,   508,   513,
   516,   520,   523,   526,   529,   533,   538,   548,   550,   552,
   554,   556,   569,   572,   576,   579,   581,   583,   586,   589,
   593,   595,   597,   599,   604,   606,   608,   610,   612,   613,
   620,   621,   622,   625,   628,   632,   634,   635,   638,   640,
   643,   646,   652,   656,   659,   661,   665,   667,   669,   673,
   675,   677,   681,   683,   685,   691,   695,   698,   701,   704,
   709,   712,   714,   716,   722,   734,   737,   742,   747,   750,
   755,   760,   769,   772,   774,   778,   791,   811,   814,   816,
   817,   820,   827,   833,   835,   837,   839,   841,   844,   849,
   851,   852,   853,   854,   857,   859,   860,   863,   865,   866,
   869,   874,   874,   878,   878,   881,   881,   884,   884,   888,
   888,   893,   893,   896,   896,   899,   901,   904,   911,   915,
   918,   921,   923,   927,   933,   942,   944,   952,   955,   958,
   961,   965,   968,   970,   973,   976,   978,   980,   982,   986,
   989,   992,   997,  1001,  1006,  1010,  1013,  1014,  1018,  1037,
  1044,  1047,  1049,  1050,  1051,  1054,  1058,  1059,  1063,  1067,
  1070,  1072,  1076,  1079,  1082,  1086,  1089,  1091,  1093,  1095,
  1098,  1102,  1104,  1107,  1109,  1112,  1114,  1119,  1122,  1125,
  1128,  1140,  1145,  1149,  1153,  1158,  1160,  1164,  1168,  1170,
  1179,  1183,  1186,  1189,  1194,  1197,  1199,  1207,  1220,  1225,
  1231,  1233,  1235,  1237,  1250,  1253,  1255,  1257,  1259,  1261,
  1263,  1265,  1267,  1269,  1271,  1273,  1275,  1277,  1279,  1281,
  1283,  1285,  1287,  1289,  1291,  1293,  1297,  1299,  1301,  1318,
  1321,  1323,  1324,  1325,  1326,  1327,  1330,  1342,  1345,  1349,
  1352,  1354,  1359,  1361,  1362,  1365,  1367,  1375,  1377,  1379,
  1381,  1385,  1388,  1392,  1396,  1397,  1398,  1402,  1410,  1411,
  1412,  1426,  1428,  1431,  1433,  1444,  1449,  1451,  1453,  1455,
  1457,  1459,  1461,  1464,  1466,  1483,  1484,  1488,  1492,  1496,
  1500,  1502,  1506,  1508,  1510,  1518,  1520,  1522,  1524,  1528,
  1530,  1532,  1534,  1539,  1541,  1543,  1545,  1548,  1550,  1552,
  1596,  1599,  1603,  1606,  1610,  1613,  1618,  1620,  1624,  1637,
  1640,  1647,  1654,  1659,  1661,  1666,  1668,  1675,  1677,  1681,
  1685,  1691,  1695,  1698,  1702,  1705,  1715,  1717,  1720,  1724,
  1727,  1730,  1733,  1736,  1742,  1748,  1750,  1755,  1757,  1775,
  1778,  1780,  1783,  1789,  1791,  1801,  1805,  1808,  1811,  1816,
  1819,  1827,  1829,  1831,  1833,  1836,  1839,  1854,  1873,  1876,
  1878,  1881,  1883,  1887,  1889,  1893,  1895,  1899,  1902,  1906,
  1912,  1913,  1925,  1932,  1935,  1941,  1945,  1950,  1956,  1957,
  1965,  1968,  1972,  1975,  1979,  1984,  1987,  1991,  1994,  1996,
  1998,  2000,  2007,  2009,  2010,  2011,  2015,  2018,  2022,  2025,
  2031,  2033,  2036,  2039,  2042,  2048,  2051,  2054,  2056,  2058,
  2062,  2068,  2076,  2083,  2087,  2089,  2094,  2097,  2100,  2102,
  2104,  2108,  2113,  2120,  2124,  2128,  2135,  2139,  2142,  2145,
  2151,  2153,  2165,  2169,  2174,  2196,  2198,  2201,  2203,  2208,
  2210,  2212,  2214,  2216,  2218,  2222,  2230,  2233,  2235,  2239,
  2246,  2252,  2258,  2264,  2274,  2280,  2284,  2291,  2319,  2329,
  2335,  2338,  2341,  2343,  2347,  2349,  2353,  2358,  2364,  2367,
  2368,  2389,  2412,  2414,  2418,  2429,  2443,  2444,  2445,  2446,
  2449,  2464,  2469,  2475,  2477,  2482,  2484,  2486,  2488,  2490,
  2492,  2495,  2505,  2512,  2537,  2543,  2546,  2549,  2551,  2562,
  2567,  2570,  2575,  2578,  2585,  2595,  2598,  2605,  2615,  2617,
  2620,  2622,  2625,  2632,  2640,  2647,  2653,  2659,  2667,  2671,
  2676,  2680,  2683,  2692,  2694,  2698,  2701,  2706,  2710,  2716,
  2727,  2730,  2734,  2738,  2746,  2751,  2757,  2760,  2762,  2764,
  2770,  2772,  2781,  2784,  2786,  2788,  2790,  2794,  2797,  2800,
  2802,  2804,  2806,  2810,  2813,  2824,  2834,  2836,  2837,  2841,
  2849,  2851,  2859,  2862,  2864,  2866,  2868,  2872,  2875,  2878,
  2880,  2882,  2884,  2888,  2891,  2894,  2896,  2898,  2900,  2902,
  2909,  2913,  2918,  2922,  2927,  2929,  2933,  2936,  2938,  2941,
  2943,  2944,  2947,  2949,  2951,  2957,  2968,  2974,  2980,  2994,
  2996,  3000,  3014,  3016,  3018,  3022,  3028,  3041,  3043,  3047,
  3060,  3066,  3068,  3069,  3070,  3078,  3083,  3092,  3093,  3097,
  3100,  3106,  3112,  3115,  3117,  3119,  3121,  3125,  3129,  3133,
  3136,  3140,  3142,  3151,  3154,  3156,  3158,  3160,  3162,  3164,
  3166,  3168,  3172,  3176,  3180,  3184,  3185,  3187,  3189,  3191,
  3193,  3195,  3197,  3199,  3201,  3209,  3211,  3212,  3213,  3216,
  3222,  3224,  3229,  3231,  3234,  3248,  3251,  3254,  3258,  3261,
  3268,  3270,  3273,  3275,  3277,  3280,  3283,  3286,  3289,  3291,
  3294,  3298,  3300,  3306,  3308,  3309,  3311,  3316,  3318,  3320,
  3322,  3324,  3327,  3328,  3330,  3333,  3334,  3337,  3337,  3340,
  3340,  3343,  3343,  3345,  3347,  3349,  3351,  3357,  3363,  3366,
  3369,  3375,  3377,  3379,  3383,  3385,  3386,  3387,  3389,  3392,
  3399,  3405,  3411,  3415,  3417,  3420,  3422,  3425,  3429,  3431,
  3434,  3436,  3439,  3456,  3462,  3470,  3472,  3474,  3478,  3481,
  3482,  3490,  3494,  3498,  3501,  3502,  3508,  3511,  3514,  3516,
  3520,  3525,  3528,  3538,  3543,  3544,  3551,  3554,  3557,  3559,
  3562,  3564,  3574,  3588,  3592,  3595,  3597,  3601,  3605,  3608,
  3611,  3613,  3617,  3619,  3626,  3633,  3636,  3640,  3644,  3648,
  3654,  3658,  3663,  3665,  3668,  3673,  3679,  3690,  3693,  3695,
  3699,  3704,  3706,  3713,  3716,  3718,  3720,  3726,  3731,  3734,
  3736,  3738,  3740,  3742,  3744,  3746,  3748,  3750,  3752,  3754,
  3756,  3758,  3760,  3762,  3764,  3766,  3768,  3770,  3772,  3774,
  3776,  3778,  3780,  3782,  3784,  3786,  3788,  3790,  3792,  3794,
  3796,  3799,  3801
};
#endif


#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)

static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
"TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
"STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
"CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO","ASM_KEYWORD","TYPEOF",
"ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","VEC_STEP",
"AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
"TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
"REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
"';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
"EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
"'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
"PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","PRE_PARSED_FUNCTION_DECL",
"EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL","DEFARG","DEFARG_MARKER",
"TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT",
"')'","'}'","'!'","']'","program","extdefs","@1","extdefs_opt",".hush_warning",
".warning_ok","extension","asm_keyword","lang_extdef","@2","extdef","@3","@4",
"namespace_alias","@5","using_decl","namespace_using_decl","using_directive",
"@6","namespace_qualifier","any_id","extern_lang_string","template_header","@7",
"template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
"template_parm","template_def","template_extdef","template_datadef","datadef",
"ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef","constructor_declarator",
"@8","@9","@10","@11","fn.def1","component_constructor_declarator","fn.def2",
"return_id","return_init","base_init",".set_base_init","member_init_list","member_init",
"identifier","notype_identifier","identifier_defn","explicit_instantiation",
"@12","@13","@14","@15","@16","@17","@18","@19","begin_explicit_instantiation",
"end_explicit_instantiation","template_type","apparent_template_type","self_template_type",
".finish_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
"template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
"condition","@20","compstmtend","already_scoped_stmt","@21","nontrivial_exprlist",
"nonnull_exprlist","unary_expr",".finish_new_placement",".begin_new_placement",
"new_placement","new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas",
"notype_unqualified_id","do_id","template_id","object_template_id","unqualified_id",
"expr_or_declarator_intern","expr_or_declarator","notype_template_declarator",
"direct_notype_declarator","primary","@22","new","delete","boolean.literal",
"string","nodecls","object","decl","declarator","fcast_or_absdcl","type_id",
"typed_declspecs","typed_declspecs1","reserved_declspecs","declmods","typed_typespecs",
"reserved_typespecquals","typespec","typespecqual_reserved","initdecls","notype_initdecls",
"nomods_initdecls","maybeasm","initdcl","@23","initdcl0_innards","@24","initdcl0",
"notype_initdcl0","nomods_initdcl0","@25","maybe_attribute","attributes","attribute",
"attribute_list","attrib","any_word","identifiers_or_typenames","maybe_init",
"init","initlist","fn.defpen","pending_inline","pending_inlines","defarg_again",
"pending_defargs","structsp","@26","@27","@28","@29","@30","maybecomma","maybecomma_warn",
"aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn",
"named_complex_class_head_sans_basetype","named_class_head","@31","unnamed_class_head",
"class_head","maybe_base_class_list","base_class_list","base_class","base_class.1",
"base_class_access_list","opt.component_decl_list","access_specifier","component_decl_list",
"component_decl","component_decl_1","components","notype_components","component_declarator0",
"component_declarator","after_type_component_declarator0","notype_component_declarator0",
"after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
"new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
"maybe_parmlist","after_type_declarator_intern","after_type_declarator","direct_after_type_declarator",
"nonnested_type","complete_type_name","nested_type","notype_declarator_intern",
"notype_declarator","complex_notype_declarator","complex_direct_notype_declarator",
"qualified_id","notype_qualified_id","overqualified_id","functional_cast","type_name",
"nested_name_specifier","nested_name_specifier_1","typename_sub","typename_sub0",
"typename_sub1","typename_sub2","explicit_template_type","complex_type_name",
"ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl_intern",
"absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
"label_decls","label_decl","compstmt_or_error","compstmt","@32","simple_if",
"@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt","@36","@37",
"@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","@49","function_try_block",
"@50","@51","try_block","@52","@53","handler_seq","handler","@54","@55","type_specifier_seq",
"handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
"asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
"complex_parmlist","defarg","@56","defarg1","parms","parms_comma","named_parm",
"full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
"ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
};
#endif

static const short yyr1[] = {     0,
   113,   113,   115,   114,   114,   116,   116,   117,   118,   119,
   120,   122,   121,   123,   123,   123,   123,   123,   123,   123,
   124,   123,   125,   123,   123,   123,   123,   123,   127,   126,
   128,   128,   128,   129,   129,   129,   131,   130,   132,   132,
   133,   133,   133,   133,   134,   134,   136,   135,   135,   137,
   137,   138,   138,   139,   139,   140,   141,   141,   141,   141,
   141,   141,   142,   142,   143,   143,   143,   143,   143,   143,
   144,   144,   144,   144,   145,   145,   145,   145,   145,   145,
   145,   145,   145,   146,   146,   147,   147,   147,   148,   148,
   149,   149,   149,   151,   150,   150,   152,   150,   150,   153,
   150,   150,   154,   150,   150,   155,   155,   155,   155,   155,
   156,   156,   156,   156,   157,   157,   157,   157,   157,   157,
   157,   158,   159,   159,   159,   160,   161,   162,   162,   162,
   162,   163,   163,   163,   163,   163,   163,   163,   163,   164,
   164,   164,   164,   164,   165,   165,   165,   166,   166,   166,
   168,   167,   169,   167,   170,   167,   171,   167,   172,   167,
   173,   167,   174,   167,   175,   167,   176,   177,   178,   178,
   178,   179,   179,   180,   181,   182,   182,   183,   183,   184,
   184,   185,   185,   185,   186,   186,   186,   186,   186,   187,
   187,   188,   188,   189,   189,   190,   190,   190,   192,   191,
   191,   193,   193,   193,   193,   195,   194,   194,   196,   196,
   196,   196,   197,   197,   198,   198,   198,   198,   198,   198,
   198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
   198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
   199,   200,   201,   201,   202,   202,   202,   202,   203,   203,
   204,   204,   204,   204,   205,   205,   205,   205,   205,   205,
   205,   205,   205,   205,   205,   205,   205,   205,   205,   205,
   205,   205,   205,   205,   205,   205,   205,   205,   205,   206,
   206,   206,   206,   206,   206,   206,   207,   208,   208,   209,
   209,   209,   210,   210,   210,   211,   211,   212,   212,   212,
   212,   213,   213,   214,   214,   214,   214,   215,   215,   215,
   215,   215,   215,   215,   216,   215,   215,   215,   215,   215,
   215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
   215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
   215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
   217,   217,   218,   218,   219,   219,   220,   220,   221,   222,
   222,   223,   223,   223,   223,   223,   223,   224,   224,   225,
   225,   226,   226,   226,   226,   226,   227,   227,   228,   228,
   228,   228,   228,   228,   229,   229,   229,   229,   229,   230,
   230,   230,   230,   230,   230,   231,   231,   231,   231,   232,
   232,   233,   233,   233,   233,   233,   233,   233,   234,   234,
   234,   235,   235,   236,   236,   237,   237,   238,   238,   240,
   239,   239,   242,   241,   241,   243,   244,   246,   245,   245,
   247,   247,   248,   248,   249,   250,   250,   251,   251,   251,
   251,   251,   252,   252,   252,   252,   253,   253,   254,   254,
   255,   255,   255,   255,   255,   256,   256,   256,   256,   256,
   257,   258,   258,   258,   259,   259,   260,   260,   261,   261,
   261,   263,   262,   262,   264,   262,   262,   262,   262,   262,
   265,   266,   267,   262,   262,   268,   268,   269,   269,   270,
   270,   270,   270,   270,   270,   271,   272,   272,   272,   273,
   273,   273,   273,   273,   274,   275,   274,   274,   276,   277,
   277,   278,   278,   278,   279,   279,   280,   280,   281,   281,
   281,   281,   282,   282,   282,   282,   283,   283,   283,   283,
   284,   285,   285,   286,   286,   286,   286,   286,   286,   286,
   286,   286,   286,   287,   287,   287,   287,   287,   287,   287,
   287,   287,   288,   288,   288,   289,   289,   289,   290,   290,
   291,   291,   292,   292,   293,   293,   293,   293,   294,   294,
   295,   295,   295,   296,   296,   297,   297,   298,   298,   298,
   299,   299,   300,   300,   301,   302,   303,   303,   303,   303,
   304,   304,   305,   305,   305,   305,   305,   305,   306,   306,
   306,   306,   306,   306,   307,   307,   308,   308,   308,   309,
   310,   310,   311,   311,   311,   311,   311,   311,   312,   312,
   312,   312,   312,   312,   313,   313,   313,   313,   313,   313,
   314,   314,   315,   315,   316,   316,   317,   317,   317,   318,
   318,   318,   319,   319,   319,   320,   320,   320,   320,   321,
   321,   322,   322,   322,   322,   323,   323,   323,   323,   324,
   324,   324,   324,   324,   324,   325,   326,   326,   326,   327,
   327,   328,   329,   329,   329,   329,   329,   329,   329,   330,
   330,   331,   331,   332,   332,   332,   332,   332,   332,   332,
   332,   332,   332,   332,   333,   333,   333,   333,   333,   333,
   333,   333,   333,   333,   333,   334,   334,   334,   334,   335,
   336,   336,   337,   337,   338,   339,   339,   341,   340,   343,
   344,   342,   345,   346,   345,   347,   347,   348,   348,   349,
   348,   348,   350,   351,   348,   352,   353,   348,   354,   355,
   356,   357,   348,   358,   359,   348,   360,   348,   361,   348,
   362,   348,   348,   348,   348,   348,   348,   348,   348,   348,
   348,   348,   348,   348,   348,   348,   348,   348,   348,   364,
   365,   363,   367,   368,   366,   369,   369,   371,   372,   370,
   373,   373,   374,   374,   375,   375,   375,   375,   376,   376,
   376,   377,   377,   378,   378,   378,   379,   379,   380,   380,
   381,   382,   382,   383,   383,   383,   384,   384,   384,   384,
   384,   384,   384,   386,   385,   387,   387,   388,   388,   388,
   388,   388,   389,   389,   390,   390,   390,   390,   390,   390,
   391,   391,   392,   392,   393,   394,   394,   395,   395,   395,
   396,   397,   397,   398,   398,   398,   398,   399,   400,   400,
   400,   400,   400,   400,   400,   400,   400,   400,   400,   400,
   400,   400,   400,   400,   400,   400,   400,   400,   400,   400,
   400,   400,   400,   400,   400,   400,   400,   400,   400,   400,
   400,   400,   400
};

static const short yyr2[] = {     0,
     0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
     1,     0,     2,     2,     1,     1,     5,     4,     5,     4,
     0,     6,     0,     5,     1,     2,     1,     2,     0,     6,
     2,     3,     3,     3,     3,     4,     0,     5,     2,     3,
     1,     1,     2,     2,     1,     2,     0,     5,     3,     1,
     3,     1,     0,     2,     2,     3,     1,     3,     1,     3,
     1,     3,     2,     2,     2,     1,     1,     5,     4,     2,
     2,     3,     3,     2,     2,     3,     3,     2,     2,     2,
     2,     2,     1,     1,     1,     0,     1,     2,     0,     1,
     4,     3,     3,     0,     8,     5,     0,     9,     6,     0,
     8,     5,     0,     9,     6,     2,     2,     1,     2,     1,
     6,     4,     6,     4,     2,     1,     2,     2,     1,     2,
     1,     2,     2,     4,     2,     3,     0,     0,     1,     3,
     2,     3,     1,     4,     2,     4,     2,     4,     2,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     0,     6,     0,     6,     0,     5,     0,     5,     0,     7,
     0,     7,     0,     6,     0,     6,     0,     0,     5,     5,
     1,     1,     5,     5,     0,     1,     1,     0,     1,     1,
     3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     3,     1,     3,     0,     1,     1,     0,     7,
     1,     1,     3,     4,     3,     0,     3,     1,     3,     3,
     3,     3,     1,     1,     1,     2,     2,     2,     2,     2,
     2,     2,     4,     2,     4,     2,     4,     2,     3,     3,
     4,     5,     6,     6,     7,     2,     4,     5,     2,     2,
     1,     0,     4,     4,     3,     1,     3,     2,     3,     4,
     1,     4,     2,     5,     1,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     5,     3,     3,     1,     2,     3,
     3,     1,     1,     1,     1,     1,     0,     5,     5,     5,
     5,     5,     1,     1,     1,     1,     2,     1,     2,     2,
     3,     4,     4,     1,     1,     1,     3,     1,     1,     1,
     1,     3,     3,     3,     0,     4,     4,     2,     4,     2,
     4,     2,     2,     1,     4,     1,     7,     7,     7,     7,
     4,     4,     2,     2,     2,     1,     4,     2,     2,     5,
     3,     2,     2,     5,     3,     5,     3,     4,     6,     2,
     1,     2,     1,     2,     1,     1,     1,     2,     0,     2,
     2,     3,     3,     3,     2,     2,     2,     1,     1,     1,
     2,     2,     2,     2,     1,     1,     1,     1,     2,     2,
     3,     3,     3,     4,     1,     2,     2,     2,     1,     1,
     1,     2,     2,     2,     1,     1,     2,     2,     3,     1,
     2,     1,     1,     1,     4,     4,     4,     4,     1,     1,
     1,     1,     3,     1,     3,     1,     3,     0,     4,     0,
     6,     3,     0,     4,     1,     3,     3,     0,     4,     3,
     0,     1,     1,     2,     6,     1,     3,     0,     1,     4,
     6,     4,     1,     1,     1,     1,     1,     3,     0,     2,
     1,     2,     3,     4,     1,     1,     3,     4,     3,     5,
     1,     4,     3,     3,     0,     3,     3,     3,     0,     2,
     2,     0,     7,     4,     0,     6,     3,     2,     2,     2,
     0,     0,     0,    10,     1,     0,     1,     0,     1,     1,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
     4,     3,     2,     3,     1,     0,     3,     2,     2,     1,
     1,     0,     2,     3,     1,     4,     1,     3,     1,     1,
     4,     4,     2,     2,     3,     3,     0,     1,     3,     2,
     2,     1,     2,     2,     2,     2,     2,     2,     2,     1,
     2,     2,     3,     2,     2,     4,     4,     2,     1,     5,
     4,     1,     0,     1,     3,     0,     1,     3,     1,     1,
     1,     1,     4,     4,     4,     4,     4,     3,     4,     4,
     4,     4,     3,     1,     3,     1,     3,     2,     1,     7,
     0,     2,     1,     2,     0,     2,     4,     4,     2,     4,
     1,     2,     3,     3,     2,     2,     3,     1,     4,     4,
     3,     3,     2,     1,     1,     2,     1,     1,     2,     2,
     1,     2,     3,     3,     2,     2,     3,     1,     3,     3,
     2,     2,     3,     1,     4,     3,     4,     3,     1,     2,
     2,     2,     2,     2,     1,     2,     4,     4,     2,     1,
     1,     1,     1,     2,     4,     2,     2,     2,     2,     1,
     2,     2,     2,     2,     3,     1,     2,     3,     4,     2,
     2,     2,     2,     2,     2,     4,     2,     1,     2,     2,
     3,     1,     3,     2,     3,     2,     2,     3,     1,     3,
     4,     1,     2,     3,     2,     2,     1,     3,     2,     2,
     1,     2,     3,     1,     3,     1,     6,     4,     4,     3,
     5,     3,     3,     3,     2,     1,     1,     2,     2,     2,
     0,     1,     1,     2,     3,     1,     2,     0,     3,     0,
     0,     5,     1,     0,     2,     1,     1,     1,     2,     0,
     4,     1,     0,     0,     5,     0,     0,     7,     0,     0,
     0,     0,    12,     0,     0,     7,     0,     5,     0,     7,
     0,     4,     2,     2,     2,     3,     6,     8,    10,    12,
     4,     3,     2,     2,     1,     1,     1,     1,     1,     0,
     0,     6,     0,     0,     5,     1,     2,     0,     0,     5,
     1,     1,     3,     3,     2,     2,     2,     2,     2,     1,
     2,     0,     1,     0,     1,     1,     0,     1,     1,     3,
     4,     1,     3,     0,     1,     1,     1,     2,     2,     2,
     1,     2,     2,     0,     3,     1,     1,     1,     2,     2,
     2,     4,     2,     2,     2,     2,     2,     2,     1,     2,
     1,     2,     1,     1,     0,     0,     1,     0,     4,     2,
     1,     1,     3,     0,     3,     3,     3,     1,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     3,     2,     2,     2,     2,     3,     2,     2,     4,
     4,     3,     2
};

static const short yydefact[] = {     3,
    12,    12,     5,     0,     4,     0,   284,   640,   641,     0,
   391,   403,   583,     0,    11,     0,     0,     0,    10,   490,
   848,     0,     0,     0,   167,   672,   285,   286,    83,     0,
     0,   835,     0,    45,     0,     0,    13,    25,     0,    27,
     8,     0,    16,    15,    89,   110,    86,     0,   642,   171,
   305,   282,   306,   618,     0,   378,     0,   377,   396,     0,
   416,   395,   433,   402,     0,   505,   506,   512,   511,   510,
   485,   390,   607,   404,   608,   108,   304,   629,   605,     0,
   643,   581,     0,     0,   283,    81,    82,   178,   646,   178,
   647,   178,   287,   167,   140,   141,   142,   143,   144,   475,
   478,     0,   668,     0,   479,     0,     0,     0,     0,   141,
   142,   143,   144,    23,     0,     0,     0,     0,     0,     0,
     0,   480,   650,     0,   656,     0,     0,     0,    37,     0,
     0,    31,     0,     0,    47,     0,   178,   648,     0,     0,
     0,   616,   611,     0,     0,     0,   615,     0,     0,     0,
     0,   305,     0,   296,   585,     0,     0,   304,   581,    28,
     0,    26,     3,    46,     0,    64,   391,     0,     0,     8,
    67,    63,    66,    89,     0,     0,     0,   402,    90,    14,
     0,   431,     0,     0,   449,    87,    79,   649,   585,     0,
   581,    80,     0,     0,     0,   106,     0,   412,   368,   598,
   369,   604,     0,   581,   393,   392,    78,   109,   379,     0,
   414,   394,   107,   385,   409,   410,   380,   398,   400,   389,
   411,     0,    75,   434,   491,   492,   493,   494,   509,   149,
   148,   150,   496,   497,   172,   503,   495,     0,     0,   498,
   499,   512,   835,   508,   481,   584,   397,     0,   428,   641,
     0,   670,   171,   633,   634,   630,   610,   644,     0,   609,
   606,     0,   883,   879,   878,   876,   858,   863,   864,     0,
   870,   869,   855,   856,   854,   873,   862,   859,   860,   861,
   865,   866,   852,   853,   849,   850,   851,   875,   867,   868,
   857,   874,     0,   871,   781,   396,   782,   844,   287,   284,
   583,   309,   357,     0,     0,     0,     0,     0,   353,   351,
   324,   355,   356,     0,     0,     0,     0,     0,   285,   286,
   278,     0,     0,   186,   185,     0,   187,   188,     0,     0,
   189,     0,     0,   179,   180,     0,   251,     0,   255,   184,
   308,   215,     0,     0,   310,   311,     0,   182,   375,   396,
   376,   635,   336,   326,     0,     0,     0,     0,   178,     0,
   477,     0,   472,     0,   669,   667,     0,   190,   191,     0,
     0,     0,   438,     3,    21,    29,   664,   660,   661,   663,
   665,   662,   140,   141,   142,     0,   143,   144,   652,   653,
   657,   654,   651,     0,   294,   295,   293,   632,   631,    33,
    32,    49,     0,   157,     0,     0,   396,   155,     0,     0,
   612,   614,     0,   613,   141,   142,   280,   281,   300,     0,
   622,   299,     0,   621,     0,   307,   285,   286,     0,     0,
     0,   298,   297,   626,     0,     0,    12,     0,   167,     9,
     9,    70,     0,    65,     0,     0,    71,    74,     0,   430,
   432,   122,    93,   127,   770,     0,    85,    84,    92,   125,
     0,     0,   123,    88,   628,     0,     0,   589,     0,   838,
     0,     0,   596,   591,     0,   595,     0,     0,     0,     0,
     0,   581,   431,     0,    77,   585,   581,   603,     0,   382,
   383,     0,    76,   431,   387,   386,   388,   381,   401,   418,
   417,   178,   500,   504,   502,     0,   507,   513,     0,   399,
   431,   581,    94,     0,     0,     0,     0,   581,   100,   582,
   617,   641,   671,   171,     0,     0,   872,   877,   398,   581,
   581,     0,   581,   882,   178,     0,     0,     0,   222,     0,
     0,   224,   239,   240,     0,   226,     0,     0,     0,     0,
     0,   279,   221,   218,   217,   219,     0,     0,     0,     0,
     0,   308,     0,     0,     0,   216,   176,   177,   302,     0,
   220,     0,     0,   253,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   318,     0,   320,   322,
   323,   361,   360,     0,     0,   242,   242,     0,   228,   579,
     0,   236,   358,   350,     0,     0,   835,   339,   342,   343,
     0,     0,   370,   691,   687,   696,     0,   585,   581,   581,
   581,   372,   694,     0,   639,   374,     0,     0,   373,   338,
     0,   333,   352,   334,   354,   636,     0,   335,   175,   175,
     0,   165,     0,   396,   163,   576,   488,   574,   474,     0,
     0,   405,     0,     0,   406,   407,   408,   444,   445,   446,
   443,     0,   436,   439,     0,     3,     0,   655,   178,   658,
     0,    41,    42,     0,    53,     0,     0,    57,    61,    50,
   834,   829,     0,   375,   396,    53,   376,   833,    59,   168,
   153,   151,   168,   175,   303,   620,   619,   307,     0,   623,
     0,    18,    20,    89,     9,     9,    73,    72,     0,   128,
   359,     0,   718,    91,   716,   455,     0,   451,   450,   214,
     0,   213,   586,   627,     0,   811,     0,   806,   396,     0,
   805,   807,   836,   818,     0,     0,   625,   592,   594,   593,
     0,     0,     0,     0,     0,     0,   581,   602,     0,   426,
   425,   413,   601,     0,   838,   597,   384,   415,   427,   431,
     0,   501,   640,   641,   835,     0,   835,   642,   514,   515,
   517,   835,   520,   519,     0,   549,   641,     0,   540,     0,
     0,   552,     0,   121,   116,     0,   171,   553,   556,     0,
     0,   532,     0,   119,   429,   838,   804,   178,   178,   645,
   178,   838,   804,   581,    97,   581,   103,   881,   880,   844,
   844,   844,     0,     0,     0,     0,   639,     0,     0,     0,
     0,     0,   396,     0,     0,     0,   314,     0,   312,   313,
     0,   249,   181,   284,   640,   641,   285,   286,     0,     0,
   456,   486,     0,     0,   277,   276,   796,   795,     0,   274,
   273,   271,   272,   270,   269,   268,   265,   266,   267,   263,
   264,   258,   259,   260,   261,   262,   256,   257,     0,     0,
     0,     0,     0,   242,   230,   246,     0,     0,   229,   581,
   581,     0,   581,   578,   679,     0,     0,     0,     0,     0,
   341,     0,   345,     0,   347,     0,     0,   690,   689,   682,
   686,   685,   834,   395,     0,     0,   705,     0,     0,   838,
   371,   838,   692,   581,   804,   585,   691,   687,     0,     0,
   581,     0,   395,     0,     0,     0,     0,   170,   174,   288,
   168,   161,   159,   168,     0,   489,     0,   488,   212,   211,
   210,   209,   438,     0,     0,    24,     0,     0,   659,     0,
    38,    44,    43,    55,    52,    53,     0,    48,     0,     0,
   691,   687,     0,   825,   581,   828,   830,     0,   826,   827,
    54,   496,     0,   158,   168,   168,   156,   169,   301,    17,
    19,    69,    89,   419,   145,   133,   146,   147,     0,   126,
   129,     0,     0,     0,     0,   717,   711,   452,     0,   124,
   590,   587,   810,   824,   813,     0,   588,   809,   823,   812,
   808,   837,   820,   831,   821,   814,   819,   840,     0,     0,
     0,     0,   423,   600,   599,   422,   175,   524,     0,   523,
   835,   835,   835,     0,   581,   804,   548,   541,   553,   542,
   431,   431,   538,   539,   536,   537,   581,   804,   284,   640,
     0,   418,   117,   544,   554,   559,   560,   418,   418,     0,
     0,   418,   115,   545,   557,   418,     0,   431,     0,   533,
   534,   535,   431,    96,     0,     0,     0,     0,   102,     0,
   838,   804,   838,   804,   846,   845,   847,   289,   325,   223,
   225,   227,   331,   332,     0,     0,     0,     0,   313,   316,
     0,     0,     0,     0,   252,   250,     0,   317,   319,   321,
     0,     0,     0,     0,   231,   248,     0,     0,   676,   674,
     0,   677,   585,   237,     0,     0,   178,   348,     0,     0,
     0,   683,   688,   684,   695,   581,   704,   702,   703,   693,
   838,     0,   700,     0,     0,   637,   638,   691,   687,     0,
     0,   337,   166,   168,   168,   164,   577,   575,   476,     0,
   437,   435,   284,     0,    22,    30,   666,    56,    51,    58,
    62,     0,   690,   686,   691,   687,     0,   395,   605,     0,
   581,   692,    60,   154,   152,    68,     0,   131,     0,   135,
     0,   137,     0,   139,     0,   771,     0,   202,   719,     0,
   712,   713,     0,   453,   691,   687,     0,   308,     0,   635,
   832,     0,     0,   841,   842,     0,     0,     0,     0,     0,
     0,   420,   173,     0,     0,     0,   526,   525,   518,   838,
     0,   543,   449,   449,   838,     0,     0,     0,   431,   431,
     0,   431,   431,     0,   431,     0,   531,   482,     0,   449,
   581,   291,   290,   292,   581,    99,     0,   105,     0,     0,
     0,     0,     0,     0,   459,     0,   457,   254,   275,   244,
   243,   241,   232,     0,   245,   247,   675,   673,   680,   678,
     0,   238,     0,     0,   340,   344,   346,   838,   698,   581,
   699,   162,   160,   473,     0,   440,   442,     0,   690,   686,
   691,   687,     0,   581,   610,   692,   132,   130,     0,     0,
     0,     0,   447,     0,     0,   284,   640,   641,   720,   733,
   736,   739,   744,     0,     0,     0,     0,     0,     0,     0,
     0,   285,   765,   773,     0,   792,   769,   768,   767,     0,
   728,     0,     0,   396,     0,   707,   726,   732,   706,   727,
   766,     0,   714,   454,     0,   638,   822,   816,   817,   815,
     0,   839,   424,     0,   521,   522,   516,   112,   581,   547,
   551,   114,   581,   431,   431,   568,   449,   284,   640,     0,
   555,   561,   562,   418,   418,   449,   449,     0,   449,   558,
   469,   546,   838,   838,   581,   581,     0,     0,     0,     0,
   458,     0,     0,   233,   234,   681,   349,   290,   701,   838,
     0,   690,   686,     0,   692,   134,   136,   138,   778,   772,
   776,     0,   715,   710,   205,   785,   787,   788,     0,     0,
   724,     0,     0,     0,   751,   753,   754,   755,     0,     0,
     0,     0,     0,     0,     0,   786,     0,   367,   793,     0,
   729,   365,   418,     0,   366,     0,   418,     0,     0,     0,
   203,   709,   708,   730,   764,   763,   313,   843,   421,   838,
   838,   567,   564,   566,     0,     0,   431,   431,   431,   563,
   565,   550,     0,    95,   101,   838,   838,   327,   328,   329,
   330,   460,     0,   235,   697,   441,   691,   687,     0,     0,
     0,   777,   448,   194,     0,   721,   734,   723,     0,     0,
     0,     0,     0,   747,     0,   756,     0,   762,    39,   144,
    34,   144,     0,    35,   774,     0,   363,   364,     0,     0,
     0,   362,   204,   724,   111,   113,   431,   431,   573,   449,
   449,   471,     0,   470,   465,    98,   104,   580,   395,     0,
   779,   201,     0,   396,     0,   724,     0,   737,   725,   711,
   790,   740,     0,     0,     0,     0,   752,   761,    40,    36,
     0,     0,   731,   572,   570,   569,   571,     0,     0,   484,
     0,     0,     0,   195,   418,   722,   206,   735,   208,     0,
   791,     0,   789,   745,   749,   748,   775,   797,     0,   468,
   467,   461,    86,    89,   783,   784,   780,   431,   711,   192,
     0,     0,   198,     0,   197,   724,     0,     0,     0,   798,
   799,   757,     0,   466,     0,   207,     0,   738,   741,   746,
   750,     0,   797,     0,     0,   464,     0,   463,   199,   193,
     0,     0,     0,   758,   800,   462,     0,     0,   801,     0,
     0,   200,   742,   802,     0,   759,     0,     0,     0,   743,
   803,   760,     0,     0,     0
};

static const short yydefgoto[] = {  1673,
   437,     2,   438,   165,   713,   332,   181,     3,     4,    37,
   676,   374,  1347,   677,   792,  1348,  1349,   394,  1454,   681,
    41,   793,   403,   687,   964,   688,   689,   690,    43,   172,
   173,    44,   456,   184,   180,    45,    46,   807,  1092,   813,
  1094,    47,   795,   796,   185,   186,   457,   720,  1000,  1001,
   656,  1002,   234,    48,   986,   985,   703,   700,  1165,  1164,
   944,   941,   136,   984,    49,   236,    50,   938,   569,   333,
   334,   335,   336,   561,  1622,  1516,  1624,  1563,  1657,  1209,
  1598,  1619,   368,   930,   337,  1283,   882,   608,   889,   338,
   339,   369,   341,   359,    52,   255,   682,   419,   154,    53,
    54,   342,   564,   343,   344,   345,   346,   458,   347,  1351,
   500,   630,   348,  1352,    56,   217,   693,   349,   218,   540,
   219,   197,   210,    60,   483,   501,  1374,   760,  1231,   198,
   211,    61,   511,   761,    62,    63,   672,   673,   674,  1324,
   463,   851,   852,  1613,  1614,  1590,  1554,  1493,    64,   660,
   362,   509,  1401,  1555,  1114,   947,    65,    66,    67,    68,
    69,   242,    70,    71,   244,   779,   780,   781,   782,   800,
  1079,   801,   802,   803,  1064,  1074,  1065,  1391,  1066,  1067,
  1392,  1393,   657,   658,   609,   920,   351,   466,   467,   191,
   481,   474,   200,    73,    74,    75,   142,   143,   157,    77,
   132,   352,   353,   354,    79,   355,    81,   784,   123,   124,
   125,   516,   105,    82,   356,   894,   895,   915,   910,   633,
  1355,  1356,  1210,  1211,  1212,   724,  1357,  1007,  1358,  1439,
  1566,  1519,  1520,  1359,  1360,  1544,  1440,  1567,  1441,  1600,
  1442,  1602,  1651,  1667,  1443,  1626,  1576,  1627,  1525,   459,
   721,  1322,  1361,  1457,  1581,  1430,  1431,  1511,  1593,  1565,
  1561,  1362,  1572,  1460,   859,  1629,  1630,  1631,  1665,   740,
   916,  1027,  1223,  1370,   742,   743,   744,  1023,   745,   148,
  1025,   747,  1225,  1226,   534,    84,    85
};

static const short yypact[] = {   121,
   149,-32768,-32768,  3296,-32768,   120,   111,   434,   585,   165,
   219,-32768,-32768,  1368,-32768,   200,   217,   221,-32768,-32768,
-32768,  1242,  1474,  1692,   271,-32768,   310,   682,-32768,  2359,
  2359,-32768,  3825,-32768,  3296,   304,-32768,-32768,   345,-32768,
    79,  2218,-32768,-32768,   315,   816,   395,   367,   391,-32768,
-32768,-32768,-32768,   470,   893,-32768,  4418,-32768,  1885,   281,
-32768,   423,-32768,-32768,  1404,    99,-32768,   396,-32768,-32768,
   413,  2480,-32768,-32768,-32768,  1601,-32768,-32768,-32768,  1217,
-32768,-32768,   567,  4304,   420,-32768,-32768, 11210,-32768, 11210,
-32768, 11210,-32768,-32768,-32768,   434,   585,   310,   432,   422,
   471,   391,-32768,  1621,-32768,   567, 11297, 11297,   446,-32768,
-32768,-32768,-32768,-32768,   402,   513,   727,   775,   793,   520,
   524,-32768,-32768,   856,-32768,   586,   434,   585,-32768,   310,
   432,-32768,   206,  1223,   516,  4217, 11210,-32768, 11210,  7260,
  2984,-32768,-32768,  1555,   876,  2984,-32768,   710,  3882,  3882,
  3825,   523,   575,-32768,   615,   444,   623,   646,-32768,-32768,
   713,-32768,   648,-32768,  2497,-32768,-32768,   271,  3126,   664,
-32768,-32768,-32768,   315, 10783,  7823,   290,   719,-32768,-32768,
   692,   423,   785,    94,   188,   754,-32768,-32768,   714,   335,
-32768,-32768,  4919,  4919,  7347,  1601,   549,-32768,-32768,   487,
-32768,-32768,  1933,-32768,-32768,-32768,-32768,-32768,  1885,   758,
-32768,   423,  1601,-32768,-32768,-32768,  2598,  1885,-32768,   423,
-32768, 10783,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   749,-32768,   391,-32768,   423,  1588,   973,-32768,
-32768,   396,-32768,-32768,-32768,-32768,   881,   567,-32768,   583,
  1485,-32768,   416,-32768,-32768,-32768,-32768,-32768,  8072,-32768,
-32768,   637,-32768,   745,   750,-32768,-32768,-32768,-32768,   788,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   742,-32768,-32768,   881,  2480,   830,-32768,-32768,
   784,-32768,-32768, 11912, 11999, 12086, 12086, 12173,-32768,-32768,
-32768,-32768,-32768,   792,   791,   794,   807,   817,   336,   432,
 11384,   988, 12086,-32768,-32768, 12086,-32768,-32768, 12086,  9165,
-32768, 12086,   450,   834,-32768, 12086,-32768, 11471,-32768, 12223,
   430,  1459,  1439, 11558,-32768,   896,  3195,-32768,  1722,  5207,
  7087,-32768,   468,-32768,  1944,  1717,   450,   450, 11210,  4217,
-32768,   988,   809,   988,-32768,-32768,   814,   866, 12328,   819,
   822,   831,  1725,   648,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   513,   727,   775,   988,   793,   520,   871,   524,
-32768,   898,-32768,  1089,   434,   585,-32768,-32768,-32768,-32768,
-32768,-32768,  3736,-32768, 10783,  6242,  2066,-32768,   450,   907,
-32768,-32768,   765,-32768,   880,   887,-32768,-32768,-32768,  2984,
-32768,-32768,  2984,-32768,   859,-32768,-32768,-32768,   444,   444,
   444,-32768,-32768,-32768,  8072,    91,   861,   869,-32768,-32768,
-32768,-32768,  4217,-32768,   772,   947,-32768,-32768,   713,-32768,
   423,-32768,-32768,-32768,-32768,   114,-32768,-32768,-32768,-32768,
  9723, 11384,-32768,-32768,-32768, 11384,   878,-32768,  8854,    98,
  8107,  8176,-32768,-32768,  8176,-32768,  8220,  8220,  7347,  8345,
   872,-32768,   423, 10783,-32768,   889,-32768,-32768,  8299,  2598,
  1885, 10783,-32768,   423,-32768,-32768,   423,  2598,-32768,   978,
-32768, 11210,   749,-32768,-32768,  1588,-32768,  2236,  4820,   881,
   423,-32768,-32768,   939,   964,   995,   982,-32768,-32768,-32768,
-32768,   723,-32768,   494,   941,   948,-32768,-32768,   881,-32768,
-32768,   991,-32768,-32768, 11210, 11384,   784,  9165,-32768,   519,
  9165,-32768,-32768,-32768,  9165,-32768, 11297,  5529,  5529,  5529,
  5529, 12373,-32768,-32768,-32768,-32768,   956, 11651, 11651,  9165,
   980,   306,   992,  1032,   994,-32768,-32768,-32768,-32768, 11210,
-32768,  9257,  9165,-32768, 11384, 11384,  8451, 11384, 11384, 11384,
 11384, 11384, 11384, 11384, 11384, 11384, 11384, 11384, 11384, 11384,
 11384, 11384, 11384, 11384, 11384, 11384,-32768, 11384,-32768,-32768,
-32768,-32768,-32768, 11384, 11384,-32768,-32768,  1937,   403,   242,
  7200,-32768,-32768,-32768,  1045,  1485,  1096,   560,   574,   589,
  3205,   876,-32768,  2667,  2667,-32768,  7663,   996,  1012,  1059,
-32768,-32768,   500, 10671,  1802,-32768,   998,   567,-32768,-32768,
 11384,-32768,-32768,-32768,-32768,-32768,   273,   420,-32768,-32768,
   450,-32768, 10783,  2425,-32768,  1044,  1054,-32768,-32768,   988,
   871,-32768,  9999, 10091,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,   182,-32768,  1021,  1006,   648,  1089,  1062, 11210,-32768,
  1058,-32768,-32768,  1223,  1616,  1084,   349,  1061,  1063,-32768,
-32768,  3513,  7823,  3513,  3870,  1404,  5685,-32768,  1065,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1014,  1025,-32768,
  1071,-32768,-32768,   315,-32768,-32768,-32768,-32768,    95,   228,
  1078,  1032,-32768,-32768,-32768,-32768,  9070, 12373,-32768,   866,
  1034, 12328,-32768,-32768,  1036,-32768,  1040,   353,  5746,  1041,
-32768,   254,  7029,  1092,  1093,   603,-32768,-32768,-32768,-32768,
  8176,  8176,  8560,  8560,  8345,   998,-32768,-32768,  8299,-32768,
  1094,-32768,-32768,  1042,    98,-32768,  2598,-32768,-32768,   423,
  1085,-32768,   727,   775,-32768,  1069,-32768,   524,  1113,-32768,
-32768,   116,-32768,-32768,  1374,-32768,   789,   214,-32768, 11384,
  4512,-32768,  4512,   110,   110,   202,   611,  1819,  7465,    72,
  5308,-32768,   191,   110,-32768,    98,  3456, 11210, 11210,-32768,
 11210,    98,  3456,-32768,-32768,-32768,-32768,-32768,-32768,  1288,
  1288,  1288,   450,  1072,  1080, 10857,  1059,  1086,  1088,  1090,
  1095,  1114,  7521,  1117,  1122,  1126,-32768,  1105,-32768,-32768,
  1107,-32768,-32768,  1161,   686,   854,   101,    71, 11384,  1177,
-32768,  1183,   207,  1135, 12373, 12373,-32768,-32768,  1185,  5946,
 12300,  6336,  4567,  4583,  3346,  6307,  2202,  2202,  2202,  1773,
  1773,  1151,  1151,   935,   935,   935,-32768,-32768,  1140,  1141,
  1144, 11384, 11297,-32768,   403,-32768,  9723, 11384,-32768,-32768,
-32768, 11384,-32768,-32768,  1157, 12086,  1149,  1164,  1187,  1222,
-32768, 11384,-32768, 11384,-32768, 11384,  1081,  6144,-32768,-32768,
  6144,-32768,    85,  1081,  1162,  1169,-32768,  1170,  5529,    98,
-32768,    98,  6455,-32768,  3456,  1171,  6056,  6056,  4669,  1180,
 11471,  1196,  5469,  2579,  1717,  1253,  1199,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, 11384,   988,  1163,  1054,-32768, 12373,
-32768, 12373,  1725,  1207, 11738,-32768,  1176,  1256,-32768,   450,
-32768,-32768,-32768,-32768,-32768,  2384,  3736,-32768,  5529, 11210,
  4505,  4505,  3982,-32768,-32768,-32768,-32768,  1933,-32768,-32768,
-32768,   951, 11384,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   315,-32768,   513,-32768,   793,   520, 11384,  1258,
-32768,   634,   644,   679,  1032,-32768,    86,-32768,    58,-32768,
-32768,-32768,-32768,-32768,-32768, 10764,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,  1093,  1257,-32768,-32768,-32768,  5529,   641,
   641,  1160,-32768,-32768,-32768,  1263,-32768,-32768, 11297,-32768,
-32768,-32768,-32768,  1585,-32768,  3456, 12373,-32768,  3595,-32768,
   423,   423,-32768,-32768,-32768,-32768,-32768,  3456,   270,   857,
 11384,   978,-32768,  1261,-32768,-32768,-32768,    87,   142,  1217,
   876,   229,   110,  1269,-32768,   418,  1260,   423,  6151,-32768,
-32768,-32768,   423,-32768,  1221,   450,   450,   450,-32768,  1226,
    98,  3456,    98,  3456,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  1237,  1238,  1246,  1248,  1014,-32768,
  5969,  9723,  9352,  1234,-32768,-32768, 11384,-32768,-32768,-32768,
  1240,  1239,  1243,  5529,-32768,-32768,  1245,   379,   630,   630,
  1235,   630,-32768,-32768, 12086,  1348, 11210,-32768,  1251,  1252,
  1265,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    98,  1272,-32768,  1274,  5469,-32768,-32768,  4524,  4524,  4990,
  3313,-32768,-32768,-32768,-32768,-32768, 12373,-32768,-32768,  1277,
-32768,-32768,   248,  1279,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,  6654,  5389,  5389,  5758,  5758,  3982,  6908,   212,  1933,
-32768,  6272, 12223,-32768,-32768,-32768,  1280,-32768,   228,-32768,
 11384,-32768, 11384,-32768, 11384,-32768,   988,-32768,-32768,  8976,
  1337,-32768,  9444,-32768,  6773,  6773,  5091,   347,  1281,   385,
-32768,  9723,  9536,-32768,-32768,   250,  2114,  2114,  1233,  1233,
  9723,-32768,-32768,  1284,  1286,  2236,-32768,-32768,-32768,    98,
  1287,-32768,  1335,  1335,    98,  1290, 11384, 11384,  4735,   423,
  5827,   423,   423,  1334,   423,  7420,-32768,-32768,  6438,  1335,
-32768,-32768,  1347,-32768,-32768,-32768,  1295,-32768,  1308, 11384,
 11384, 11384, 11384,  9723,-32768,  1361,-32768,-32768, 12373,-32768,
-32768,-32768,   428,  1243,-32768,-32768,-32768,-32768,-32768,-32768,
  1316,-32768,  1382,   450,-32768,-32768,-32768,    98,-32768,-32768,
-32768,-32768,-32768,-32768, 11384,-32768,-32768,  6908,  5389,  5389,
  6550,  6550,  5192,-32768,   412,  6272,-32768,-32768,  1325,  1328,
  1329,  1343,-32768,  1010,   309,  1379,   884,   886,-32768,-32768,
-32768,-32768,-32768, 11384,  1383,  1384,  1388, 10944,   427,   988,
   621,   476,-32768,-32768, 11036,  1442,-32768,-32768,-32768,  1395,
-32768,  8567,  7719,  4090,  8681,-32768,-32768,  1449,-32768,-32768,
-32768, 10278,-32768,-32768,  1349,   843,-32768,-32768,-32768,-32768,
  5529,-32768,-32768,  9723,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,  4735,  4735,-32768,  1335,   656,   958, 11384,
-32768,-32768,-32768,   978,   978,  1335,  1335,   723,  1335,-32768,
-32768,-32768,    98,    98,-32768,-32768,  1366,  1371,  1375,  1377,
-32768,  9723, 11384,-32768,   428,-32768,-32768,-32768,-32768,    98,
  1378,  8741,  8741,   998,  8749,-32768,-32768,-32768,-32768,  1343,
-32768,   988,-32768,-32768,-32768,-32768,-32768,-32768,   681,   681,
  1032,  1376,  1389, 12261,-32768,-32768,-32768,-32768,  1407, 11384,
  1431,  1428,  1445,  1688,  1781,-32768,  1032,-32768,-32768,  1418,
-32768,-32768,   978,  1017,-32768,  1023,   978, 11123,  1037,   312,
-32768,-32768,-32768,-32768,-32768,-32768,   465,-32768,-32768,    98,
    98,-32768,-32768,-32768, 11384, 11384,  4735,   423,   423,-32768,
-32768,-32768,  5898,-32768,-32768,    98,    98,-32768,-32768,-32768,
-32768,-32768,  1401,-32768,-32768,-32768, 12228, 12228,  7936,  2698,
  1420,-32768,-32768,-32768, 11297,-32768,-32768,-32768,  1484, 10577,
  5589, 11297, 11384,-32768, 10387,-32768,  1454,-32768,-32768,  1464,
-32768,  1445,  1688,-32768,-32768,   713,-32768,-32768, 11825, 11825,
  9631,-32768,-32768,  1032,-32768,-32768,  4735,  4735,-32768,  1335,
  1335,-32768, 10183,-32768,-32768,-32768,-32768,-32768,  2698,  4158,
-32768,-32768,  1427,   355, 10783,  1032, 10482,-32768,-32768,    86,
-32768,-32768,  1478,  1435, 12351, 10387,-32768,-32768,-32768,-32768,
  1343,    89,-32768,-32768,-32768,-32768,-32768,  1456, 12283,  1468,
  1441,  1448,  1032,-32768,   978,-32768,-32768,-32768,-32768,   712,
-32768,  9815,-32768,-32768,-32768,-32768,  1343,  1551,  1507,-32768,
-32768,-32768,   395,   315,-32768,-32768,-32768,   423,    86,-32768,
 11384,  1508,-32768,  1509,-32768,  1032, 10387,  1479,   548,  1514,
-32768,-32768,   129,-32768,  1510,-32768,  1469,-32768,-32768,-32768,
-32768, 11384,  1551,  1522,  1551,-32768,   114,-32768,-32768,-32768,
  9907,  1475,   699,-32768,-32768,-32768,  9723,  1494,-32768,  1594,
  1546,-32768,-32768,-32768,   326,-32768, 10482,  1598,  1550,-32768,
-32768,-32768,  1610,  1622,-32768
};

static const short yypgoto[] = {-32768,
  1633,-32768,  -324,  1465,  -367,    74,     0,  1636,-32768,  1604,
-32768,-32768,   235,-32768,   240,-32768,   246,-32768,   199,   981,
    39,    37,-32768,-32768,  -642,-32768,-32768,   688,    52,  1488,
  1225,  1495,  -709,    51,  -164,     1,   -51,-32768,-32768,-32768,
-32768,-32768,   873,-32768,-32768,-32768,-32768,-32768,-32768,   478,
   452,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,  1581,  -610,  7722,  1446,   -47,  -613,  -230,   -32,
  1541,  -536,-32768,   563,-32768,   249,-32768, -1411,-32768, -1166,
    19,-32768,  1452,  2641,  -282,   404,  -544,-32768,  -857,  7365,
    61,  2235,  5379,  1405,  -338,   -68,   -85,  2120,  -137,   -48,
   287,-32768,-32768,-32768,  -329,-32768,  -160,-32768,-32768, -1270,
   -39,  -345,  7079,    48,  1403,  -117,    20,   193,  -207,    -4,
  -119,  -172,  -167,     5,   -10,  -235,-32768,  -295,-32768,-32768,
-32768,-32768,-32768,   711,  1549,   616,-32768,   741,-32768,-32768,
 -1173,  -432,   976,-32768,-32768,-32768,-32768,-32768,   302,-32768,
-32768,-32768,-32768,-32768,-32768,   757,  -382,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  1467,-32768,   474,   662,-32768,-32768,
-32768,   628,  -732,-32768,-32768,-32768,-32768,-32768,-32768,   913,
-32768,   460,  1057,   778,  1127,  2398,   109,    22,  -469,  1538,
  2507,    12,-32768,  -483,-32768,    25,  1922,  1359,  -142,   466,
  -104,  6229,  1392,-32768,  6904,  2926,  2217,   -12,  -111,-32768,
  1624,   -67,-32768,  6140,  4145,  -409,-32768,  1220,   278,-32768,
-32768,   397,-32768,-32768,   529,   104,  -442,-32768,-32768,-32768,
-32768, -1424,-32768, -1238, -1438,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   128,
-32768,-32768,-32768,-32768,-32768,   173, -1366,-32768,-32768,   -38,
-32768,-32768,-32768,-32768, -1444,   122,-32768,   123,-32768,  -762,
  -425,   763,-32768,-32768,-32768,-32768,  -390,-32768,  -383,  -170,
-32768,  2085,   407,-32768,  -219,-32768,  -209
};


#define	YYLAST		12458


static const short yytable[] = {    59,
   436,   491,   445,    36,   635,   208,   421,   424,   446,   444,
   122,  1005,   698,   725,   393,   196,   764,   644,   433,   699,
   696,   539,   542,    57,   783,   546,   645,  1125,   729,   401,
    59,   256,   253,   843,    36,   182,   939,    59,   103,   510,
    42,   517,   174,   741,  1085,   298,   177,   399,   400,   675,
  1090,    55,   209,   981,    57,   574,   392,   357,  1048,   358,
  1050,   176,   883,  1512,   398,   249,   199,   247,  1080,  1380,
  1381,    42,   508,   714,  1458,   190,  1573,    35,    42,   296,
   170,  1569,    55,   350,   404,   350,  1402,   350,   529,   175,
   988,   490,   987,   171,   453,   256,  1013,   496,   499,   613,
   498,   613,   350,   350,   409,   613,   520,   260,    35,  1077,
  1574,  -368,    72,    15,   722,   169,  1473,  1213,  1207,  1583,
    -1,   841,  1042,  1476,   208,   138,   649,   650,  1599,  1646,
   365,   407,   350,  -144,   350,   196,    15,   163,   141,   146,
  -418,  1596,   529,    72,  1014,  -368,   648,  1015,    -2,  -368,
    72,  1608,  -359,  1043,   256,   406,   454,   240,   918,   746,
    59,   241,  1152,  -143,    59,   441,  -369,  1214,    15,   174,
  -418,   209,   723,   177,  -418,   137,   190,   164,   704,   705,
    86,  1078,  -368,   405,    57,    88,   199,  -359,   176,   455,
  1625,   454,   297,   842,   827,  1208,    58,  1609,   769,   711,
  -369,  1640,   494,   994,  -369,    42,  1658,   170,   300,   395,
   396,    10,    55,  1484,   524,   805,   175,   127,   128,  -418,
   171,   190,  1490,  1491,   455,  1492,  1053,    58,  1599,    87,
   995,   773,   774,   199,    58,   460,  1003,  -369,    38,    93,
  1512,   953,   169,    39,    72,   127,   128,    21,   762,    40,
  1571,  1081,   461,  -120,   251,    15,   768,   420,   423,  -604,
  1054,   619,    27,   320,  1055,  1018,   663,    94,    26,    38,
   130,   131,   260,    72,    39,   996,   295,    72,   618,  1006,
    40,   462,    26,  1241,   997,   998,  1577,  -120,   719,   683,
   954,  -120,   247,   107,    32,  1246,    26,  1056,   130,   131,
  1082,   472,   475,   966,   610,  -604,  -604,  1305,   652,  1371,
   108,   309,   890,  1019,   109,  1115,  1020,   645,   678,   155,
  -604,   999,   891,  1178,  -120,   350,   651,    26,    58,  1267,
  1163,  1269,  1247,  1166,   421,   424,   892,  1606,   296,  1124,
   222,   223,   433,   178,    88,   135,   247,   992,   993,   222,
   447,   957,   698,   597,   350,   654,  1306,    58,  1372,  1024,
   221,    58,   215,   216,  1013,   701,   543,   544,    14,  1434,
   496,   499,  1434,   767,  1194,  1195,  1586,  1587,   496,   406,
   260,   741,   468,   554,   137,  1668,   555,   741,  1641,   556,
   499,    20,   566,   635,  -305,  -183,   571,   161,   695,   598,
    23,   209,   623,  1601,   612,   162,   517,   653,   967,   499,
   137,  -183,  1014,  -183,  -298,  1015,   199,  -834,  1435,   183,
   940,  1543,   179,  1233,   968,  1414,   623,   187,   469,    95,
   110,   111,  -629,  1181,  1669,   155,   155,   155,    59,   686,
  -305,  -305,  -118,   716,    15,   188,   300,   177,   826,    10,
   886,   297,  1636,    18,  1126,  -298,  1154,   794,   243,  -603,
   375,   797,   176,   518,   739,   101,   376,   887,    72,   771,
   178,   245,   826,   115,    18,   886,  -118,   597,  -629,  -629,
  -118,   155,   748,   112,   113,    21,   138,  1286,    89,   770,
   175,   748,   887,  -629,   299,   199,   888,   350,   158,   741,
   427,   428,   823,   199,    59,  -603,  -603,  1450,    90,   519,
   221,   697,  -307,  -118,   429,   640,   233,  -585,   221,   221,
  -603,   888,  1413,   598,   430,   567,  1080,   568,   799,   363,
   350,   361,    32,   350,  -585,   295,   350,   431,  1456,   373,
   350,   816,   350,   833,   833,   833,   833,   924,   221,   991,
   137,    72,    58,  1302,  1303,   350,   798,  1504,  -307,  -307,
   783,   641,  1206,  -585,   189,   350,   623,   377,   350,   610,
     8,     9,   683,  -301,   381,   389,   698,   697,   382,   963,
  -585,   486,   791,   699,   696,   751,   752,   817,   116,   117,
   118,   402,  1098,   925,   926,   694,   644,   221,   962,   417,
  1095,  1096,  1097,   296,  1038,   645,  1040,   901,   484,   485,
  1643,  1044,   826,   942,   158,   158,   158,    72,   554,   555,
   741,   903,   695,   130,   131,   529,   632,   636,   639,   739,
   512,  -298,   741,   127,   128,    58,   905,    91,   520,    91,
     8,   522,   119,   120,     8,     9,   960,   496,   574,   246,
  1028,   221,   974,   902,   979,   980,  1644,    92,  1057,    92,
   158,   694,   260,  1291,   199,   129,   741,   904,   741,   367,
   371,    18,   122,   393,   350,    26,   513,   224,  1453,  1275,
  1277,  1200,   906,   426,    26,   364,   130,   131,   209,   503,
   505,  1202,   247,   130,   131,    26,  1029,   130,   131,   980,
   890,    58,   515,   199,  1058,   199,   199,  1004,   221,   189,
   891,  1227,    95,   415,   416,  1003,   297,   523,  1485,  1287,
  1288,  1228,  1290,   303,   892,   648,  1204,  1201,  1514,  1177,
    88,   434,   908,   911,  1229,   697,   138,  1203,   695,   794,
    89,   794,   697,   797,   178,   797,  1062,  1072,  -141,   794,
   199,   797,   783,   797,  -624,   224,   139,    -7,  1063,  1620,
    90,  1660,   164,   155,   155,   155,    98,   113,   127,   128,
   814,   224,  1205,   553,  1515,  1086,  1087,    91,  1088,   448,
  1277,   378,   827,  1051,  1052,   449,    59,   452,    59,  1367,
  1369,   221,   221,  1083,   209,   433,    59,    92,  1373,   221,
   295,    90,   695,   350,   350,  1621,   350,  1661,   695,  1068,
   799,   221,   799,   364,   464,   661,   815,   492,   493,   694,
   799,   130,   131,   502,   671,   465,   694,   224,  1196,   379,
   221,   484,   717,   127,   128,   224,  1045,   661,   798,   525,
  1049,  1411,    15,    91,   526,   523,  -418,   380,   798,    92,
   527,   697,   224,   528,  -307,  1262,  1263,  1264,   383,   384,
   385,  1030,  1031,    92,   791,   548,   791,   137,   549,  -307,
  1236,  1237,  1238,  -307,   791,  -418,  -418,   536,   350,   127,
   128,   550,  1046,  1128,    26,   547,   130,   131,   215,   216,
  -307,   551,   450,   570,    14,     7,     8,     9,    10,    72,
   530,    72,  -307,  -307,   386,  -307,   613,  -307,    91,    72,
   531,    89,   387,   388,   833,   697,  -142,    20,   659,  1248,
   695,   697,   662,  1647,   739,   663,    23,   665,    92,   256,
   666,    90,   130,   131,    21,   694,  -307,  -307,    89,   667,
    91,  1479,   158,   158,   158,   679,  1437,    26,  1438,    27,
    28,  -307,   680,   192,    90,   221,  1134,   772,    90,   260,
    92,    92,   695,   193,   833,   350,   570,   708,   695,   976,
    -6,   632,   636,   194,   639,    95,    96,    97,   712,  1502,
   758,    32,   567,    58,   568,    58,   195,   554,   555,   734,
    95,   110,   111,    58,   127,   128,   221,  1062,  1518,   694,
   763,     8,     9,   686,    15,   694,   492,   718,   827,  1063,
   -52,   739,    89,   808,  1535,   -52,   636,   433,   595,   596,
  1486,   256,   253,   850,   833,   502,   -52,   794,   733,    98,
    99,   797,    90,   697,   350,   908,   911,   697,   809,   364,
   221,   695,   421,   424,   112,   113,   364,   130,   131,   810,
   433,  1250,   818,   695,   130,   131,   811,  1252,  1253,   819,
  1068,  1250,  1255,  1418,   837,  1253,   224,   899,   221,  1432,
  1433,   252,   421,   424,    59,   697,   484,  1537,   252,  1183,
  1184,   697,   492,  1538,   127,   128,   224,   695,   839,   695,
   723,   300,   395,   396,    10,   224,   484,  1542,   799,   898,
   840,  1518,   842,   900,  1294,   919,   921,   917,   945,   830,
   636,    18,   224,   946,   955,   956,   959,   694,   961,   833,
    20,   694,  -301,  1518,   697,   969,   798,   970,   623,   983,
    21,   990,   350,   989,   221,    26,   965,   130,   131,   858,
   454,   256,  1010,    26,  1011,    27,   320,   982,  1012,  1017,
  1617,   624,   791,  1034,   697,   695,  -833,  1026,  1033,   694,
  1037,   625,  1039,     8,     9,   694,   697,   881,   520,   698,
   433,   626,  1041,   897,   627,   628,  1592,    32,   850,  1464,
  1099,  1469,   695,  1518,  1142,  1466,  1004,    72,  1100,  1105,
    18,  1142,  1106,   748,  1101,  1292,  1102,  1107,  1103,   748,
   697,  1108,   697,  1104,   725,  1354,   524,   794,   694,  1346,
  1142,   797,   739,  1109,    26,  1110,   130,   131,   827,     7,
     8,   250,    10,  -140,  1662,   300,   395,   396,    10,  1353,
  1227,   592,   593,   594,   595,   596,     8,     9,   694,  1112,
  1228,   748,  1113,  1116,    95,   110,   111,  1117,  1118,  1119,
   694,  1133,  1136,  1229,    59,  1120,     8,     9,    21,   155,
  1135,  1137,  1394,    18,    21,   251,   908,   911,   697,  1138,
  1145,    58,  1169,    27,    28,   554,   555,  1146,   799,    27,
   320,  1147,  1153,  1345,   694,  1175,   694,    26,  1156,   130,
   131,   127,   128,  1309,  1310,   697,   520,   252,   112,   113,
   114,   364,   155,  1227,  1157,    32,   798,  1162,   695,   130,
   131,    32,  1463,  1228,  1463,  1172,  1176,  1199,    72,   748,
  1251,  1222,  1257,  1309,  1310,   697,  1229,  1232,  1256,  1261,
  1270,  1271,   791,   523,  1265,  1030,  1031,   127,  1398,  1272,
  1354,  1273,    26,  1278,   130,   131,  1289,  1281,   209,  1280,
  1354,  1282,   694,  1285,  1346,  1293,   529,  1354,   530,  1295,
  1296,  1346,    76,   199,  1353,   199,   833,    72,   531,  1207,
    95,    96,    97,  1297,  1353,  1582,   116,   773,   774,   694,
  1300,  1353,   364,  1488,  1489,  1301,  1304,  1307,  1317,  1366,
   130,   131,  1375,    76,  1376,  1379,   421,   424,  1383,   461,
    76,  -666,    58,  1405,   671,   566,    95,    96,    97,   694,
   225,   226,   227,   201,   523,   213,  1406,   965,  1345,  1422,
  1423,   697,    26,  1412,    98,    99,   100,  1416,  1345,  1417,
   119,   120,  1142,  1426,    18,  1345,  1427,  1428,   158,  1429,
   228,  1436,     8,     9,  1446,  1445,    12,    13,  1447,  1634,
  1459,    58,    14,    72,  1131,  1461,   494,  1477,    26,  1142,
    98,    99,   229,    72,  1474,  1142,    16,  1526,    17,  1521,
    72,   155,   155,   155,  1498,    20,   116,   117,   118,  1499,
  1036,   158,  1522,  1500,    23,  1501,  1506,    95,   110,   111,
   514,  1528,   376,    26,   408,   130,   131,   606,   411,  1529,
  1568,   155,   155,   155,   695,   694,   599,   230,   231,   232,
  1564,  1536,  1558,  1560,  1578,  1354,  1354,  1564,  1579,  1346,
  1354,   748,   224,    76,  1346,  1595,    21,    76,    26,   224,
   119,   120,   607,   201,   213,  1594,   350,    58,  1603,  1353,
  1353,   112,   113,  1604,  1353,   600,   601,    58,   224,  1615,
   602,   603,   604,   605,    58,   695,  1616,     7,   127,   128,
    10,  1628,  1354,  1610,  1276,  1612,  1346,  1632,  1638,  1639,
   748,  1354,  1642,  1645,  1649,  1346,   199,  1650,   140,   140,
   201,   156,  1654,  1659,  1618,  1142,  1353,   116,   773,   774,
    95,    96,    97,  1345,  1345,  1353,    21,  1564,  1345,   554,
   555,  1234,  1663,   251,  1664,   212,  1666,   220,  1671,  1674,
  1672,    27,    28,   237,   776,  1422,  1423,   697,   383,   384,
   385,  1675,  1354,   297,     8,     9,  1346,    15,    72,    72,
   297,  -418,     1,    72,   443,   252,   364,     5,   160,    26,
  1345,   119,   120,    32,    98,    99,  1353,   751,   752,  1345,
   158,   158,   158,  1533,  1179,   221,   442,   958,  1323,   440,
  -418,  -418,  1354,  1633,  1276,  -418,  1346,   715,   697,   364,
    26,  1073,   387,   388,   360,    72,  1318,   130,   131,   410,
   158,   158,   158,   504,    72,  1670,  1353,  1415,  1517,   140,
    95,   110,   111,  1171,   140,   127,   128,   156,   156,   156,
  1345,   694,  1009,   535,  1170,  1239,  1259,   295,   507,  1377,
   297,  1075,    58,    58,   295,  1400,   948,    58,   655,   642,
     8,     9,    10,  1168,   212,   127,   128,    95,   110,   111,
   451,   668,   669,   670,   885,    72,   129,   487,   620,  1363,
  1345,   471,   471,   480,   112,  1530,    26,   391,   130,   131,
  1656,  1472,   694,  1607,   155,   309,   643,   220,    21,    58,
  1648,  1243,  1244,   201,  1653,   497,   220,  1655,    58,   623,
   224,    26,  1350,   130,   131,    72,    26,  1478,   130,   131,
     0,   112,   113,    95,   110,   111,  1221,  1142,  1258,     0,
  1451,  1452,   624,  1260,   295,     0,     0,   224,     0,     0,
     0,    76,   625,   224,     0,   692,     0,   140,     0,     0,
  -581,     0,   626,  -581,     0,   627,   628,     0,     0,    58,
     0,  1059,  1060,     9,    10,   155,   155,   155,     0,   411,
     0,     0,  1407,  1408,  1409,  1410,  1142,   112,  1532,     0,
     0,     0,   201,   909,   912,   224,     0,     0,     0,   921,
   201,   590,   591,   592,   593,   594,   595,   596,     0,    58,
    21,  -581,     0,  -581,  -581,   221,  -581,   804,     0,     0,
     0,   692,     0,    26,     0,    27,    28,  -581,   156,  -581,
     0,  1061,     0,  1513,     0,     0,     0,     0,     0,   193,
     0,   214,   215,   216,     0,  -581,  -581,     0,    14,   194,
  1449,     0,     0,     0,     0,  1531,  1534,    32,     0,     0,
  -581,     0,   195,   730,     0,    18,     0,  1350,     0,     0,
   730,    20,     0,   224,  1350,     0,     0,     0,     0,     0,
    23,     0,     0,   158,     0,     7,     8,     9,    10,     0,
     8,     9,     0,     0,    12,    13,   300,     8,     9,    10,
    14,     0,   147,     0,   212,   220,     0,     0,     0,  1386,
  1387,     0,  1396,  1397,    16,  1399,    17,     0,   140,     0,
     0,   140,     0,    20,    21,  1503,     0,   156,   156,   156,
     0,   251,    23,   140,  1580,    21,     0,   730,     0,    27,
    28,    26,   251,   130,   131,     0,     0,     0,     0,     0,
    27,   320,     0,     0,   158,   158,   158,     0,     0,     0,
     0,   201,  1527,   252,     0,     0,     0,     0,     0,     0,
   471,    32,     0,   471,   853,   480,   480,   480,     0,   692,
   884,   451,    32,     0,     0,     0,   692,   471,   497,   220,
     0,     0,   451,     0,     0,     0,   497,     0,     0,   730,
   201,   977,   201,   201,     0,   730,     0,     0,     0,   451,
     0,     0,   412,     0,     0,     0,     0,   414,     0,     0,
     0,     0,   214,   215,   216,     0,     0,  1562,     0,    14,
     0,     0,  1350,   858,  1562,   730,   156,  1350,     0,   156,
     0,     0,   730,   156,  1482,  1483,    18,   201,     0,     0,
     0,  1022,    20,     0,     0,     0,   156,   156,   156,     0,
     0,    23,     0,     0,     0,   147,     0,     8,     9,     0,
     0,   156,    13,     0,     0,   224,   702,  1143,     0,  1350,
  1144,     0,     0,     0,     0,     0,     0,     0,  1350,     0,
     0,     0,  1150,     0,    18,   692,   909,   912,     0,   804,
     0,   804,   153,     0,     0,     0,  1069,  1076,     0,   804,
     0,     0,     0,     0,  1562,     0,     0,     0,    26,     0,
   130,   131,   907,   907,   224,   914,     0,     0,     0,     0,
   521,     0,   933,  1637,  1227,     0,     0,     0,     0,  1350,
   909,   912,     0,     0,  1228,     0,     0,  1549,  1550,  1551,
     0,     0,   220,     0,  1652,     0,     0,  1229,     0,   692,
     0,     0,     0,   858,     0,   692,     0,     0,   166,     0,
     7,     8,     9,    10,   167,    12,    13,     0,     0,  1350,
     0,    14,     0,     0,     0,     0,     0,     0,   116,   773,
   774,   212,   775,   220,   237,    16,     0,    17,    18,    19,
     0,     0,     0,     0,    20,     0,     0,  1584,  1585,    21,
     0,     0,     0,    23,     0,   776,   168,     0,     0,   422,
   425,     0,    26,   777,    27,    28,     0,   730,   588,   589,
   590,   591,   592,   593,   594,   595,   596,   220,    30,     0,
    26,     0,   119,   120,     0,     0,   258,     0,    31,   471,
   471,   480,   480,   480,     0,     0,    32,   471,     0,     0,
     0,    33,     0,     0,   153,   497,    34,     0,   451,     0,
   258,     0,   340,     0,   340,     0,   340,   692,  1635,     0,
     0,   692,     0,   730,   730,     0,     0,     0,     0,   730,
     0,   706,     0,     0,   707,     0,     0,   212,     0,   258,
     0,     0,     0,   730,     0,   730,   710,   730,     0,     0,
   258,     7,   127,   128,    10,     0,     0,    13,     0,   692,
     0,   340,     0,   340,   156,   692,     0,   909,   912,     0,
     0,     0,     0,     0,     0,     0,    95,   110,   111,    18,
   225,   226,   227,   412,     0,     0,   414,     0,     0,     0,
    21,     0,  1143,  1144,   909,   912,   730,  1069,     0,     0,
   521,  1150,     0,    26,    18,    27,    28,     0,   692,   258,
   228,     0,     0,     0,     0,     0,     0,     0,     0,    30,
     0,   214,   215,   216,   909,   912,     0,   804,    14,    31,
   112,   113,     0,     0,     0,     0,     0,    32,   692,   563,
   730,     0,    33,     0,   258,    18,   907,     0,     0,   907,
   692,    20,     0,     0,     0,     0,     0,   730,     0,     0,
    23,   907,     0,     0,     0,  1155,  1155,   933,   258,   259,
     0,     0,     0,     8,     9,   943,     0,    12,   246,     0,
     0,     0,     0,    14,   692,     0,   692,     6,     0,     7,
     8,     9,    10,    11,    12,    13,     0,    16,     0,    17,
    14,     0,     0,     0,   237,     0,    20,     0,     0,  1182,
  1182,  1188,     0,     0,    16,    23,    17,    18,  1143,  1144,
   909,   912,     0,    20,    26,  1150,   130,   131,    21,     0,
   411,     0,    23,     0,     0,   439,     0,     0,     0,   422,
   709,    26,     0,    27,    28,   552,   435,    29,     0,     0,
     0,     0,   692,     0,  1188,     0,     0,    30,     0,     0,
     0,   258,     0,     0,     0,     0,     0,    31,  1230,  1230,
  1230,   300,     8,     9,    10,    32,     0,     0,   470,   692,
    33,     0,     0,   340,     0,     0,     0,   422,   425,   451,
   451,   489,     0,     0,   495,   215,   216,     0,     0,  1395,
     0,    14,     0,     0,  1395,     0,     0,   804,     0,   692,
    21,     0,     0,     0,     0,     0,   451,   251,    18,   258,
     0,   451,     0,     0,    20,    27,   320,     0,     0,     0,
     0,  1143,  1144,    23,  1150,     0,     0,     0,     0,     0,
     0,     0,   730,     0,   730,     0,   730,   563,     0,   252,
   563,     0,     0,     0,   563,     0,     0,    32,     0,     0,
   127,   128,   706,   707,     0,    13,     0,     0,   422,   838,
   710,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   563,     0,     0,   728,   732,    18,     0,   473,
   476,     8,     9,   732,     0,     0,  1155,  1155,   933,     0,
   201,  1467,   201,     0,   623,   692,     0,     0,     0,     0,
     0,    26,   258,   130,   131,     0,   909,   912,    18,     0,
     0,  1182,  1182,  1308,  1308,  1188,   340,   624,     0,     0,
  1182,     0,     0,     0,     0,   623,     0,   625,   258,     0,
     0,     0,    26,   932,   130,   131,   730,   626,     0,     0,
   627,   628,     0,  1308,  1308,  1188,     0,     0,  1507,   340,
   732,     0,     0,     0,     0,  1230,  1230,  1230,  1508,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   626,     0,
     0,  1509,   628,     0,     0,     0,     0,   451,   451,     0,
   451,   451,     0,   451,   340,     0,   728,     0,     0,   855,
   856,     0,   860,   861,   862,   863,   864,   865,   866,   867,
   868,   869,   870,   871,   872,   873,   874,   875,   876,   877,
   878,     0,   732,     0,     0,     0,     0,   258,   732,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,  1035,
     0,     0,     0,   258,     0,     0,     0,  1182,  1182,  1308,
  1308,  1188,     0,     0,  1182,     0,     0,     0,   732,     0,
     0,     0,     0,   422,   709,   732,     0,     0,     0,   759,
     0,     0,     0,     0,   765,     0,     0,     0,     0,     0,
  1084,     0,     0,   147,     0,     0,  1089,   950,   952,     0,
     0,   212,   220,     0,     0,     0,     0,     0,     0,   806,
     0,   692,     0,   340,     0,   812,     0,     0,     0,   730,
     0,     0,     0,   201,     0,     0,     0,   820,   821,    80,
   822,     0,   451,   451,     0,     0,     0,     0,     0,   104,
     0,     0,     0,     0,     0,   932,     0,     0,     0,   133,
     0,     0,     0,     0,     0,   144,   144,     0,   144,     0,
    80,   728,   692,     0,     0,     0,     0,    80,     0,     0,
  1510,  1510,   258,  1510,     0,     0,     0,     0,   749,     0,
   203,   750,    80,   473,   476,     0,     7,   127,   128,    10,
   238,     0,   246,     0,     0,   766,     0,   104,     0,     0,
     0,     0,     0,     0,  1148,     0,  1149,     0,   262,   104,
     0,     0,     0,     0,    18,     0,   480,     0,     0,     0,
     0,     0,     0,     0,  1047,    21,     0,   922,   923,     0,
     0,   104,   922,     0,     0,   451,   451,   451,    26,     0,
    27,    28,   340,   340,     0,   340,     0,   422,   838,     0,
     0,     0,     0,     0,    30,  1510,  1510,  1559,     0,   133,
   732,    80,     0,     0,    31,   144,   144,     0,     0,     0,
   413,   144,    32,     0,   144,   144,   144,    33,     0,     0,
     0,     0,     0,  1111,     0,     0,     0,   480,   480,   480,
    80,     0,   153,     0,    80,   451,   451,     0,     0,     0,
   203,    80,   731,     0,   412,   414,     0,     0,     0,   737,
     0,     0,     0,   521,     0,     0,   732,   732,   203,   203,
   203,   728,   732,     0,     0,     0,     0,     0,     7,     8,
     9,    10,   167,    12,    13,  1219,   732,     0,   732,    14,
   732,     0,     0,     0,     0,     0,     0,   203,     0,     0,
   258,     0,   258,    16,  1032,    17,    18,    19,     0,     0,
     0,     0,    20,     0,   506,     0,   451,    21,     0,     0,
     0,    23,     0,   104,   168,  1266,   824,  1268,     0,  1167,
    26,     0,    27,    28,   144,     0,     0,     0,     0,   732,
     0,     0,     0,     0,   258,   614,    30,   300,   395,   396,
    10,     0,   615,     0,   340,     0,    31,   300,   127,   128,
    10,  1091,     0,  1093,    32,     0,     0,  1193,     0,    33,
     0,     0,   104,   532,    34,     0,     0,     0,     0,     0,
   706,   707,     0,   732,     0,  1299,    21,   710,   879,     0,
     0,     0,     0,   616,   880,     0,    21,     0,     0,    26,
   732,    27,   320,   251,     0,     0,     0,   749,   750,   473,
   476,    27,   320,     0,     0,   766,     0,     0,   104,     0,
     0,     0,   621,     0,   532,   532,   637,     0,   422,   709,
     0,   937,     0,   617,     0,    80,   258,  1129,  1130,     0,
  1132,     0,     0,    32,     0,  1249,     6,     0,     7,     8,
     9,    10,    11,    12,    13,   422,   425,     0,     0,    14,
     0,     0,     0,     0,     0,   300,     8,     9,    10,   133,
     0,  1151,    15,    16,  1378,    17,    18,    19,   104,  1382,
   203,   104,    20,     0,     0,   422,  1365,    21,     0,     0,
    22,    23,    24,     0,    25,   144,   728,   728,   144,     0,
    26,  1279,    27,    28,    21,     0,    29,     0,     0,     0,
   144,   251,     0,     0,     0,     0,    30,     0,    80,    27,
   320,   340,  1192,     0,     0,     0,    31,   258,     0,     0,
     0,     0,  1419,     0,    32,     0,     0,     0,     0,    33,
     0,     0,     0,   523,    34,     0,   203,   203,     0,     0,
   203,    32,   203,   203,   203,   756,   258,     0,     0,   203,
     0,     0,     0,     0,   203,     0,     0,   203,   584,   585,
   586,   587,   588,   589,   590,   591,   592,   593,   594,   595,
   596,   422,   709,     0,    80,   732,     0,   732,     0,   732,
     0,     0,  1240,     0,     0,     0,     0,   728,     0,     0,
     0,     0,     0,     0,  1245,     0,   728,   728,     0,     8,
     9,     0,   167,    12,    13,   728,     0,   736,     0,    14,
   258,     0,     0,   104,   104,   104,   104,   473,   476,     0,
     0,  1384,  1385,    16,     0,    17,    18,  1494,  1495,     0,
     0,     0,    20,     0,     0,     0,     0,     0,     0,     0,
     0,    23,     0,     0,  1505,     0,     0,     0,   728,     0,
    26,     0,   130,   131,     0,     7,     8,     9,    10,     0,
     0,     0,  1121,  1122,     0,     0,     0,     0,  1127,     0,
     0,     0,     0,   104,     0,   532,   749,   750,   766,   732,
     0,     0,  1139,  1298,  1140,     0,  1141,   621,     0,   532,
   532,     0,   637,     0,    21,     0,     0,     0,     0,   934,
   623,     0,     0,   936,  1545,  1546,     0,    26,  1444,    27,
    28,     0,     0,     0,     0,     0,     0,     0,   203,     0,
  1556,  1557,     0,   971,     0,     0,     0,  1219,  1316,     0,
     0,     0,     0,   972,     0,  1174,     0,  1059,  1060,     9,
    10,    32,   133,   626,     0,     0,   973,   628,   728,   133,
     0,     0,     0,     0,     0,     0,     0,   203,   978,   203,
   203,   238,   637,     0,  1487,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    21,     0,     0,  1197,
   258,     0,     0,     0,     0,     0,   728,     0,     0,    26,
     0,    27,    28,     0,     0,  1242,     0,  1061,  1403,   422,
  1365,     0,  1404,     0,   203,   193,     0,     0,   978,     0,
     0,     0,     0,     0,     0,   194,   203,   203,   756,   756,
   756,     0,     0,    32,   203,     0,     0,     0,   195,   749,
   750,   473,   476,     0,     0,     0,     0,  1420,   766,     0,
     0,     0,   732,     0,     0,     0,     0,     0,     0,     0,
     0,  1425,     0,   133,     0,     0,    80,     0,    80,  1547,
  1548,   473,   476,  1070,    80,     0,    80,     0,     0,     0,
     0,     0,   104,   473,   476,     0,     0,     0,   104,     8,
     9,     0,   167,    12,    13,   532,   532,   532,     0,    14,
     0,     0,     0,     0,     0,     0,     0,  1575,   532,     0,
     0,     0,     0,    16,     0,    17,    18,     0,     0,     0,
     0,     0,    20,     0,     0,     0,  1480,     0,     0,     0,
  1481,   685,     0,     0,   168,     0,     0,  1589,     0,     0,
    26,     0,   130,   131,     0,     0,     0,     0,     0,     0,
     0,     0,  1496,  1497,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   749,   750,   473,   476,     0,
     0,     0,   766,     0,     0,     0,     0,     7,   127,   128,
    10,     0,   532,   532,     0,     0,   532,     0,     0,   532,
     0,  1319,     0,  1320,   104,  1321,     0,     0,   532,     0,
   104,     0,   934,   934,   934,    18,     0,     0,   532,     0,
  1161,     0,     0,     0,     0,     0,    21,     0,     0,     0,
     0,     0,     7,     8,     9,    10,   214,   215,   216,    26,
     0,    27,    28,    14,     7,   127,   128,    10,     0,     0,
    13,   728,   104,     0,   104,   149,   203,   203,  1190,     0,
    18,     0,     0,     0,     0,   150,    20,     0,     0,     0,
     0,    21,    18,    32,     0,    23,     0,   623,   151,     0,
     0,     0,     0,    21,    26,     0,    27,    28,   749,   750,
     0,   766,     0,     0,     0,     0,    26,     0,    27,    28,
   971,  1190,     0,     0,     0,  1421,     0,     0,     0,     0,
   972,     0,   149,     0,   104,   756,   756,   756,    32,     0,
   626,     0,   150,   973,   628,     0,     0,     0,     0,     0,
    32,   104,     0,     0,  1070,   151,     0,     0,     0,     0,
     0,     0,     0,   104,     7,     8,     9,    10,   167,    12,
    13,     0,     0,   736,     0,    14,  1254,     0,     0,     0,
     0,     0,     0,     0,    80,     0,     0,     0,     0,    16,
     0,    17,    18,   473,   476,     0,     0,   104,    20,   104,
     0,     0,     0,    21,     0,     0,     0,    23,     0,   623,
     0,     0,     0,     0,     0,     0,    26,     0,    27,    28,
     0,     0,     0,     0,     0,   473,   476,     0,     0,   104,
     0,     0,  1185,     0,   532,   532,     0,   532,     0,     0,
     0,     0,  1186,     0,     0,     0,     0,     0,     0,     0,
    32,     0,   626,     0,     0,  1187,   628,     0,     0,     0,
   532,     0,     0,   532,   532,   637,     0,     0,     0,     0,
     0,     0,     7,     8,     9,    10,   214,   215,   216,     0,
     0,     0,     0,    14,     0,     0,     0,   203,   203,   203,
   203,   203,  1190,   756,     0,     0,     0,   203,     0,     0,
    18,     0,     0,     0,     0,     0,    20,     0,     0,     0,
     0,    21,     0,     0,     0,    23,     0,   623,     0,     0,
  1190,  1190,  1190,     0,    26,     0,    27,    28,    83,     0,
     0,     0,   756,   756,   756,   756,     0,     0,   106,     0,
   193,     8,     9,     0,   167,    12,    13,   126,   134,  1591,
   194,    14,     0,     0,   145,   145,   203,   145,    32,    83,
     0,   144,     0,  1468,    80,    16,    83,    17,    18,     0,
     0,     0,     0,     0,    20,     0,     0,     0,     0,   145,
     0,    83,     0,    23,     0,     0,     0,     0,     0,   239,
     0,     0,    26,     0,   130,   131,   248,     0,     0,     7,
     8,     9,    10,   167,    12,    13,     0,     0,   248,     0,
    14,     0,     0,   756,   203,   203,   756,   756,  1424,     0,
     0,   203,     0,     0,    16,     0,    17,    18,     0,     0,
     0,     0,     0,    20,     0,     0,     0,     0,    21,     0,
     0,     0,    23,     0,     0,     0,     0,     0,     0,     0,
     0,    26,     0,    27,    28,     0,     0,   203,   978,   203,
    83,     0,     0,     0,   145,   145,     0,    30,     0,     0,
   145,     0,     0,   145,   145,   145,   104,    31,     0,     0,
     0,     0,     0,     0,   263,    32,     0,     8,     9,    83,
    33,    12,    13,    83,     0,     0,     0,    14,     0,   145,
    83,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    16,     0,    17,     0,     0,     0,   145,   145,   145,
    20,     0,   264,   265,     0,     0,     0,   756,   756,    23,
   756,   266,     0,     0,     0,     0,     0,     0,    26,     0,
   130,   131,     0,   267,     0,     0,   145,   268,   269,   270,
   271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
   281,   282,   283,   284,   285,   286,   287,   288,     0,     0,
   289,   290,   291,  1190,     0,   292,     0,     0,   293,     0,
     0,     0,     0,   145,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   294,     0,     0,     0,     0,     0,
     7,     8,     9,    10,   205,    12,   206,     0,     0,     0,
     0,    14,   756,   756,  1424,   756,     0,     0,     0,     0,
     0,   248,   145,     0,     0,    16,     0,    17,    18,     0,
     0,     0,     0,     0,    20,     0,     0,     0,     0,    21,
     0,     0,     0,    23,  1190,  1190,  1190,     0,     0,     0,
     0,     0,    26,     0,    27,    28,     0,     0,   207,     0,
     0,     0,     0,     0,   756,   104,     0,   248,    30,     0,
   203,   622,     0,   145,   145,   638,     0,     0,    31,     0,
   647,     0,     0,     0,    83,     0,    32,     7,     8,     9,
    10,    33,   786,    13,     7,     8,   787,    10,   167,    12,
    13,     0,     0,     0,     0,    14,   300,   127,   128,    10,
     0,     0,    13,     0,     0,    18,     0,     0,   684,    16,
     0,    17,    18,    19,     0,     0,    21,   248,    20,   145,
   248,     0,   623,    21,    18,     0,     0,    23,   788,    26,
   168,    27,    28,     0,   145,    21,    26,   145,    27,    28,
     0,   623,   789,     0,   790,   971,     0,     0,    26,   145,
    27,   320,    30,     0,     0,   972,     0,    83,     0,     0,
     0,     0,    31,    32,  1158,   626,     0,     0,   973,   628,
    32,     0,     0,     0,  1159,    33,     0,     0,     0,     0,
     0,     0,    32,     0,   626,   145,   145,  1160,   628,   145,
     0,   145,   145,   145,   145,     0,     0,     0,   145,     0,
     0,     0,     0,   145,     0,     0,   145,   582,   583,   584,
   585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
   595,   596,   785,    83,   583,   584,   585,   586,   587,   588,
   589,   590,   591,   592,   593,   594,   595,   596,     0,   557,
     0,   300,     8,     9,    10,   167,    12,   301,   302,   303,
   736,   304,    14,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   248,   248,   248,   248,    16,   305,    17,    18,
    19,     0,   306,   307,   308,    20,     0,   309,   310,   311,
    21,   312,   313,     0,    23,     0,   623,     0,   314,   315,
   316,   317,   318,    26,     0,    27,   320,  -315,     0,     0,
   321,     0,     0,     0,     0,     0,   322,     0,     0,   927,
     0,     0,     0,     0,     0,     0,     0,   324,   325,   928,
     0,     0,   248,     0,   145,   327,   328,   329,     0,   626,
     0,     0,   929,   628,     0,    18,     0,     0,   145,   145,
     0,   638,     0,     0,     0,     0,     0,     0,   935,   331,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   647,     0,     0,     0,     0,     0,   145,   575,   576,
   577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
   587,   588,   589,   590,   591,   592,   593,   594,   595,   596,
   786,   684,     7,     8,   787,    10,   167,    12,    13,   126,
     0,     0,     0,    14,     0,     0,   145,   638,   145,   145,
   239,   638,     0,     0,     0,     0,     0,    16,     0,    17,
    18,    19,     0,     0,     0,     0,    20,  -527,     0,     0,
     0,    21,     0,     0,   785,    23,   788,     0,   168,     0,
     0,     0,     0,     0,    26,     0,    27,    28,     0,     0,
   789,     0,   790,   145,     0,     0,     0,   638,     0,     0,
    30,     0,     0,     0,     0,   145,   145,   145,   145,   145,
    31,     0,     0,   145,     0,     0,     0,     0,    32,     0,
     0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     0,     7,     8,     9,    10,     0,     0,    13,     0,  -527,
     0,     0,   134,     0,     0,    83,     0,    83,     0,     0,
     0,     0,  1071,    83,     0,    83,     0,     0,     0,    18,
     0,   248,     0,     0,     0,     0,     0,   248,     0,     0,
    21,     0,     0,     0,   145,   145,   145,     0,     0,     0,
     0,     0,     0,    26,     0,    27,    28,   145,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   193,
     0,     0,   300,     8,     9,    10,   167,    12,    13,   194,
     0,   736,     0,    14,     0,     0,     0,    32,     0,     0,
     0,     0,   195,     0,     0,     0,     0,    16,     0,    17,
    18,     0,     0,     0,     0,     0,    20,     0,     0,     0,
     0,    21,     0,     0,     0,    23,     0,   623,     0,     0,
     0,     0,     0,     0,    26,     0,    27,   320,     0,     0,
     0,   145,   145,     0,     0,   145,     0,     0,   145,     0,
  1158,     0,     0,   248,     0,     0,     0,   145,     0,   248,
  1159,   935,   935,   935,     0,     0,     0,   145,    32,   647,
   626,     0,     0,  1160,   628,     0,     0,     0,     0,     0,
     0,   557,     0,     7,     8,     9,    10,   167,    12,   301,
   302,   303,   736,   304,    14,     0,     0,     0,     0,     0,
     0,   248,     0,   248,     0,   145,   145,   638,    16,   305,
    17,    18,    19,     0,   306,   307,   308,    20,     0,   309,
   310,   311,    21,   312,   313,     0,    23,     0,   623,     0,
   314,   315,   316,   317,   318,    26,     0,    27,    28,  -315,
     0,     0,   321,     0,     0,     0,     0,     0,   322,     0,
   935,  1215,     0,     0,     0,     0,     0,     0,     0,   324,
   325,  1216,     0,   248,   145,   145,   145,   327,   328,   329,
     0,   626,     0,     0,  1217,   628,     0,     0,   785,     0,
   248,     0,     0,  1071,   300,     8,     9,    10,   167,    12,
    13,   331,   248,   736,     0,    14,     0,     0,     0,     0,
   127,   128,     0,     0,   215,   216,     0,     0,     0,    16,
    14,    17,    18,    83,     0,     0,     0,     0,    20,     0,
     0,     0,     0,    21,     0,     0,   248,    23,   248,   623,
     0,     0,     0,    20,     0,     0,    26,     0,    27,   320,
     0,     0,    23,     0,   623,     0,     0,     0,     0,     0,
     0,    26,  1311,   130,   131,     0,     0,     0,   248,     0,
     0,     0,  1312,   145,   145,     0,   145,   624,     0,     0,
    32,     0,   626,     0,     0,  1313,   628,   625,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   626,     0,   145,
   634,   628,   145,   145,   638,     0,     0,     0,   786,     0,
     7,     8,   787,    10,   167,    12,    13,     0,     0,     0,
     0,    14,     0,     0,     0,     0,   145,   145,   145,   145,
   145,   638,   145,     0,     0,    16,   145,    17,    18,    19,
     0,     0,     0,   785,    20,  -528,     0,     0,     0,    21,
     0,     0,     0,    23,   788,     0,   168,     0,     0,   935,
   935,   935,    26,     0,    27,    28,     0,     0,   789,     0,
   790,   145,   145,   145,   145,     0,     0,     0,    30,     0,
   785,     0,    51,     0,     0,     0,     0,     0,    31,     0,
     0,     7,     8,     9,    10,   145,    32,   246,     0,     0,
   145,    33,     0,    83,     0,     0,     0,     0,    51,    51,
     0,   152,     0,    51,     0,     0,     0,  -528,     0,    18,
    51,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    21,     0,     0,    51,     0,    51,   623,     0,     0,     0,
     0,     0,     0,    26,     0,    27,    28,     0,     0,     0,
     0,     0,   145,   145,   145,   145,   145,   638,   254,   971,
   145,     0,     0,     0,     0,     0,     0,     0,     0,   972,
     0,   300,   127,   128,    10,     0,     0,    32,     0,   626,
     0,     0,   973,   628,     0,  1455,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   145,   638,   145,    18,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    21,   397,   397,     0,    51,   248,   623,     0,    51,    51,
     0,     0,   254,    26,    51,    27,   320,   152,   152,   152,
     0,     0,     8,     9,   432,     0,    12,    13,     0,  1158,
     0,     0,    14,    51,     0,     0,     0,    51,     0,  1159,
     0,     0,     0,    51,    51,     0,    16,    32,    17,   626,
     0,     0,  1160,   628,     0,    20,   145,   145,     0,   145,
     0,    51,    51,   152,    23,     0,     0,     0,     0,     0,
     0,   254,     0,    26,     0,   130,   131,     0,     0,   857,
     0,   300,     8,     9,    10,   167,    12,   301,   302,   303,
    51,   304,    14,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   935,     0,     0,     0,    16,   305,    17,    18,
    19,     0,   306,   307,   308,    20,     0,   309,   310,   311,
    21,   312,   313,     0,    23,     0,     0,    51,   314,   315,
   316,   317,   318,    26,     0,    27,   320,  1570,     0,  -794,
   321,   145,   145,   638,   145,     0,   322,     0,     0,   323,
     0,     0,     0,     0,     0,     0,     0,   324,   325,   326,
     0,     0,     0,     0,     0,   327,   328,   329,     0,     0,
     0,     0,   330,   935,   935,   935,     0,  -390,     8,     9,
  -390,  -390,    12,   246,     0,     0,     0,     0,    14,   331,
     0,     0,     0,   145,   248,     0,     0,     0,   562,   145,
     0,     0,    16,     0,    17,  -390,     0,     0,     0,     0,
     0,    20,     0,     0,     0,   397,  -390,     0,     0,     0,
    23,     0,   623,   254,     0,     0,     0,     0,    51,    26,
     0,   130,   131,     0,     0,     0,     0,     0,     7,     8,
     9,    10,   214,   215,   216,   624,     0,     0,     0,    14,
     7,     8,     9,    10,     0,   625,    13,     0,     0,     0,
     0,     0,   397,  -390,     0,   626,    18,     0,   627,   628,
     0,     0,    20,    51,     0,     0,     0,    21,    18,     0,
     0,    23,     0,   623,     0,     0,     0,     0,    51,    21,
    26,    51,    27,    28,     0,   623,     0,   432,   432,   432,
     0,     0,    26,    51,    27,    28,   971,     0,     0,     0,
     0,    51,     0,     0,     0,     0,   972,     0,  1185,  1388,
  1389,     9,    10,     0,    32,     0,   626,     0,  1186,  1016,
   628,     0,     0,     0,     0,     0,    32,     0,   626,    51,
    51,  1187,   628,    51,     0,   152,   152,   152,   432,     0,
     0,     0,    51,     0,     0,     0,     0,    51,    21,     0,
    51,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    26,     0,    27,    28,     0,     0,    51,     0,  1390,
     0,     0,     0,     0,     0,     0,     0,   193,  1552,     0,
  -483,  -483,  -483,  -483,  -483,  -483,  -483,   194,     0,  -483,
     0,  -483,     0,     0,     0,    32,   562,     0,     0,   562,
   195,     0,  -483,   562,  -483,     0,     0,     0,  -483,     0,
     0,     0,     0,     0,  -483,     0,   562,   562,   562,  -483,
     0,     0,     0,  -483,     0,  -483,     0,     0,     0,     0,
     0,   562,  -483,     0,  -483,  -483,  -483,  -483,  -483,     0,
  -483,  -483,  -483,  -483,  -483,  -483,  -483,  -483,  -483,  -483,
  -483,  -483,  -483,  -483,  -483,  -483,  -483,  -483,  -483,  -483,
  -483,  -483,  -483,     0,  -483,  -483,  -483,     0,  -483,  -483,
  -483,  -483,  -483,  -483,     0,  -483,     0,     0,     0,   254,
  1553,     0,     0,     0,     0,  -483,  -483,  -483,     0,  -483,
     0,     0,   562,   579,   580,   581,   582,   583,   584,   585,
   586,   587,   588,   589,   590,   591,   592,   593,   594,   595,
   596,    51,   575,   576,   577,   578,   579,   580,   581,   582,
   583,   584,   585,   586,   587,   588,   589,   590,   591,   592,
   593,   594,   595,   596,     0,   397,     0,     0,   300,     8,
     9,    10,   397,    12,   301,   302,   303,     0,   304,    14,
    51,    51,    51,    51,     0,     0,     0,     0,     0,     0,
  1274,     0,     0,    16,   305,    17,    18,    19,     0,   306,
   307,   308,    20,     0,   309,   310,   311,    21,   312,   313,
     0,    23,     0,   623,     0,   314,   315,   316,   317,   318,
    26,     0,    27,   320,     0,     0,     0,    51,     0,     0,
     0,    51,     0,   322,     0,     0,   927,     0,     0,    51,
    51,   432,   432,   432,   324,   325,   928,    51,     0,     0,
     0,     0,   327,   328,   329,     0,   626,   127,   128,   929,
   628,   786,   246,     7,     8,   787,    10,   167,    12,    13,
     0,     0,     0,     0,    14,     0,   331,     0,     0,    51,
     0,    51,   159,     0,    18,     0,    51,    51,    16,    51,
    17,    18,    19,     0,     0,     0,     0,    20,  -530,     0,
     0,   623,    21,     0,   204,     0,    23,   788,    26,   168,
   130,   131,     0,     0,   562,    26,     0,    27,    28,     0,
     0,   789,     0,   790,   624,     0,     0,     0,     0,     0,
     0,    30,     0,     0,   625,     0,     0,     0,     0,     0,
     0,    31,    78,     0,   626,     0,     0,   627,   628,    32,
     0,     0,     0,     0,    33,     8,     9,     0,   205,    12,
   206,     0,     0,     0,     0,    14,     0,     0,    78,    78,
  -530,    78,     0,    78,     0,     0,     0,     0,     0,    16,
    78,    17,    18,     0,     7,     8,     9,    10,    20,     0,
   520,     0,     0,    78,     0,    78,     0,    23,   159,   159,
   159,     0,     0,     0,     0,     0,    26,     0,   130,   131,
     0,     0,    18,     0,     0,   562,   562,   562,     0,     0,
     0,   432,   254,    21,   204,     0,     0,     0,     0,   623,
     0,     0,     0,     0,     0,     0,    26,     0,    27,    28,
     0,     0,   204,   204,   482,     0,     0,     0,     0,     0,
     0,     0,   971,     0,     0,     0,     0,     0,     0,    51,
    51,   152,   972,     0,     0,     0,   254,     0,     0,     0,
    32,   204,   626,     0,    78,   973,   628,     0,    78,    78,
     0,     0,     0,     0,    78,     0,     0,    78,    78,    78,
   585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
   595,   596,     0,    78,  1218,     0,     0,    78,     0,     0,
     0,     0,     0,    78,    78,   581,   582,   583,   584,   585,
   586,   587,   588,   589,   590,   591,   592,   593,   594,   595,
   596,    78,    78,    78,     0,     0,     0,    51,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   533,   786,     0,
     7,     8,   787,    10,   167,    12,    13,     0,   254,     0,
    78,    14,     0,     0,     0,     0,     0,    51,   127,   128,
     0,     0,     0,   520,     0,    16,     0,    17,    18,    19,
     0,     0,     0,     0,    20,  -529,     0,     0,     0,    21,
     0,     0,     0,    23,   788,    18,   168,    78,   631,   631,
   631,     0,    26,     0,    27,    28,     0,     0,   789,     0,
   790,     0,   623,     0,     0,     0,     0,     0,    30,    26,
     0,   130,   131,     0,     0,     0,     0,     0,    31,     0,
     0,     0,     0,     0,     0,   624,    32,     0,     0,     0,
     0,    33,     0,   432,     0,   625,   432,   432,   432,   254,
     0,     0,     0,     0,   204,   626,     0,  -529,   627,   628,
     0,     0,   300,     8,     9,    10,     0,     0,    13,     0,
    51,    51,    51,   152,   152,   152,   432,     0,   254,     0,
    51,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18,     0,     0,     0,   646,     0,     0,     0,    78,     0,
     0,    21,     0,  1218,  1218,  1218,     0,   623,     0,     0,
     0,     0,     0,     0,    26,     0,    27,   320,     0,     0,
   204,   204,     0,     0,   204,     0,   482,   482,   482,   757,
  1311,     0,     0,   204,     0,     0,     0,     0,   204,    51,
  1312,   204,     0,    78,    51,     0,     0,    51,    32,     0,
   626,     0,     0,  1313,   628,     0,     0,     0,    78,     0,
     0,    78,     0,     0,     0,     0,     7,     8,     9,    10,
     0,     0,     0,    78,     0,     0,     0,     0,     0,     0,
     0,    78,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    18,     0,   432,    51,    51,   432,
   432,   432,     0,     0,    51,    21,     0,     0,     0,    78,
    78,   623,     0,    78,     0,    78,    78,    78,    26,     0,
    27,    28,    78,     0,     0,     0,     0,    78,     0,     0,
    78,     0,     0,     0,   971,     0,     0,     0,     0,     0,
    51,    51,    51,     0,   972,     0,     0,    78,     0,     0,
     0,     0,    32,     0,   626,     0,     0,   973,   628,   893,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   631,   631,     0,   631,     0,     0,     0,
     0,     0,     0,   631,     0,     7,     8,     9,    10,     0,
    12,   301,   302,   303,     0,   304,    14,     0,     0,     0,
     0,     0,   204,     0,     0,     0,     0,     0,     0,     0,
    16,   305,    17,    18,    19,     0,   306,   307,   308,    20,
     0,   309,   310,   311,    21,   312,   313,     0,    23,     0,
   623,     0,   314,   315,   316,   317,   318,    26,     0,    27,
    28,   975,     0,   975,   975,     0,   631,     0,     0,     0,
   322,     0,     0,  1215,     0,     0,  1218,     0,     0,     0,
   646,   324,   325,  1216,     0,     0,     0,     0,     0,   327,
   328,   329,     0,   626,     0,     0,  1217,   628,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   975,     0,
     0,    78,     0,   331,     0,     0,     0,     0,     0,     0,
   204,   204,   757,   757,   757,     0,     0,     0,   204,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   300,     8,     9,    10,     0,     0,     0,  1218,  1218,  1218,
    78,    78,    78,    78,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   204,    18,     0,
     0,     0,     0,    51,     0,     0,     0,     0,     0,    21,
     0,     0,     0,     0,     0,   623,     0,     0,   202,   533,
   533,   533,    26,     0,    27,   320,     0,    78,     0,     0,
     0,    78,   631,     0,     0,     0,     0,     0,  1311,    78,
    78,     0,     0,   257,     0,     0,   261,    78,  1312,     0,
     0,     0,     0,     0,     0,     0,    32,     0,   626,     0,
     0,  1313,   628,     0,     0,     0,     0,   257,     0,   366,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    78,
     0,    78,     0,     0,     0,     0,    78,    78,     0,    78,
     0,     7,     8,     9,    10,   167,    12,    13,     0,     0,
  1021,     0,    14,     0,     0,     0,   631,   631,     0,     0,
   631,     0,     0,   631,     0,     0,    16,     0,    17,    18,
     0,     0,   631,     0,     0,    20,   631,   631,   631,     0,
    21,     0,   631,     0,    23,     0,     0,     0,   202,     0,
     0,     0,     0,    26,     0,    27,    28,     0,     0,     0,
     8,     9,     0,     0,    12,   246,   202,   202,   202,    30,
    14,     0,     0,     0,     0,     0,   488,     0,     0,    31,
   975,   975,  1191,     0,    16,     0,    17,    32,     0,     0,
     0,     0,    33,    20,     0,   202,     0,     0,     0,     0,
     0,     0,    23,     0,   623,     0,     0,     0,     0,     0,
     0,    26,     0,   130,   131,     0,     0,     0,     0,     0,
     0,   261,     0,     0,     0,  1191,     0,   624,     0,     0,
     0,     0,     0,   646,     0,   257,     0,   625,     0,   757,
   757,   757,     0,     0,     0,     0,     0,   626,     0,     0,
   627,   628,     0,     0,     0,   370,   372,     0,   204,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    78,
    78,    78,   300,     8,     9,    10,     0,    12,   537,   302,
   303,     0,   304,    14,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    16,   305,    17,
     0,    19,     0,   306,   307,   308,    20,     0,   309,   310,
   311,    21,   312,   313,  1220,    23,     0,     0,     0,   314,
   315,   316,   317,   318,    26,     0,    27,   320,   257,   261,
     0,   321,     7,   127,   128,    10,     0,   322,   893,   893,
   323,   893,     0,     0,     0,     0,     0,    78,   324,   325,
   326,     0,     0,     0,     0,     0,   327,   328,   329,     0,
    18,     0,     0,   330,   631,     0,     0,   631,   631,   631,
     0,    21,     0,     0,     0,     0,     0,    78,   202,     0,
   331,   896,     0,     0,    26,     0,    27,    28,     0,     0,
     0,   975,   975,   975,  1191,  1191,  1191,  1314,     0,     0,
    30,   975,     0,     0,     0,     0,     0,     0,     0,     0,
    31,     0,     0,     0,     0,     0,     0,     0,    32,     7,
     8,     9,    10,    33,  1191,  1191,  1191,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   757,   757,   757,   757,
     0,     0,     0,     0,   202,   202,     0,    18,   202,     0,
   202,   202,   202,   202,     0,     0,     0,   202,    21,     0,
   204,     0,   202,     0,     0,   202,     0,     0,     0,     0,
     0,    26,     0,    27,    28,     0,     0,     0,   565,     0,
    78,    78,    78,    78,    78,    78,     0,   477,     0,     0,
    78,     0,  1388,   127,   128,    10,     0,   478,     0,     0,
     0,     0,     0,     0,     0,    32,     0,     0,     0,     0,
   479,     0,     0,  1220,  1220,  1220,     0,  1314,   975,   975,
  1314,  1314,  1314,     0,     0,   975,     0,     0,     0,     0,
     0,    21,     0,     0,     0,     0,     0,  1059,     8,   787,
    10,   205,    12,   206,    26,     0,    27,    28,    14,    78,
     0,   691,  1390,     0,    78,     0,     0,    78,     0,     0,
    30,   204,    16,   204,    17,    18,     0,     0,     0,     0,
    31,    20,     0,     0,     0,     0,    21,     0,    32,     0,
    23,     0,     0,    33,     0,     0,     0,     0,     0,    26,
     0,    27,    28,     0,   127,   128,     0,  1061,   215,   216,
     0,     0,     0,     0,    14,    30,     0,    78,    78,     0,
   257,   261,     0,     0,    78,    31,     0,   738,     0,     0,
     0,     0,     0,    32,     0,     0,   202,    20,    33,     0,
     0,  1314,  1314,     0,  1314,     0,    23,     0,   623,     0,
     0,     0,     0,     0,     0,    26,     0,   130,   131,     0,
    78,    78,    78,     0,     0,     0,     0,     0,     0,     0,
     0,   624,     0,     0,     0,   202,     0,   202,   202,     0,
     0,   625,     0,     0,     0,     0,     0,   482,     0,     0,
     0,   626,     0,     0,   627,   628,   825,     0,     0,   828,
     0,     0,     0,   829,     0,   831,   832,   834,   835,   836,
     0,     0,     0,     0,     0,     0,     0,     0,   565,     0,
     0,     0,   202,     0,     0,     0,  1314,  1314,  1314,  1314,
     0,   854,     0,     0,   202,   202,   202,   202,   202,   488,
     0,     0,   202,     0,     0,     0,     8,     9,     0,   167,
    12,    13,     0,     0,   736,     0,    14,     0,   482,   482,
   482,     0,     0,     0,     0,     0,     0,     0,   261,     0,
    16,     0,    17,    18,     0,     0,  1220,     0,  1314,    20,
     0,   202,     0,     0,   204,   913,     0,     0,    23,     0,
   623,     0,   913,   629,   629,   629,     0,    26,     0,   130,
   131,     7,     8,     9,    10,   205,    12,   206,     0,     0,
     0,     0,    14,   624,     0,   102,     0,     0,     0,     0,
     0,     0,     0,   625,   121,   102,    16,     0,    17,    18,
     0,   102,   102,   626,   102,    20,   627,   628,     0,     0,
    21,     0,     0,     0,    23,     0,     0,  1220,  1220,  1220,
     0,     0,     0,    26,     0,    27,    28,     0,     0,  1465,
     0,     0,     0,     0,     0,     0,   235,     0,     0,    30,
     0,     0,     0,    78,     0,     0,     0,     0,     0,    31,
     0,     0,     0,     0,     0,     0,     0,    32,     0,     0,
     0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
     0,   691,     0,     0,     0,     7,     8,     9,    10,   205,
    12,   206,     0,     0,     0,     0,    14,   257,   261,   257,
     0,     0,     0,     0,     0,   390,     0,   121,     0,     0,
    16,     0,    17,    18,   102,   102,     0,     0,     0,    20,
     0,   102,   102,     0,    21,   102,   102,   102,    23,   418,
   102,   102,   102,     0,   202,   202,  1189,    26,     0,    27,
    28,   257,     0,     0,     0,   738,     0,     0,     0,     0,
     0,   738,     0,    30,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
     0,    32,     0,     0,     0,     0,    33,     0,     0,  1189,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   202,   202,   202,     0,     0,     0,     8,
     9,     0,   167,    12,    13,     0,     0,   736,     0,    14,
     0,     0,   202,     0,     0,     0,     0,     0,     0,   235,
   102,  1123,     0,    16,     0,    17,    18,     0,     0,     0,
     0,     0,    20,   488,     0,     0,     0,     0,     0,     0,
   102,    23,     0,   623,     0,     0,     0,     0,   629,   629,
    26,   629,   130,   131,     0,     0,     0,   854,   931,     0,
     0,     0,     0,   738,     0,     0,  1507,   913,     0,     0,
     0,     0,     0,     0,     0,     0,  1508,     0,     0,   102,
     0,     0,     0,     0,     0,     0,   626,     0,     0,  1509,
   628,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   691,     0,  1180,     0,     0,
     0,   913,     0,     0,     0,     0,   629,     0,   629,   629,
     0,   629,     0,     0,   257,     0,     0,     0,   102,     0,
   102,   102,     0,     0,     7,   127,   128,    10,     0,     0,
   520,     0,     0,     0,     0,   202,   202,   202,   202,   202,
  1189,   202,     0,  1315,   913,   202,     0,     0,     0,     0,
     0,     0,    18,   629,     0,     0,     0,  1224,     0,     7,
     8,     9,    10,    21,     0,   102,     0,  1235,  1189,  1189,
  1189,     0,     0,     0,   738,     0,    26,     0,    27,    28,
   202,   202,   202,   202,   102,     0,   738,    18,     0,     0,
     0,   102,    30,     0,   102,     0,     0,     0,    21,     0,
     0,     0,    31,     0,   202,     0,   102,     0,     0,     0,
    32,    26,     0,    27,    28,    33,     0,     0,     0,     0,
   738,     0,   738,     0,     0,     0,     0,   193,     7,     8,
     9,    10,     0,     0,   246,     0,     0,   194,     0,     0,
     0,     0,     0,     0,     0,    32,     0,   629,     0,     0,
   195,     0,  1284,     0,     0,     0,    18,     0,     0,     0,
     0,   202,   202,   202,   202,   202,  1189,    21,     0,   202,
     0,     0,     7,     8,     9,    10,     0,   102,    13,   778,
    26,     0,    27,    28,     0,     0,     0,     0,   913,     0,
     0,     0,     0,     0,     0,     0,   193,     0,     0,     0,
    18,     0,     0,   102,     0,   202,   194,   202,     0,     0,
     0,    21,     0,     0,    32,   913,     0,     0,     0,   195,
     0,   629,   629,     0,    26,   629,    27,    28,   629,     0,
     0,     0,     0,     0,     0,     0,     0,   629,     0,     0,
   477,   931,   931,   931,     0,   913,     0,   629,     0,     0,
   478,     7,     8,     9,    10,     0,     0,   520,    32,     0,
     0,     0,     0,   479,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   202,   202,  1315,   202,    18,
     0,   102,     0,     0,     0,   629,   629,   629,     0,     0,
    21,     0,   102,   102,     0,   102,   102,   300,     8,     9,
    10,     0,     0,    26,     0,    27,    28,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   193,
     0,  1189,     0,     0,     0,    18,     0,     0,     0,   194,
   931,     0,     0,     0,     0,     0,    21,    32,     0,     0,
     0,   913,   195,     0,     0,     0,     0,     0,   102,    26,
     0,    27,   320,     0,     0,   102,   121,     0,     0,     0,
   202,   202,  1189,   202,     0,   753,     0,   235,     0,     0,
     0,     0,     0,     0,     0,   754,     0,     0,     0,     0,
     0,     0,     0,    32,     0,     0,     0,     0,   755,     0,
     0,   778,  1189,  1189,  1189,     0,     0,     0,     0,  1224,
     0,   857,     0,   300,     8,     9,    10,     0,    12,   537,
   302,   303,   202,   304,    14,     0,     0,     0,   202,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   305,
    17,     0,    19,     0,   306,   307,   308,    20,     0,   309,
   310,   311,    21,   312,   313,     0,    23,     0,     0,     0,
   314,   315,   316,   317,   318,    26,   778,    27,   320,   102,
     0,     0,   321,  -794,     0,     0,     0,     0,   322,   629,
     0,   323,   629,   629,   629,     0,     0,     0,     0,   324,
   325,   326,     0,     0,     0,     0,     0,   327,   328,   329,
     0,   102,   102,   102,   330,     0,   629,   629,   629,   629,
   629,   629,   629,     0,   102,     0,   629,     0,     0,     0,
     0,   331,   300,     8,     9,    10,     0,     0,    13,     7,
     8,     9,    10,     0,     0,     0,     0,     0,     0,   931,
   931,   931,     0,     0,     0,     0,     0,   913,     0,     0,
    18,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    21,     0,     0,     0,     0,     0,     0,    21,     0,
     0,     0,     0,     0,    26,     0,    27,   320,     0,   565,
     0,    26,     0,    27,    28,     0,     0,  1462,   102,   102,
   753,     0,   102,     0,     0,   102,     0,   193,   691,     0,
   754,     0,     0,     0,   102,     0,     0,   194,    32,     0,
     0,     0,     0,   755,   102,    32,     0,     0,     0,     0,
   195,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   629,   629,   629,   629,   629,   629,     0,     0,
   629,  1470,     0,  1326,  1327,  1328,    10,   167,    12,   301,
   302,   303,     0,   304,    14,  1329,     0,  1330,  1331,  1332,
  1333,  1334,  1335,  1336,  1337,  1338,  1339,    15,    16,   305,
    17,    18,    19,     0,   306,   307,   308,    20,     0,   309,
   310,   311,    21,   312,   313,  1340,    23,  1341,     0,     0,
   314,   315,   316,   317,   318,    26,     0,  1342,   320,   723,
     0,  1343,   321,     0,     8,     9,     0,     0,   322,   246,
     0,   323,     8,     9,     0,     0,     0,   520,     0,   324,
   325,   326,     0,     0,     0,   778,     0,   327,   328,   329,
     0,    18,     0,     0,   330,     0,  1344,     0,     0,    18,
     0,     0,     0,     0,     0,     0,   629,   629,   623,   629,
  1471,   331,   102,     0,     0,    26,   623,   130,   131,     0,
     0,     0,     0,    26,     0,   130,   131,     0,     0,     0,
     0,  1507,     0,     0,     0,     0,     0,     0,     0,  1507,
     0,  1508,     0,     0,     0,     0,     0,     0,     0,  1508,
     0,   626,     0,     0,  1509,   628,     0,     0,     0,   626,
     0,     0,  1509,   628,     0,     0,     0,     0,     0,     0,
   102,   102,     0,   102,   735,     0,   300,     8,     9,    10,
   167,    12,   301,   302,   303,   736,   304,    14,     0,     0,
     0,   629,   629,   629,   629,     0,   102,     0,     0,   102,
   102,    16,   305,    17,    18,    19,     0,   306,   307,   308,
    20,     0,   309,   310,   311,    21,   312,   313,     0,    23,
     0,     0,     0,   314,   315,   316,   317,   318,    26,     0,
    27,   320,     0,     0,     0,   321,     0,     0,     0,     0,
   778,   322,     0,   629,   323,     0,     0,     0,     0,     0,
     0,     0,   324,   325,   326,     0,     0,     0,     0,     0,
   327,   328,   329,     0,     0,     0,     0,   330,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   778,     0,     0,
     0,     0,  -804,     0,   331,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   102,  1325,   102,  1326,  1327,
  1328,    10,   167,    12,   301,   302,   303,     0,   304,    14,
  1329,     0,  1330,  1331,  1332,  1333,  1334,  1335,  1336,  1337,
  1338,  1339,    15,    16,   305,    17,    18,    19,     0,   306,
   307,   308,    20,     0,   309,   310,   311,    21,   312,   313,
  1340,    23,  1341,     0,     0,   314,   315,   316,   317,   318,
    26,     0,  1342,   320,   723,     0,  1343,   321,     0,     0,
     0,     0,     0,   322,     0,     0,   323,     0,     0,     0,
     0,     0,     0,     0,   324,   325,   326,     0,     0,     0,
     0,     0,   327,   328,   329,     0,     0,     0,     0,   330,
   726,  1344,   844,   845,   846,    10,     0,    12,   537,   302,
   303,     0,   304,    14,     0,     0,   331,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    16,   305,    17,
     0,    19,     0,   306,   307,   308,    20,     0,   309,   310,
   311,    21,   312,   313,     0,    23,     0,     0,     0,   314,
   315,   316,   317,   318,    26,     0,   847,   848,   727,     0,
     0,   321,     0,     0,     0,     0,     0,   322,     0,     0,
   323,     0,     0,     0,     0,     0,     0,     0,   324,   325,
   326,     0,     0,     0,     0,     0,   327,   328,   329,     0,
     0,     0,     0,   330,   849,   557,     0,   300,     8,     9,
    10,     0,    12,   301,   302,   303,     0,   304,    14,  1008,
   331,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    16,   305,    17,    18,    19,     0,   306,   307,
   308,    20,     0,   309,   310,   311,    21,   312,   313,     0,
    23,     0,     0,     0,   314,   315,   316,   317,   318,    26,
     0,    27,   320,  -315,     0,     0,   321,     0,     0,     0,
     0,     0,   322,     0,     0,   558,     0,     0,     0,     0,
     0,     0,     0,   324,   325,   559,     0,     0,     0,     0,
     0,   327,   328,   329,     0,     0,     0,   726,   560,   844,
   845,   846,    10,     0,    12,   537,   302,   303,     0,   304,
    14,     0,     0,     0,     0,   331,     0,     0,     0,     0,
     0,     0,     0,     0,    16,   305,    17,     0,    19,     0,
   306,   307,   308,    20,     0,   309,   310,   311,    21,   312,
   313,     0,    23,     0,     0,     0,   314,   315,   316,   317,
   318,    26,     0,   847,   848,   727,     0,     0,   321,     0,
     0,     0,     0,     0,   322,     0,     0,   323,     0,     0,
     0,     0,     0,     0,     0,   324,   325,   326,     0,     0,
     0,     0,     0,   327,   328,   329,     0,     0,     0,     0,
   330,   849,   726,     0,   844,   845,   846,    10,     0,    12,
   537,   302,   303,     0,   304,    14,     0,   331,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
   305,    17,     0,    19,     0,   306,   307,   308,    20,     0,
   309,   310,   311,    21,   312,   313,     0,    23,     0,     0,
     0,   314,   315,   316,   317,   318,    26,     0,   847,   848,
   727,     0,     0,   321,     0,     0,     0,     0,     0,   322,
     0,     0,   323,     0,     0,     0,     0,     0,     0,     0,
   324,   325,   326,     0,     0,     0,     0,     0,   327,   328,
   329,     0,     0,     0,   726,   330,   844,   845,   846,    10,
     0,    12,   537,   302,   303,     0,   304,    14,     0,     0,
     0,  -487,   331,     0,     0,     0,     0,     0,     0,     0,
     0,    16,   305,    17,     0,    19,     0,   306,   307,   308,
    20,     0,   309,   310,   311,    21,   312,   313,     0,    23,
     0,     0,     0,   314,   315,   316,   317,   318,    26,     0,
   847,   848,   727,     0,     0,   321,     0,     0,     0,     0,
     0,   322,     0,     0,   323,     0,     0,     0,     0,     0,
     0,     0,   324,   325,   326,     0,     0,     0,     0,     0,
   327,   328,   329,     0,     0,     0,   726,   330,   300,     8,
     9,    10,     0,    12,   537,   302,   303,     0,   304,    14,
     0,     0,     0,  1364,   331,     0,     0,     0,     0,     0,
     0,     0,     0,    16,   305,    17,     0,    19,     0,   306,
   307,   308,    20,     0,   309,   310,   311,    21,   312,   313,
     0,    23,     0,     0,     0,   314,   315,   316,   317,   318,
    26,     0,    27,   320,   727,     0,     0,   321,     0,     0,
     0,     0,     0,   322,     0,     0,   323,     0,     0,     0,
     0,     0,     0,     0,   324,   325,   326,     0,     0,     0,
     0,     0,   327,   328,   329,     0,     0,     0,     0,   330,
     0,   557,     0,     7,     8,     9,    10,  1368,    12,   301,
   302,   303,     0,   304,    14,     0,   331,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   305,
    17,    18,    19,     0,   306,   307,   308,    20,     0,   309,
   310,   311,    21,   312,   313,     0,    23,     0,     0,     0,
   314,   315,   316,   317,   318,    26,     0,    27,    28,  -315,
     0,     0,   321,     0,     0,     0,     0,     0,   322,     0,
     0,  1539,     0,     0,     0,     0,     0,     0,     0,   324,
   325,  1540,     0,     0,     0,     0,     0,   327,   328,   329,
     0,     0,     0,   726,  1541,   300,     8,     9,    10,     0,
    12,   537,   302,   303,     0,   304,    14,     0,     0,     0,
     0,   331,     0,     0,     0,     0,     0,     0,     0,     0,
    16,   305,    17,     0,    19,     0,   306,   307,   308,    20,
     0,   309,   310,   311,    21,   312,   313,     0,    23,     0,
     0,     0,   314,   315,   316,   317,   318,    26,     0,    27,
   320,   727,     0,     0,   321,     0,     0,     0,     0,     0,
   322,     0,     0,   323,     0,     0,     0,     0,     0,     0,
     0,   324,   325,   326,     0,     0,     0,     0,     0,   327,
   328,   329,     0,     0,     0,  1623,   330,   300,     8,     9,
    10,     0,    12,   301,   302,   303,     0,   304,    14,     0,
     0,     0,     0,   331,     0,     0,     0,     0,     0,     0,
     0,     0,    16,   305,    17,     0,    19,     0,   306,   307,
   308,    20,     0,   309,   310,   311,    21,   312,   313,     0,
    23,     0,     0,     0,   314,   315,   316,   317,   318,    26,
     0,    27,   320,     0,     0,  -196,   321,     0,     0,     0,
     0,     0,   322,     0,     0,   323,     0,     0,     0,     0,
     0,     0,     0,   324,   325,   326,     0,     0,     0,     0,
     0,   327,   328,   329,     0,     0,     0,   857,   330,   300,
     8,     9,    10,     0,    12,   537,   302,   303,     0,   304,
    14,     0,     0,     0,     0,   331,     0,     0,     0,     0,
     0,     0,     0,     0,    16,   305,    17,     0,    19,     0,
   306,   307,   308,    20,     0,   309,   310,   311,    21,   312,
   313,     0,    23,     0,     0,     0,   314,   315,   316,   317,
   318,    26,     0,    27,   320,     0,     0,     0,   321,     0,
     0,     0,     0,     0,   322,     0,     0,   323,     0,     0,
     0,     0,     0,     0,     0,   324,   325,   326,     0,     0,
     0,     0,     0,   327,   328,   329,     0,     0,     0,   949,
   330,   300,     8,     9,    10,     0,    12,   537,   302,   303,
     0,   304,    14,     0,     0,  -794,     0,   331,     0,     0,
     0,     0,     0,     0,     0,     0,    16,   305,    17,     0,
    19,     0,   306,   307,   308,    20,     0,   309,   310,   311,
    21,   312,   313,     0,    23,     0,     0,     0,   314,   315,
   316,   317,   318,    26,     0,    27,   320,     0,     0,     0,
   321,     0,     0,     0,     0,     0,   322,     0,     0,   323,
     0,     0,     0,     0,     0,     0,     0,   324,   325,   326,
     0,     0,     0,     0,     0,   327,   328,   329,     0,     0,
     0,   951,   330,   300,     8,     9,    10,     0,    12,   537,
   302,   303,     0,   304,    14,     0,     0,     0,     0,   331,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   305,
    17,     0,    19,     0,   306,   307,   308,    20,     0,   309,
   310,   311,    21,   312,   313,     0,    23,     0,     0,     0,
   314,   315,   316,   317,   318,    26,     0,    27,   320,     0,
     0,     0,   321,     0,     0,     0,     0,     0,   322,     0,
     0,   323,     0,     0,     0,     0,     0,     0,     0,   324,
   325,   326,     0,     0,     0,     0,     0,   327,   328,   329,
     0,     0,     0,  1588,   330,   300,     8,     9,    10,     0,
    12,   537,   302,   303,     0,   304,    14,     0,     0,     0,
     0,   331,     0,     0,     0,     0,     0,     0,     0,     0,
    16,   305,    17,     0,    19,     0,   306,   307,   308,    20,
     0,   309,   310,   311,    21,   312,   313,     0,    23,     0,
     0,     0,   314,   315,   316,   317,   318,    26,     0,    27,
   320,     0,     0,     0,   321,     0,     0,     0,     0,     0,
   322,     0,     0,   323,     0,     0,     0,     0,     0,     0,
     0,   324,   325,   326,     0,     0,     0,     0,     0,   327,
   328,   329,     0,     0,     0,     0,   330,     0,     0,     0,
  1326,  1327,  1328,    10,   167,    12,   301,   302,   303,     0,
   304,    14,  1329,   331,  1330,  1331,  1332,  1333,  1334,  1335,
  1336,  1337,  1338,  1339,    15,    16,   305,    17,    18,    19,
     0,   306,   307,   308,    20,     0,   309,   310,   311,    21,
   312,   313,  1340,    23,  1341,     0,     0,   314,   315,   316,
   317,   318,    26,     0,  1342,   320,   723,     0,  1343,   321,
     0,     0,     0,     0,     0,   322,     0,     0,   323,     0,
     0,     0,     0,     0,     0,     0,   324,   325,   326,     0,
     0,     0,     0,     0,   327,   328,   329,     0,     0,     0,
     0,   330,     0,  1344,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,  1475,   331,  1326,
  1327,  1328,    10,   167,    12,   301,   302,   303,     0,   304,
    14,  1329,     0,  1330,  1331,  1332,  1333,  1334,  1335,  1336,
  1337,  1338,  1339,    15,    16,   305,    17,    18,    19,     0,
   306,   307,   308,    20,     0,   309,   310,   311,    21,   312,
   313,  1340,    23,  1341,     0,     0,   314,   315,   316,   317,
   318,    26,     0,  1342,   320,   723,     0,  1343,   321,     0,
     0,     0,     0,     0,   322,     0,     0,   323,     0,     0,
     0,     0,     0,     0,     0,   324,   325,   326,     0,     0,
     0,     0,     0,   327,   328,   329,     0,     0,     0,     0,
   330,     0,  1344,     0,  1326,  1327,  1328,    10,   167,    12,
   301,   302,   303,     0,   304,    14,  1329,   331,  1330,  1331,
  1332,  1333,  1334,  1335,  1336,  1337,  1338,  1339,    15,    16,
   305,    17,    18,    19,     0,   306,   307,   308,    20,     0,
   309,   310,   311,    21,   312,   313,  1340,    23,  1341,     0,
     0,   314,   315,   316,   317,   318,    26,     0,  1342,   320,
  1597,     0,  1343,   321,     0,     0,     0,     0,     0,   322,
     0,     0,   323,     0,     0,     0,     0,     0,     0,     0,
   324,   325,   326,     0,     0,     0,     0,     0,   327,   328,
   329,     0,     0,     0,     0,   330,     0,  1344,     0,  1326,
  1327,  1328,    10,   167,    12,   301,   302,   303,     0,   304,
    14,  1329,   331,  1330,  1331,  1332,  1333,  1334,  1335,  1336,
  1337,  1338,  1339,    15,    16,   305,    17,    18,    19,     0,
   306,   307,   308,    20,     0,   309,   310,   311,    21,   312,
   313,  1340,    23,  1341,     0,     0,   314,   315,   316,   317,
   318,    26,     0,  1342,   320,     0,     0,  1343,   321,     0,
     0,     0,     0,     0,   322,     0,     0,   323,     0,     0,
     0,     0,     0,     0,     0,   324,   325,   326,     0,     0,
     0,     0,     0,   327,   328,   329,     0,     0,     0,     0,
   330,     0,  1344,   300,     8,     9,    10,   167,    12,   301,
   302,   303,   736,   304,    14,     0,     0,   331,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   305,
    17,    18,    19,     0,   306,   307,   308,    20,     0,   309,
   310,   311,    21,   312,   313,     0,    23,     0,   623,     0,
   314,   315,   316,   317,   318,    26,     0,    27,   320,     0,
     0,     0,   321,     0,     0,     0,     0,     0,   322,     0,
     0,   927,     0,     0,     0,     0,     0,     0,     0,   324,
   325,   928,     0,     0,     0,     0,     0,   327,   328,   329,
     0,   626,     0,     0,   929,   628,     7,     8,     9,    10,
   167,    12,   301,   302,   303,   736,   304,    14,     0,     0,
     0,   331,     0,     0,     0,     7,     8,     9,    10,     0,
     0,    16,   305,    17,    18,    19,     0,   306,   307,   308,
    20,     0,   309,   310,   311,    21,   312,   313,     0,    23,
     0,   623,     0,   314,   315,   316,   317,   318,    26,     0,
    27,    28,     0,     0,    21,   321,     0,     0,     0,     0,
     0,   322,     0,     0,  1215,     0,     0,    26,     0,    27,
    28,     0,   324,   325,  1216,     0,     0,     0,     0,     0,
   327,   328,   329,   193,   626,     0,     0,  1217,   628,   300,
     8,     9,    10,   194,    12,   537,   302,   303,     0,   304,
    14,    32,     0,     0,   331,     0,   195,     0,     0,     0,
     0,     0,     0,     0,    16,   305,    17,    18,    19,     0,
   306,   307,   308,    20,     0,   309,   310,   311,    21,   312,
   313,     0,    23,     0,     0,     0,   314,   315,   316,   317,
   318,    26,     0,    27,   320,     0,     0,     0,   321,     0,
     0,     0,     0,     0,   322,     0,     0,   558,     0,     0,
     0,     0,     0,     0,     0,   324,   325,   559,     0,     0,
     0,     0,     0,   327,   328,   329,   300,     8,     9,    10,
   560,    12,   537,   302,   303,     0,   304,    14,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   331,     0,     0,
     0,    16,   305,    17,     0,    19,     0,   306,   307,   308,
    20,     0,   309,   310,   311,    21,   312,   313,     0,    23,
     0,     0,     0,   314,   315,   316,   317,   318,    26,     0,
    27,   320,     0,     0,  1448,   321,     0,     0,     0,     0,
     0,   322,     0,     0,   323,     0,     0,     0,     0,     0,
     0,     0,   324,   325,   326,     0,     0,     0,     0,     0,
   327,   328,   329,     0,     0,     0,     0,   330,   300,     8,
     9,    10,   167,    12,   301,   302,   303,     0,   304,    14,
     0,     0,     0,     0,   331,     0,     0,     0,     0,     0,
     0,     0,     0,    16,   305,    17,    18,    19,     0,   306,
   307,   308,    20,     0,   309,   310,   311,    21,   312,   313,
     0,    23,     0,     0,     0,   314,   315,   316,   317,   318,
    26,     0,    27,   320,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   322,     0,     0,   323,     0,     0,     0,
     0,     0,     0,     0,   324,   325,   326,     0,     0,     0,
     0,     0,   327,   328,   329,     7,     8,     9,    10,   330,
    12,   537,   302,   303,     0,   304,    14,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   331,     0,     0,     0,
    16,   305,    17,    18,    19,     0,   306,   307,   308,    20,
     0,   309,   310,   311,    21,   312,   313,     0,    23,     0,
     0,     0,   314,   315,   316,   317,   318,    26,     0,    27,
    28,     0,     0,     0,   321,     0,     0,     0,     0,     0,
   322,     0,     0,  1539,     0,     0,     0,     0,     0,     0,
     0,   324,   325,  1540,     0,     0,     0,     0,     0,   327,
   328,   329,   300,     8,     9,    10,  1541,    12,   301,   302,
   303,     0,   304,    14,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   331,     0,     0,     0,    16,   305,    17,
     0,    19,     0,   306,   307,   308,    20,     0,   309,   310,
   311,    21,   312,   313,     0,    23,     0,     0,     0,   314,
   315,   316,   317,   318,    26,     0,   319,   320,     0,     0,
     0,   321,     0,     0,     0,     0,     0,   322,     0,     0,
   323,     0,     0,     0,     0,     0,     0,     0,   324,   325,
   326,     0,     0,     0,     0,     0,   327,   328,   329,   300,
     8,     9,    10,   330,    12,   301,   302,   303,     0,   304,
    14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   331,     0,     0,     0,    16,   305,    17,     0,    19,     0,
   306,   307,   308,    20,     0,   309,   310,   311,    21,   312,
   313,     0,    23,     0,     0,     0,   314,   315,   316,   317,
   318,    26,     0,    27,   320,     0,     0,     0,   321,     0,
     0,     0,     0,     0,   322,     0,     0,   323,     0,     0,
     0,     0,     0,     0,     0,   324,   325,   326,     0,     0,
     0,     0,     0,   327,   328,   329,   300,     8,     9,    10,
   330,    12,   537,   302,   303,     0,   304,    14,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   331,     0,     0,
     0,    16,   305,    17,     0,    19,     0,   306,   307,   308,
    20,     0,   309,   310,   311,    21,   312,   313,     0,    23,
     0,     0,     0,   314,   315,   316,   317,   318,    26,     0,
    27,   320,     0,     0,     0,   321,     0,     0,     0,     0,
     0,   322,     0,     0,   323,     0,     0,     0,     0,     0,
     0,     0,   324,   325,   326,     0,     0,     0,     0,     0,
   327,   328,   329,   300,     8,     9,    10,   330,    12,   537,
   302,   303,     0,   304,    14,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   331,     0,     0,     0,    16,   305,
    17,     0,    19,     0,   306,   307,   308,    20,     0,   309,
   310,   311,    21,   312,   313,     0,    23,     0,     0,     0,
   314,   315,   316,   317,   318,    26,     0,    27,   320,   572,
     0,     0,     0,     0,     0,     0,     0,     0,   322,     0,
     0,   323,     0,     0,     0,     0,     0,     0,     0,   324,
   325,   326,     0,     0,     0,     0,     0,   327,   328,   329,
   300,     8,     9,    10,   573,    12,   537,   302,   303,     0,
   304,    14,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   331,     0,     0,     0,    16,   305,    17,     0,    19,
     0,   306,   307,   308,    20,     0,   309,   310,   311,    21,
   312,   313,     0,    23,     0,     0,     0,   314,   315,   316,
   317,   318,    26,     0,    27,   320,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   322,     0,     0,   323,     0,
     0,     0,     0,     0,     0,     0,   324,   325,   326,     0,
     0,     0,     0,     0,   327,   328,   329,     0,     0,     0,
     0,   330,   611,   300,     8,     9,    10,     0,    12,   537,
   302,   303,     0,   304,    14,     0,     0,     0,   331,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   305,
    17,    18,    19,     0,   306,   307,   308,    20,     0,   309,
   310,   311,    21,   312,   313,     0,    23,     0,     0,     0,
   314,   315,   316,   317,   318,    26,     0,    27,   320,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   322,     0,
     0,   558,     0,     0,     0,     0,     0,     0,     0,   324,
   325,   559,     0,     0,     0,     0,     0,   327,   328,   329,
  1173,     8,     9,    10,   560,    12,   537,   302,   303,     0,
   304,    14,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   331,     0,     0,     0,    16,   305,    17,     0,    19,
     0,   306,   307,   308,    20,     0,   309,   310,   311,    21,
   312,   313,     0,    23,     0,     0,     0,   314,   315,   316,
   317,   318,    26,     0,    27,   320,     0,     0,     0,   321,
     0,     0,     0,     0,     0,   322,     0,     0,   323,     0,
     0,     0,     0,     0,     0,     0,   324,   325,   326,     0,
     0,     0,     0,     0,   327,   328,   329,     7,     8,     9,
    10,   330,    12,   301,   302,   303,     0,   304,    14,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   331,     0,
     0,     0,    16,   305,    17,    18,    19,     0,   306,   307,
   308,    20,     0,   309,   310,   311,    21,   312,   313,     0,
    23,     0,     0,     0,   314,   315,   316,   317,   318,    26,
     0,    27,    28,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   322,     0,     0,  1539,     0,     0,     0,     0,
     0,     0,     0,   324,   325,  1540,     0,     0,     0,     0,
     0,   327,   328,   329,   300,     8,     9,    10,  1541,    12,
   537,   302,   303,     0,   304,    14,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   331,     0,     0,     0,    16,
   305,    17,     0,    19,     0,   306,   307,   308,    20,     0,
   309,   310,   311,    21,   312,   313,     0,    23,     0,     0,
     0,   314,   315,   316,   317,   318,    26,     0,    27,   320,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   322,
     0,     0,   323,     0,     0,     0,     0,     0,     0,     0,
   324,   325,   326,     0,     0,     0,     0,     0,   327,   328,
   329,   300,     8,     9,    10,   538,    12,   537,   302,   303,
     0,   304,    14,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   331,     0,     0,     0,    16,   305,    17,     0,
    19,     0,   306,   307,   308,    20,     0,   309,   310,   311,
    21,   312,   313,     0,    23,     0,     0,     0,   314,   315,
   316,   317,   318,    26,     0,    27,   320,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   322,     0,     0,   323,
     0,     0,     0,     0,     0,     0,     0,   324,   325,   326,
     0,     0,     0,     0,     0,   327,   328,   329,   300,     8,
     9,    10,   541,    12,   537,   302,   303,     0,   304,    14,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   331,
     0,     0,     0,    16,   305,    17,     0,    19,     0,   306,
   307,   308,    20,     0,   309,   310,   311,    21,   312,   313,
     0,    23,     0,     0,     0,   314,   315,   316,   317,   318,
    26,     0,    27,   320,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   322,     0,     0,   323,     0,     0,     0,
     0,     0,     0,     0,   324,   325,   326,     0,     0,     0,
     0,     0,   327,   328,   329,   300,     8,     9,    10,   330,
    12,   537,   302,   303,     0,   304,    14,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   331,     0,     0,     0,
    16,   305,    17,     0,    19,     0,   306,   307,   308,    20,
     0,   309,   310,   311,    21,   312,   313,     0,    23,     0,
     0,     0,   314,   315,   316,   317,   318,    26,     0,    27,
   320,     8,     9,     0,     0,     0,    13,     0,     0,     0,
   322,     0,     0,   323,     0,     0,     0,     0,     0,     0,
     0,   324,   325,   326,     0,     0,     0,     0,    18,   327,
   328,   329,     0,     0,     0,     0,   545,     0,     0,     0,
     0,     0,  1523,     0,     0,   623,     0,     0,     0,     0,
     0,     0,    26,   331,   130,   131,   575,   576,   577,   578,
   579,   580,   581,   582,   583,   584,   585,   586,  1507,   588,
   589,   590,   591,   592,   593,   594,   595,   596,  1508,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   626,     0,
     0,  1509,   628,  1524,   575,   576,   577,   578,   579,   580,
   581,   582,   583,   584,   585,   586,   587,   588,   589,   590,
   591,   592,   593,   594,   595,   596,   575,   576,   577,   578,
   579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
   589,   590,   591,   592,   593,   594,   595,   596,   580,   581,
   582,   583,   584,   585,   586,   587,   588,   589,   590,   591,
   592,   593,   594,   595,   596,     0,     0,   664,     0,     0,
  1611,   575,   576,   577,   578,   579,   580,   581,   582,   583,
   584,   585,   586,   587,   588,   589,   590,   591,   592,   593,
   594,   595,   596,  1605,   575,   576,   577,   578,   579,   580,
   581,   582,   583,   584,   585,   586,   587,   588,   589,   590,
   591,   592,   593,   594,   595,   596,   575,   576,   577,   578,
   579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
   589,   590,   591,   592,   593,   594,   595,   596
};

static const short yycheck[] = {     4,
   161,   209,   175,     4,   350,    57,   149,   150,   176,   174,
    23,   721,   403,   456,   126,    55,   486,   356,   156,   403,
   403,   304,   305,     4,   508,   308,   356,   885,   461,   134,
    35,    80,    80,   570,    35,    46,   650,    42,    14,   247,
     4,   251,    42,   469,   807,    84,    42,   133,   134,   374,
   813,     4,    57,   696,    35,   338,   124,    90,   791,    92,
   793,    42,   607,  1430,   133,    76,    55,    72,   801,  1243,
  1244,    35,   243,   441,  1345,    54,  1521,     4,    42,    84,
    42,  1520,    35,    88,   136,    90,  1260,    92,   296,    42,
   704,   209,   703,    42,     1,   144,    12,   217,   218,    11,
   218,    11,   107,   108,   137,    11,     9,    83,    35,    38,
  1522,    25,     4,    27,     1,    42,  1355,    60,    33,  1544,
     0,   564,     7,  1362,   176,    55,   357,   358,  1567,     1,
   106,   136,   137,    63,   139,   175,    27,    59,    30,    31,
    31,  1566,   350,    35,    60,    59,   356,    63,     0,    63,
    42,    63,    59,    38,   203,   136,    63,    59,   628,    62,
   165,    63,   925,    63,   169,   165,    25,   110,    27,   169,
    61,   176,    59,   169,    65,    75,   155,    99,   409,   410,
    61,   110,    96,   136,   165,    75,   175,    59,   169,    96,
  1602,    63,    84,   109,   540,   110,     4,   109,   494,   109,
    59,  1626,   213,   109,    63,   169,  1651,   169,     3,     4,
     5,     6,   165,  1387,   262,   511,   169,     4,     5,   110,
   169,   200,  1396,  1397,    96,  1399,    25,    35,  1667,   110,
     3,     4,     5,   222,    42,    48,   720,    96,     4,    75,
  1607,    60,   169,     4,   136,     4,     5,    42,   484,     4,
  1521,    61,    65,    25,    49,    27,   492,   149,   150,    48,
    59,   347,    57,    58,    63,    12,    60,    49,    55,    35,
    57,    58,   248,   165,    35,    48,    84,   169,   347,   722,
    35,    94,    55,  1046,    57,    58,  1525,    59,   449,   394,
   109,    63,   297,    94,    89,  1058,    55,    96,    57,    58,
   110,   193,   194,   686,   343,    94,    95,    60,   360,    60,
    94,    39,    71,    60,    94,   109,    63,   647,   386,    33,
   109,    94,    81,   966,    96,   330,   359,    55,   136,  1092,
   941,  1094,    63,   944,   477,   478,    95,  1576,   343,   884,
    60,    61,   480,    42,    75,    75,   351,   715,   716,    60,
    61,   676,   743,    48,   359,   360,   109,   165,   109,   743,
    59,   169,     8,     9,    12,   405,   306,   307,    14,    61,
   490,   491,    61,   491,   985,   986,  1550,  1551,   498,   360,
   356,   807,    48,   323,    75,    60,   326,   813,  1627,   329,
   510,    37,   332,   739,    48,    60,   336,    94,   403,    94,
    46,   406,    48,  1570,   344,    61,   616,   360,    60,   529,
    75,    76,    60,    78,   109,    63,   405,    65,   110,    25,
   651,   110,   108,  1037,    76,  1283,    48,    61,    94,     3,
     4,     5,    48,   970,   109,   149,   150,   151,   443,   403,
    94,    95,    25,   443,    27,    55,     3,   443,    94,     6,
    48,   343,  1619,    31,   887,   109,   926,   509,    63,    48,
    59,   509,   443,    48,   469,    14,    65,    65,   360,   502,
   169,    59,    94,    22,    31,    48,    59,    48,    94,    95,
    63,   195,   471,    57,    58,    42,    55,   109,    55,   500,
   443,   480,    65,   109,    75,   484,    94,   502,    33,   925,
    57,    58,   535,   492,   509,    94,    95,    81,    75,    94,
   209,   403,    48,    96,    71,    48,    65,    48,   217,   218,
   109,    94,    95,    94,    81,    76,  1259,    78,   509,    59,
   535,   110,    89,   538,    48,   343,   541,    94,    63,    94,
   545,    48,   547,   548,   549,   550,   551,    48,   247,   714,
    75,   443,   360,  1164,  1165,   560,   509,  1415,    94,    95,
  1044,    94,  1005,    94,    95,   570,    48,    55,   573,   608,
     4,     5,   677,   109,    55,   124,   967,   469,    55,   684,
    94,    95,   509,   967,   967,   477,   478,    94,     3,     4,
     5,    76,   823,    94,    95,   403,   935,   296,   684,   148,
   820,   821,   822,   608,   775,   935,   777,    48,    60,    61,
    63,   782,    94,   653,   149,   150,   151,   509,   558,   559,
  1046,    48,   627,    57,    58,   833,   349,   350,   351,   634,
    48,   109,  1058,     4,     5,   443,    48,    55,     9,    55,
     4,     5,    57,    58,     4,     5,   679,   767,   931,     9,
    48,   350,   692,    94,   694,   695,   109,    75,    48,    75,
   195,   469,   638,  1133,   653,    45,  1092,    94,  1094,   107,
   108,    31,   685,   785,   679,    55,    94,    62,    58,  1112,
  1113,    48,    94,   109,    55,    49,    57,    58,   693,   238,
   239,    48,   697,    57,    58,    55,    94,    57,    58,   739,
    71,   509,   251,   692,    94,   694,   695,   720,   407,    95,
    81,    71,     3,     4,     5,  1199,   608,    81,    63,  1129,
  1130,    81,  1132,    11,    95,   935,    48,    94,    48,   960,
    75,   109,   624,   625,    94,   627,    55,    94,   743,   791,
    55,   793,   634,   791,   443,   793,   798,   799,    63,   801,
   739,   799,  1236,   801,   109,   140,    75,   110,   798,    48,
    75,    63,    99,   477,   478,   479,    57,    58,     4,     5,
    48,   156,    94,   322,    94,   808,   809,    55,   811,    61,
  1213,    55,  1128,   794,   795,    94,   791,     3,   793,  1222,
  1223,   490,   491,   804,   799,   933,   801,    75,  1231,   498,
   608,    75,   807,   808,   809,    94,   811,   109,   813,   798,
   791,   510,   793,    49,    61,   364,    94,    60,    61,   627,
   801,    57,    58,    75,   373,   112,   634,   212,   993,    55,
   529,    60,    61,     4,     5,   220,    48,   386,   791,    95,
   793,  1274,    27,    55,    95,    81,    31,    55,   801,    75,
    63,   743,   237,   112,    12,  1086,  1087,  1088,     3,     4,
     5,   753,   754,    75,   791,    75,   793,    75,    75,    27,
  1041,  1042,  1043,    31,   801,    60,    61,    94,   883,     4,
     5,    75,    94,   888,    55,    94,    57,    58,     8,     9,
    48,    75,   182,    60,    14,     3,     4,     5,     6,   791,
    71,   793,    60,    61,    49,    63,    11,    65,    55,   801,
    81,    55,    57,    58,   919,   807,    63,    37,   110,    63,
   925,   813,   109,  1633,   929,    60,    46,   109,    75,   978,
   109,    75,    57,    58,    42,   743,    94,    95,    55,   109,
    55,  1374,   477,   478,   479,    75,    63,    55,    63,    57,
    58,   109,    55,    61,    75,   654,   896,   506,    75,   935,
    75,    75,   967,    71,   969,   970,    60,   109,   973,   692,
   110,   694,   695,    81,   697,     3,     4,     5,   110,  1412,
   109,    89,    76,   791,    78,   793,    94,   927,   928,   112,
     3,     4,     5,   801,     4,     5,   695,  1049,  1441,   807,
   112,     4,     5,   967,    27,   813,    60,    61,  1354,  1049,
    60,  1016,    55,    75,  1457,    65,   739,  1155,    84,    85,
    63,  1070,  1070,   572,  1029,    75,    76,  1079,   466,    57,
    58,  1079,    75,   925,  1039,   927,   928,   929,    75,    49,
   739,  1046,  1185,  1186,    57,    58,    49,    57,    58,    55,
  1188,  1062,   112,  1058,    57,    58,    75,  1068,  1069,   112,
  1049,  1072,  1073,  1294,   109,  1076,   451,   616,   767,    60,
    61,    81,  1215,  1216,  1079,   967,    60,    61,    81,   971,
   972,   973,    60,    61,     4,     5,   471,  1092,   109,  1094,
    59,     3,     4,     5,     6,   480,    60,    61,  1079,    55,
   109,  1544,   109,     8,  1137,    94,    48,   112,    65,   547,
   833,    31,   497,    60,    94,   110,    55,   925,    61,  1124,
    37,   929,   109,  1566,  1016,    65,  1079,    65,    48,    65,
    42,    61,  1137,   109,   833,    55,   685,    57,    58,   577,
    63,  1190,   109,    55,   109,    57,    58,   696,   109,   109,
  1593,    71,  1079,   112,  1046,  1160,    65,    65,    65,   967,
    76,    81,    94,     4,     5,   973,  1058,   605,     9,  1560,
  1308,    91,    60,   611,    94,    95,  1560,    89,   727,  1352,
   109,  1354,  1187,  1626,   907,  1353,  1199,  1079,   109,    76,
    31,   914,    76,  1182,   109,  1135,   109,    76,   109,  1188,
  1092,    76,  1094,   109,  1647,  1210,  1254,  1259,  1016,  1210,
   933,  1259,  1217,   109,    55,   109,    57,    58,  1564,     3,
     4,     5,     6,    63,  1657,     3,     4,     5,     6,  1210,
    71,    81,    82,    83,    84,    85,     4,     5,  1046,    63,
    81,  1230,    60,   109,     3,     4,     5,    63,   109,   109,
  1058,    95,    89,    94,  1259,   112,     4,     5,    42,   973,
   112,    75,  1251,    31,    42,    49,  1158,  1159,  1160,    48,
   109,  1079,   110,    57,    58,  1215,  1216,   109,  1259,    57,
    58,   112,   112,  1210,  1092,   110,  1094,    55,   109,    57,
    58,     4,     5,  1185,  1186,  1187,     9,    81,    57,    58,
    59,    49,  1016,    71,   109,    89,  1259,   109,  1313,    57,
    58,    89,  1352,    81,  1354,   109,    61,    60,  1210,  1308,
    60,    65,    63,  1215,  1216,  1217,    94,    65,    60,   109,
    94,    94,  1259,    81,   109,  1227,  1228,     4,     5,    94,
  1345,    94,    55,   110,    57,    58,   112,   109,  1353,   110,
  1355,   109,  1160,   109,  1355,     8,  1564,  1362,    71,   109,
   109,  1362,     4,  1352,  1345,  1354,  1371,  1259,    81,    33,
     3,     4,     5,   109,  1355,  1536,     3,     4,     5,  1187,
   109,  1362,    49,  1394,  1395,   112,   110,   109,   109,   109,
    57,    58,   109,    35,   109,   109,  1539,  1540,   109,    65,
    42,    55,  1210,   109,   953,  1345,     3,     4,     5,  1217,
     7,     8,     9,    55,    81,    57,   109,   966,  1345,  1311,
  1312,  1313,    55,    63,    57,    58,    59,   112,  1355,    48,
    57,    58,  1155,   109,    31,  1362,   109,   109,   973,    97,
    37,    63,     4,     5,    61,    63,     8,     9,    61,  1614,
     9,  1259,    14,  1345,   892,    61,  1467,   109,    55,  1182,
    57,    58,    59,  1355,    16,  1188,    28,    61,    30,    94,
  1362,  1185,  1186,  1187,   109,    37,     3,     4,     5,   109,
   770,  1016,    94,   109,    46,   109,   109,     3,     4,     5,
     6,    61,    65,    55,   136,    57,    58,    59,   140,    55,
    17,  1215,  1216,  1217,  1509,  1313,    48,   104,   105,   106,
  1515,    94,   112,    94,    61,  1520,  1521,  1522,    55,  1520,
  1525,  1510,   907,   165,  1525,  1565,    42,   169,    55,   914,
    57,    58,    94,   175,   176,   109,  1541,  1345,    61,  1520,
  1521,    57,    58,   109,  1525,    87,    88,  1355,   933,   109,
    92,    93,    94,    95,  1362,  1560,   109,     3,     4,     5,
     6,    11,  1567,   108,  1113,    98,  1567,    61,    61,    61,
  1559,  1576,    94,    60,    65,  1576,  1565,   109,    30,    31,
   222,    33,    61,   109,  1595,  1308,  1567,     3,     4,     5,
     3,     4,     5,  1520,  1521,  1576,    42,  1602,  1525,  1539,
  1540,  1039,   109,    49,    11,    57,    61,    59,    11,     0,
    61,    57,    58,    65,    30,  1507,  1508,  1509,     3,     4,
     5,     0,  1627,  1515,     4,     5,  1627,    27,  1520,  1521,
  1522,    31,     0,  1525,   170,    81,    49,     2,    35,    55,
  1567,    57,    58,    89,    57,    58,  1627,  1539,  1540,  1576,
  1185,  1186,  1187,  1455,   967,  1354,   169,   677,  1207,   165,
    60,    61,  1667,  1613,  1213,    65,  1667,   443,  1560,    49,
    55,   799,    57,    58,    94,  1567,  1199,    57,    58,   139,
  1215,  1216,  1217,   238,  1576,  1667,  1667,  1284,  1440,   141,
     3,     4,     5,   953,   146,     4,     5,   149,   150,   151,
  1627,  1509,   727,   299,   948,  1044,  1079,  1515,   242,  1236,
  1602,   799,  1520,  1521,  1522,  1256,   660,  1525,   360,     3,
     4,     5,     6,   946,   176,     4,     5,     3,     4,     5,
   182,     7,     8,     9,   608,  1627,    45,   200,   347,  1211,
  1667,   193,   194,   195,    57,    58,    55,   124,    57,    58,
  1647,  1355,  1560,  1581,  1468,    39,    40,   209,    42,  1567,
  1633,  1051,  1052,   405,  1643,   217,   218,  1645,  1576,    48,
  1155,    55,  1210,    57,    58,  1667,    55,  1371,    57,    58,
    -1,    57,    58,     3,     4,     5,  1024,  1510,  1078,    -1,
  1339,  1340,    71,  1083,  1602,    -1,    -1,  1182,    -1,    -1,
    -1,   443,    81,  1188,    -1,   403,    -1,   259,    -1,    -1,
     9,    -1,    91,    12,    -1,    94,    95,    -1,    -1,  1627,
    -1,     3,     4,     5,     6,  1539,  1540,  1541,    -1,   471,
    -1,    -1,  1270,  1271,  1272,  1273,  1559,    57,    58,    -1,
    -1,    -1,   484,   624,   625,  1230,    -1,    -1,    -1,    48,
   492,    79,    80,    81,    82,    83,    84,    85,    -1,  1667,
    42,    60,    -1,    62,    63,  1564,    65,   509,    -1,    -1,
    -1,   469,    -1,    55,    -1,    57,    58,    76,   330,    78,
    -1,    63,    -1,  1432,    -1,    -1,    -1,    -1,    -1,    71,
    -1,     7,     8,     9,    -1,    94,    95,    -1,    14,    81,
  1338,    -1,    -1,    -1,    -1,  1454,  1455,    89,    -1,    -1,
   109,    -1,    94,   462,    -1,    31,    -1,  1355,    -1,    -1,
   469,    37,    -1,  1308,  1362,    -1,    -1,    -1,    -1,    -1,
    46,    -1,    -1,  1468,    -1,     3,     4,     5,     6,    -1,
     4,     5,    -1,    -1,     8,     9,     3,     4,     5,     6,
    14,    -1,    31,    -1,   406,   407,    -1,    -1,    -1,  1249,
  1250,    -1,  1252,  1253,    28,  1255,    30,    -1,   420,    -1,
    -1,   423,    -1,    37,    42,  1413,    -1,   429,   430,   431,
    -1,    49,    46,   435,  1533,    42,    -1,   536,    -1,    57,
    58,    55,    49,    57,    58,    -1,    -1,    -1,    -1,    -1,
    57,    58,    -1,    -1,  1539,  1540,  1541,    -1,    -1,    -1,
    -1,   653,  1450,    81,    -1,    -1,    -1,    -1,    -1,    -1,
   472,    89,    -1,   475,   573,   477,   478,   479,    -1,   627,
    94,   483,    89,    -1,    -1,    -1,   634,   489,   490,   491,
    -1,    -1,   494,    -1,    -1,    -1,   498,    -1,    -1,   598,
   692,   693,   694,   695,    -1,   604,    -1,    -1,    -1,   511,
    -1,    -1,   141,    -1,    -1,    -1,    -1,   146,    -1,    -1,
    -1,    -1,     7,     8,     9,    -1,    -1,  1515,    -1,    14,
    -1,    -1,  1520,  1521,  1522,   634,   538,  1525,    -1,   541,
    -1,    -1,   641,   545,  1384,  1385,    31,   739,    -1,    -1,
    -1,   743,    37,    -1,    -1,    -1,   558,   559,   560,    -1,
    -1,    46,    -1,    -1,    -1,   194,    -1,     4,     5,    -1,
    -1,   573,     9,    -1,    -1,  1510,    61,   908,    -1,  1567,
   911,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1576,    -1,
    -1,    -1,   923,    -1,    31,   743,   927,   928,    -1,   791,
    -1,   793,    33,    -1,    -1,    -1,   798,   799,    -1,   801,
    -1,    -1,    -1,    -1,  1602,    -1,    -1,    -1,    55,    -1,
    57,    58,   624,   625,  1559,   627,    -1,    -1,    -1,    -1,
   259,    -1,   634,  1621,    71,    -1,    -1,    -1,    -1,  1627,
   971,   972,    -1,    -1,    81,    -1,    -1,  1487,  1488,  1489,
    -1,    -1,   654,    -1,  1642,    -1,    -1,    94,    -1,   807,
    -1,    -1,    -1,  1651,    -1,   813,    -1,    -1,     1,    -1,
     3,     4,     5,     6,     7,     8,     9,    -1,    -1,  1667,
    -1,    14,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
     5,   693,     7,   695,   696,    28,    -1,    30,    31,    32,
    -1,    -1,    -1,    -1,    37,    -1,    -1,  1547,  1548,    42,
    -1,    -1,    -1,    46,    -1,    30,    49,    -1,    -1,   150,
   151,    -1,    55,    38,    57,    58,    -1,   826,    77,    78,
    79,    80,    81,    82,    83,    84,    85,   739,    71,    -1,
    55,    -1,    57,    58,    -1,    -1,    80,    -1,    81,   751,
   752,   753,   754,   755,    -1,    -1,    89,   759,    -1,    -1,
    -1,    94,    -1,    -1,   195,   767,    99,    -1,   770,    -1,
   104,    -1,    88,    -1,    90,    -1,    92,   925,  1618,    -1,
    -1,   929,    -1,   882,   883,    -1,    -1,    -1,    -1,   888,
    -1,   420,    -1,    -1,   423,    -1,    -1,   799,    -1,   133,
    -1,    -1,    -1,   902,    -1,   904,   435,   906,    -1,    -1,
   144,     3,     4,     5,     6,    -1,    -1,     9,    -1,   967,
    -1,   137,    -1,   139,   826,   973,    -1,  1158,  1159,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,    31,
     7,     8,     9,   472,    -1,    -1,   475,    -1,    -1,    -1,
    42,    -1,  1183,  1184,  1185,  1186,   955,  1049,    -1,    -1,
   489,  1192,    -1,    55,    31,    57,    58,    -1,  1016,   203,
    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
    -1,     7,     8,     9,  1215,  1216,    -1,  1079,    14,    81,
    57,    58,    -1,    -1,    -1,    -1,    -1,    89,  1046,   330,
   999,    -1,    94,    -1,   238,    31,   908,    -1,    -1,   911,
  1058,    37,    -1,    -1,    -1,    -1,    -1,  1016,    -1,    -1,
    46,   923,    -1,    -1,    -1,   927,   928,   929,   262,    82,
    -1,    -1,    -1,     4,     5,    61,    -1,     8,     9,    -1,
    -1,    -1,    -1,    14,  1092,    -1,  1094,     1,    -1,     3,
     4,     5,     6,     7,     8,     9,    -1,    28,    -1,    30,
    14,    -1,    -1,    -1,   966,    -1,    37,    -1,    -1,   971,
   972,   973,    -1,    -1,    28,    46,    30,    31,  1309,  1310,
  1311,  1312,    -1,    37,    55,  1316,    57,    58,    42,    -1,
  1182,    -1,    46,    -1,    -1,    49,    -1,    -1,    -1,   430,
   431,    55,    -1,    57,    58,   321,   159,    61,    -1,    -1,
    -1,    -1,  1160,    -1,  1016,    -1,    -1,    71,    -1,    -1,
    -1,   355,    -1,    -1,    -1,    -1,    -1,    81,  1030,  1031,
  1032,     3,     4,     5,     6,    89,    -1,    -1,   191,  1187,
    94,    -1,    -1,   359,    -1,    -1,    -1,   478,   479,  1051,
  1052,   204,    -1,    -1,     7,     8,     9,    -1,    -1,  1251,
    -1,    14,    -1,    -1,  1256,    -1,    -1,  1259,    -1,  1217,
    42,    -1,    -1,    -1,    -1,    -1,  1078,    49,    31,   413,
    -1,  1083,    -1,    -1,    37,    57,    58,    -1,    -1,    -1,
    -1,  1422,  1423,    46,  1425,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1201,    -1,  1203,    -1,  1205,   538,    -1,    81,
   541,    -1,    -1,    -1,   545,    -1,    -1,    89,    -1,    -1,
     4,     5,   751,   752,    -1,     9,    -1,    -1,   559,   560,
   759,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   573,    -1,    -1,   461,   462,    31,    -1,   193,
   194,     4,     5,   469,    -1,    -1,  1158,  1159,  1160,    -1,
  1352,  1353,  1354,    -1,    48,  1313,    -1,    -1,    -1,    -1,
    -1,    55,   506,    57,    58,    -1,  1507,  1508,    31,    -1,
    -1,  1183,  1184,  1185,  1186,  1187,   502,    71,    -1,    -1,
  1192,    -1,    -1,    -1,    -1,    48,    -1,    81,   532,    -1,
    -1,    -1,    55,   634,    57,    58,  1305,    91,    -1,    -1,
    94,    95,    -1,  1215,  1216,  1217,    -1,    -1,    71,   535,
   536,    -1,    -1,    -1,    -1,  1227,  1228,  1229,    81,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,
    -1,    94,    95,    -1,    -1,    -1,    -1,  1249,  1250,    -1,
  1252,  1253,    -1,  1255,   570,    -1,   572,    -1,    -1,   575,
   576,    -1,   578,   579,   580,   581,   582,   583,   584,   585,
   586,   587,   588,   589,   590,   591,   592,   593,   594,   595,
   596,    -1,   598,    -1,    -1,    -1,    -1,   621,   604,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   765,
    -1,    -1,    -1,   637,    -1,    -1,    -1,  1309,  1310,  1311,
  1312,  1313,    -1,    -1,  1316,    -1,    -1,    -1,   634,    -1,
    -1,    -1,    -1,   754,   755,   641,    -1,    -1,    -1,   482,
    -1,    -1,    -1,    -1,   487,    -1,    -1,    -1,    -1,    -1,
   806,    -1,    -1,   972,    -1,    -1,   812,   663,   664,    -1,
    -1,  1353,  1354,    -1,    -1,    -1,    -1,    -1,    -1,   512,
    -1,  1509,    -1,   679,    -1,   518,    -1,    -1,    -1,  1468,
    -1,    -1,    -1,  1565,    -1,    -1,    -1,   530,   531,     4,
   533,    -1,  1384,  1385,    -1,    -1,    -1,    -1,    -1,    14,
    -1,    -1,    -1,    -1,    -1,   826,    -1,    -1,    -1,    24,
    -1,    -1,    -1,    -1,    -1,    30,    31,    -1,    33,    -1,
    35,   727,  1560,    -1,    -1,    -1,    -1,    42,    -1,    -1,
  1422,  1423,   756,  1425,    -1,    -1,    -1,    -1,   472,    -1,
    55,   475,    57,   477,   478,    -1,     3,     4,     5,     6,
    65,    -1,     9,    -1,    -1,   489,    -1,    72,    -1,    -1,
    -1,    -1,    -1,    -1,   920,    -1,   922,    -1,    83,    84,
    -1,    -1,    -1,    -1,    31,    -1,  1468,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   790,    42,    -1,   630,   631,    -1,
    -1,   106,   635,    -1,    -1,  1487,  1488,  1489,    55,    -1,
    57,    58,   808,   809,    -1,   811,    -1,   928,   929,    -1,
    -1,    -1,    -1,    -1,    71,  1507,  1508,  1509,    -1,   134,
   826,   136,    -1,    -1,    81,   140,   141,    -1,    -1,    -1,
   145,   146,    89,    -1,   149,   150,   151,    94,    -1,    -1,
    -1,    -1,    -1,   849,    -1,    -1,    -1,  1539,  1540,  1541,
   165,    -1,   973,    -1,   169,  1547,  1548,    -1,    -1,    -1,
   175,   176,   462,    -1,  1183,  1184,    -1,    -1,    -1,   469,
    -1,    -1,    -1,  1192,    -1,    -1,   882,   883,   193,   194,
   195,   887,   888,    -1,    -1,    -1,    -1,    -1,     3,     4,
     5,     6,     7,     8,     9,  1016,   902,    -1,   904,    14,
   906,    -1,    -1,    -1,    -1,    -1,    -1,   222,    -1,    -1,
   934,    -1,   936,    28,   757,    30,    31,    32,    -1,    -1,
    -1,    -1,    37,    -1,   239,    -1,  1618,    42,    -1,    -1,
    -1,    46,    -1,   248,    49,  1091,   536,  1093,    -1,   945,
    55,    -1,    57,    58,   259,    -1,    -1,    -1,    -1,   955,
    -1,    -1,    -1,    -1,   978,     1,    71,     3,     4,     5,
     6,    -1,     8,    -1,   970,    -1,    81,     3,     4,     5,
     6,   814,    -1,   816,    89,    -1,    -1,   983,    -1,    94,
    -1,    -1,   297,   298,    99,    -1,    -1,    -1,    -1,    -1,
  1309,  1310,    -1,   999,    -1,  1151,    42,  1316,   598,    -1,
    -1,    -1,    -1,    49,   604,    -1,    42,    -1,    -1,    55,
  1016,    57,    58,    49,    -1,    -1,    -1,   751,   752,   753,
   754,    57,    58,    -1,    -1,   759,    -1,    -1,   343,    -1,
    -1,    -1,   347,    -1,   349,   350,   351,    -1,  1159,  1160,
    -1,   641,    -1,    89,    -1,   360,  1070,   890,   891,    -1,
   893,    -1,    -1,    89,    -1,  1061,     1,    -1,     3,     4,
     5,     6,     7,     8,     9,  1186,  1187,    -1,    -1,    14,
    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,   394,
    -1,   924,    27,    28,  1240,    30,    31,    32,   403,  1245,
   405,   406,    37,    -1,    -1,  1216,  1217,    42,    -1,    -1,
    45,    46,    47,    -1,    49,   420,  1112,  1113,   423,    -1,
    55,  1117,    57,    58,    42,    -1,    61,    -1,    -1,    -1,
   435,    49,    -1,    -1,    -1,    -1,    71,    -1,   443,    57,
    58,  1137,   975,    -1,    -1,    -1,    81,  1161,    -1,    -1,
    -1,    -1,  1298,    -1,    89,    -1,    -1,    -1,    -1,    94,
    -1,    -1,    -1,    81,    99,    -1,   471,   472,    -1,    -1,
   475,    89,   477,   478,   479,   480,  1190,    -1,    -1,   484,
    -1,    -1,    -1,    -1,   489,    -1,    -1,   492,    73,    74,
    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    85,  1312,  1313,    -1,   509,  1201,    -1,  1203,    -1,  1205,
    -1,    -1,  1045,    -1,    -1,    -1,    -1,  1213,    -1,    -1,
    -1,    -1,    -1,    -1,  1057,    -1,  1222,  1223,    -1,     4,
     5,    -1,     7,     8,     9,  1231,    -1,    12,    -1,    14,
  1254,    -1,    -1,   548,   549,   550,   551,   971,   972,    -1,
    -1,  1247,  1248,    28,    -1,    30,    31,  1403,  1404,    -1,
    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    46,    -1,    -1,  1420,    -1,    -1,    -1,  1274,    -1,
    55,    -1,    57,    58,    -1,     3,     4,     5,     6,    -1,
    -1,    -1,   882,   883,    -1,    -1,    -1,    -1,   888,    -1,
    -1,    -1,    -1,   608,    -1,   610,  1030,  1031,  1032,  1305,
    -1,    -1,   902,  1146,   904,    -1,   906,   622,    -1,   624,
   625,    -1,   627,    -1,    42,    -1,    -1,    -1,    -1,   634,
    48,    -1,    -1,   638,  1480,  1481,    -1,    55,  1334,    57,
    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   653,    -1,
  1496,  1497,    -1,    71,    -1,    -1,    -1,  1468,  1191,    -1,
    -1,    -1,    -1,    81,    -1,   955,    -1,     3,     4,     5,
     6,    89,   677,    91,    -1,    -1,    94,    95,  1374,   684,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   692,   693,   694,
   695,   696,   697,    -1,  1390,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,   999,
  1424,    -1,    -1,    -1,    -1,    -1,  1412,    -1,    -1,    55,
    -1,    57,    58,    -1,    -1,    61,    -1,    63,  1261,  1540,
  1541,    -1,  1265,    -1,   739,    71,    -1,    -1,   743,    -1,
    -1,    -1,    -1,    -1,    -1,    81,   751,   752,   753,   754,
   755,    -1,    -1,    89,   759,    -1,    -1,    -1,    94,  1183,
  1184,  1185,  1186,    -1,    -1,    -1,    -1,  1300,  1192,    -1,
    -1,    -1,  1468,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1314,    -1,   788,    -1,    -1,   791,    -1,   793,  1485,
  1486,  1215,  1216,   798,   799,    -1,   801,    -1,    -1,    -1,
    -1,    -1,   807,  1227,  1228,    -1,    -1,    -1,   813,     4,
     5,    -1,     7,     8,     9,   820,   821,   822,    -1,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1523,   833,    -1,
    -1,    -1,    -1,    28,    -1,    30,    31,    -1,    -1,    -1,
    -1,    -1,    37,    -1,    -1,    -1,  1379,    -1,    -1,    -1,
  1383,    46,    -1,    -1,    49,    -1,    -1,  1553,    -1,    -1,
    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1405,  1406,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,  1309,  1310,  1311,  1312,    -1,
    -1,    -1,  1316,    -1,    -1,    -1,    -1,     3,     4,     5,
     6,    -1,   907,   908,    -1,    -1,   911,    -1,    -1,   914,
    -1,  1201,    -1,  1203,   919,  1205,    -1,    -1,   923,    -1,
   925,    -1,   927,   928,   929,    31,    -1,    -1,   933,    -1,
   935,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,
    -1,    -1,     3,     4,     5,     6,     7,     8,     9,    55,
    -1,    57,    58,    14,     3,     4,     5,     6,    -1,    -1,
     9,  1657,   967,    -1,   969,    71,   971,   972,   973,    -1,
    31,    -1,    -1,    -1,    -1,    81,    37,    -1,    -1,    -1,
    -1,    42,    31,    89,    -1,    46,    -1,    48,    94,    -1,
    -1,    -1,    -1,    42,    55,    -1,    57,    58,  1422,  1423,
    -1,  1425,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,
    71,  1016,    -1,    -1,    -1,  1305,    -1,    -1,    -1,    -1,
    81,    -1,    71,    -1,  1029,  1030,  1031,  1032,    89,    -1,
    91,    -1,    81,    94,    95,    -1,    -1,    -1,    -1,    -1,
    89,  1046,    -1,    -1,  1049,    94,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1058,     3,     4,     5,     6,     7,     8,
     9,    -1,    -1,    12,    -1,    14,  1071,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1079,    -1,    -1,    -1,    -1,    28,
    -1,    30,    31,  1507,  1508,    -1,    -1,  1092,    37,  1094,
    -1,    -1,    -1,    42,    -1,    -1,    -1,    46,    -1,    48,
    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,
    -1,    -1,    -1,    -1,    -1,  1539,  1540,    -1,    -1,  1124,
    -1,    -1,    71,    -1,  1129,  1130,    -1,  1132,    -1,    -1,
    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    89,    -1,    91,    -1,    -1,    94,    95,    -1,    -1,    -1,
  1155,    -1,    -1,  1158,  1159,  1160,    -1,    -1,    -1,    -1,
    -1,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
    -1,    -1,    -1,    14,    -1,    -1,    -1,  1182,  1183,  1184,
  1185,  1186,  1187,  1188,    -1,    -1,    -1,  1192,    -1,    -1,
    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
    -1,    42,    -1,    -1,    -1,    46,    -1,    48,    -1,    -1,
  1215,  1216,  1217,    -1,    55,    -1,    57,    58,     4,    -1,
    -1,    -1,  1227,  1228,  1229,  1230,    -1,    -1,    14,    -1,
    71,     4,     5,    -1,     7,     8,     9,    23,    24,    12,
    81,    14,    -1,    -1,    30,    31,  1251,    33,    89,    35,
    -1,  1256,    -1,    94,  1259,    28,    42,    30,    31,    -1,
    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    55,
    -1,    57,    -1,    46,    -1,    -1,    -1,    -1,    -1,    65,
    -1,    -1,    55,    -1,    57,    58,    72,    -1,    -1,     3,
     4,     5,     6,     7,     8,     9,    -1,    -1,    84,    -1,
    14,    -1,    -1,  1308,  1309,  1310,  1311,  1312,  1313,    -1,
    -1,  1316,    -1,    -1,    28,    -1,    30,    31,    -1,    -1,
    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    42,    -1,
    -1,    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    55,    -1,    57,    58,    -1,    -1,  1352,  1353,  1354,
   136,    -1,    -1,    -1,   140,   141,    -1,    71,    -1,    -1,
   146,    -1,    -1,   149,   150,   151,  1371,    81,    -1,    -1,
    -1,    -1,    -1,    -1,     1,    89,    -1,     4,     5,   165,
    94,     8,     9,   169,    -1,    -1,    -1,    14,    -1,   175,
   176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    28,    -1,    30,    -1,    -1,    -1,   193,   194,   195,
    37,    -1,    39,    40,    -1,    -1,    -1,  1422,  1423,    46,
  1425,    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
    57,    58,    -1,    60,    -1,    -1,   222,    64,    65,    66,
    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    77,    78,    79,    80,    81,    82,    83,    84,    -1,    -1,
    87,    88,    89,  1468,    -1,    92,    -1,    -1,    95,    -1,
    -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3,     4,     5,     6,     7,     8,     9,    -1,    -1,    -1,
    -1,    14,  1507,  1508,  1509,  1510,    -1,    -1,    -1,    -1,
    -1,   297,   298,    -1,    -1,    28,    -1,    30,    31,    -1,
    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    42,
    -1,    -1,    -1,    46,  1539,  1540,  1541,    -1,    -1,    -1,
    -1,    -1,    55,    -1,    57,    58,    -1,    -1,    61,    -1,
    -1,    -1,    -1,    -1,  1559,  1560,    -1,   343,    71,    -1,
  1565,   347,    -1,   349,   350,   351,    -1,    -1,    81,    -1,
   356,    -1,    -1,    -1,   360,    -1,    89,     3,     4,     5,
     6,    94,     1,     9,     3,     4,     5,     6,     7,     8,
     9,    -1,    -1,    -1,    -1,    14,     3,     4,     5,     6,
    -1,    -1,     9,    -1,    -1,    31,    -1,    -1,   394,    28,
    -1,    30,    31,    32,    -1,    -1,    42,   403,    37,   405,
   406,    -1,    48,    42,    31,    -1,    -1,    46,    47,    55,
    49,    57,    58,    -1,   420,    42,    55,   423,    57,    58,
    -1,    48,    61,    -1,    63,    71,    -1,    -1,    55,   435,
    57,    58,    71,    -1,    -1,    81,    -1,   443,    -1,    -1,
    -1,    -1,    81,    89,    71,    91,    -1,    -1,    94,    95,
    89,    -1,    -1,    -1,    81,    94,    -1,    -1,    -1,    -1,
    -1,    -1,    89,    -1,    91,   471,   472,    94,    95,   475,
    -1,   477,   478,   479,   480,    -1,    -1,    -1,   484,    -1,
    -1,    -1,    -1,   489,    -1,    -1,   492,    71,    72,    73,
    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
    84,    85,   508,   509,    72,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    85,    -1,     1,
    -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   548,   549,   550,   551,    28,    29,    30,    31,
    32,    -1,    34,    35,    36,    37,    -1,    39,    40,    41,
    42,    43,    44,    -1,    46,    -1,    48,    -1,    50,    51,
    52,    53,    54,    55,    -1,    57,    58,    59,    -1,    -1,
    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
    -1,    -1,   608,    -1,   610,    87,    88,    89,    -1,    91,
    -1,    -1,    94,    95,    -1,    31,    -1,    -1,   624,   625,
    -1,   627,    -1,    -1,    -1,    -1,    -1,    -1,   634,   111,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   647,    -1,    -1,    -1,    -1,    -1,   653,    64,    65,
    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
     1,   677,     3,     4,     5,     6,     7,     8,     9,   685,
    -1,    -1,    -1,    14,    -1,    -1,   692,   693,   694,   695,
   696,   697,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,
    31,    32,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
    -1,    42,    -1,    -1,   720,    46,    47,    -1,    49,    -1,
    -1,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,
    61,    -1,    63,   739,    -1,    -1,    -1,   743,    -1,    -1,
    71,    -1,    -1,    -1,    -1,   751,   752,   753,   754,   755,
    81,    -1,    -1,   759,    -1,    -1,    -1,    -1,    89,    -1,
    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,     3,     4,     5,     6,    -1,    -1,     9,    -1,   110,
    -1,    -1,   788,    -1,    -1,   791,    -1,   793,    -1,    -1,
    -1,    -1,   798,   799,    -1,   801,    -1,    -1,    -1,    31,
    -1,   807,    -1,    -1,    -1,    -1,    -1,   813,    -1,    -1,
    42,    -1,    -1,    -1,   820,   821,   822,    -1,    -1,    -1,
    -1,    -1,    -1,    55,    -1,    57,    58,   833,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
    -1,    -1,     3,     4,     5,     6,     7,     8,     9,    81,
    -1,    12,    -1,    14,    -1,    -1,    -1,    89,    -1,    -1,
    -1,    -1,    94,    -1,    -1,    -1,    -1,    28,    -1,    30,
    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
    -1,    42,    -1,    -1,    -1,    46,    -1,    48,    -1,    -1,
    -1,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,
    -1,   907,   908,    -1,    -1,   911,    -1,    -1,   914,    -1,
    71,    -1,    -1,   919,    -1,    -1,    -1,   923,    -1,   925,
    81,   927,   928,   929,    -1,    -1,    -1,   933,    89,   935,
    91,    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
    -1,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
    -1,   967,    -1,   969,    -1,   971,   972,   973,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    48,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
  1016,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,  1029,  1030,  1031,  1032,    87,    88,    89,
    -1,    91,    -1,    -1,    94,    95,    -1,    -1,  1044,    -1,
  1046,    -1,    -1,  1049,     3,     4,     5,     6,     7,     8,
     9,   111,  1058,    12,    -1,    14,    -1,    -1,    -1,    -1,
     4,     5,    -1,    -1,     8,     9,    -1,    -1,    -1,    28,
    14,    30,    31,  1079,    -1,    -1,    -1,    -1,    37,    -1,
    -1,    -1,    -1,    42,    -1,    -1,  1092,    46,  1094,    48,
    -1,    -1,    -1,    37,    -1,    -1,    55,    -1,    57,    58,
    -1,    -1,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
    -1,    55,    71,    57,    58,    -1,    -1,    -1,  1124,    -1,
    -1,    -1,    81,  1129,  1130,    -1,  1132,    71,    -1,    -1,
    89,    -1,    91,    -1,    -1,    94,    95,    81,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,  1155,
    94,    95,  1158,  1159,  1160,    -1,    -1,    -1,     1,    -1,
     3,     4,     5,     6,     7,     8,     9,    -1,    -1,    -1,
    -1,    14,    -1,    -1,    -1,    -1,  1182,  1183,  1184,  1185,
  1186,  1187,  1188,    -1,    -1,    28,  1192,    30,    31,    32,
    -1,    -1,    -1,  1199,    37,    38,    -1,    -1,    -1,    42,
    -1,    -1,    -1,    46,    47,    -1,    49,    -1,    -1,  1215,
  1216,  1217,    55,    -1,    57,    58,    -1,    -1,    61,    -1,
    63,  1227,  1228,  1229,  1230,    -1,    -1,    -1,    71,    -1,
  1236,    -1,     4,    -1,    -1,    -1,    -1,    -1,    81,    -1,
    -1,     3,     4,     5,     6,  1251,    89,     9,    -1,    -1,
  1256,    94,    -1,  1259,    -1,    -1,    -1,    -1,    30,    31,
    -1,    33,    -1,    35,    -1,    -1,    -1,   110,    -1,    31,
    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    42,    -1,    -1,    55,    -1,    57,    48,    -1,    -1,    -1,
    -1,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,    -1,
    -1,    -1,  1308,  1309,  1310,  1311,  1312,  1313,    80,    71,
  1316,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
    -1,     3,     4,     5,     6,    -1,    -1,    89,    -1,    91,
    -1,    -1,    94,    95,    -1,  1341,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,  1352,  1353,  1354,    31,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    42,   133,   134,    -1,   136,  1371,    48,    -1,   140,   141,
    -1,    -1,   144,    55,   146,    57,    58,   149,   150,   151,
    -1,    -1,     4,     5,   156,    -1,     8,     9,    -1,    71,
    -1,    -1,    14,   165,    -1,    -1,    -1,   169,    -1,    81,
    -1,    -1,    -1,   175,   176,    -1,    28,    89,    30,    91,
    -1,    -1,    94,    95,    -1,    37,  1422,  1423,    -1,  1425,
    -1,   193,   194,   195,    46,    -1,    -1,    -1,    -1,    -1,
    -1,   203,    -1,    55,    -1,    57,    58,    -1,    -1,     1,
    -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
   222,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1468,    -1,    -1,    -1,    28,    29,    30,    31,
    32,    -1,    34,    35,    36,    37,    -1,    39,    40,    41,
    42,    43,    44,    -1,    46,    -1,    -1,   259,    50,    51,
    52,    53,    54,    55,    -1,    57,    58,    59,    -1,    61,
    62,  1507,  1508,  1509,  1510,    -1,    68,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
    -1,    -1,    94,  1539,  1540,  1541,    -1,     3,     4,     5,
     6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,   111,
    -1,    -1,    -1,  1559,  1560,    -1,    -1,    -1,   330,  1565,
    -1,    -1,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,
    -1,    37,    -1,    -1,    -1,   347,    42,    -1,    -1,    -1,
    46,    -1,    48,   355,    -1,    -1,    -1,    -1,   360,    55,
    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,     3,     4,
     5,     6,     7,     8,     9,    71,    -1,    -1,    -1,    14,
     3,     4,     5,     6,    -1,    81,     9,    -1,    -1,    -1,
    -1,    -1,   394,    89,    -1,    91,    31,    -1,    94,    95,
    -1,    -1,    37,   405,    -1,    -1,    -1,    42,    31,    -1,
    -1,    46,    -1,    48,    -1,    -1,    -1,    -1,   420,    42,
    55,   423,    57,    58,    -1,    48,    -1,   429,   430,   431,
    -1,    -1,    55,   435,    57,    58,    71,    -1,    -1,    -1,
    -1,   443,    -1,    -1,    -1,    -1,    81,    -1,    71,     3,
     4,     5,     6,    -1,    89,    -1,    91,    -1,    81,    94,
    95,    -1,    -1,    -1,    -1,    -1,    89,    -1,    91,   471,
   472,    94,    95,   475,    -1,   477,   478,   479,   480,    -1,
    -1,    -1,   484,    -1,    -1,    -1,    -1,   489,    42,    -1,
   492,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    55,    -1,    57,    58,    -1,    -1,   509,    -1,    63,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,     1,    -1,
     3,     4,     5,     6,     7,     8,     9,    81,    -1,    12,
    -1,    14,    -1,    -1,    -1,    89,   538,    -1,    -1,   541,
    94,    -1,    25,   545,    27,    -1,    -1,    -1,    31,    -1,
    -1,    -1,    -1,    -1,    37,    -1,   558,   559,   560,    42,
    -1,    -1,    -1,    46,    -1,    48,    -1,    -1,    -1,    -1,
    -1,   573,    55,    -1,    57,    58,    59,    60,    61,    -1,
    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
    83,    84,    85,    -1,    87,    88,    89,    -1,    91,    92,
    93,    94,    95,    96,    -1,    98,    -1,    -1,    -1,   621,
   103,    -1,    -1,    -1,    -1,   108,   109,   110,    -1,   112,
    -1,    -1,   634,    68,    69,    70,    71,    72,    73,    74,
    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    85,   653,    64,    65,    66,    67,    68,    69,    70,    71,
    72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    82,    83,    84,    85,    -1,   677,    -1,    -1,     3,     4,
     5,     6,   684,     8,     9,    10,    11,    -1,    13,    14,
   692,   693,   694,   695,    -1,    -1,    -1,    -1,    -1,    -1,
   112,    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,
    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
    -1,    46,    -1,    48,    -1,    50,    51,    52,    53,    54,
    55,    -1,    57,    58,    -1,    -1,    -1,   739,    -1,    -1,
    -1,   743,    -1,    68,    -1,    -1,    71,    -1,    -1,   751,
   752,   753,   754,   755,    79,    80,    81,   759,    -1,    -1,
    -1,    -1,    87,    88,    89,    -1,    91,     4,     5,    94,
    95,     1,     9,     3,     4,     5,     6,     7,     8,     9,
    -1,    -1,    -1,    -1,    14,    -1,   111,    -1,    -1,   791,
    -1,   793,    33,    -1,    31,    -1,   798,   799,    28,   801,
    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,    -1,
    -1,    48,    42,    -1,    55,    -1,    46,    47,    55,    49,
    57,    58,    -1,    -1,   826,    55,    -1,    57,    58,    -1,
    -1,    61,    -1,    63,    71,    -1,    -1,    -1,    -1,    -1,
    -1,    71,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
    -1,    81,     4,    -1,    91,    -1,    -1,    94,    95,    89,
    -1,    -1,    -1,    -1,    94,     4,     5,    -1,     7,     8,
     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    30,    31,
   110,    33,    -1,    35,    -1,    -1,    -1,    -1,    -1,    28,
    42,    30,    31,    -1,     3,     4,     5,     6,    37,    -1,
     9,    -1,    -1,    55,    -1,    57,    -1,    46,   149,   150,
   151,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,
    -1,    -1,    31,    -1,    -1,   927,   928,   929,    -1,    -1,
    -1,   933,   934,    42,   175,    -1,    -1,    -1,    -1,    48,
    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,
    -1,    -1,   193,   194,   195,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,   971,
   972,   973,    81,    -1,    -1,    -1,   978,    -1,    -1,    -1,
    89,   222,    91,    -1,   136,    94,    95,    -1,   140,   141,
    -1,    -1,    -1,    -1,   146,    -1,    -1,   149,   150,   151,
    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
    84,    85,    -1,   165,  1016,    -1,    -1,   169,    -1,    -1,
    -1,    -1,    -1,   175,   176,    70,    71,    72,    73,    74,
    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    85,   193,   194,   195,    -1,    -1,    -1,  1049,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   298,     1,    -1,
     3,     4,     5,     6,     7,     8,     9,    -1,  1070,    -1,
   222,    14,    -1,    -1,    -1,    -1,    -1,  1079,     4,     5,
    -1,    -1,    -1,     9,    -1,    28,    -1,    30,    31,    32,
    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,    -1,    42,
    -1,    -1,    -1,    46,    47,    31,    49,   259,   349,   350,
   351,    -1,    55,    -1,    57,    58,    -1,    -1,    61,    -1,
    63,    -1,    48,    -1,    -1,    -1,    -1,    -1,    71,    55,
    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    81,    -1,
    -1,    -1,    -1,    -1,    -1,    71,    89,    -1,    -1,    -1,
    -1,    94,    -1,  1155,    -1,    81,  1158,  1159,  1160,  1161,
    -1,    -1,    -1,    -1,   405,    91,    -1,   110,    94,    95,
    -1,    -1,     3,     4,     5,     6,    -1,    -1,     9,    -1,
  1182,  1183,  1184,  1185,  1186,  1187,  1188,    -1,  1190,    -1,
  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    31,    -1,    -1,    -1,   356,    -1,    -1,    -1,   360,    -1,
    -1,    42,    -1,  1215,  1216,  1217,    -1,    48,    -1,    -1,
    -1,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,
   471,   472,    -1,    -1,   475,    -1,   477,   478,   479,   480,
    71,    -1,    -1,   484,    -1,    -1,    -1,    -1,   489,  1251,
    81,   492,    -1,   405,  1256,    -1,    -1,  1259,    89,    -1,
    91,    -1,    -1,    94,    95,    -1,    -1,    -1,   420,    -1,
    -1,   423,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   443,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    31,    -1,  1308,  1309,  1310,  1311,
  1312,  1313,    -1,    -1,  1316,    42,    -1,    -1,    -1,   471,
   472,    48,    -1,   475,    -1,   477,   478,   479,    55,    -1,
    57,    58,   484,    -1,    -1,    -1,    -1,   489,    -1,    -1,
   492,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
  1352,  1353,  1354,    -1,    81,    -1,    -1,   509,    -1,    -1,
    -1,    -1,    89,    -1,    91,    -1,    -1,    94,    95,   610,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   624,   625,    -1,   627,    -1,    -1,    -1,
    -1,    -1,    -1,   634,    -1,     3,     4,     5,     6,    -1,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    29,    30,    31,    32,    -1,    34,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    48,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,   692,    -1,   694,   695,    -1,   697,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,  1468,    -1,    -1,    -1,
   622,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,    -1,    91,    -1,    -1,    94,    95,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   739,    -1,
    -1,   653,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
   751,   752,   753,   754,   755,    -1,    -1,    -1,   759,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3,     4,     5,     6,    -1,    -1,    -1,  1539,  1540,  1541,
   692,   693,   694,   695,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   798,    31,    -1,
    -1,    -1,    -1,  1565,    -1,    -1,    -1,    -1,    -1,    42,
    -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,    55,   820,
   821,   822,    55,    -1,    57,    58,    -1,   739,    -1,    -1,
    -1,   743,   833,    -1,    -1,    -1,    -1,    -1,    71,   751,
   752,    -1,    -1,    80,    -1,    -1,    83,   759,    81,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    91,    -1,
    -1,    94,    95,    -1,    -1,    -1,    -1,   104,    -1,   106,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   791,
    -1,   793,    -1,    -1,    -1,    -1,   798,   799,    -1,   801,
    -1,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
    12,    -1,    14,    -1,    -1,    -1,   907,   908,    -1,    -1,
   911,    -1,    -1,   914,    -1,    -1,    28,    -1,    30,    31,
    -1,    -1,   923,    -1,    -1,    37,   927,   928,   929,    -1,
    42,    -1,   933,    -1,    46,    -1,    -1,    -1,   175,    -1,
    -1,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,    -1,
     4,     5,    -1,    -1,     8,     9,   193,   194,   195,    71,
    14,    -1,    -1,    -1,    -1,    -1,   203,    -1,    -1,    81,
   971,   972,   973,    -1,    28,    -1,    30,    89,    -1,    -1,
    -1,    -1,    94,    37,    -1,   222,    -1,    -1,    -1,    -1,
    -1,    -1,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
    -1,    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,
    -1,   248,    -1,    -1,    -1,  1016,    -1,    71,    -1,    -1,
    -1,    -1,    -1,   935,    -1,   262,    -1,    81,    -1,  1030,
  1031,  1032,    -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,
    94,    95,    -1,    -1,    -1,   107,   108,    -1,  1049,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   971,
   972,   973,     3,     4,     5,     6,    -1,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    37,    -1,    39,    40,
    41,    42,    43,    44,  1016,    46,    -1,    -1,    -1,    50,
    51,    52,    53,    54,    55,    -1,    57,    58,   355,   356,
    -1,    62,     3,     4,     5,     6,    -1,    68,  1129,  1130,
    71,  1132,    -1,    -1,    -1,    -1,    -1,  1049,    79,    80,
    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,
    31,    -1,    -1,    94,  1155,    -1,    -1,  1158,  1159,  1160,
    -1,    42,    -1,    -1,    -1,    -1,    -1,  1079,   405,    -1,
   111,   112,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,
    -1,  1182,  1183,  1184,  1185,  1186,  1187,  1188,    -1,    -1,
    71,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,     3,
     4,     5,     6,    94,  1215,  1216,  1217,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,  1227,  1228,  1229,  1230,
    -1,    -1,    -1,    -1,   471,   472,    -1,    31,   475,    -1,
   477,   478,   479,   480,    -1,    -1,    -1,   484,    42,    -1,
  1251,    -1,   489,    -1,    -1,   492,    -1,    -1,    -1,    -1,
    -1,    55,    -1,    57,    58,    -1,    -1,    -1,   330,    -1,
  1182,  1183,  1184,  1185,  1186,  1187,    -1,    71,    -1,    -1,
  1192,    -1,     3,     4,     5,     6,    -1,    81,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,
    94,    -1,    -1,  1215,  1216,  1217,    -1,  1308,  1309,  1310,
  1311,  1312,  1313,    -1,    -1,  1316,    -1,    -1,    -1,    -1,
    -1,    42,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
     6,     7,     8,     9,    55,    -1,    57,    58,    14,  1251,
    -1,   403,    63,    -1,  1256,    -1,    -1,  1259,    -1,    -1,
    71,  1352,    28,  1354,    30,    31,    -1,    -1,    -1,    -1,
    81,    37,    -1,    -1,    -1,    -1,    42,    -1,    89,    -1,
    46,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    55,
    -1,    57,    58,    -1,     4,     5,    -1,    63,     8,     9,
    -1,    -1,    -1,    -1,    14,    71,    -1,  1309,  1310,    -1,
   637,   638,    -1,    -1,  1316,    81,    -1,   469,    -1,    -1,
    -1,    -1,    -1,    89,    -1,    -1,   653,    37,    94,    -1,
    -1,  1422,  1423,    -1,  1425,    -1,    46,    -1,    48,    -1,
    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,
  1352,  1353,  1354,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    71,    -1,    -1,    -1,   692,    -1,   694,   695,    -1,
    -1,    81,    -1,    -1,    -1,    -1,    -1,  1468,    -1,    -1,
    -1,    91,    -1,    -1,    94,    95,   538,    -1,    -1,   541,
    -1,    -1,    -1,   545,    -1,   547,   548,   549,   550,   551,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   560,    -1,
    -1,    -1,   739,    -1,    -1,    -1,  1507,  1508,  1509,  1510,
    -1,   573,    -1,    -1,   751,   752,   753,   754,   755,   756,
    -1,    -1,   759,    -1,    -1,    -1,     4,     5,    -1,     7,
     8,     9,    -1,    -1,    12,    -1,    14,    -1,  1539,  1540,
  1541,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   785,    -1,
    28,    -1,    30,    31,    -1,    -1,  1468,    -1,  1559,    37,
    -1,   798,    -1,    -1,  1565,   627,    -1,    -1,    46,    -1,
    48,    -1,   634,   349,   350,   351,    -1,    55,    -1,    57,
    58,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
    -1,    -1,    14,    71,    -1,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    81,    23,    24,    28,    -1,    30,    31,
    -1,    30,    31,    91,    33,    37,    94,    95,    -1,    -1,
    42,    -1,    -1,    -1,    46,    -1,    -1,  1539,  1540,  1541,
    -1,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,    61,
    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    71,
    -1,    -1,    -1,  1565,    -1,    -1,    -1,    -1,    -1,    81,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   743,    -1,    -1,    -1,     3,     4,     5,     6,     7,
     8,     9,    -1,    -1,    -1,    -1,    14,   934,   935,   936,
    -1,    -1,    -1,    -1,    -1,   124,    -1,   126,    -1,    -1,
    28,    -1,    30,    31,   133,   134,    -1,    -1,    -1,    37,
    -1,   140,   141,    -1,    42,   144,   145,   146,    46,   148,
   149,   150,   151,    -1,   971,   972,   973,    55,    -1,    57,
    58,   978,    -1,    -1,    -1,   807,    -1,    -1,    -1,    -1,
    -1,   813,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,  1016,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1030,  1031,  1032,    -1,    -1,    -1,     4,
     5,    -1,     7,     8,     9,    -1,    -1,    12,    -1,    14,
    -1,    -1,  1049,    -1,    -1,    -1,    -1,    -1,    -1,   238,
   239,   883,    -1,    28,    -1,    30,    31,    -1,    -1,    -1,
    -1,    -1,    37,  1070,    -1,    -1,    -1,    -1,    -1,    -1,
   259,    46,    -1,    48,    -1,    -1,    -1,    -1,   624,   625,
    55,   627,    57,    58,    -1,    -1,    -1,   919,   634,    -1,
    -1,    -1,    -1,   925,    -1,    -1,    71,   929,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,   298,
    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,    94,
    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   967,    -1,   969,    -1,    -1,
    -1,   973,    -1,    -1,    -1,    -1,   692,    -1,   694,   695,
    -1,   697,    -1,    -1,  1161,    -1,    -1,    -1,   347,    -1,
   349,   350,    -1,    -1,     3,     4,     5,     6,    -1,    -1,
     9,    -1,    -1,    -1,    -1,  1182,  1183,  1184,  1185,  1186,
  1187,  1188,    -1,  1190,  1016,  1192,    -1,    -1,    -1,    -1,
    -1,    -1,    31,   739,    -1,    -1,    -1,  1029,    -1,     3,
     4,     5,     6,    42,    -1,   394,    -1,  1039,  1215,  1216,
  1217,    -1,    -1,    -1,  1046,    -1,    55,    -1,    57,    58,
  1227,  1228,  1229,  1230,   413,    -1,  1058,    31,    -1,    -1,
    -1,   420,    71,    -1,   423,    -1,    -1,    -1,    42,    -1,
    -1,    -1,    81,    -1,  1251,    -1,   435,    -1,    -1,    -1,
    89,    55,    -1,    57,    58,    94,    -1,    -1,    -1,    -1,
  1092,    -1,  1094,    -1,    -1,    -1,    -1,    71,     3,     4,
     5,     6,    -1,    -1,     9,    -1,    -1,    81,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    89,    -1,   833,    -1,    -1,
    94,    -1,  1124,    -1,    -1,    -1,    31,    -1,    -1,    -1,
    -1,  1308,  1309,  1310,  1311,  1312,  1313,    42,    -1,  1316,
    -1,    -1,     3,     4,     5,     6,    -1,   506,     9,   508,
    55,    -1,    57,    58,    -1,    -1,    -1,    -1,  1160,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
    31,    -1,    -1,   532,    -1,  1352,    81,  1354,    -1,    -1,
    -1,    42,    -1,    -1,    89,  1187,    -1,    -1,    -1,    94,
    -1,   907,   908,    -1,    55,   911,    57,    58,   914,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   923,    -1,    -1,
    71,   927,   928,   929,    -1,  1217,    -1,   933,    -1,    -1,
    81,     3,     4,     5,     6,    -1,    -1,     9,    89,    -1,
    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,  1422,  1423,  1424,  1425,    31,
    -1,   610,    -1,    -1,    -1,   971,   972,   973,    -1,    -1,
    42,    -1,   621,   622,    -1,   624,   625,     3,     4,     5,
     6,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
    -1,  1468,    -1,    -1,    -1,    31,    -1,    -1,    -1,    81,
  1016,    -1,    -1,    -1,    -1,    -1,    42,    89,    -1,    -1,
    -1,  1313,    94,    -1,    -1,    -1,    -1,    -1,   677,    55,
    -1,    57,    58,    -1,    -1,   684,   685,    -1,    -1,    -1,
  1507,  1508,  1509,  1510,    -1,    71,    -1,   696,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    94,    -1,
    -1,   720,  1539,  1540,  1541,    -1,    -1,    -1,    -1,  1371,
    -1,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
    10,    11,  1559,    13,    14,    -1,    -1,    -1,  1565,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    -1,    32,    -1,    34,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
    50,    51,    52,    53,    54,    55,   785,    57,    58,   788,
    -1,    -1,    62,    63,    -1,    -1,    -1,    -1,    68,  1155,
    -1,    71,  1158,  1159,  1160,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
    -1,   820,   821,   822,    94,    -1,  1182,  1183,  1184,  1185,
  1186,  1187,  1188,    -1,   833,    -1,  1192,    -1,    -1,    -1,
    -1,   111,     3,     4,     5,     6,    -1,    -1,     9,     3,
     4,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,  1215,
  1216,  1217,    -1,    -1,    -1,    -1,    -1,  1509,    -1,    -1,
    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
    -1,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,  1541,
    -1,    55,    -1,    57,    58,    -1,    -1,    61,   907,   908,
    71,    -1,   911,    -1,    -1,   914,    -1,    71,  1560,    -1,
    81,    -1,    -1,    -1,   923,    -1,    -1,    81,    89,    -1,
    -1,    -1,    -1,    94,   933,    89,    -1,    -1,    -1,    -1,
    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1308,  1309,  1310,  1311,  1312,  1313,    -1,    -1,
  1316,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    -1,    13,    14,    15,    -1,    17,    18,    19,
    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    45,    46,    47,    -1,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
    -1,    61,    62,    -1,     4,     5,    -1,    -1,    68,     9,
    -1,    71,     4,     5,    -1,    -1,    -1,     9,    -1,    79,
    80,    81,    -1,    -1,    -1,  1044,    -1,    87,    88,    89,
    -1,    31,    -1,    -1,    94,    -1,    96,    -1,    -1,    31,
    -1,    -1,    -1,    -1,    -1,    -1,  1422,  1423,    48,  1425,
   110,   111,  1071,    -1,    -1,    55,    48,    57,    58,    -1,
    -1,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
    -1,    91,    -1,    -1,    94,    95,    -1,    -1,    -1,    91,
    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,
  1129,  1130,    -1,  1132,     1,    -1,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,    13,    14,    -1,    -1,
    -1,  1507,  1508,  1509,  1510,    -1,  1155,    -1,    -1,  1158,
  1159,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
    57,    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,
  1199,    68,    -1,  1559,    71,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
    87,    88,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1236,    -1,    -1,
    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,  1254,     1,  1256,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
    15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
    25,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
    45,    46,    47,    -1,    -1,    50,    51,    52,    53,    54,
    55,    -1,    57,    58,    59,    -1,    61,    62,    -1,    -1,
    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,
     1,    96,     3,     4,     5,     6,    -1,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,   111,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    37,    -1,    39,    40,
    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
    51,    52,    53,    54,    55,    -1,    57,    58,    59,    -1,
    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,
    -1,    -1,    -1,    94,    95,     1,    -1,     3,     4,     5,
     6,    -1,     8,     9,    10,    11,    -1,    13,    14,   110,
   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,    35,
    36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
    -1,    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,
    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
    -1,    87,    88,    89,    -1,    -1,    -1,     1,    94,     3,
     4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
    34,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    59,    -1,    -1,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,
    94,    95,     1,    -1,     3,     4,     5,     6,    -1,     8,
     9,    10,    11,    -1,    13,    14,    -1,   111,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    37,    -1,
    39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
    -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
    59,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,
    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
    89,    -1,    -1,    -1,     1,    94,     3,     4,     5,     6,
    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,   110,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,    -1,
    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
    87,    88,    89,    -1,    -1,    -1,     1,    94,     3,     4,
     5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,    -1,   110,   111,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,
    55,    -1,    57,    58,    59,    -1,    -1,    62,    -1,    -1,
    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,
    -1,     1,    -1,     3,     4,     5,     6,   102,     8,     9,
    10,    11,    -1,    13,    14,    -1,   111,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
    -1,    -1,    -1,     1,    94,     3,     4,     5,     6,    -1,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,    59,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,    -1,    -1,    -1,     1,    94,     3,     4,     5,
     6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
    36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
    -1,    57,    58,    -1,    -1,    61,    62,    -1,    -1,    -1,
    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
    -1,    87,    88,    89,    -1,    -1,    -1,     1,    94,     3,
     4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
    34,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,     1,
    94,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,   109,    -1,   111,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,
    32,    -1,    34,    35,    36,    37,    -1,    39,    40,    41,
    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
    -1,     1,    94,     3,     4,     5,     6,    -1,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   111,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    -1,    32,    -1,    34,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
    -1,    -1,    -1,     1,    94,     3,     4,     5,     6,    -1,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
    13,    14,    15,   111,    17,    18,    19,    20,    21,    22,
    23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    -1,    34,    35,    36,    37,    -1,    39,    40,    41,    42,
    43,    44,    45,    46,    47,    -1,    -1,    50,    51,    52,
    53,    54,    55,    -1,    57,    58,    59,    -1,    61,    62,
    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,
    -1,    94,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,     3,
     4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
    14,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
    24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
    34,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    45,    46,    47,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    59,    -1,    61,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,
    94,    -1,    96,    -1,     3,     4,     5,     6,     7,     8,
     9,    10,    11,    -1,    13,    14,    15,   111,    17,    18,
    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    29,    30,    31,    32,    -1,    34,    35,    36,    37,    -1,
    39,    40,    41,    42,    43,    44,    45,    46,    47,    -1,
    -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
    59,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    68,
    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
    89,    -1,    -1,    -1,    -1,    94,    -1,    96,    -1,     3,
     4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
    14,    15,   111,    17,    18,    19,    20,    21,    22,    23,
    24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
    34,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    45,    46,    47,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    -1,    -1,    61,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,
    94,    -1,    96,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    12,    13,    14,    -1,    -1,   111,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    48,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
    -1,    91,    -1,    -1,    94,    95,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,    13,    14,    -1,    -1,
    -1,   111,    -1,    -1,    -1,     3,     4,     5,     6,    -1,
    -1,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
    -1,    48,    -1,    50,    51,    52,    53,    54,    55,    -1,
    57,    58,    -1,    -1,    42,    62,    -1,    -1,    -1,    -1,
    -1,    68,    -1,    -1,    71,    -1,    -1,    55,    -1,    57,
    58,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
    87,    88,    89,    71,    91,    -1,    -1,    94,    95,     3,
     4,     5,     6,    81,     8,     9,    10,    11,    -1,    13,
    14,    89,    -1,    -1,   111,    -1,    94,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,
    34,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,     3,     4,     5,     6,
    94,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
    57,    58,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
    87,    88,    89,    -1,    -1,    -1,    -1,    94,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,
    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,
    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
    -1,    -1,    87,    88,    89,     3,     4,     5,     6,    94,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    28,    29,    30,    31,    32,    -1,    34,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,     3,     4,     5,     6,    94,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   111,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    37,    -1,    39,    40,
    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
    51,    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,
    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,
     4,     5,     6,    94,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   111,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
    34,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,     3,     4,     5,     6,
    94,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
    57,    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,
    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
    87,    88,    89,     3,     4,     5,     6,    94,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    28,    29,
    30,    -1,    32,    -1,    34,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
     3,     4,     5,     6,    94,     8,     9,    10,    11,    -1,
    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   111,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
    -1,    34,    35,    36,    37,    -1,    39,    40,    41,    42,
    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,
    -1,    94,    95,     3,     4,     5,     6,    -1,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,   111,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
     3,     4,     5,     6,    94,     8,     9,    10,    11,    -1,
    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   111,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
    -1,    34,    35,    36,    37,    -1,    39,    40,    41,    42,
    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,
    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
    -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,     5,
     6,    94,     8,     9,    10,    11,    -1,    13,    14,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,    35,
    36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
    -1,    87,    88,    89,     3,     4,     5,     6,    94,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    37,    -1,
    39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
    -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
    89,     3,     4,     5,     6,    94,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   111,    -1,    -1,    -1,    28,    29,    30,    -1,
    32,    -1,    34,    35,    36,    37,    -1,    39,    40,    41,
    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
    -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,
     5,     6,    94,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,
    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
    -1,    -1,    87,    88,    89,     3,     4,     5,     6,    94,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,     4,     5,    -1,    -1,    -1,     9,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    31,    87,
    88,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
    -1,    -1,    12,    -1,    -1,    48,    -1,    -1,    -1,    -1,
    -1,    -1,    55,   111,    57,    58,    64,    65,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    71,    77,
    78,    79,    80,    81,    82,    83,    84,    85,    81,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,
    -1,    94,    95,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    80,    81,    82,    83,    84,    85,    64,    65,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    85,    69,    70,
    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
    81,    82,    83,    84,    85,    -1,    -1,    60,    -1,    -1,
   108,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
    83,    84,    85,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    80,    81,    82,    83,    84,    85,    64,    65,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    85
};
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "/usr/share/bison.simple"
/* This file comes from bison-1.28.  */

/* Skeleton output parser for bison,
   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

/* This is the parser code that is written into each bison parser
  when the %semantic_parser declaration is not specified in the grammar.
  It was written by Richard Stallman by simplifying the hairy parser
  used when %semantic_parser is specified.  */

#ifndef YYSTACK_USE_ALLOCA
#ifdef alloca
#define YYSTACK_USE_ALLOCA
#else /* alloca not defined */
#ifdef __GNUC__
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#else /* not GNU C.  */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
#define YYSTACK_USE_ALLOCA
#include <alloca.h>
#else /* not sparc */
/* We think this test detects Watcom and Microsoft C.  */
/* This used to test MSDOS, but that is a bad idea
   since that symbol is in the user namespace.  */
#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
#if 0 /* No need for malloc.h, which pollutes the namespace;
	 instead, just don't use alloca.  */
#include <malloc.h>
#endif
#else /* not MSDOS, or __TURBOC__ */
#if defined(_AIX)
/* I don't know what this was needed for, but it pollutes the namespace.
   So I turned it off.   rms, 2 May 1997.  */
/* #include <malloc.h>  */
 #pragma alloca
#define YYSTACK_USE_ALLOCA
#else /* not MSDOS, or __TURBOC__, or _AIX */
#if 0
#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
		 and on HPUX 10.  Eventually we can turn this on.  */
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#endif /* __hpux */
#endif
#endif /* not _AIX */
#endif /* not MSDOS, or __TURBOC__ */
#endif /* not sparc */
#endif /* not GNU C */
#endif /* alloca not defined */
#endif /* YYSTACK_USE_ALLOCA not defined */

#ifdef YYSTACK_USE_ALLOCA
#define YYSTACK_ALLOC alloca
#else
#define YYSTACK_ALLOC malloc
#endif

/* Note: there must be only one dollar sign in this file.
   It is replaced by the list of actions, each action
   as one case of the switch.  */

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		-2
#define YYEOF		0
#define YYACCEPT	goto yyacceptlab
#define YYABORT 	goto yyabortlab
#define YYERROR		goto yyerrlab1
/* Like YYERROR except do call yyerror.
   This remains here temporarily to ease the
   transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */
#define YYFAIL		goto yyerrlab
#define YYRECOVERING()  (!!yyerrstatus)
#define YYBACKUP(token, value) \
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    { yychar = (token), yylval = (value);			\
      yychar1 = YYTRANSLATE (yychar);				\
      YYPOPSTACK;						\
      goto yybackup;						\
    }								\
  else								\
    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
while (0)

#define YYTERROR	1
#define YYERRCODE	256

#ifndef YYPURE
#define YYLEX		yylex()
#endif

#ifdef YYPURE
#ifdef YYLSP_NEEDED
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval, &yylloc)
#endif
#else /* not YYLSP_NEEDED */
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval)
#endif
#endif /* not YYLSP_NEEDED */
#endif

/* If nonreentrant, generate the variables here */

#ifndef YYPURE

int	yychar;			/*  the lookahead symbol		*/
YYSTYPE	yylval;			/*  the semantic value of the		*/
				/*  lookahead symbol			*/

#ifdef YYLSP_NEEDED
YYLTYPE yylloc;			/*  location data for the lookahead	*/
				/*  symbol				*/
#endif

int yynerrs;			/*  number of parse errors so far       */
#endif  /* not YYPURE */

#if YYDEBUG != 0
int yydebug;			/*  nonzero means print parse trace	*/
/* Since this is uninitialized, it does not stop multiple parsers
   from coexisting.  */
#endif

/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/

#ifndef	YYINITDEPTH
#define YYINITDEPTH 200
#endif

/*  YYMAXDEPTH is the maximum size the stacks can grow to
    (effective only if the built-in stack extension method is used).  */

#if YYMAXDEPTH == 0
#undef YYMAXDEPTH
#endif

#ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000
#endif

/* Define __yy_memcpy.  Note that the size argument
   should be passed with type unsigned int, because that is what the non-GCC
   definitions require.  With GCC, __builtin_memcpy takes an arg
   of type size_t, but it can handle unsigned int.  */

#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
#else				/* not GNU C or C++ */
#ifndef __cplusplus

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (to, from, count)
     char *to;
     char *from;
     unsigned int count;
{
  register char *f = from;
  register char *t = to;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#else /* __cplusplus */

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (char *to, char *from, unsigned int count)
{
  register char *t = to;
  register char *f = from;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#endif
#endif

#line 217 "/usr/share/bison.simple"

/* The user can define YYPARSE_PARAM as the name of an argument to be passed
   into yyparse.  The argument should have type void *.
   It should actually point to an object.
   Grammar actions can access the variable by casting it
   to the proper pointer type.  */

#ifdef YYPARSE_PARAM
#ifdef __cplusplus
#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
#define YYPARSE_PARAM_DECL
#else /* not __cplusplus */
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
#endif /* not __cplusplus */
#else /* not YYPARSE_PARAM */
#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
#endif /* not YYPARSE_PARAM */

/* Prevent warning if -Wstrict-prototypes.  */
#ifdef __GNUC__
#ifdef YYPARSE_PARAM
int yyparse (void *);
#else
int yyparse (void);
#endif
#endif

int
yyparse(YYPARSE_PARAM_ARG)
     YYPARSE_PARAM_DECL
{
  register int yystate;
  register int yyn;
  register short *yyssp;
  register YYSTYPE *yyvsp;
  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */

  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/

  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */

#ifdef YYLSP_NEEDED
  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;

#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
#else
#define YYPOPSTACK   (yyvsp--, yyssp--)
#endif

  int yystacksize = YYINITDEPTH;
  int yyfree_stacks = 0;

#ifdef YYPURE
  int yychar;
  YYSTYPE yylval;
  int yynerrs;
#ifdef YYLSP_NEEDED
  YYLTYPE yylloc;
#endif
#endif

  YYSTYPE yyval;		/*  the variable used to return		*/
				/*  semantic values from the action	*/
				/*  routines				*/

  int yylen;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Starting parse\n");
#endif

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */

  yyssp = yyss - 1;
  yyvsp = yyvs;
#ifdef YYLSP_NEEDED
  yylsp = yyls;
#endif

/* Push a new state, which is found in  yystate  .  */
/* In all cases, when you get here, the value and location stacks
   have just been pushed. so pushing a state here evens the stacks.  */
yynewstate:

  *++yyssp = yystate;

  if (yyssp >= yyss + yystacksize - 1)
    {
      /* Give user a chance to reallocate the stack */
      /* Use copies of these so that the &'s don't force the real ones into memory. */
      YYSTYPE *yyvs1 = yyvs;
      short *yyss1 = yyss;
#ifdef YYLSP_NEEDED
      YYLTYPE *yyls1 = yyls;
#endif

      /* Get the current used size of the three stacks, in elements.  */
      int size = yyssp - yyss + 1;

#ifdef yyoverflow
      /* Each stack pointer address is followed by the size of
	 the data in use in that stack, in bytes.  */
#ifdef YYLSP_NEEDED
      /* This used to be a conditional around just the two extra args,
	 but that might be undefined if yyoverflow is a macro.  */
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yyls1, size * sizeof (*yylsp),
		 &yystacksize);
#else
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yystacksize);
#endif

      yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED
      yyls = yyls1;
#endif
#else /* no yyoverflow */
      /* Extend the stack our own way.  */
      if (yystacksize >= YYMAXDEPTH)
	{
	  yyerror("parser stack overflow");
	  if (yyfree_stacks)
	    {
	      free (yyss);
	      free (yyvs);
#ifdef YYLSP_NEEDED
	      free (yyls);
#endif
	    }
	  return 2;
	}
      yystacksize *= 2;
      if (yystacksize > YYMAXDEPTH)
	yystacksize = YYMAXDEPTH;
#ifndef YYSTACK_USE_ALLOCA
      yyfree_stacks = 1;
#endif
      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
      __yy_memcpy ((char *)yyss, (char *)yyss1,
		   size * (unsigned int) sizeof (*yyssp));
      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
		   size * (unsigned int) sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
      __yy_memcpy ((char *)yyls, (char *)yyls1,
		   size * (unsigned int) sizeof (*yylsp));
#endif
#endif /* no yyoverflow */

      yyssp = yyss + size - 1;
      yyvsp = yyvs + size - 1;
#ifdef YYLSP_NEEDED
      yylsp = yyls + size - 1;
#endif

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif

      if (yyssp >= yyss + yystacksize - 1)
	YYABORT;
    }

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Entering state %d\n", yystate);
#endif

  goto yybackup;
 yybackup:

/* Do appropriate processing given the current state.  */
/* Read a lookahead token if we need one and don't already have one.  */
/* yyresume: */

  /* First try to decide what to do without reference to lookahead token.  */

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* yychar is either YYEMPTY or YYEOF
     or a valid token in external form.  */

  if (yychar == YYEMPTY)
    {
#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Reading a token: ");
#endif
      yychar = YYLEX;
    }

  /* Convert token to internal form (in yychar1) for indexing tables with */

  if (yychar <= 0)		/* This means end of input. */
    {
      yychar1 = 0;
      yychar = YYEOF;		/* Don't call YYLEX any more */

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Now at end of input.\n");
#endif
    }
  else
    {
      yychar1 = YYTRANSLATE(yychar);

#if YYDEBUG != 0
      if (yydebug)
	{
	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
	  /* Give the individual parser a way to print the precise meaning
	     of a token, for further debugging info.  */
#ifdef YYPRINT
	  YYPRINT (stderr, yychar, yylval);
#endif
	  fprintf (stderr, ")\n");
	}
#endif
    }

  yyn += yychar1;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
    goto yydefault;

  yyn = yytable[yyn];

  /* yyn is what to do for this token type in this state.
     Negative => reduce, -yyn is rule number.
     Positive => shift, yyn is new state.
       New state is final state => don't bother to shift,
       just return success.
     0, or most negative number => error.  */

  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrlab;

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Shift the lookahead token.  */

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif

  /* Discard the token being shifted unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  /* count tokens shifted since error; after three, turn off error status.  */
  if (yyerrstatus) yyerrstatus--;

  yystate = yyn;
  goto yynewstate;

/* Do the default action for the current state.  */
yydefault:

  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;

/* Do a reduction.  yyn is the number of a rule to reduce with.  */
yyreduce:
  yylen = yyr2[yyn];
  if (yylen > 0)
    yyval = yyvsp[1-yylen]; /* implement default value of the action */

#if YYDEBUG != 0
  if (yydebug)
    {
      int i;

      fprintf (stderr, "Reducing via rule %d (line %d), ",
	       yyn, yyrline[yyn]);

      /* Print the symbols being reduced, and their result.  */
      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
    }
#endif


  switch (yyn) {

case 2:
#line 345 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_translation_unit (); ;
    break;}
case 3:
#line 353 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 4:
#line 355 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 5:
#line 357 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 8:
#line 366 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ have_extern_spec = 1;
		  used_extern_spec = 0;
		  yyval.ttype = NULL_TREE; ;
    break;}
case 9:
#line 371 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ have_extern_spec = 0; ;
    break;}
case 10:
#line 376 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = pedantic;
		  pedantic = 0; ;
    break;}
case 12:
#line 385 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_lang_change) do_pending_lang_change(); ;
    break;}
case 13:
#line 387 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (! toplevel_bindings_p () && ! pseudo_global_level_p())
		  pop_everything (); ;
    break;}
case 14:
#line 393 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 15:
#line 395 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 16:
#line 397 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 17:
#line 399 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
		  assemble_asm (yyvsp[-2].ttype); ;
    break;}
case 18:
#line 402 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ pop_lang_context (); ;
    break;}
case 19:
#line 404 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 20:
#line 407 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 21:
#line 410 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ push_namespace (yyvsp[-1].ttype); ;
    break;}
case 22:
#line 412 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ pop_namespace (); ;
    break;}
case 23:
#line 414 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ push_namespace (NULL_TREE); ;
    break;}
case 24:
#line 416 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ pop_namespace (); ;
    break;}
case 26:
#line 419 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_toplevel_using_decl (yyvsp[-1].ttype); ;
    break;}
case 28:
#line 422 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 29:
#line 427 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 30:
#line 429 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  end_only_namespace_names ();
		  if (lastiddecl)
		    yyvsp[-1].ttype = lastiddecl;
		  do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
		;
    break;}
case 31:
#line 439 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 32:
#line 441 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 33:
#line 443 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 34:
#line 448 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 35:
#line 450 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
    break;}
case 36:
#line 452 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 37:
#line 457 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 38:
#line 459 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  end_only_namespace_names ();
		  /* If no declaration was found, the using-directive is
		     invalid. Since that was not reported, we need the
		     identifier for the error message. */
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
		    yyvsp[-1].ttype = lastiddecl;
		  do_using_directive (yyvsp[-1].ttype);
		;
    break;}
case 39:
#line 472 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 40:
#line 478 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 43:
#line 489 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 44:
#line 491 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 45:
#line 496 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ push_lang_context (yyvsp[0].ttype); ;
    break;}
case 46:
#line 498 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (current_lang_name != yyvsp[0].ttype)
		    cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
		  pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
    break;}
case 47:
#line 505 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ begin_template_parm_list (); ;
    break;}
case 48:
#line 507 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
    break;}
case 49:
#line 509 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ begin_specialization(); 
		  yyval.ttype = NULL_TREE; ;
    break;}
case 50:
#line 515 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 51:
#line 517 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 52:
#line 522 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 53:
#line 524 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 54:
#line 528 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 55:
#line 530 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
    break;}
case 56:
#line 535 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 57:
#line 547 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 58:
#line 549 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
    break;}
case 59:
#line 551 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 60:
#line 553 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
    break;}
case 61:
#line 555 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 62:
#line 557 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
		      && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
		      && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
		    {
		      error ("invalid default template argument");
		      yyvsp[0].ttype = error_mark_node;
		    }
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
		;
    break;}
case 63:
#line 571 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
    break;}
case 64:
#line 573 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
    break;}
case 65:
#line 578 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 66:
#line 580 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 67:
#line 582 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 68:
#line 584 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 69:
#line 587 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 70:
#line 590 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 72:
#line 596 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{;
    break;}
case 73:
#line 598 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
    break;}
case 74:
#line 600 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ maybe_process_partial_specialization (yyvsp[-1].ftype.t);
		  note_got_semicolon (yyvsp[-1].ftype.t); ;
    break;}
case 76:
#line 607 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{;
    break;}
case 77:
#line 609 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
    break;}
case 78:
#line 611 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 80:
#line 614 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  tree t, attrs;
		  split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
		  shadow_tag (t);
		  note_list_got_semicolon (yyvsp[-1].ftype.t);
		;
    break;}
case 84:
#line 627 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 85:
#line 629 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = 1; ;
    break;}
case 91:
#line 645 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
    break;}
case 92:
#line 647 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[0].itype, nested); 
		;
    break;}
case 93:
#line 653 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ ;
    break;}
case 94:
#line 658 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 95:
#line 660 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 96:
#line 662 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 97:
#line 666 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 98:
#line 668 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 99:
#line 670 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 100:
#line 674 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 101:
#line 676 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 102:
#line 678 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 103:
#line 682 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 104:
#line 684 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 105:
#line 686 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 106:
#line 693 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 107:
#line 696 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 108:
#line 699 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 109:
#line 702 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 110:
#line 705 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 111:
#line 711 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 112:
#line 713 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 113:
#line 715 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 114:
#line 717 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 115:
#line 724 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs);
		 rest_of_mdef:
		  if (! yyval.ttype)
		    YYERROR1;
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  reinit_parse_for_method (yychar, yyval.ttype); ;
    break;}
case 116:
#line 735 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 117:
#line 738 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
    break;}
case 118:
#line 743 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
    break;}
case 119:
#line 748 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 120:
#line 751 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
    break;}
case 121:
#line 756 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 122:
#line 762 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 123:
#line 771 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ store_return_init (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 124:
#line 773 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 125:
#line 775 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ store_return_init (yyval.ttype, NULL_TREE); ;
    break;}
case 126:
#line 780 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (yyvsp[0].itype == 0)
		    error ("no base initializers given following ':'");
		  setup_vtbl_ptr ();
		  /* Always keep the BLOCK node associated with the outermost
		     pair of curley braces of a function.  These are needed
		     for correct operation of dwarfout.c.  */
		  keep_next_level ();
		;
    break;}
case 127:
#line 793 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();

		  if (DECL_CONSTRUCTOR_P (current_function_decl))
		    {
		      /* Make a contour for the initializer list.  */
		      pushlevel (0);
		      clear_last_expr ();
		      expand_start_bindings (0);
		    }
		  else if (current_class_type == NULL_TREE)
		    error ("base initializers not allowed for non-member functions");
		  else if (! DECL_CONSTRUCTOR_P (current_function_decl))
		    error ("only constructors take base initializers");
		;
    break;}
case 128:
#line 813 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 129:
#line 815 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = 1; ;
    break;}
case 132:
#line 822 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (current_class_name)
		    pedwarn ("anachronistic old style base class initializer");
		  expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
		;
    break;}
case 133:
#line 828 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (current_class_name)
		    pedwarn ("anachronistic old style base class initializer");
		  expand_member_init (current_class_ref, NULL_TREE, void_type_node);
		;
    break;}
case 134:
#line 834 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 135:
#line 836 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 136:
#line 838 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 137:
#line 840 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 138:
#line 842 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
				      yyvsp[-1].ttype); ;
    break;}
case 139:
#line 845 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
				      void_type_node); ;
    break;}
case 151:
#line 871 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
		  yyungetc (';', 1); ;
    break;}
case 153:
#line 875 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 155:
#line 879 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 157:
#line 882 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 159:
#line 885 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
		  yyungetc (';', 1); ;
    break;}
case 161:
#line 890 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 163:
#line 894 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 165:
#line 897 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 167:
#line 902 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ begin_explicit_instantiation(); ;
    break;}
case 168:
#line 905 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ end_explicit_instantiation(); ;
    break;}
case 169:
#line 914 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 170:
#line 917 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 173:
#line 925 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 174:
#line 930 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 175:
#line 934 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;

		  yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype, 
					     yychar == SCOPE);
		;
    break;}
case 177:
#line 945 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* Handle `Class<Class<Type>>' without space in the `>>' */
		  pedwarn ("`>>' should be `> >' in template class name");
		  yyungetc ('>', 1);
		;
    break;}
case 178:
#line 954 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 180:
#line 960 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 181:
#line 962 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 182:
#line 967 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
    break;}
case 183:
#line 969 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = lastiddecl; ;
    break;}
case 185:
#line 975 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 186:
#line 977 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 187:
#line 979 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 188:
#line 981 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 189:
#line 983 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 190:
#line 988 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
    break;}
case 192:
#line 994 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 193:
#line 998 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 194:
#line 1003 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 195:
#line 1007 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 196:
#line 1012 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 198:
#line 1015 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 199:
#line 1020 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ {
		  tree d;
		  for (d = getdecls (); d; d = TREE_CHAIN (d))
		    if (TREE_CODE (d) == TYPE_DECL) {
		      tree s = TREE_TYPE (d);
		      if (TREE_CODE (s) == RECORD_TYPE)
			cp_error ("definition of class `%T' in condition", s);
		      else if (TREE_CODE (s) == ENUMERAL_TYPE)
			cp_error ("definition of enum `%T' in condition", s);
		    }
		  }
		  current_declspecs = yyvsp[-4].ftype.t;
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
					  yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
		;
    break;}
case 200:
#line 1037 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
		  resume_momentary (yyvsp[-2].itype);
		  yyval.ttype = convert_from_reference (yyvsp[-1].ttype); 
		  if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
		    cp_error ("definition of array `%#D' in condition", yyval.ttype); 
		;
    break;}
case 206:
#line 1056 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_compound_stmt (1); ;
    break;}
case 207:
#line 1058 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_compound_stmt (1, yyvsp[-1].ttype); ;
    break;}
case 209:
#line 1065 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
		                  build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 210:
#line 1068 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
		                  build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 211:
#line 1071 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 212:
#line 1073 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 213:
#line 1078 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
    break;}
case 215:
#line 1084 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 216:
#line 1087 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 217:
#line 1090 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 218:
#line 1092 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 219:
#line 1094 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 220:
#line 1096 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 221:
#line 1099 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids `&&'");
  		  yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
    break;}
case 222:
#line 1103 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
    break;}
case 223:
#line 1105 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t));
		  check_for_new_type ("sizeof", yyvsp[-1].ftype); ;
    break;}
case 224:
#line 1108 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
    break;}
case 225:
#line 1110 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
		  check_for_new_type ("alignof", yyvsp[-1].ftype); ;
    break;}
case 226:
#line 1113 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = c_vec_step_expr (yyvsp[0].ttype); ;
    break;}
case 227:
#line 1115 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = c_vec_step (groktypename (yyvsp[-1].ftype.t)); ;
    break;}
case 228:
#line 1120 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
		  check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 229:
#line 1123 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 230:
#line 1126 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
		  check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 231:
#line 1129 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 232:
#line 1142 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
				  NULL_TREE, yyvsp[-4].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 233:
#line 1147 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 234:
#line 1151 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 235:
#line 1155 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 236:
#line 1159 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
    break;}
case 237:
#line 1161 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 238:
#line 1165 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 239:
#line 1169 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 240:
#line 1171 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 241:
#line 1181 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
    break;}
case 242:
#line 1184 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = begin_new_placement (); ;
    break;}
case 243:
#line 1188 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
    break;}
case 244:
#line 1190 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ cp_pedwarn ("old style placement syntax, use () instead");
		  yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
    break;}
case 245:
#line 1196 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 246:
#line 1198 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 247:
#line 1200 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
		  yyval.ttype = error_mark_node;
		;
    break;}
case 248:
#line 1208 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids initialization of new expression with `='");
		  if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
		      && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
		    yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 249:
#line 1222 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
		  yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 250:
#line 1226 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); 
		  yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 252:
#line 1234 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = reparse_absdcl_as_casts_or_vector_constant (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 253:
#line 1236 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = reparse_absdcl_as_casts_or_vector_constant (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 254:
#line 1238 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  tree init = build_nt (CONSTRUCTOR, NULL_TREE,
					nreverse (yyvsp[-2].ttype)); 
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids constructor-expressions");
		  /* Indicate that this was a GNU C constructor expression.  */
		  TREE_HAS_CONSTRUCTOR (init) = 1;

		  yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
		;
    break;}
case 256:
#line 1254 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 257:
#line 1256 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 258:
#line 1258 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 259:
#line 1260 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 260:
#line 1262 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 261:
#line 1264 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 262:
#line 1266 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 263:
#line 1268 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 264:
#line 1270 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 265:
#line 1272 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 266:
#line 1274 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 267:
#line 1276 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 268:
#line 1278 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 269:
#line 1280 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 270:
#line 1282 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 271:
#line 1284 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 272:
#line 1286 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 273:
#line 1288 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 274:
#line 1290 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 275:
#line 1292 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 276:
#line 1294 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
		  if (yyval.ttype != error_mark_node)
                    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
    break;}
case 277:
#line 1298 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 278:
#line 1300 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_throw (NULL_TREE); ;
    break;}
case 279:
#line 1302 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
    break;}
case 280:
#line 1320 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 281:
#line 1322 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 287:
#line 1331 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* If lastiddecl is a TREE_LIST, it's a baselink, which
		     means that we're in an expression like S::f<int>, so
		     don't do_identifier; we only do that for unqualified
		     identifiers.  */
		  if (lastiddecl && TREE_CODE (lastiddecl) != TREE_LIST)
		    yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE);
		  else
		    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 288:
#line 1344 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 289:
#line 1346 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 290:
#line 1351 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 291:
#line 1353 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 292:
#line 1356 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 297:
#line 1368 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 299:
#line 1378 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
    break;}
case 300:
#line 1380 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 301:
#line 1382 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 302:
#line 1387 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 303:
#line 1389 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 307:
#line 1399 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
    break;}
case 308:
#line 1404 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
		    yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
		  else 
		    yyval.ttype = finish_id_expr (yyvsp[0].ttype);
		;
    break;}
case 311:
#line 1413 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (processing_template_decl)
		    push_obstacks (&permanent_obstack, &permanent_obstack);
		  yyval.ttype = combine_strings (yyval.ttype);
		  /* combine_strings doesn't set up TYPE_MAIN_VARIANT of
		     a const array the way we want, so fix it.  */
		  if (flag_const_strings)
		    TREE_TYPE (yyval.ttype) = build_cplus_array_type
		      (TREE_TYPE (TREE_TYPE (yyval.ttype)),
		       TYPE_DOMAIN (TREE_TYPE (yyval.ttype)));
		  if (processing_template_decl)
		    pop_obstacks ();
		;
    break;}
case 312:
#line 1427 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 313:
#line 1429 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
		  yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 314:
#line 1432 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 315:
#line 1434 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree scope = current_scope ();
		  if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
		    {
		      error ("braced-group within expression allowed only inside a function");
		      YYERROR;
		    }
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids braced-groups within expressions");  
		  yyval.ttype = begin_stmt_expr (); 
		;
    break;}
case 316:
#line 1445 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 317:
#line 1450 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
    break;}
case 318:
#line 1452 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
    break;}
case 319:
#line 1454 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
    break;}
case 320:
#line 1456 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
    break;}
case 321:
#line 1458 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 322:
#line 1460 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
    break;}
case 323:
#line 1462 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
    break;}
case 324:
#line 1465 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_this_expr (); ;
    break;}
case 325:
#line 1467 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* This is a C cast in C++'s `functional' notation
		     using the "implicit int" extension so that:
		     `const (3)' is equivalent to `const int (3)'.  */
		  tree type;

		  if (yyvsp[-1].ttype == error_mark_node)
		    {
		      yyval.ttype = error_mark_node;
		      break;
		    }

		  type = cp_build_qualified_type (integer_type_node,
						  cp_type_qual_from_rid (yyvsp[-3].ttype));
		  yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
		;
    break;}
case 327:
#line 1485 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
    break;}
case 328:
#line 1489 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("static_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
    break;}
case 329:
#line 1493 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
    break;}
case 330:
#line 1497 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("const_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
    break;}
case 331:
#line 1501 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
    break;}
case 332:
#line 1503 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);
		  check_for_new_type ("typeid", yyvsp[-1].ftype);
		  yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
    break;}
case 333:
#line 1507 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
    break;}
case 334:
#line 1509 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 335:
#line 1511 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  got_scope = NULL_TREE;
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 336:
#line 1519 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
    break;}
case 337:
#line 1521 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 338:
#line 1523 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 339:
#line 1525 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
		;
    break;}
case 340:
#line 1529 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 341:
#line 1531 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 342:
#line 1533 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 343:
#line 1535 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (processing_template_decl)
		    yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
		  else
		    yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
    break;}
case 344:
#line 1540 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 345:
#line 1542 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 346:
#line 1544 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 347:
#line 1546 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 348:
#line 1549 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 349:
#line 1551 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 350:
#line 1553 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  yyval.ttype = error_mark_node;
		;
    break;}
case 351:
#line 1598 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 352:
#line 1600 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 353:
#line 1605 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 354:
#line 1607 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 355:
#line 1612 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = boolean_true_node; ;
    break;}
case 356:
#line 1614 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = boolean_false_node; ;
    break;}
case 358:
#line 1621 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 359:
#line 1626 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  setup_vtbl_ptr ();
		  /* Always keep the BLOCK node associated with the outermost
		     pair of curley braces of a function.  These are needed
		     for correct operation of dwarfout.c.  */
		  keep_next_level ();
		;
    break;}
case 360:
#line 1639 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_object = TREE_TYPE (yyval.ttype); ;
    break;}
case 361:
#line 1641 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  yyval.ttype = build_x_arrow (yyval.ttype); 
		  got_object = TREE_TYPE (yyval.ttype);
		;
    break;}
case 362:
#line 1649 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  resume_momentary (yyvsp[-1].itype);
		  if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
		    note_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 363:
#line 1655 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  resume_momentary (yyvsp[-1].itype);
		  note_list_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 364:
#line 1660 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ resume_momentary (yyvsp[-1].itype); ;
    break;}
case 365:
#line 1662 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  shadow_tag (yyvsp[-1].ftype.t);
		  note_list_got_semicolon (yyvsp[-1].ftype.t);
		;
    break;}
case 366:
#line 1667 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ warning ("empty declaration"); ;
    break;}
case 367:
#line 1669 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 370:
#line 1683 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
					     NULL_TREE, NULL_TREE); ;
    break;}
case 371:
#line 1686 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
					     NULL_TREE); ;
    break;}
case 372:
#line 1693 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 373:
#line 1696 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 374:
#line 1699 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_decl_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
					  yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 375:
#line 1703 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 376:
#line 1706 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 379:
#line 1722 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 380:
#line 1725 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 381:
#line 1728 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 382:
#line 1731 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 383:
#line 1734 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 384:
#line 1737 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
					 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 385:
#line 1744 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyval.ttype));
		  yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
    break;}
case 386:
#line 1749 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
    break;}
case 387:
#line 1751 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 388:
#line 1756 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 389:
#line 1758 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 390:
#line 1777 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 391:
#line 1779 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = hash_tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
    break;}
case 392:
#line 1781 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 393:
#line 1784 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (extra_warnings && TREE_STATIC (yyval.ttype))
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
		  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
    break;}
case 394:
#line 1790 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 395:
#line 1792 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 396:
#line 1803 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 397:
#line 1806 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 398:
#line 1809 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 399:
#line 1812 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 400:
#line 1818 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 401:
#line 1820 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 403:
#line 1830 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 404:
#line 1832 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 405:
#line 1834 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = finish_typeof (yyvsp[-1].ttype);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 406:
#line 1837 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 407:
#line 1840 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree type = TREE_TYPE (yyvsp[-1].ttype);

                  yyval.ftype.new_type_flag = 0;
		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ftype.t = type;
		    }
		  else
		    {
		      error ("`sigof' applied to non-aggregate expression");
		      yyval.ftype.t = error_mark_node;
		    }
		;
    break;}
case 408:
#line 1855 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);

                  yyval.ftype.new_type_flag = 0;
		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ftype.t = type;
		    }
		  else
		    {
		      error("`sigof' applied to non-aggregate type");
		      yyval.ftype.t = error_mark_node;
		    }
		;
    break;}
case 409:
#line 1875 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 410:
#line 1877 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 413:
#line 1884 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ check_multiple_declarators (); ;
    break;}
case 415:
#line 1890 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ check_multiple_declarators (); ;
    break;}
case 417:
#line 1896 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ check_multiple_declarators (); ;
    break;}
case 418:
#line 1901 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 419:
#line 1903 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 420:
#line 1908 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
					  yyvsp[-1].ttype, prefix_attributes); ;
    break;}
case 421:
#line 1912 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
    break;}
case 422:
#line 1914 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
					  yyvsp[0].ttype, prefix_attributes);
		  cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 423:
#line 1927 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, 
					   yyvsp[-1].ttype, 1, &yyval.ttype); ;
    break;}
case 424:
#line 1932 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
				  LOOKUP_ONLYCONVERTING);
		  yyval.itype = yyvsp[-2].itype; ;
    break;}
case 425:
#line 1936 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree d;
		  yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 426:
#line 1943 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = yyvsp[0].itype; ;
    break;}
case 427:
#line 1947 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = yyvsp[0].itype; ;
    break;}
case 428:
#line 1952 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ /* Set things up as initdcl0_innards expects.  */
	      yyvsp[0].ttype = yyvsp[-1].ttype; 
              yyvsp[-1].ttype = NULL_TREE; ;
    break;}
case 429:
#line 1956 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{;
    break;}
case 430:
#line 1958 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree d;
		  parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 431:
#line 1967 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 432:
#line 1969 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 433:
#line 1974 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 434:
#line 1976 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 435:
#line 1981 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 436:
#line 1986 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 437:
#line 1988 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 438:
#line 1993 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 439:
#line 1995 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 440:
#line 1997 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 441:
#line 1999 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 442:
#line 2001 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 447:
#line 2017 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 448:
#line 2019 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 449:
#line 2024 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 450:
#line 2026 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 452:
#line 2034 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 453:
#line 2037 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 454:
#line 2040 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 455:
#line 2043 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 456:
#line 2050 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 457:
#line 2052 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 458:
#line 2055 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 459:
#line 2057 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 460:
#line 2059 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 461:
#line 2064 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
				  NULL_TREE, 2);
		  reinit_parse_for_function (); ;
    break;}
case 462:
#line 2070 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[-1].itype | 2, nested);
		  process_next_inline (yyvsp[-3].ttype);
		;
    break;}
case 463:
#line 2077 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[0].itype | 2, nested); 
                  process_next_inline (yyvsp[-2].ttype);
		;
    break;}
case 464:
#line 2084 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ process_next_inline (yyvsp[-2].ttype); ;
    break;}
case 467:
#line 2096 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 468:
#line 2098 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
    break;}
case 470:
#line 2103 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_pending_defargs (); ;
    break;}
case 471:
#line 2105 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_pending_defargs (); ;
    break;}
case 472:
#line 2110 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = current_enum_type;
		  current_enum_type = start_enum (yyvsp[-1].ttype); ;
    break;}
case 473:
#line 2114 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
		  yyval.ftype.t = finish_enum (current_enum_type);
		  yyval.ftype.new_type_flag = 1;
		  current_enum_type = yyvsp[-3].ttype;
		  resume_momentary ((int) yyvsp[-4].itype);
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 474:
#line 2121 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype));
		  yyval.ftype.new_type_flag = 1;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 475:
#line 2125 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = current_enum_type;
		  current_enum_type = start_enum (make_anon_name ()); ;
    break;}
case 476:
#line 2129 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
		  yyval.ftype.t = finish_enum (current_enum_type);
		  yyval.ftype.new_type_flag = 1;
		  current_enum_type = yyvsp[-3].ttype;
		  resume_momentary ((int) yyvsp[-5].itype);
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 477:
#line 2136 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = finish_enum (start_enum (make_anon_name()));
		  yyval.ftype.new_type_flag = 1;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 478:
#line 2140 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 479:
#line 2143 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 480:
#line 2146 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0; 
		  if (!processing_template_decl)
		    cp_pedwarn ("using `typename' outside of template"); ;
    break;}
case 481:
#line 2152 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyvsp[-1].ftype.t = begin_class_definition (yyvsp[-1].ftype.t); ;
    break;}
case 482:
#line 2154 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  int semi;

		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  semi = yychar == ';';

		  yyval.ttype = finish_class_definition (yyvsp[-5].ftype.t, yyvsp[0].ttype, semi,
						       yyvsp[-5].ftype.new_type_flag); 
		;
    break;}
case 483:
#line 2165 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  begin_inline_definitions ();
		;
    break;}
case 484:
#line 2169 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  finish_inline_definitions ();
		  yyval.ftype.t = yyvsp[-3].ttype;
		  yyval.ftype.new_type_flag = 1; 
		;
    break;}
case 485:
#line 2175 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (yyvsp[0].ftype.new_type_flag)
		    pop_scope (CP_DECL_CONTEXT (TYPE_MAIN_DECL (yyvsp[0].ftype.t)));
		  yyval.ftype.new_type_flag = 0;
		  if (TYPE_BINFO (yyvsp[0].ftype.t) == NULL_TREE)
		    {
		      cp_error ("%T is not a class type", yyvsp[0].ftype.t);
		      yyval.ftype.t = error_mark_node;
		    } 
		  else
		    {
		      yyval.ftype.t = yyvsp[0].ftype.t;
		      /* struct B: public A; is not accepted by the WP grammar.  */
		      if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
			  && ! TYPE_BEING_DEFINED (yyval.ftype.t))
			cp_error ("base clause without member specification for `%#T'",
				  yyval.ftype.t);
		    }
		;
    break;}
case 489:
#line 2204 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pedantic && !in_system_header)
		    pedwarn ("comma at end of enumerator list"); ;
    break;}
case 491:
#line 2211 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 492:
#line 2213 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 493:
#line 2215 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 494:
#line 2217 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ error ("no body nor ';' separates two class, struct or union declarations"); ;
    break;}
case 495:
#line 2219 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 496:
#line 2224 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  current_aggr = yyvsp[-1].ttype; 
		  yyval.ttype = yyvsp[0].ttype; 
		;
    break;}
case 497:
#line 2232 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 498:
#line 2234 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyungetc ('{', 1); ;
    break;}
case 499:
#line 2236 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyungetc (':', 1); ;
    break;}
case 500:
#line 2241 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 501:
#line 2247 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  current_aggr = yyvsp[-3].ttype;
		  yyval.ftype.t = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 502:
#line 2253 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 503:
#line 2259 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  current_aggr = yyvsp[-1].ttype; 
		  yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 504:
#line 2265 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  current_aggr = yyvsp[-2].ttype; 
		  yyval.ftype.t = yyvsp[0].ttype;
		  if (CP_DECL_CONTEXT (yyval.ftype.t))
		    push_scope (CP_DECL_CONTEXT (yyval.ftype.t));
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 505:
#line 2276 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  yyval.ftype.t = xref_tag (current_aggr, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 506:
#line 2281 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
    break;}
case 507:
#line 2285 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  yyval.ftype.t = yyvsp[-1].ttype;
		  yyval.ftype.new_type_flag = 0;
		  if (yyvsp[0].ttype)
                    xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
		;
    break;}
case 508:
#line 2293 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  if (yyvsp[-1].ftype.t != error_mark_node)
		    {
		      yyval.ftype.t = TREE_TYPE (yyvsp[-1].ftype.t);
		      yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
		      if (current_aggr == union_type_node
			  && TREE_CODE (yyval.ftype.t) != UNION_TYPE)
			cp_pedwarn ("`union' tag used in declaring `%#T'", 
				    yyval.ftype.t);
		      else if (TREE_CODE (yyval.ftype.t) == UNION_TYPE
			       && current_aggr != union_type_node)
			cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ftype);
		      else if (TREE_CODE (yyval.ftype.t) == RECORD_TYPE)
			/* We might be specializing a template with a different
			   class-key; deal.  */
			CLASSTYPE_DECLARED_CLASS (yyval.ftype.t) 
			  = (current_aggr == class_type_node);
		      if (yyvsp[0].ttype)
			{
			  maybe_process_partial_specialization (yyval.ftype.t);
			  xref_basetypes (current_aggr, yyvsp[-1].ftype.t, yyval.ftype.t, yyvsp[0].ttype); 
			}
		    }
		;
    break;}
case 509:
#line 2321 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0);
		  yyungetc ('{', 1); ;
    break;}
case 510:
#line 2331 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 512:
#line 2340 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 513:
#line 2342 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
    break;}
case 514:
#line 2344 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 516:
#line 2350 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 517:
#line 2355 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype,
					      current_aggr 
					      == signature_type_node); ;
    break;}
case 518:
#line 2359 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 
					      current_aggr 
					      == signature_type_node); ;
    break;}
case 519:
#line 2366 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
    break;}
case 521:
#line 2369 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
			{
			  sorry ("`sigof' as base signature specifier");
			  yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
			}
		      else
			{
			  error ("`sigof' applied to non-aggregate expression");
			  yyval.ttype = error_mark_node;
			}
		    }
		  else
		    {
		      error ("`sigof' in struct or class declaration");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 522:
#line 2390 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
			{
			  sorry ("`sigof' as base signature specifier");
			  yyval.ttype = groktypename (yyvsp[-1].ftype.t);
			}
		      else
			{
			  error ("`sigof' applied to non-aggregate expression");
			  yyval.ttype = error_mark_node;
			}
		    }
		  else
		    {
		      error ("`sigof' in struct or class declaration");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 524:
#line 2415 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
		    cp_error ("`%D' access", yyvsp[-1].ttype);
		  yyval.ttype = access_default_virtual_node; ;
    break;}
case 525:
#line 2419 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (yyvsp[-2].ttype != access_default_virtual_node)
		    error ("multiple access specifiers");
		  else if (yyvsp[-1].ttype == access_public_node)
		    yyval.ttype = access_public_virtual_node;
		  else if (yyvsp[-1].ttype == access_protected_node)
		    yyval.ttype = access_protected_virtual_node;
		  else /* $2 == access_private_node */
		    yyval.ttype = access_private_virtual_node;
		;
    break;}
case 526:
#line 2430 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
		    cp_error ("`%D' access", yyvsp[-1].ttype);
		  else if (yyval.ttype == access_public_node)
		    yyval.ttype = access_public_virtual_node;
		  else if (yyval.ttype == access_protected_node)
		    yyval.ttype = access_protected_virtual_node;
		  else if (yyval.ttype == access_private_node)
		    yyval.ttype = access_private_virtual_node;
		  else
		    error ("multiple `virtual' specifiers");
		;
    break;}
case 531:
#line 2451 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      error ("access specifier not allowed in signature");
		      yyvsp[-1].ttype = access_public_node;
		    }

		  current_access_specifier = yyvsp[-1].ttype;
                ;
    break;}
case 532:
#line 2466 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  finish_member_declaration (yyvsp[0].ttype);
		;
    break;}
case 533:
#line 2470 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  finish_member_declaration (yyvsp[0].ttype);
		;
    break;}
case 535:
#line 2478 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ error ("missing ';' before right brace");
		  yyungetc ('}', 0); ;
    break;}
case 536:
#line 2483 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 537:
#line 2485 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 538:
#line 2487 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 539:
#line 2489 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 540:
#line 2491 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 541:
#line 2493 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 542:
#line 2496 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{  
		  if (yyvsp[0].ttype)
		    yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
		  else
		    /* The component was already processed.  */
		    yyval.ttype = NULL_TREE;

		  finish_template_decl (yyvsp[-1].ttype);
		;
    break;}
case 543:
#line 2506 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); 
		  finish_template_decl (yyvsp[-2].ttype);
		;
    break;}
case 544:
#line 2517 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* Most of the productions for component_decl only
		     allow the creation of one new member, so we call
		     finish_member_declaration in component_decl_list.
		     For this rule and the next, however, there can be
		     more than one member, e.g.:

		       int i, j;

		     and we need the first member to be fully
		     registered before the second is processed.
		     Therefore, the rules for components take care of
		     this processing.  To avoid registering the
		     components more than once, we send NULL_TREE up
		     here; that lets finish_member_declaration know
		     that there is nothing to do.  */
		  if (!yyvsp[0].itype)
		    grok_x_components (yyvsp[-1].ftype.t);
		  yyval.ttype = NULL_TREE;
		;
    break;}
case 545:
#line 2538 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  if (!yyvsp[0].itype)
		    grok_x_components (yyvsp[-1].ttype);
		  yyval.ttype = NULL_TREE; 
		;
    break;}
case 546:
#line 2544 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 547:
#line 2547 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 548:
#line 2550 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 549:
#line 2552 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 550:
#line 2563 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
		  yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, attrs)); ;
    break;}
case 551:
#line 2568 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 552:
#line 2571 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
    break;}
case 553:
#line 2577 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 554:
#line 2579 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype); 
		  yyval.itype = 1;
		;
    break;}
case 555:
#line 2586 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  check_multiple_declarators ();
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype);
		  yyval.itype = 2;
		;
    break;}
case 556:
#line 2597 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 557:
#line 2599 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype);
		  yyval.itype = 1;
		;
    break;}
case 558:
#line 2606 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  check_multiple_declarators ();
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype); 
		  yyval.itype = 2;
		;
    break;}
case 563:
#line 2627 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 564:
#line 2633 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 565:
#line 2642 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 566:
#line 2648 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 567:
#line 2654 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 568:
#line 2660 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-3].ttype = current_declspecs;
		  yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 569:
#line 2669 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 570:
#line 2672 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 571:
#line 2678 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 572:
#line 2681 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 573:
#line 2684 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 575:
#line 2695 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 576:
#line 2700 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE, current_enum_type); ;
    break;}
case 577:
#line 2702 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype, current_enum_type); ;
    break;}
case 578:
#line 2708 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 579:
#line 2711 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 580:
#line 2718 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
		  yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
		  yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
		;
    break;}
case 581:
#line 2729 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 582:
#line 2731 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 583:
#line 2736 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 584:
#line 2739 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 585:
#line 2748 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.itype = suspend_momentary (); ;
    break;}
case 586:
#line 2753 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 587:
#line 2759 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 588:
#line 2761 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 589:
#line 2763 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
    break;}
case 590:
#line 2765 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
    break;}
case 592:
#line 2773 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 593:
#line 2783 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 594:
#line 2785 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 595:
#line 2787 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 596:
#line 2789 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 597:
#line 2791 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 599:
#line 2799 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 600:
#line 2801 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 601:
#line 2803 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 602:
#line 2805 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 603:
#line 2807 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ push_nested_class (yyvsp[-1].ttype, 3);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
		  TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
    break;}
case 605:
#line 2815 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
		      maybe_note_name_used_in_class (yyvsp[0].ttype, yyval.ttype);
		    }
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 606:
#line 2825 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		  got_scope = NULL_TREE;
		;
    break;}
case 609:
#line 2838 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 610:
#line 2843 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
    break;}
case 612:
#line 2852 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 613:
#line 2861 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 614:
#line 2863 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 615:
#line 2865 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 616:
#line 2867 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 617:
#line 2869 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 619:
#line 2877 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 620:
#line 2879 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 621:
#line 2881 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 622:
#line 2883 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 623:
#line 2885 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 625:
#line 2893 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 626:
#line 2895 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 627:
#line 2897 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 628:
#line 2899 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 629:
#line 2901 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ enter_scope_of (yyvsp[0].ttype); ;
    break;}
case 630:
#line 2903 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
		  enter_scope_of (yyval.ttype);
		;
    break;}
case 631:
#line 2911 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 632:
#line 2914 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = NULL_TREE;
 		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 633:
#line 2920 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 634:
#line 2923 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 636:
#line 2930 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 637:
#line 2935 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 638:
#line 2937 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 639:
#line 2939 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 644:
#line 2950 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 645:
#line 2952 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 646:
#line 2959 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lastiddecl;
		      maybe_note_name_used_in_class (yyvsp[-1].ttype, yyval.ttype);
		    }
		  got_scope = yyval.ttype =
		    complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype)));
		;
    break;}
case 647:
#line 2969 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
		;
    break;}
case 648:
#line 2975 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 649:
#line 2981 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
    break;}
case 651:
#line 2997 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 652:
#line 3002 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
		    yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
		  else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		  else
		    {
		      yyval.ttype = yyvsp[0].ttype;
		      if (TREE_CODE (yyval.ttype) == TYPE_DECL)
			yyval.ttype = TREE_TYPE (yyval.ttype);
		    }
		;
    break;}
case 653:
#line 3015 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
    break;}
case 654:
#line 3017 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 655:
#line 3019 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 656:
#line 3024 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		;
    break;}
case 657:
#line 3029 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
		    yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
		  else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		  else
		    {
		      yyval.ttype = yyvsp[0].ttype;
		      if (TREE_CODE (yyval.ttype) == TYPE_DECL)
			yyval.ttype = TREE_TYPE (yyval.ttype);
		    }
		;
    break;}
case 658:
#line 3042 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 659:
#line 3044 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 660:
#line 3049 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
		    yyvsp[-1].ttype = lastiddecl;

		  /* Retrieve the type for the identifier, which might involve
		     some computation. */
		  got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));

		  if (yyval.ttype == error_mark_node)
		    cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
		;
    break;}
case 661:
#line 3061 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
		;
    break;}
case 662:
#line 3067 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
    break;}
case 665:
#line 3071 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 666:
#line 3080 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 667:
#line 3085 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		  got_scope = NULL_TREE;
		;
    break;}
case 669:
#line 3094 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 670:
#line 3099 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 671:
#line 3101 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
    break;}
case 672:
#line 3108 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = void_type_node; ;
    break;}
case 673:
#line 3114 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 674:
#line 3116 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 675:
#line 3118 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 676:
#line 3120 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 677:
#line 3122 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
		;
    break;}
case 678:
#line 3126 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 680:
#line 3135 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 681:
#line 3137 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 683:
#line 3143 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 684:
#line 3153 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 685:
#line 3155 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 686:
#line 3157 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 687:
#line 3159 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 688:
#line 3161 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 689:
#line 3163 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 690:
#line 3165 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 691:
#line 3167 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 692:
#line 3169 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
		;
    break;}
case 693:
#line 3173 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 695:
#line 3182 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 697:
#line 3186 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 698:
#line 3188 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 699:
#line 3190 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 700:
#line 3192 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 701:
#line 3194 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 702:
#line 3196 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 703:
#line 3198 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 704:
#line 3200 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 705:
#line 3202 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 712:
#line 3225 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids label declarations"); ;
    break;}
case 715:
#line 3236 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree link;
		  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
		    {
		      tree label = shadow_label (TREE_VALUE (link));
		      C_DECLARED_LABEL_FLAG (label) = 1;
		      declare_nonlocal_label (label);
		    }
		;
    break;}
case 716:
#line 3250 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{;
    break;}
case 718:
#line 3256 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
    break;}
case 719:
#line 3258 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
    break;}
case 720:
#line 3263 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  yyval.ttype = begin_if_stmt ();
		  cond_stmt_keyword = "if";
		;
    break;}
case 721:
#line 3268 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 722:
#line 3270 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
    break;}
case 724:
#line 3275 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
    break;}
case 725:
#line 3277 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
    break;}
case 726:
#line 3282 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{;
    break;}
case 728:
#line 3288 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_stmt (); ;
    break;}
case 729:
#line 3290 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 730:
#line 3292 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ begin_else_clause (); ;
    break;}
case 731:
#line 3294 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  finish_else_clause (yyvsp[-3].ttype); 
		  finish_if_stmt ();
		;
    break;}
case 732:
#line 3299 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_if_stmt (); ;
    break;}
case 733:
#line 3301 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  yyval.ttype = begin_while_stmt ();
		  cond_stmt_keyword = "while";
		;
    break;}
case 734:
#line 3306 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 735:
#line 3308 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_while_stmt (yyvsp[-3].ttype); ;
    break;}
case 736:
#line 3310 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_do_stmt (); ;
    break;}
case 737:
#line 3312 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  finish_do_body (yyvsp[-2].ttype);
		  cond_stmt_keyword = "do";
		;
    break;}
case 738:
#line 3317 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 739:
#line 3319 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_for_stmt (); ;
    break;}
case 740:
#line 3321 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_for_init_stmt (yyvsp[-2].ttype); ;
    break;}
case 741:
#line 3323 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 742:
#line 3325 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
    break;}
case 743:
#line 3327 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
    break;}
case 744:
#line 3329 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ begin_switch_stmt (); ;
    break;}
case 745:
#line 3331 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
    break;}
case 746:
#line 3333 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 747:
#line 3335 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 749:
#line 3338 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 751:
#line 3341 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_case_label (NULL_TREE, NULL_TREE); ;
    break;}
case 753:
#line 3344 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_break_stmt (); ;
    break;}
case 754:
#line 3346 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_continue_stmt (); ;
    break;}
case 755:
#line 3348 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_return_stmt (NULL_TREE); ;
    break;}
case 756:
#line 3350 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_return_stmt (yyvsp[-1].ttype); ;
    break;}
case 757:
#line 3352 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
				   NULL_TREE); 
		;
    break;}
case 758:
#line 3358 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
				   NULL_TREE); 
		;
    break;}
case 759:
#line 3364 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 760:
#line 3368 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
    break;}
case 761:
#line 3370 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids computed gotos");
		  finish_goto_stmt (yyvsp[-1].ttype);
		;
    break;}
case 762:
#line 3376 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_goto_stmt (yyvsp[-1].ttype); ;
    break;}
case 763:
#line 3378 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_stmt (); ;
    break;}
case 764:
#line 3380 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ error ("label must be followed by statement");
		  yyungetc ('}', 0);
		  finish_stmt (); ;
    break;}
case 765:
#line 3384 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_stmt (); ;
    break;}
case 768:
#line 3388 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ do_local_using_decl (yyvsp[0].ttype); ;
    break;}
case 770:
#line 3394 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  expand_start_early_try_stmts ();
		;
    break;}
case 771:
#line 3400 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ 
		  end_protect_partials ();
                  expand_start_all_catch (); 
                ;
    break;}
case 772:
#line 3405 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  expand_end_all_catch ();
		  yyval.itype = yyvsp[-3].itype;
		;
    break;}
case 773:
#line 3413 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_try_block (); ;
    break;}
case 774:
#line 3415 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_try_block (yyvsp[-1].ttype); ;
    break;}
case 775:
#line 3417 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_handler_sequence (yyvsp[-3].ttype); ;
    break;}
case 778:
#line 3427 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = begin_handler(); ;
    break;}
case 779:
#line 3429 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_handler_parms (yyvsp[-1].ttype); ;
    break;}
case 780:
#line 3431 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ finish_handler (yyvsp[-3].ttype); ;
    break;}
case 783:
#line 3441 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ expand_start_catch_block (NULL_TREE, NULL_TREE); ;
    break;}
case 784:
#line 3457 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
		  expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
					    TREE_VALUE (yyvsp[-1].ftype.t)); ;
    break;}
case 785:
#line 3464 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree label;
		do_label:
		  label = define_label (input_filename, lineno, yyvsp[-1].ttype);
		  if (label && ! minimal_parse_mode)
		    expand_label (label);
		;
    break;}
case 786:
#line 3471 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ goto do_label; ;
    break;}
case 787:
#line 3473 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ goto do_label; ;
    break;}
case 788:
#line 3475 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ goto do_label; ;
    break;}
case 789:
#line 3480 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 791:
#line 3483 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids compound statements inside for initializations");
		;
    break;}
case 792:
#line 3492 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ emit_line_note (input_filename, lineno);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 793:
#line 3495 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 794:
#line 3500 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 796:
#line 3503 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 797:
#line 3510 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 800:
#line 3517 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 801:
#line 3522 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 802:
#line 3527 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
    break;}
case 803:
#line 3529 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 804:
#line 3540 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  yyval.ttype = empty_parms();
		;
    break;}
case 806:
#line 3545 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
		  check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
    break;}
case 807:
#line 3553 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
    break;}
case 808:
#line 3555 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 809:
#line 3558 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 810:
#line 3560 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
							 yyvsp[-1].ftype.t), 1); ;
    break;}
case 811:
#line 3563 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
    break;}
case 812:
#line 3565 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 813:
#line 3575 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
							 yyvsp[-1].ftype.t), 0); 
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 814:
#line 3590 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ maybe_snarf_defarg (); ;
    break;}
case 815:
#line 3592 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 818:
#line 3603 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 819:
#line 3606 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
    break;}
case 820:
#line 3609 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
		  yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
    break;}
case 821:
#line 3612 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 822:
#line 3614 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
    break;}
case 824:
#line 3620 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
    break;}
case 825:
#line 3630 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
    break;}
case 826:
#line 3634 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 827:
#line 3637 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_tree_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
					  yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 828:
#line 3641 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 829:
#line 3645 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs = strip_attrs (yyvsp[0].ftype.t);
		  yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 830:
#line 3649 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 831:
#line 3656 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 832:
#line 3659 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
    break;}
case 835:
#line 3670 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ see_typename (); ;
    break;}
case 836:
#line 3675 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  error ("type specifier omitted for parameter");
		  yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
		;
    break;}
case 837:
#line 3680 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  error ("type specifier omitted for parameter");
		  if (TREE_CODE (yyval.ttype) == SCOPE_REF
		      && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
			  || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
		    cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
		  yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
		;
    break;}
case 838:
#line 3692 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 839:
#line 3694 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 840:
#line 3696 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
    break;}
case 841:
#line 3701 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
    break;}
case 843:
#line 3707 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{
		  TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 844:
#line 3715 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 845:
#line 3717 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 846:
#line 3719 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 847:
#line 3721 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 848:
#line 3728 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 849:
#line 3733 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
    break;}
case 850:
#line 3735 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
    break;}
case 851:
#line 3737 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
    break;}
case 852:
#line 3739 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
    break;}
case 853:
#line 3741 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
    break;}
case 854:
#line 3743 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
    break;}
case 855:
#line 3745 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
    break;}
case 856:
#line 3747 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
    break;}
case 857:
#line 3749 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
    break;}
case 858:
#line 3751 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
    break;}
case 859:
#line 3753 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 860:
#line 3755 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[LT_EXPR]; ;
    break;}
case 861:
#line 3757 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[GT_EXPR]; ;
    break;}
case 862:
#line 3759 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 863:
#line 3761 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
    break;}
case 864:
#line 3763 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
    break;}
case 865:
#line 3765 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 866:
#line 3767 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 867:
#line 3769 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
    break;}
case 868:
#line 3771 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
    break;}
case 869:
#line 3773 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
    break;}
case 870:
#line 3775 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
    break;}
case 871:
#line 3777 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
    break;}
case 872:
#line 3779 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[COND_EXPR]; ;
    break;}
case 873:
#line 3781 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 874:
#line 3783 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
    break;}
case 875:
#line 3785 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
    break;}
case 876:
#line 3787 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
    break;}
case 877:
#line 3789 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
    break;}
case 878:
#line 3791 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
    break;}
case 879:
#line 3793 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
    break;}
case 880:
#line 3795 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
    break;}
case 881:
#line 3797 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
    break;}
case 882:
#line 3800 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 883:
#line 3802 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"
{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 543 "/usr/share/bison.simple"

  yyvsp -= yylen;
  yyssp -= yylen;
#ifdef YYLSP_NEEDED
  yylsp -= yylen;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

  *++yyvsp = yyval;

#ifdef YYLSP_NEEDED
  yylsp++;
  if (yylen == 0)
    {
      yylsp->first_line = yylloc.first_line;
      yylsp->first_column = yylloc.first_column;
      yylsp->last_line = (yylsp-1)->last_line;
      yylsp->last_column = (yylsp-1)->last_column;
      yylsp->text = 0;
    }
  else
    {
      yylsp->last_line = (yylsp+yylen-1)->last_line;
      yylsp->last_column = (yylsp+yylen-1)->last_column;
    }
#endif

  /* Now "shift" the result of the reduction.
     Determine what state that goes to,
     based on the state we popped back to
     and the rule number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTBASE];

  goto yynewstate;

yyerrlab:   /* here on detecting error */

  if (! yyerrstatus)
    /* If not already recovering from an error, report this error.  */
    {
      ++yynerrs;

#ifdef YYERROR_VERBOSE
      yyn = yypact[yystate];

      if (yyn > YYFLAG && yyn < YYLAST)
	{
	  int size = 0;
	  char *msg;
	  int x, count;

	  count = 0;
	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
	  for (x = (yyn < 0 ? -yyn : 0);
	       x < (sizeof(yytname) / sizeof(char *)); x++)
	    if (yycheck[x + yyn] == x)
	      size += strlen(yytname[x]) + 15, count++;
	  msg = (char *) malloc(size + 15);
	  if (msg != 0)
	    {
	      strcpy(msg, "parse error");

	      if (count < 5)
		{
		  count = 0;
		  for (x = (yyn < 0 ? -yyn : 0);
		       x < (sizeof(yytname) / sizeof(char *)); x++)
		    if (yycheck[x + yyn] == x)
		      {
			strcat(msg, count == 0 ? ", expecting `" : " or `");
			strcat(msg, yytname[x]);
			strcat(msg, "'");
			count++;
		      }
		}
	      yyerror(msg);
	      free(msg);
	    }
	  else
	    yyerror ("parse error; also virtual memory exceeded");
	}
      else
#endif /* YYERROR_VERBOSE */
	yyerror("parse error");
    }

  goto yyerrlab1;
yyerrlab1:   /* here on error raised explicitly by an action */

  if (yyerrstatus == 3)
    {
      /* if just tried and failed to reuse lookahead token after an error, discard it.  */

      /* return failure if at end of input */
      if (yychar == YYEOF)
	YYABORT;

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
#endif

      yychar = YYEMPTY;
    }

  /* Else will try to reuse lookahead token
     after shifting the error token.  */

  yyerrstatus = 3;		/* Each real token shifted decrements this */

  goto yyerrhandle;

yyerrdefault:  /* current state does not do anything special for the error token. */

#if 0
  /* This is wrong; only states that explicitly want error tokens
     should shift them.  */
  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  if (yyn) goto yydefault;
#endif

yyerrpop:   /* pop the current state because it cannot handle the error token */

  if (yyssp == yyss) YYABORT;
  yyvsp--;
  yystate = *--yyssp;
#ifdef YYLSP_NEEDED
  yylsp--;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "Error: state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

yyerrhandle:

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yyerrdefault;

  yyn += YYTERROR;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
    goto yyerrdefault;

  yyn = yytable[yyn];
  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrpop;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrpop;

  if (yyn == YYFINAL)
    YYACCEPT;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting error token, ");
#endif

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  yystate = yyn;
  goto yynewstate;

 yyacceptlab:
  /* YYACCEPT comes here.  */
  if (yyfree_stacks)
    {
      free (yyss);
      free (yyvs);
#ifdef YYLSP_NEEDED
      free (yyls);
#endif
    }
  return 0;

 yyabortlab:
  /* YYABORT comes here.  */
  if (yyfree_stacks)
    {
      free (yyss);
      free (yyvs);
#ifdef YYLSP_NEEDED
      free (yyls);
#endif
    }
  return 1;
}
#line 3805 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/cp/parse.y"


#ifdef SPEW_DEBUG
const char *
debug_yytranslate (value)
    int value;
{
  return yytname[YYTRANSLATE (value)];
}

#endif