ftp.nice.ch/pub/next/developer/languages/c/djgpp-NS.s.tar.gz#/djgpp/src/gcc-260/cp/parse.c

This is parse.c in view mode; [Download] [Up]

/*  A Bison parser, made from parse.y  */

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

#line 42 "parse.y"

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

#include "config.h"

#include <stdio.h>
#include <errno.h>

#include "tree.h"
#include "input.h"
#include "flags.h"
#include "lex.h"
#include "cp-tree.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;

#ifndef errno
extern int errno;
#endif

extern int end_of_file;
extern int current_class_depth;

void yyerror ();

/* 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 char *cond_stmt_keyword;

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

void yyhook ();

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

  if (strict_prototype)
    parms = void_list_node;
  else
    parms = NULL_TREE;
  return parms;
}

#line 108 "parse.y"
typedef union {long itype; tree ttype; char *strtype; enum tree_code code; } YYSTYPE;
#line 276 "parse.y"

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

/* When defining an aggregate, this is the most recent one being defined.  */
static tree current_aggr;

/* 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 ();
extern tree combine_strings		PROTO((tree));

#ifndef YYLTYPE
typedef
  struct yyltype
    {
      int timestamp;
      int first_line;
      int first_column;
      int last_line;
      int last_column;
      char *text;
   }
  yyltype;

#define YYLTYPE yyltype
#endif

#include <stdio.h>

#ifndef __STDC__
#define const
#endif



#define	YYFINAL		1346
#define	YYFLAG		-32768
#define	YYNTBASE	106

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

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,   104,     2,     2,     2,    77,    65,     2,    88,
   102,    75,    73,    55,    74,    87,    76,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    60,    56,    69,
    58,    70,    59,     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,
    89,     2,   105,    64,     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,    54,    63,   103,    83,     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,     2,     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,    57,    61,
    62,    66,    67,    68,    71,    72,    78,    79,    80,    81,
    82,    84,    85,    86,    90,    91,    92,    93,    94,    95,
    96,    97,    98,    99,   100,   101
};

static const short yyrline[] = {     0,
   291,   292,   306,   308,   309,   313,   318,   322,   324,   327,
   330,   334,   337,   339,   341,   342,   345,   347,   349,   352,
   357,   362,   365,   369,   372,   376,   392,   401,   404,   409,
   411,   415,   421,   421,   424,   424,   427,   427,   442,   442,
   447,   452,   469,   492,   502,   503,   506,   507,   508,   509,
   510,   513,   516,   519,   524,   529,   535,   537,   538,   557,
   558,   559,   562,   576,   589,   592,   595,   598,   600,   602,
   606,   612,   617,   622,   629,   640,   647,   649,   651,   655,
   663,   665,   667,   669,   673,   686,   709,   712,   714,   715,
   718,   724,   730,   732,   734,   736,   739,   743,   749,   751,
   752,   755,   757,   760,   762,   763,   766,   769,   771,   773,
   777,   782,   785,   789,   794,   797,   801,   804,   807,   841,
   857,   860,   864,   867,   871,   873,   875,   877,   879,   883,
   885,   888,   893,   897,   902,   906,   909,   910,   914,   933,
   940,   943,   946,   948,   950,   954,   958,   961,   963,   967,
   970,   973,   982,   985,   988,   990,   992,   994,  1001,  1012,
  1032,  1034,  1036,  1041,  1043,  1045,  1047,  1049,  1052,  1054,
  1056,  1059,  1061,  1065,  1071,  1074,  1081,  1084,  1086,  1094,
  1103,  1109,  1115,  1117,  1119,  1132,  1134,  1136,  1138,  1155,
  1158,  1160,  1162,  1164,  1166,  1168,  1170,  1172,  1174,  1176,
  1178,  1180,  1182,  1184,  1186,  1188,  1190,  1192,  1194,  1196,
  1198,  1200,  1207,  1209,  1226,  1229,  1230,  1231,  1234,  1236,
  1239,  1241,  1242,  1244,  1248,  1250,  1251,  1256,  1276,  1277,
  1278,  1280,  1282,  1284,  1292,  1313,  1318,  1325,  1332,  1334,
  1343,  1348,  1371,  1415,  1416,  1419,  1422,  1425,  1428,  1430,
  1433,  1472,  1479,  1481,  1483,  1485,  1487,  1489,  1504,  1519,
  1530,  1542,  1549,  1598,  1600,  1604,  1606,  1610,  1613,  1618,
  1620,  1624,  1637,  1638,  1644,  1655,  1663,  1669,  1674,  1676,
  1681,  1688,  1690,  1694,  1698,  1704,  1707,  1709,  1711,  1713,
  1721,  1723,  1725,  1728,  1730,  1732,  1734,  1739,  1745,  1747,
  1758,  1761,  1763,  1766,  1781,  1784,  1786,  1788,  1792,  1795,
  1803,  1804,  1805,  1806,  1810,  1814,  1828,  1846,  1847,  1848,
  1851,  1853,  1856,  1858,  1861,  1863,  1866,  1869,  1873,  1890,
  1892,  1910,  1916,  1917,  1923,  1931,  1933,  1942,  1950,  1952,
  1963,  1966,  1970,  1973,  1977,  1982,  1985,  1989,  1992,  1994,
  1996,  1998,  2005,  2007,  2008,  2009,  2013,  2016,  2020,  2022,
  2025,  2028,  2031,  2037,  2040,  2043,  2045,  2047,  2049,  2053,
  2057,  2061,  2064,  2067,  2071,  2074,  2076,  2080,  2131,  2146,
  2148,  2151,  2153,  2157,  2158,  2160,  2162,  2164,  2168,  2177,
  2180,  2182,  2184,  2190,  2192,  2195,  2200,  2203,  2206,  2215,
  2226,  2231,  2231,  2233,  2236,  2238,  2242,  2244,  2248,  2276,
  2307,  2309,  2331,  2355,  2357,  2361,  2387,  2396,  2424,  2427,
  2434,  2445,  2454,  2458,  2471,  2474,  2476,  2481,  2483,  2487,
  2495,  2499,  2502,  2504,  2515,  2520,  2528,  2531,  2532,  2543,
  2546,  2547,  2558,  2560,  2563,  2565,  2568,  2573,  2577,  2583,
  2588,  2592,  2596,  2602,  2606,  2609,  2614,  2618,  2621,  2624,
  2633,  2635,  2639,  2642,  2647,  2650,  2654,  2663,  2666,  2670,
  2673,  2681,  2683,  2688,  2691,  2693,  2695,  2697,  2701,  2704,
  2718,  2721,  2726,  2729,  2731,  2733,  2735,  2737,  2739,  2741,
  2745,  2751,  2754,  2756,  2758,  2760,  2764,  2767,  2770,  2772,
  2774,  2776,  2780,  2783,  2786,  2788,  2790,  2792,  2794,  2796,
  2798,  2802,  2808,  2814,  2816,  2820,  2823,  2825,  2829,  2831,
  2834,  2836,  2842,  2845,  2859,  2861,  2865,  2867,  2871,  2874,
  2880,  2886,  2889,  2891,  2893,  2895,  2899,  2903,  2907,  2910,
  2915,  2918,  2920,  2922,  2924,  2926,  2928,  2930,  2932,  2936,
  2940,  2944,  2948,  2949,  2951,  2953,  2955,  2957,  2959,  2961,
  2963,  2965,  2973,  2975,  2976,  2977,  2980,  2987,  2997,  2999,
  3004,  3006,  3009,  3023,  3026,  3029,  3033,  3037,  3041,  3047,
  3050,  3054,  3056,  3059,  3065,  3068,  3071,  3074,  3087,  3090,
  3095,  3101,  3106,  3109,  3114,  3118,  3121,  3127,  3132,  3135,
  3140,  3149,  3153,  3156,  3162,  3172,  3179,  3185,  3210,  3210,
  3242,  3242,  3258,  3258,  3262,  3266,  3269,  3274,  3281,  3290,
  3299,  3308,  3311,  3317,  3319,  3323,  3325,  3328,  3332,  3335,
  3338,  3346,  3350,  3356,  3358,  3360,  3364,  3366,  3369,  3382,
  3387,  3395,  3399,  3402,  3404,  3408,  3411,  3413,  3415,  3421,
  3425,  3429,  3432,  3433,  3439,  3441,  3444,  3446,  3450,  3455,
  3458,  3468,  3475,  3476,  3483,  3489,  3494,  3498,  3503,  3510,
  3514,  3518,  3523,  3534,  3548,  3551,  3553,  3555,  3557,  3559,
  3563,  3565,  3573,  3590,  3592,  3594,  3596,  3598,  3602,  3604,
  3607,  3629,  3635,  3642,  3645,  3649,  3654,  3656,  3663,  3666,
  3668,  3670,  3676,  3680,  3683,  3685,  3687,  3689,  3691,  3693,
  3695,  3697,  3699,  3701,  3703,  3705,  3707,  3709,  3711,  3713,
  3715,  3717,  3719,  3721,  3723,  3725,  3727,  3729,  3731,  3733,
  3735,  3737,  3739,  3741,  3743,  3745,  3748,  3750
};

static const char * const yytname[] = {     0,
"error","$illegal.","IDENTIFIER","TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS",
"SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD","TYPEOF","ALIGNOF","HEADOF","CLASSOF",
"SIGOF","ATTRIBUTE","EXTENSION","LABEL","AGGR","VISSPEC","DELETE","NEW","OVERLOAD","THIS",
"OPERATOR","CXX_TRUE","CXX_FALSE","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST","REINTERPRET_CAST","CONST_CAST",
"SCOPE","EMPTY","PTYPENAME","'{'","','","';'","ASSIGN","'='","'?'","':'",
"OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE","ARITHCOMPARE","'<'","'>'",
"LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","POINTSAT_STAR","DOT_STAR","UNARY",
"PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY","PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY",
"CATCH","THROW","TYPENAME_ELLIPSIS","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
"END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program"
};

static const short yyr1[] = {     0,
   106,   106,   108,   107,   107,   109,   110,   111,   111,   113,
   112,   114,   114,   114,   114,   114,   114,   114,   114,   114,
   115,   117,   116,   118,   118,   119,   119,   119,   120,   121,
   121,   123,   122,   124,   122,   125,   122,   126,   122,   122,
   122,   122,   122,   122,   122,   122,   127,   127,   127,   127,
   127,   128,   128,   128,   128,   128,   128,   128,   128,   128,
   128,   128,   129,   129,   129,   129,   129,   129,   129,   129,
   130,   130,   130,   130,   131,   131,   131,   131,   131,   132,
   133,   133,   133,   133,   134,   135,   136,   136,   136,   136,
   137,   137,   137,   137,   137,   137,   137,   137,   138,   138,
   138,   139,   139,   140,   140,   140,   141,   141,   141,   141,
   142,   143,   143,   144,   145,   145,   146,   146,   148,   147,
   149,   149,   150,   150,   151,   151,   151,   151,   151,   152,
   152,   153,   153,   154,   154,   155,   155,   155,   157,   156,
   156,   158,   158,   158,   158,   159,   159,   159,   159,   160,
   160,   161,   162,   161,   161,   161,   161,   161,   161,   161,
   161,   161,   161,   161,   161,   161,   161,   161,   161,   161,
   161,   161,   161,   161,   163,   163,   164,   164,   164,   164,
   165,   165,   166,   166,   166,   167,   167,   167,   167,   168,
   168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
   168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
   168,   168,   168,   168,   169,   169,   169,   169,   170,   170,
   171,   171,   171,   171,   172,   172,   172,   173,   173,   173,
   173,   173,   173,   174,   173,   175,   173,   173,   173,   173,
   173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
   173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
   173,   173,   173,   176,   176,   177,   177,   178,   178,   179,
   179,   180,   181,   181,   182,   182,   182,   182,   182,   182,
   182,   183,   183,   184,   184,   185,   185,   185,   185,   185,
   186,   186,   187,   187,   187,   187,   187,   188,   188,   188,
   189,   189,   189,   189,   190,   190,   190,   190,   191,   191,
   192,   192,   192,   192,   192,   192,   192,   193,   193,   193,
   194,   194,   195,   195,   196,   196,   197,   197,   199,   198,
   198,   201,   200,   200,   203,   202,   202,   205,   204,   204,
   206,   206,   207,   207,   208,   209,   209,   210,   210,   210,
   210,   210,   211,   211,   211,   211,   212,   212,   213,   213,
   213,   213,   213,   214,   214,   214,   214,   214,   214,   216,
   215,   215,   217,   215,   215,   215,   215,   215,   215,   218,
   218,   219,   219,   220,   220,   220,   220,   220,   221,   222,
   222,   222,   222,   222,   222,   223,   224,   225,   226,   226,
   227,   228,   228,   229,   229,   229,   230,   230,   231,   231,
   232,   232,   232,   233,   233,   233,   233,   234,   235,   235,
   235,   235,   236,   236,   236,   237,   237,   237,   237,   238,
   238,   238,   238,   238,   238,   238,   239,   239,   239,   240,
   240,   240,   241,   241,   242,   242,   243,   243,   243,   244,
   244,   244,   244,   245,   245,   245,   246,   246,   246,   246,
   247,   247,   248,   248,   249,   249,   249,   250,   250,   251,
   251,   253,   252,   254,   254,   254,   254,   254,   254,   255,
   255,   256,   257,   257,   257,   257,   257,   257,   257,   257,
   257,   258,   258,   258,   258,   258,   258,   259,   259,   259,
   259,   259,   259,   260,   260,   260,   260,   260,   260,   260,
   260,   261,   262,   263,   263,   264,   264,   264,   265,   265,
   266,   266,   267,   267,   268,   268,   269,   269,   270,   270,
   271,   272,   272,   272,   272,   272,   272,   272,   273,   273,
   274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
   274,   275,   275,   275,   275,   275,   275,   275,   275,   275,
   275,   275,   276,   276,   276,   276,   277,   278,   279,   279,
   280,   280,   281,   282,   282,   283,   283,   283,   283,   285,
   286,   284,   287,   287,   288,   288,   289,   289,   290,   289,
   289,   291,   292,   289,   293,   294,   289,   295,   296,   297,
   289,   298,   299,   300,   289,   301,   289,   302,   289,   303,
   289,   304,   289,   289,   289,   289,   289,   289,   289,   289,
   289,   289,   289,   289,   289,   289,   289,   306,   307,   305,
   308,   308,   308,   309,   310,   309,   311,   311,   312,   312,
   313,   313,   314,   314,   314,   315,   315,   315,   315,   316,
   316,   317,   317,   317,   318,   318,   319,   319,   320,   321,
   321,   322,   322,   322,   323,   323,   323,   323,   323,   323,
   323,   323,   323,   323,   324,   324,   324,   324,   324,   324,
   325,   325,   326,   326,   326,   326,   326,   326,   327,   327,
   328,   329,   329,   330,   330,   331,   332,   332,   333,   333,
   333,   333,   334,   335,   335,   335,   335,   335,   335,   335,
   335,   335,   335,   335,   335,   335,   335,   335,   335,   335,
   335,   335,   335,   335,   335,   335,   335,   335,   335,   335,
   335,   335,   335,   335,   335,   335,   335,   335
};

static const short yyr2[] = {     0,
     0,     1,     0,     2,     2,     0,     0,     1,     1,     0,
     2,     1,     1,     1,     1,     5,     4,     3,     4,     4,
     1,     0,     5,     1,     3,     2,     4,     1,     3,     1,
     3,     0,     5,     0,     5,     0,     5,     0,     5,     3,
     3,     6,     7,     4,     3,     3,     1,     1,     1,     1,
     1,     2,     3,     3,     3,     3,     2,     2,     2,     2,
     2,     1,     3,     4,     3,     5,     4,     3,     3,     2,
     3,     3,     2,     1,     6,     4,     3,     3,     2,     2,
     1,     3,     4,     2,     3,     0,     0,     1,     3,     2,
     3,     1,     4,     2,     4,     2,     4,     2,     1,     1,
     1,     1,     1,     1,     1,     1,     3,     3,     4,     4,
     3,     4,     4,     0,     1,     3,     1,     1,     0,     6,
     0,     1,     0,     2,     1,     1,     1,     1,     1,     1,
     1,     1,     3,     1,     3,     0,     1,     1,     0,     8,
     1,     2,     4,     4,     1,     3,     3,     3,     3,     1,
     1,     1,     0,     3,     2,     2,     2,     2,     2,     2,
     4,     2,     4,     2,     3,     3,     4,     4,     5,     5,
     6,     2,     4,     5,     3,     3,     3,     1,     3,     2,
     3,     4,     1,     2,     5,     1,     4,     4,     4,     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,     1,     1,     1,     1,     1,
     1,     1,     2,     2,     1,     1,     1,     1,     1,     1,
     1,     3,     3,     0,     4,     0,     6,     2,     4,     2,
     2,     1,     4,     1,     7,     7,     7,     7,     4,     4,
     2,     2,     1,     4,     2,     2,     2,     5,     3,     5,
     3,     4,     6,     1,     2,     1,     2,     1,     1,     1,
     2,     0,     2,     2,     3,     3,     3,     3,     3,     2,
     2,     1,     1,     1,     2,     2,     2,     2,     1,     1,
     1,     1,     2,     2,     3,     3,     4,     1,     2,     2,
     1,     1,     2,     2,     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,     7,
     4,     0,     7,     4,     0,     7,     4,     0,     7,     4,
     0,     1,     1,     2,     6,     1,     3,     0,     1,     4,
     6,     4,     1,     1,     1,     1,     1,     3,     1,     2,
     3,     4,     1,     1,     3,     4,     6,     3,     5,     0,
     7,     4,     0,     6,     3,     2,     2,     4,     1,     0,
     1,     0,     1,     1,     2,     2,     2,     2,     3,     2,
     2,     2,     3,     3,     1,     2,     0,     0,     3,     3,
     2,     1,     1,     0,     1,     2,     1,     3,     1,     2,
     1,     4,     4,     1,     1,     2,     2,     1,     0,     1,
     4,     3,     1,     2,     2,     2,     2,     2,     2,     2,
     2,     4,     2,     1,     5,     3,     0,     1,     3,     0,
     1,     3,     1,     1,     1,     1,     4,     6,     4,     4,
     6,     4,     3,     4,     6,     4,     4,     6,     4,     3,
     1,     3,     1,     3,     2,     1,     6,     0,     2,     1,
     2,     0,     2,     3,     3,     2,     2,     3,     1,     1,
     1,     2,     5,     5,     3,     5,     4,     3,     3,     2,
     1,     3,     3,     2,     2,     3,     1,     3,     3,     2,
     2,     3,     1,     5,     5,     3,     5,     3,     3,     4,
     3,     2,     2,     1,     2,     4,     4,     2,     1,     1,
     1,     2,     2,     2,     1,     2,     1,     2,     2,     3,
     1,     3,     2,     3,     2,     2,     3,     1,     3,     4,
     3,     2,     2,     1,     3,     2,     2,     1,     2,     3,
     1,     3,     1,     5,     3,     4,     3,     4,     2,     2,
     3,     2,     1,     1,     2,     2,     2,     0,     0,     1,
     1,     2,     3,     1,     2,     3,     5,     6,     5,     0,
     0,     6,     1,     2,     1,     1,     1,     2,     0,     4,
     1,     0,     0,     6,     0,     0,     7,     0,     0,     0,
    10,     0,     0,     0,    10,     0,     7,     0,     5,     0,
     7,     0,     4,     2,     2,     2,     3,     6,     8,    10,
    12,     4,     3,     2,     2,     1,     1,     0,     0,     7,
     1,     2,     2,     0,     0,     5,     1,     1,     3,     3,
     2,     2,     3,     4,     4,     3,     4,     6,     6,     0,
     1,     0,     1,     1,     0,     1,     1,     3,     4,     1,
     3,     0,     1,     1,     1,     2,     2,     2,     1,     1,
     2,     2,     2,     2,     1,     3,     2,     4,     2,     4,
     2,     2,     2,     2,     2,     2,     1,     2,     1,     1,
     0,     0,     1,     0,     4,     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,
    10,    10,     5,     0,     4,     0,   217,   519,   302,   312,
   470,     0,     8,     9,     0,     0,   384,     0,   703,     0,
   531,   218,    62,     0,     0,   691,     0,    74,    21,     0,
    11,     6,     0,    15,    14,    13,    12,   272,     0,   520,
   114,   226,   497,     0,   292,     0,   291,   305,     0,   325,
   311,     0,   395,   397,   398,   403,   402,   379,   301,   525,
   481,     0,   225,   227,   480,     0,   521,   313,   468,     0,
     0,   216,    60,    61,   523,     0,     0,    99,   100,   101,
   373,   376,     0,   527,     0,   377,     0,     0,     0,    30,
     0,   302,     0,    22,     0,     0,   395,     0,     0,     0,
     0,   495,     0,     0,     0,   494,     0,     0,     0,   226,
     0,     0,     0,   225,   227,   468,     0,     3,     0,     0,
     0,     0,   397,   398,   694,     0,    86,    81,   272,     0,
     0,    58,   524,   121,   468,     0,   472,    59,     0,     0,
     0,     0,     0,   321,   282,   479,   283,   491,     0,   468,
   304,   303,    57,   293,     0,   323,     0,   298,   318,   319,
   294,   307,   309,   320,     0,    52,   385,   386,   387,   388,
   401,   105,   104,   106,   390,   396,   392,   114,   391,   404,
   404,   418,     0,   471,   306,    70,     0,    73,   529,   513,
   482,   522,     0,   526,     0,   738,   734,   733,   731,   713,
   718,   719,     0,   725,   724,   710,   711,   709,   728,   717,
   714,   715,   716,   720,   721,   707,   708,   704,   705,   706,
   730,   722,   723,   712,   729,     0,   726,   637,   305,   638,
   699,   470,   229,   270,     0,     0,     0,     0,   153,   266,
   264,   242,   268,   269,     0,     0,     0,     0,     0,     0,
     0,   126,   125,     0,   127,   128,     0,     0,   213,   129,
     0,   115,     0,   186,     0,   190,   183,   118,   228,   152,
     0,     0,   230,   231,     0,   117,   289,   305,   290,   514,
   253,   244,     0,     0,     0,   395,   375,     0,   370,   528,
     0,   130,   131,     0,     0,     0,     0,    29,     0,   108,
   404,   122,   107,     0,   493,     0,   492,   100,   101,   215,
   224,     0,   501,   223,     0,   500,   508,   509,     0,     0,
    18,    10,     0,     7,     7,    46,    45,   694,     0,    32,
    40,    36,    34,    41,    38,   327,    80,    87,    84,     0,
     0,   272,     0,     0,     0,   568,    63,   574,    65,   111,
   506,     0,   669,   670,   151,     0,   150,   664,   687,     0,
   289,   305,   290,     0,   663,   665,   692,   675,     0,   511,
     0,     0,     0,   477,     0,   476,     0,     0,     0,   468,
    68,    56,    71,     0,    55,   468,     0,   472,   490,     0,
   295,   296,     0,    53,    69,    54,    72,   300,   299,   310,
   694,   326,   393,   389,   394,   405,   399,   400,   434,     0,
     0,   437,   440,     0,     0,   423,     0,   694,   308,     0,
     0,   341,   469,   496,   530,     0,     0,   727,   732,   468,
   468,     0,   468,   737,     0,     0,     0,   160,     0,     0,
   162,     0,     0,     0,     0,     0,     0,     0,     0,   159,
   156,   155,   157,     0,     0,     0,     0,   214,     0,   113,
   158,     0,     0,   184,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   238,   240,   241,   274,
   273,     0,     0,     0,     0,     0,   164,   466,     0,   172,
   271,   220,     0,   691,   219,   256,   257,     0,   284,   548,
   544,   553,     0,   472,   468,   468,   468,   286,   551,     0,
   518,   288,     0,   287,   255,     0,   251,   265,   267,   515,
     0,   252,   110,   109,   463,   382,   461,   372,     0,   314,
     0,     0,   315,   316,   317,    31,     0,    24,   690,   305,
     0,   689,    28,   119,   112,   499,   498,   502,     0,    17,
    20,    19,   327,    51,    47,    49,    50,    48,    44,     0,
     0,     0,     0,   341,   102,    92,   103,     0,    85,    88,
     0,     0,     0,   363,     0,   359,    82,     0,     0,    64,
    67,   575,   569,   468,   468,   668,   682,   674,   672,   548,
   544,     0,   683,   468,   686,   688,   684,     0,   685,   468,
   667,   681,   673,   671,   666,   693,   677,   679,     0,   510,
   473,   475,   474,     0,     0,   489,     0,   341,   322,   485,
     0,     0,     0,   488,     0,   478,   297,   324,   341,   327,
   415,     0,   414,   406,   407,   409,     0,   411,   433,   429,
   428,   217,   519,   468,     0,   662,   694,   430,   438,   443,
   444,   694,   694,   431,   441,   694,     0,   378,   425,   424,
   426,   427,   327,   696,   305,   697,     0,     0,     0,   340,
   342,   343,   736,   735,   699,   699,   699,     0,     0,     0,
   518,     0,     0,   519,     0,   154,     0,     0,     0,     0,
     0,     0,   233,   232,     0,   181,   116,   217,   519,   218,
     0,     0,   364,   380,     0,   212,   211,   654,   653,     0,
   209,   208,   206,   207,   205,   204,   203,   200,   201,   202,
   198,   199,   193,   194,   195,   196,   197,   191,   192,     0,
     0,     0,     0,     0,     0,   166,   178,     0,     0,   165,
   468,   468,     0,   468,   465,   538,     0,     0,     0,     0,
   259,     0,   261,     0,   512,   547,   546,   543,   542,   690,
     0,     0,   562,     0,     0,   559,   285,   560,   549,   468,
   662,   472,   548,   544,     0,     0,   468,   228,     0,   514,
     0,     0,     0,   383,     0,   382,   149,   148,   147,   146,
     0,    23,   390,   396,     0,    16,   341,    33,    37,    35,
    39,     0,     0,    90,     0,    94,     0,    98,     0,    96,
     0,   360,     0,    83,    66,     0,   576,     0,   570,   571,
   507,   504,   547,   543,   548,   544,   480,     0,   468,   549,
   548,   544,     0,   228,     0,   514,   505,     0,     0,   676,
   331,   468,   468,   468,   487,   337,   341,     0,     0,   417,
   416,   410,     0,     0,   436,   341,     0,    77,     0,   327,
   327,     0,   327,     0,   341,     0,   695,     0,     0,   338,
   344,   701,   700,   702,   243,   161,     0,     0,   163,   187,
   189,   188,   249,   250,     0,     0,     0,     0,   235,     0,
     0,     0,     0,   182,     0,   236,   239,   176,   175,   168,
     0,   167,   180,     0,     0,   535,   533,     0,   536,   472,
   173,     0,     0,   262,     0,     0,   545,   541,   552,   468,
   561,   550,   555,     0,   557,     0,   548,   544,   516,   517,
     0,   254,   464,   462,   374,     0,    25,     0,     0,     0,
    42,    91,    89,     0,     0,     0,     0,   361,   357,     0,
     0,   217,   580,   592,   595,     0,   568,     0,     0,     0,
     0,     0,     0,   218,   626,     0,   650,     0,   587,     0,
     0,   305,     0,   564,   585,   591,   563,   586,   627,     0,
   598,   602,   572,   547,   543,   482,   549,   517,   678,   680,
   329,   486,   483,   484,   335,   334,     0,     0,   408,   341,
   341,    76,   453,   468,   217,   519,     0,   439,   445,   446,
   694,   694,   341,   341,   442,     0,   432,   698,   328,   348,
     0,     0,     0,     0,     0,     0,   368,     0,     0,   365,
   185,   210,   123,     0,   169,   170,   177,   179,   534,   532,
   539,   537,     0,   174,     0,   258,   260,   558,   468,   556,
   371,    27,     0,    43,    93,    97,    95,   362,     0,   573,
   567,   579,   641,   568,   568,   568,     0,     0,     0,   612,
   614,   615,   616,     0,     0,     0,   642,   568,   651,     0,
   588,   280,   694,     0,   281,     0,   694,     0,   694,     0,
     0,   577,   566,   565,   589,   625,   624,   568,   568,     0,
     0,   332,   412,   413,   452,   449,   435,     0,     0,   341,
   327,   327,   447,   450,   354,   355,   356,   353,     0,   346,
   349,   339,     0,     0,     0,     0,   366,     0,     0,   123,
   237,     0,   171,   540,   263,   554,   120,   358,     0,     0,
     0,   583,     0,     0,   568,   643,     0,   646,     0,     0,
   608,     0,   617,     0,   623,   628,     0,   276,   327,   278,
   279,   327,     0,     0,     0,   275,   277,   578,   568,     0,
     0,   330,   336,     0,    75,   341,   341,   460,   341,   341,
     0,     0,   348,     0,     0,   245,   246,   247,   248,     0,
   369,   124,   467,   134,     0,   581,   593,   584,   596,   647,
   645,     0,   644,   141,     0,   305,     0,     0,     0,   613,
   622,     0,     0,   590,   138,     0,   137,     0,   333,   459,
   456,   454,   457,   448,   451,   347,   345,   217,     0,   367,
     0,   568,     0,     0,     0,     0,   606,   694,   610,   609,
     0,   631,     0,   629,   655,     0,   599,   603,     0,     0,
     0,   350,   352,   135,   582,   569,   594,   145,   132,     0,
     0,   649,     0,   648,   568,   327,     0,   633,   632,   634,
     0,     0,   656,   657,   618,     0,     0,   455,   458,     0,
   142,     0,     0,   597,   607,   341,   611,   630,     0,   655,
     0,     0,     0,     0,   351,     0,     0,   133,     0,   635,
     0,     0,   619,   658,   600,   604,   144,   143,   139,     0,
   659,     0,     0,     0,     0,     0,     0,     0,   660,     0,
   620,   601,   605,   140,     0,     0,   636,     0,     0,   639,
   640,   661,   621,     0,     0,     0
};

static const short yydefgoto[] = {  1344,
     1,     2,   119,   561,   977,     3,     4,    31,    32,    33,
   299,   547,   548,    34,    91,    35,   570,   572,   571,   573,
   569,    36,    37,    38,   411,   128,   129,   130,   338,   579,
   580,   535,   581,   176,    39,    40,    41,   134,   261,   262,
   302,   805,   303,  1141,   263,   978,  1271,  1206,  1226,  1227,
  1326,  1267,   292,   786,   264,   444,   496,   750,   265,   266,
   267,   293,   269,   506,   311,    43,   270,   456,  1043,   271,
   272,   273,   274,   131,   275,   979,   401,   516,   770,   980,
    45,   161,   981,    47,   162,   439,   163,   143,   155,    49,
   628,   144,  1110,   402,  1184,   156,  1111,    50,  1031,   680,
   681,   682,  1129,  1130,  1131,   960,   713,   714,    51,   539,
   288,   903,   795,    52,    53,    54,    55,   180,   181,    56,
    57,    58,   407,   644,   645,   646,   647,   183,   414,   415,
   416,   417,   658,   664,   659,  1018,   660,   661,  1019,  1020,
   536,   537,   497,   776,    59,   371,   372,   145,    60,    61,
   146,   147,   113,    63,   507,   280,   281,   282,    65,   283,
    67,    68,   179,    69,   284,   755,   756,   767,   519,   983,
   984,  1151,   828,   829,   830,   347,   985,   986,  1074,  1242,
  1153,   987,   988,  1179,  1075,  1243,  1076,  1244,  1108,  1286,
  1324,  1109,  1287,  1325,  1275,  1219,  1277,  1162,   989,  1222,
  1280,  1254,  1298,  1320,  1217,  1328,   990,   991,   992,  1090,
   720,  1282,  1283,  1284,  1330,   364,   772,   366,   367,   368,
   369,   107,   618,  1169,   676,   677,   434,    71,    72
};

static const short yypact[] = {    71,
    88,-32768,-32768,  2859,-32768,   188,-32768,   266,    64,-32768,
-32768,   555,-32768,-32768,   140,   146,-32768,   235,-32768,  1989,
-32768,   237,-32768,  1666,  1666,-32768,  1814,-32768,-32768,   222,
-32768,   285,  3383,-32768,-32768,-32768,-32768,   201,   286,   315,
-32768,-32768,    80,  1865,-32768,  4890,-32768,   846,   619,-32768,
-32768,   142,-32768,-32768,-32768,-32768,-32768,   316,  1575,-32768,
-32768,   675,-32768,-32768,-32768,   347,-32768,-32768,-32768,   215,
  3638,-32768,-32768,-32768,-32768,  8393,  4228,-32768,   266,   237,
   284,   340,   315,-32768,   215,-32768,   215,  8393,  8393,-32768,
   623,-32768,   237,-32768,  2940,  4475,   399,   215,  8393,   266,
  2258,-32768,   410,   245,  2258,-32768,   420,  2904,  2904,   296,
   325,    80,   331,   345,   348,-32768,   444,   361,  2291,   262,
  2940,  9527,   664,   847,   375,   475,-32768,   382,   149,   119,
   119,-32768,-32768,   387,-32768,  6095,   390,-32768,  3062,  3062,
  4178,  1327,   637,-32768,-32768,   242,-32768,-32768,   347,-32768,
-32768,-32768,-32768,   846,   688,-32768,  1462,-32768,-32768,-32768,
   959,   730,-32768,-32768,  2940,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   315,   871,-32768,   443,
   443,-32768,  2169,-32768,   730,-32768,   469,   861,-32768,-32768,
-32768,-32768,  3286,-32768,   155,-32768,   419,   499,-32768,-32768,
-32768,-32768,   463,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,   485,-32768,-32768,   730,  1575,
   342,   504,-32768,-32768,  3906,  9334,   542,   573,-32768,-32768,
-32768,-32768,-32768,-32768,   577,   588,   616,   643,   646,   420,
  9085,-32768,-32768,  9085,-32768,-32768,  9085,  6659,  4696,-32768,
    41,-32768,  9085,-32768,  8480,-32768,-32768,  9696,-32768,   898,
  3155,  8563,-32768,   678,   713,-32768,  1174,  2042,  3006,-32768,
   157,-32768,   393,   808,  2940,   399,-32768,   420,   622,-32768,
   630,   666,  9604,   647,   656,   674,   780,-32768,  4228,-32768,
   443,-32768,-32768,   282,-32768,   195,-32768,-32768,-32768,-32768,
-32768,  2258,-32768,-32768,  2258,-32768,-32768,-32768,  3286,    42,
-32768,   686,  4228,-32768,-32768,-32768,-32768,   375,   732,-32768,
-32768,-32768,-32768,-32768,-32768,   589,-32768,   209,-32768,  6749,
  8650,-32768,   119,   119,   745,-32768,-32768,-32768,-32768,-32768,
   803,   721,-32768,-32768,   666,   726,  9604,    74,  2165,  9527,
  2165,  3271,  3772,   742,-32768,   143,  9420,   763,   776,-32768,
   749,  8650,  3372,-32768,  3372,-32768,  3542,  3542,   748,-32768,
-32768,-32768,   861,  2940,-32768,-32768,  6197,   751,-32768,  4114,
   959,   846,  2940,-32768,-32768,-32768,   861,-32768,-32768,-32768,
   375,-32768,-32768,-32768,-32768,   764,-32768,-32768,-32768,  8650,
    39,  1890,  9437,    72,  1839,-32768,   269,   375,   730,  3218,
   759,   832,-32768,-32768,-32768,   794,   801,-32768,-32768,-32768,
-32768,   229,-32768,-32768,  8650,   504,  6659,-32768,   191,  6659,
-32768,  8650,  8737,  9085,  8393,  3218,  3218,  3218,  3218,-32768,
-32768,-32768,-32768,   767,   790,   745,   812,-32768,  8393,-32768,
-32768,  2485,  6659,-32768,  8650,  8650,  6839,  8650,  8650,  8650,
  8650,  8650,  8650,  8650,  8650,  8650,  8650,  8650,  8650,  8650,
  8650,  8650,  8650,  8650,  8650,  8650,-32768,-32768,-32768,-32768,
-32768,  8650,  8650,  8650,  8393,   997,   558,   225,  7388,-32768,
-32768,   266,   873,   920,-32768,   477,   543,   631,-32768,    99,
    99,-32768,  3482,   817,   848,   894,-32768,-32768,   539,  7863,
  1305,-32768,   252,-32768,-32768,  8650,-32768,-32768,-32768,-32768,
   174,-32768,-32768,-32768,   893,   905,-32768,-32768,   420,-32768,
  7211,  7301,-32768,-32768,-32768,-32768,   320,-32768,-32768,  4012,
   142,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   897,-32768,
-32768,-32768,   589,-32768,-32768,-32768,-32768,-32768,-32768,   907,
   927,   939,   942,   832,-32768,-32768,   237,  8650,   945,-32768,
   559,   563,   567,-32768,  6299,  9673,-32768,   906,   119,-32768,
-32768,-32768,    36,-32768,-32768,-32768,-32768,-32768,-32768,  2346,
  2346,  3148,-32768,-32768,-32768,-32768,-32768,  7954,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   944,   949,  6749,-32768,
-32768,-32768,-32768,  3372,  3372,-32768,  4114,   832,-32768,   803,
   908,   912,   913,-32768,   911,-32768,   959,-32768,   832,   589,
-32768,   930,-32768,   962,-32768,-32768,   916,-32768,  9673,-32768,
-32768,   961,   639,-32768,  8650,  4879,   375,   970,-32768,-32768,
-32768,   594,   596,   971,-32768,   375,   969,-32768,-32768,-32768,
-32768,-32768,   535,-32768,  4103,-32768,   210,   444,   943,   976,
   832,-32768,-32768,-32768,   424,   424,   424,   933,   934,  8824,
   894,   935,   938,   141,   940,-32768,   950,   951,   974,   975,
   985,   986,-32768,-32768,   955,-32768,-32768,   998,   849,   509,
  8650,  1003,-32768,   991,   968,  9673,  9673,-32768,-32768,  1004,
  9714,  9731,  9747,  4614,  4486,  2373,  3583,  1046,  1046,  1046,
  1055,  1055,   800,   800,   540,   540,   540,-32768,-32768,   973,
   966,   977,   980,   984,  3218,   558,-32768,  6749,  8650,-32768,
-32768,-32768,  8650,-32768,-32768,   983,  9085,   982,   995,  1035,
-32768,  8650,-32768,  8650,-32768,   467,-32768,   467,-32768,    70,
   989,   990,-32768,   988,  3218,   803,-32768,   803,   719,-32768,
  1540,   993,  8045,  8045,  5119,   994,  8480,   296,  1000,   348,
   808,  1001,  8650,   420,   996,   905,-32768,  9673,-32768,  9673,
  4228,-32768,   428,  1040,   316,-32768,   832,-32768,-32768,-32768,
-32768,   732,  1005,-32768,   209,-32768,  8650,-32768,  8650,-32768,
  8650,-32768,    24,-32768,-32768,   420,-32768,  5723,  1071,-32768,
   803,   803,  2634,  2634,  2729,  2729,-32768,   347,-32768,  2804,
  8132,  8132,  5993,   317,  1007,   412,   803,  6749,  6749,-32768,
  1048,-32768,-32768,-32768,-32768,  1052,   832,  8393,   764,-32768,
-32768,-32768,  8650,  8650,    68,  9579,  1009,-32768,  1369,   589,
   589,  2412,   731,  2580,   832,  3218,-32768,    60,  1025,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,  9168,  9168,-32768,-32768,
-32768,-32768,-32768,-32768,  1027,  1038,  1047,  1053,-32768,  9555,
  6749,  6389,  1033,-32768,  8650,-32768,-32768,-32768,-32768,   536,
  1041,-32768,-32768,  1042,   265,   273,   273,  1049,   273,-32768,
-32768,  9085,  1139,-32768,  1044,  1051,-32768,-32768,-32768,-32768,
-32768,-32768,   803,  1056,-32768,  1050,  8219,  8219,-32768,-32768,
   821,-32768,  9673,-32768,-32768,  1057,-32768,   435,  2169,   732,
-32768,-32768,-32768,  1059,  1061,  1063,  6479,-32768,-32768,   705,
   354,  1099,-32768,-32768,-32768,  1084,-32768,  8650,  1114,  1119,
  1120,  8306,   329,   524,-32768,  1127,  1177,  1129,-32768,  4142,
  9510,  2148,  5029,-32768,-32768,  1178,-32768,-32768,-32768,  7491,
-32768,-32768,-32768,  2634,  2634,-32768,  2804,  1719,-32768,-32768,
-32768,   803,   803,   803,-32768,  1130,  1089,  1092,-32768,  9579,
  9579,-32768,-32768,-32768,  1136,   899,  8650,-32768,-32768,-32768,
   375,   375,   832,   832,-32768,  1978,-32768,-32768,-32768,   569,
  6749,  8650,  8650,  8650,  8650,  6749,-32768,  8650,  1137,-32768,
-32768,  4942,   387,  8650,-32768,   536,-32768,-32768,-32768,-32768,
-32768,-32768,  1094,-32768,  1159,-32768,-32768,   803,-32768,-32768,
-32768,-32768,    83,-32768,-32768,-32768,-32768,-32768,   420,-32768,
-32768,-32768,-32768,-32768,-32768,   745,  6569,  1117,  5185,-32768,
-32768,-32768,-32768,  1151,  8650,  1152,-32768,-32768,-32768,  1122,
-32768,-32768,    31,   750,-32768,   787,   375,  8911,    34,   900,
   362,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  6749,
  6749,-32768,-32768,-32768,-32768,-32768,    68,  8650,  8650,  9579,
   589,   589,  1153,  1154,-32768,-32768,-32768,-32768,   330,-32768,
  1126,-32768,  1113,  1115,  1121,  1131,-32768,  9627,  6749,   387,
-32768,  1111,-32768,-32768,-32768,   803,-32768,-32768,   582,   582,
  7773,-32768,  1204,  1165,  1138,-32768,  1166,-32768,  8393,  8650,
-32768,  7593,-32768,  1168,-32768,-32768,   444,-32768,   589,-32768,
-32768,   589,  9251,  9251,  6929,-32768,-32768,-32768,   745,  7019,
  7019,-32768,-32768,  6749,-32768,  9579,  9579,-32768,   832,   832,
  6749,  6749,   569,  1142,  8998,-32768,-32768,-32768,-32768,  6749,
-32768,-32768,-32768,-32768,  8393,-32768,-32768,-32768,-32768,-32768,
-32768,  5813,-32768,-32768,  1144,   257,  2940,  9650,  7593,-32768,
-32768,  5271,    53,-32768,-32768,  1176,-32768,  1191,-32768,-32768,
-32768,  1190,  1192,-32768,-32768,-32768,-32768,   380,  1149,-32768,
  1156,   745,  7683,   585,   423,  5411,-32768,   375,-32768,-32768,
   434,-32768,  5515,-32768,  1245,  1208,-32768,-32768,  6749,  6749,
  8650,-32768,-32768,-32768,-32768,    48,-32768,-32768,-32768,  8650,
  1209,-32768,  1213,-32768,   745,   589,  7593,-32768,-32768,-32768,
  1183,     8,  1217,-32768,-32768,  7109,  7109,-32768,-32768,  1173,
-32768,  5903,  1184,-32768,-32768,   832,-32768,  1187,  8650,  1245,
  1223,  1245,  1188,  1189,-32768,   498,  5619,-32768,  1222,-32768,
  1195,   239,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1201,
-32768,  1283,  1237,  7683,  7683,  6749,  4122,   745,-32768,   436,
-32768,-32768,-32768,-32768,  1196,  1199,-32768,  1294,  1248,-32768,
-32768,-32768,-32768,  1306,  1307,-32768
};

static const short yypgoto[] = {-32768,
  1193,-32768,-32768,   992,    18,  1303,-32768,-32768,-32768,-32768,
-32768,-32768,   513,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  -756,  1200,  1202,-32768,-32768,-32768,-32768,  1181,-32768,-32768,
   503,     0,-32768,   771,-32768,  3899,   -26,-32768,  1226,   867,
  -998,-32768,   -84,   187,-32768,   196,-32768,   179,   150, -1074,
-32768,  -350,   929,   118,   753,-32768,-32768,  -703,  2564,   926,
  -251,  2283,  2895,   822,   618,   425,-32768,-32768,-32768,-32768,
  -248,-32768,  -108,   -83,-32768,   255,    17,  -273,    82,    21,
  -121,  -120,    -3,  1868,    46,  1413,   -98,  -418,   352,-32768,
  -160,-32768,-32768,   207,-32768,-32768,-32768,-32768,-32768,    66,
-32768,   653,-32768,   144,-32768,-32768,   394,   756,    29,-32768,
-32768,-32768,   546,  -261,    37,  1302,  1310,-32768,-32768,-32768,
-32768,-32768,  -116,-32768,   479,  -614,-32768,   531,   395,   471,
  -409,-32768,-32768,-32768,-32768,-32768,-32768,   941,-32768,   474,
   809,   553,   860,  1539,  1625,  -357,-32768,  2462,   -63,    20,
-32768,  4399,   -90,   441,-32768,  3481,-32768,-32768,  4001,    -4,
   154,  -311,  1345,  3650,   789,  -169,-32768,  4093,-32768, -1136,
  -924,  -335,    92,-32768,   532,   -92,  -128,-32768,-32768,-32768,
 -1121,  -930, -1102,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,   -24,-32768,-32768,-32768,-32768,-32768,
  -281,    67,-32768,    76,-32768,  -343,  -132,-32768,-32768,  -289,
  -286,-32768,-32768,    40,   490,-32768,   -18,-32768,  -247
};


#define	YYLAST		9826


static const short yytable[] = {    66,
    46,   348,   348,   365,   521,   670,   194,    85,   320,   552,
   593,    82,   553,   464,   359,    85,    96,   313,   316,   103,
   103,    30,   103,   290,    44,   178,   583,   422,    66,   122,
   635,    84,   862,   391,   194,   529,   532,   551,   349,   149,
    95,    66,   912,   633,  1140,   344,   231,    85,  1208,   350,
   501,   175,  1104,   121,    85,   951,    97,  1224,  1103,  1107,
   142,   501,   399,   400,   408,   195,    85,  1300,   501,   826,
    -1,    84,    85,    96,   423,  1246,   164,   552,   957,   596,
   617,   826,    85,   596,  1215,  1253,  1168,    -2,   521,  1176,
   149,    85,   650,    85,   648,   459,   103,   285,   651,   306,
   103,   188,   100,   103,   103,    11,   310,   667,    77,  1301,
   460,   300,  1255,   286,    66,    46,   149,    66,   667,   345,
  1265,  -694,   187,   135,   597,   187,   958,  -694,   597,   598,
  1241,  -690,   360,   598,   149,   149,   149,   328,   827,    44,
  1268,  1140,   509,   559,    78,    79,   167,   168,   169,    21,
  1291,    93,   611,  1295,  1256,  1307,   774,   276,     8,   187,
   149,  1029,   599,   510,   336,   691,   599,   136,   137,   294,
   296,   706,   346,   511,   668,   574,   170,   359,    66,   413,
   276,   383,   164,   512,   554,  1147,   513,   514,   103,   164,
   164,    75,    21,  1064,    80,   171,   397,   612,   100,   392,
   525,   534,   613,   412,   342,   421,  1045,    93,   127,    76,
   240,   575,     8,   164,   348,   348,   592,   358,     8,   192,
   194,  1268,  1268,   126,    21,    85,   432,    88,   100,   425,
   419,  1220,   100,    89,   509,   614,   639,    90,   192,   172,
   173,   174,   891,    73,   526,   359,   498,    93,   100,   450,
   590,   591,   576,   356,   365,     8,   192,   164,   589,    21,
   127,   577,   159,   160,   876,   359,    85,    93,    12,   425,
   508,   637,   432,   432,   523,    21,   100,    93,   690,   423,
   149,    93,   529,   291,   295,   386,   313,   316,  1250,   751,
    74,    17,   399,   400,    85,   360,   578,    93,  1322,   752,
   509,   533,   192,   189,    93,    99,   164,   103,   509,   117,
   103,   877,   867,   753,   103,  1104,    75,   326,    85,    96,
   400,  1103,  1104,    21,   671,    93,   189,   705,  1103,   387,
   388,    78,   308,  1062,    76,   648,   459,   751,   118,   457,
  1323,   132,  1143,    95,   690,   100,  1297,   752,   192,     7,
     8,   555,   690,   421,   149,    66,   149,   149,   523,    97,
  -226,   753,    66,   360,   327,   133,  1048,   563,   149,   182,
   149,   672,   149,   149,   801,   603,  1104,   607,   609,   149,
   549,   309,  1103,   360,  1193,   149,   287,    19,   149,   802,
   164,   359,    21,   289,    93,     7,     8,  -221,   359,    22,
   421,    85,   807,  1085,  -226,  -226,   430,   149,    66,  1071,
    66,   413,     7,   100,   421,    85,   431,  1071,  -221,   164,
   164,   189,    78,   308,   936,   339,   317,   100,   657,    26,
   423,  1194,   318,    19,  1261,   412,   192,   934,     8,   340,
   640,    85,    85,    85,    85,    22,  -503,   164,   549,  -222,
    19,   112,   234,   455,  -121,  -227,  1072,   673,   588,   192,
   348,   712,    22,   321,  1178,   642,   187,   114,   358,   341,
   100,   498,   309,   184,    21,    26,    93,   337,  1071,   857,
   359,  1262,   -26,   301,   189,    21,   359,    93,   430,  1071,
  1338,    85,    26,   432,   370,   301,   825,   -26,   431,  -227,
  -227,   674,   406,   583,   632,   432,   432,   426,   523,   360,
   509,   552,   875,  -222,   553,    66,   360,    21,   689,    93,
   761,   692,   428,   365,   178,  1272,   698,   699,   700,   701,
   702,   510,   112,   112,   359,   464,  1278,  1339,   399,   551,
   276,   511,   529,   532,   715,   149,    85,   648,   114,   114,
   803,   512,   688,  1071,   513,   514,   420,    78,    79,    13,
    14,  1094,  1053,  1100,   762,   112,   609,   621,  -101,   878,
    84,    78,   308,  1125,  1126,  1127,   744,    99,   164,   747,
   421,   114,   780,  1087,   712,   192,   763,   427,   -79,   429,
   629,   435,    99,   748,   -79,   149,   149,   838,   360,   638,
  1317,   747,   816,   838,   360,    21,   818,    80,    81,   740,
   820,   742,   743,    13,    14,   748,   670,   485,   486,   149,
   149,   309,   149,   749,  1044,  1204,   781,   782,  1269,   442,
   764,  1078,   455,     7,   502,   455,   648,   693,   695,   812,
   697,   691,    85,   792,   111,   749,   817,  -282,   365,  -283,
   819,   838,   360,  -282,   821,  -283,   446,   421,   455,   359,
   443,   192,   719,   359,   445,   164,   882,   883,   884,  1205,
   432,    19,  1270,   165,   166,   186,   192,   297,   298,   359,
   432,   432,   432,    22,   447,   187,   501,   187,   741,    75,
   421,   384,   385,   851,   758,   813,   868,  -694,   864,  -694,
  -694,   870,   871,   164,   856,   873,  -694,    76,   691,  1023,
  1024,   448,  1024,    26,   449,     7,   502,   330,   503,   331,
   541,   359,   100,   332,   538,   423,   314,   194,  -694,  -694,
  -694,   540,  -694,   587,  -694,   159,   160,   358,  1149,  1150,
    85,    12,   393,   394,   313,   316,  1049,  1050,   543,  1052,
   313,   316,  1166,    19,   564,    13,    14,   544,   111,  1069,
  1070,   432,   509,   432,    17,    22,   187,     8,   641,    21,
    85,    93,  1180,  1181,   432,   545,    85,   360,    66,    66,
    66,   360,   546,   510,   -78,   565,   941,   566,   560,   567,
   -78,   568,    70,   511,   642,   504,    85,   360,   346,   643,
    87,   112,   112,   512,   384,  1170,   513,   514,    98,   423,
   527,     8,   104,   104,    21,   104,    93,   114,   114,  1212,
  -689,    70,   594,     7,     8,   959,   911,   595,   149,   149,
   149,   149,   104,   619,    70,   149,   838,   838,   838,   360,
    87,   393,  1171,   610,   240,   528,   678,    98,    19,   626,
   158,   159,   160,   620,    85,   634,   715,    12,    21,    98,
    93,    19,   358,   679,   149,    98,   914,   103,   703,    66,
   413,    85,   950,    22,   482,   483,   484,   485,   486,   925,
    17,   926,   549,   104,    98,    13,    14,   421,   421,   104,
   421,   704,  -327,   104,   412,   425,   104,   104,   683,    75,
   333,  1039,   334,    26,  1012,   684,   335,    70,  -100,   104,
    70,   432,   432,   706,   432,  -327,  -327,    76,  -327,     8,
   860,   773,  1006,   759,   403,   760,   404,   104,   104,   104,
   405,  1013,    66,    66,   954,   775,   955,   777,   956,  1008,
  1027,   487,   691,    85,    66,   413,   642,  1152,   918,    75,
   793,   861,   806,   104,   384,  1177,  1039,   674,  1119,   794,
  1189,  1190,   808,   398,   159,   160,    21,    76,    93,   412,
    12,    70,  1086,  1332,  1333,   149,    66,   149,   488,   489,
   455,   104,   809,   490,   491,   492,   493,   438,   441,   149,
   149,   192,   149,    17,   810,   314,  1093,   811,  1099,   815,
     8,   848,    10,    11,  1303,  1304,   849,   824,    12,   852,
   164,   639,   850,   853,   854,   855,   859,   858,    98,   104,
   863,    66,   413,    15,   869,   872,   112,    16,   874,  1128,
   879,    17,   112,   880,   885,   886,   889,   552,   455,   890,
  1336,   892,   114,   895,   896,   902,   412,    21,   114,    93,
  1152,   893,   894,  1007,   897,   898,   899,   -99,  1223,    98,
  1121,  1122,   901,   905,   355,   104,   104,    70,  1148,   904,
   907,   920,   531,   104,   906,  1115,  1116,   923,   924,   908,
   112,   909,   313,   316,   745,   910,   922,    98,  1123,  1124,
   929,   930,   931,   838,   192,   939,   114,   935,   945,   948,
   104,   940,   942,   104,   826,  1001,   952,   104,   998,  1005,
  1014,    98,  1030,  1152,  1032,  1296,   478,   479,   480,   481,
   482,   483,   484,   485,   486,  1033,    98,   480,   481,   482,
   483,   484,   485,   486,  1034,  1041,  1172,   789,   421,   421,
  1035,   913,  1046,  1047,  1055,  1056,  1152,   104,    70,   104,
   104,    70,  1057,  1051,  1060,    70,  1185,  1059,  1073,  1061,
  1065,   104,  1066,   104,  1067,   104,   104,  1084,   838,   838,
   838,  1077,   104,  1080,  1081,  1082,   451,   100,   104,   452,
  1088,   104,   453,  1089,  1091,  1188,   421,  1112,   461,   421,
  1113,  1105,  1128,  1114,    98,  1118,  1139,   500,  1144,  1337,
   104,    70,  1145,    70,  1159,   359,  1163,  1165,    98,  1167,
  1191,  1192,   149,  1195,  1196,  1203,  1197,   509,  1209,   111,
  1210,  1213,  1198,  1221,    21,   845,    93,  1133,  1134,  1135,
  1136,  1257,  1199,  1248,    98,    98,    98,    98,   510,  1142,
  1211,   999,  1000,  1237,   164,  1247,  1258,  1259,   511,  1260,
  1263,  1230,  1231,  1281,  1232,  1233,   457,  1264,   512,   112,
   112,   513,   514,  1285,  1294,   112,   112,   112,  1071,   355,
  1299,  1302,  1157,   111,  1305,   114,   114,  1310,  1313,  1319,
  1164,   114,   114,   114,    98,  1308,   104,  1276,  1327,  1315,
  1316,  1329,  1331,   421,  1037,  1040,  1321,  1340,   104,   104,
  1341,    70,  1342,  1343,     5,  1345,  1346,   789,   791,   343,
   322,  -468,  1239,   947,  -468,   355,   562,   953,   324,   531,
   325,   804,    85,   360,   304,   707,  1202,   381,  1207,   765,
  1228,  1158,  1096,   881,   123,   949,  1236,  1009,   104,    87,
   823,   946,   124,  1063,  1026,  1025,   944,   796,   777,  -694,
  1040,  -694,  -694,   665,  1214,   746,    86,  1292,  -694,  -468,
   993,  1309,  -468,   355,  -468,  1028,  1312,     0,     0,   696,
   455,  1015,  1016,     0,  -468,  1214,  1214,  1314,  1290,     0,
  -694,  -694,   382,     0,  -694,     0,  -694,     0,   104,   104,
    70,     0,  -468,  -468,     0,     0,   791,  -468,     0,     0,
  1214,   314,     0,     0,     0,     0,  -468,     0,   549,    19,
     0,     0,   104,   104,     0,   104,    48,     0,   187,    21,
   355,    22,   355,   355,  1132,     0,     0,     0,  1017,  1137,
     0,     0,    48,   139,     0,    98,     0,     0,     0,     0,
     0,     0,     0,   140,    70,    48,     0,     0,   355,     0,
     0,    26,     0,   314,   355,     0,   141,     0,   154,   314,
   111,     0,   395,   104,     0,  1293,     0,     0,     0,     0,
     0,   185,     0,   104,   104,   104,     0,     0,     0,     0,
     0,   719,   719,   229,  -694,     0,  -694,  -694,   278,    48,
     0,     0,     0,  -694,  1311,     0,     0,     0,     0,     0,
   278,   278,     0,  1182,  1183,   314,   355,     0,   154,     0,
     0,   278,     0,     0,     0,  -694,  -694,   396,     0,  -694,
     0,  -694,   112,     0,     0,     0,     0,     0,     0,     0,
     0,    48,  1201,    98,   154,     0,   355,     0,   114,     0,
     0,     0,     0,     8,    92,    10,    11,     0,   362,   353,
     0,    12,     0,   187,   104,     0,   104,     0,     0,     0,
     0,     0,     0,    98,     0,     0,    15,   104,     0,    98,
    16,   791,   791,   791,    17,     0,     0,  1229,     8,   531,
    10,   184,     0,     0,  1234,  1235,    12,     0,     0,    98,
    21,     0,    93,  1240,     0,    48,     0,   112,   112,   112,
     0,    15,     0,    98,     0,    16,     0,   193,     0,    17,
     0,     0,     0,   114,   114,   114,     0,     0,   355,     0,
     0,   104,   104,   104,   104,    21,     0,    93,   104,   791,
   791,   791,   354,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   185,     0,     0,     0,     0,    98,   101,   105,
     0,     0,  1288,  1289,   319,     0,     0,   104,     0,     0,
   104,     0,    70,     0,    98,     0,     0,     0,     7,   100,
   278,     0,    11,   351,     0,     0,     0,   355,     0,     0,
     0,     0,   921,   229,     0,     0,     0,     0,   390,     0,
   355,   185,   355,     0,     0,   230,     0,     0,     0,     0,
   279,     0,     0,     0,   104,   104,    19,   104,   451,   452,
     0,   550,   279,   279,     0,   845,    21,     0,    22,  1334,
     0,     0,     0,   279,     0,   791,   791,     0,  -508,     0,
    24,     0,   312,   315,     0,    48,    98,    70,     0,     0,
    25,     0,     0,  -508,  -508,   355,     0,   355,    26,   355,
  -508,     0,     0,    27,     0,     0,     0,     0,     0,     0,
   363,     0,  -508,   373,   375,     0,   451,   452,   104,    70,
   104,     0,   154,  -508,  -508,   185,  -508,     0,  -508,   550,
     0,     0,   104,   104,     0,   104,     0,     0,     0,     0,
     0,   314,   111,     0,     0,     0,     0,     0,     0,   362,
     0,     0,     0,     0,     0,     0,  -508,  -508,     0,     0,
  -508,  -508,   451,   452,    70,     0,     7,   100,     0,     0,
  -508,     0,     0,     0,     0,   154,     0,    48,     0,     0,
     0,     0,   675,     0,     0,     0,     0,     0,     0,   409,
     0,     7,     8,    92,    10,    11,     0,  1054,     0,   278,
    12,     0,   278,     0,    19,     0,     0,   278,   675,   675,
   675,   675,   451,   452,    21,    15,    22,     7,     8,    16,
     0,   278,     0,    17,  -420,   278,     0,     0,   108,    19,
     0,     0,   279,     0,     0,     0,   791,     0,   109,    21,
     0,    22,   652,   653,   669,   230,    26,     0,   410,     0,
     0,    27,     0,    24,     0,    19,     0,   278,   229,     0,
     0,     0,     0,    25,     0,    21,     0,    22,   627,     0,
   138,    26,     0,   363,   630,   550,    27,     0,     0,   139,
    19,     0,   362,   654,     0,     0,     0,     0,   228,   140,
    21,  -420,    22,   277,     0,     0,     0,    26,     0,   655,
     0,     0,   141,     0,   139,   277,   277,     0,     0,     0,
     0,   791,   791,   791,   140,     0,   277,     0,   685,   686,
     0,   687,    26,     0,     0,     0,     0,   656,   409,     0,
     7,     8,    92,    10,    11,     0,     0,     0,     0,    12,
     0,   363,     8,    92,    10,    11,     0,     0,     0,     0,
    12,   624,   625,   361,    15,   104,     0,     0,    16,     0,
     0,   363,    17,  -421,   550,    15,     0,     0,    19,    16,
   362,     0,     0,    17,     0,     0,   355,     0,    21,     0,
    22,     0,     0,   669,     0,     0,     0,   410,     0,    21,
     0,    93,    24,     0,   279,   100,     0,   159,   160,     0,
     0,     0,    25,    12,   778,   779,     0,    94,     0,   778,
    26,   279,     0,     0,   279,    27,     0,     0,   550,   279,
   279,   279,   279,   279,     0,     0,    17,     0,     0,     0,
  -421,     0,     0,   279,     0,   509,     0,   279,     0,     0,
     0,     0,    21,     0,    93,     0,     0,     0,   451,   452,
     0,     0,     0,     0,     0,     0,   510,     0,     0,     0,
     0,     0,     0,     0,     0,    98,   511,     0,     0,   279,
   230,     0,     0,   355,     0,   277,   512,     0,     0,   520,
   514,     0,   831,   832,   766,   768,     0,   363,   228,     0,
     0,     0,   840,     0,   363,     0,     0,     0,   847,     0,
     7,     8,   158,   159,   160,     0,     0,   675,     0,    12,
     0,   915,     0,     0,     0,     0,   361,     7,     8,   409,
     0,     7,     8,    92,    10,    11,     0,     0,     0,     0,
    12,     0,    17,     0,     0,     0,     0,   675,    19,   355,
     0,   509,   865,   550,     0,    15,     0,   362,    21,    16,
    22,     0,     0,    17,  -419,    19,     0,     0,   509,    19,
     0,     0,   139,   550,     0,    21,     0,    22,     0,    21,
     0,    22,   140,     0,   833,   834,   363,     0,   410,   600,
    26,     0,   363,    24,   361,  1098,     0,     0,     0,   601,
   982,     0,     0,    25,     0,     0,     0,    26,     0,   512,
     0,    26,   602,   514,   361,   362,    27,     0,     0,     0,
     7,   100,     0,     0,   184,     0,     0,     0,     0,     0,
   278,  -419,     0,     0,     0,     0,     0,     0,     0,     0,
   363,     0,     0,     0,     0,     0,    48,   277,   675,   916,
   917,     6,   919,     7,     8,     9,    10,    11,    19,     0,
     0,     0,    12,     0,   277,     0,     0,   277,    21,     0,
    22,     0,   277,   277,   277,   277,   277,    15,   933,     0,
     0,    16,    24,     0,     0,    17,   277,     0,     0,     0,
   277,    19,    25,     0,     0,   323,     0,     0,     0,     0,
    26,    21,     0,    22,     0,    27,    23,     0,     7,     8,
     0,     0,    11,     0,     0,    24,     0,     0,   268,     0,
     0,    48,   277,   228,     0,    25,     0,     0,     0,   279,
     0,     0,     0,    26,     0,     0,     0,   997,    27,     0,
   361,   268,     0,     0,    28,     0,    19,   361,     0,   509,
  1002,  1003,  1004,   154,     0,   982,    21,     0,    22,   279,
     0,     0,   982,     0,     0,   363,     0,   766,   768,   363,
   600,     0,     0,     0,  1015,   100,     0,     0,   357,     0,
   601,     0,     0,     0,     0,   363,     0,     0,    26,     0,
   512,     0,     0,   602,   514,     0,     0,     0,    48,   474,
   475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
   485,   486,    19,     0,     0,     0,     0,     0,     0,   994,
   995,     0,    21,     0,    22,   994,   995,   363,  1058,   361,
     0,  1017,     0,     0,     0,   361,    24,     0,     0,     0,
     0,     0,   279,     0,     0,   584,    25,   708,   709,   982,
    10,   436,   233,   234,    26,   235,    12,     0,     0,    27,
   279,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    15,   236,   237,   238,    16,     0,   239,     0,    17,
     0,   240,   241,   361,   242,    19,   243,   244,     0,     0,
   245,   246,   247,   248,   249,    21,     0,   710,   585,     0,
     0,   458,     0,     0,     0,     0,   250,     0,     0,   251,
     0,     0,  1117,     0,     0,     0,     0,   252,   253,   254,
     0,   766,   768,   982,     0,   255,   256,   257,     0,     0,
     0,  1216,   258,   711,   982,     0,   259,     0,     0,     0,
   409,     0,     7,     8,    92,    10,    11,   278,   260,     0,
     0,    12,  1216,  1216,     0,     0,     0,  1146,     0,     0,
   374,   376,   379,     0,     0,     0,    15,     0,     0,     0,
    16,     0,   277,     0,    17,  -422,     0,  1216,     0,     0,
    19,     0,   586,   357,   982,     0,     0,     0,     0,     0,
    21,   982,    22,     0,   982,     0,     7,     8,     0,   410,
   184,     0,   277,     0,    24,     0,     0,     0,   361,     0,
     0,     0,   361,     0,    25,   982,     0,     0,   982,     0,
     0,     0,    26,     0,     0,   982,     0,    27,   361,   357,
     0,     0,     0,     0,    19,     0,     0,   509,     0,     0,
     0,     0,  -422,     0,    21,     0,    22,     0,     0,   982,
     0,     0,   649,     0,     0,     0,     0,     0,   600,     0,
     0,     0,     0,     0,   982,     0,     0,     0,   601,     0,
   361,     0,     0,     0,     0,     0,    26,   357,   512,   982,
     0,   602,   514,     0,     0,   277,     0,     0,     0,     0,
     0,     7,     8,     0,     0,    11,   982,   982,     0,   550,
     0,   268,     0,   277,   586,     0,     0,   716,   717,     0,
   721,   722,   723,   724,   725,   726,   727,   728,   729,   730,
   731,   732,   733,   734,   735,   736,   737,   738,   739,    19,
     0,     0,   509,     0,   357,     0,   357,   357,     0,    21,
     0,    22,     0,   230,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   835,     0,     0,     0,   624,   625,   279,
     0,     0,   357,   836,   230,   230,     7,     8,   357,     0,
   423,    26,     0,   512,     0,     0,   602,   514,     0,     0,
     0,     0,     0,   798,   800,     0,     0,     0,     0,   230,
     0,     0,     0,     0,   622,     0,   623,     0,   374,   376,
   515,   515,   515,     0,    19,     0,     0,   509,     0,     0,
     0,   636,     0,     0,    21,     0,    22,     0,     0,     6,
   357,     7,     8,     9,    10,    11,     0,   586,   600,     0,
    12,     0,     0,   662,     0,     0,     0,     0,   601,     0,
     0,     0,     0,    13,    14,    15,    26,     0,   512,    16,
   357,   602,   514,    17,     0,     0,     0,    18,    42,    19,
     0,   586,     0,    20,     0,     0,     7,   100,     0,    21,
    11,    22,     0,     0,    23,     0,     0,     0,    42,    42,
     0,   110,   515,    24,   515,   515,   515,    42,     0,     0,
     0,     0,     0,    25,     0,     0,     0,   866,    42,     0,
    42,    26,     7,     8,    19,     0,    27,     0,     0,     0,
     0,   363,    28,    29,    21,     0,    22,     0,     0,     0,
   190,     0,     0,     0,     0,     0,     0,     0,   108,     0,
     0,     0,   357,     0,     0,     0,     0,     0,   109,     0,
    19,     0,     0,     0,     0,     0,    26,     0,     0,    42,
    21,    27,    22,   900,     0,    42,     0,   190,     0,    42,
     0,     0,   110,   110,   139,     0,     0,     0,     0,     8,
     0,    10,   184,    42,   140,    42,    42,    12,     0,     0,
     0,     0,    26,     0,     0,     0,   228,   141,     0,     0,
   586,   357,    15,    42,    42,   110,    16,     0,     0,     0,
    17,     0,   277,   190,   357,     0,   357,   228,   228,   509,
     0,     0,     0,     0,     0,     0,    21,     0,    93,    42,
     0,   374,   376,   379,     7,     8,     0,     0,    11,   379,
   510,     0,   228,   515,   515,   943,   515,    42,     0,     0,
   511,     0,     0,   787,     0,   622,   623,    42,   636,     0,
   512,     0,     0,   513,   514,     0,     0,     0,     0,   357,
     0,   357,    19,   357,     0,     0,     0,     0,     0,     0,
     0,     0,    21,   515,    22,     0,     0,   379,     0,     0,
     0,     0,     0,     0,     0,     0,   139,     0,     0,     0,
   586,   586,     0,     0,     0,     0,   140,     0,     0,     0,
     0,     0,     0,     0,    26,  1010,  1011,     0,     0,   141,
     7,     8,    92,    10,    11,     0,     0,   353,     8,    12,
    10,    11,     0,   515,   515,   515,    12,     0,     0,   505,
     0,   787,     0,     0,    15,     0,     0,   190,    16,    42,
     0,    15,    17,   586,   586,    16,     0,  1042,    19,    17,
     0,   509,     0,     0,   361,     0,     0,     0,    21,     0,
    22,     0,     0,     0,     0,    21,    42,    93,   494,    42,
     0,     0,   835,    42,     0,     0,     0,     0,     0,     0,
     0,     8,   836,    10,    11,     0,     0,     0,     0,    12,
    26,     0,   512,     0,     0,   602,   514,     0,   515,   586,
   354,     0,   495,     0,    15,     0,     0,     0,    16,     0,
  1079,     0,    17,    42,    42,    42,    42,     0,     0,     0,
     0,    42,     0,     0,     0,     0,     0,    42,    21,    42,
    93,   110,   110,     7,     8,   158,   159,   160,    42,     0,
     0,     0,    12,     0,    42,     0,     0,    42,     7,   100,
     0,     0,   423,     0,   622,   623,   374,   376,     0,  1120,
     0,   636,   374,   376,   379,    17,    42,    42,     0,    42,
     0,    19,     0,   586,   509,     0,     0,     0,   586,     0,
  1138,    21,     0,    22,     0,     0,    19,     0,     0,   515,
  1021,   515,     0,     0,     0,   600,    21,     0,    22,     0,
     0,     0,   515,     0,     0,   601,   787,   787,   787,     0,
    24,     0,     0,    26,     0,   512,     0,     0,   608,   514,
    25,     0,     0,     0,     0,     0,     0,     0,    26,     0,
     0,     0,     0,    27,     7,     8,     0,     0,   184,     0,
   357,     0,     0,   120,     0,     7,     8,    92,    10,    11,
     0,     0,   586,   586,    12,     0,   515,   515,   515,   515,
  1186,  1187,   505,   515,   787,   787,   787,     0,     0,    15,
     0,     0,    19,    16,   788,     0,     0,    17,     0,     0,
     0,   586,    21,    19,    22,     0,     0,     0,     0,     0,
     0,     0,     0,    21,     0,    22,   139,     0,     0,     0,
     0,     0,  1218,     0,    42,     0,   140,    24,     0,     0,
     0,     0,     0,     0,    26,   622,   623,    25,   636,   141,
     0,     0,     0,     0,     0,    26,   586,     0,     0,     0,
    27,     0,     0,   586,   586,     0,     0,   357,     0,     0,
     0,     0,   586,     0,    64,     8,    92,    10,    11,     0,
     0,   353,     0,    12,    42,    42,   110,     0,     0,     0,
   787,   787,   844,     0,    64,    64,     0,   115,    15,     0,
     0,     0,    16,    64,     0,     0,    17,     0,    42,    42,
     0,    42,     0,     0,    64,   509,    64,     0,     0,     0,
     0,     0,    21,     0,    93,     0,     0,     0,     0,     0,
     0,   586,   586,   357,     7,     8,   510,     0,    11,     0,
   110,     0,     0,     0,     0,     0,   511,   515,   515,   379,
   515,     0,     0,     0,     0,     0,   512,     0,     0,   513,
   514,     0,     0,     0,   354,    64,     0,     0,     0,     0,
     0,    64,    19,     0,   788,    64,     0,     0,   115,   115,
     0,     0,    21,     0,    22,     0,     0,     0,     0,    64,
     0,    64,    64,     0,     0,     0,   377,     0,   586,     0,
     0,     0,     0,     0,     0,     0,   378,     0,     0,    64,
    64,   115,     0,     0,    26,     0,     0,     0,     0,   141,
     0,     0,     0,     0,   374,   376,   379,     0,   196,     0,
     0,     8,     0,    10,    11,    64,     0,     0,     0,    12,
   475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
   485,   486,     0,    64,    15,     0,     0,     0,    16,     0,
     0,     0,    17,    64,   197,   198,   116,   788,   788,     0,
     0,   199,     0,     0,     0,     0,     0,     0,    21,     0,
    93,     0,   200,   150,   201,   202,   203,     0,   204,   205,
   206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   216,   217,   218,   219,   220,   221,     0,     0,   222,   223,
   224,     0,     0,   225,     0,     0,   226,    42,    42,   110,
   110,     0,   190,     0,    42,   844,   844,   844,     0,     0,
     0,   227,     0,     0,   150,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   116,   116,     0,
     0,     0,     0,    42,   530,    64,    42,     0,    42,     0,
   150,     0,     0,     0,  -301,     8,  -301,    10,   184,     0,
     0,   788,   788,    12,     0,     0,     0,     0,   150,   150,
   380,     0,    64,     0,     0,    64,     0,     0,    15,    64,
     0,     0,    16,     0,     0,     0,    17,     0,     0,     0,
     0,     0,  -301,     0,   150,   509,     0,     0,   582,     0,
     0,     0,    21,     0,    93,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   190,   510,     0,     0,    64,
    64,    64,    64,    42,     0,     0,   511,    64,     0,     0,
     0,     0,     0,    64,  -301,    64,   512,   115,   115,   513,
   514,     0,     0,     0,    64,     0,     0,     0,     0,     0,
    64,     0,     0,    64,    42,    42,    42,     0,     0,     0,
   433,     0,     0,     0,     0,     0,     0,     0,    42,    42,
     0,    42,    64,    64,     0,    64,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     7,     8,
    83,    10,   436,   233,   234,     0,   235,    12,     0,     0,
    42,     0,    83,    83,     0,    83,   517,   517,   517,     0,
     0,     0,    15,   236,   150,     0,    16,     0,   239,     0,
    17,     0,   240,   241,     0,   242,    19,   243,   244,     0,
   177,   245,   246,   247,   248,   249,    21,     0,    22,     0,
     0,     0,     0,     0,     0,     0,     0,   250,     0,     0,
   251,     0,     0,     0,     0,     0,     0,     0,   252,   253,
   254,     0,     0,     0,     0,     0,   255,   256,   257,     0,
     0,     0,   844,   437,     0,     0,     0,     0,     0,    83,
   790,    83,    83,    83,     0,     0,    83,    83,   604,   260,
   604,   604,   517,     0,     7,     8,   158,   159,   160,     0,
     0,     0,   150,    12,   150,     0,   380,   380,     0,     0,
    64,     0,     0,   150,     0,     0,     0,     0,     0,   150,
     0,     0,   150,     0,   148,     0,    17,     0,     0,     0,
     0,     0,    19,     0,     0,   509,     0,     0,     0,     0,
     0,   150,    21,     0,    22,     0,   191,   844,   844,   844,
     0,     0,     0,     0,     0,     0,   600,     0,     0,     0,
    64,    64,   115,     0,     0,   191,   601,     0,   846,     0,
     0,    83,     0,     0,    26,   148,   512,     0,     0,   602,
   514,     0,     0,     0,    64,    64,   100,    64,   159,   160,
     0,    42,     0,     0,    12,     0,     7,     8,     0,     0,
   423,   148,     0,     0,     0,     8,    92,    10,    11,    83,
     0,  1335,     0,    12,     0,     0,   115,    17,     0,   148,
   148,   148,     0,     0,     7,     8,   509,   754,    15,   389,
     0,     0,    16,    21,    19,    93,    17,     0,     0,   517,
   517,     0,   517,     0,    21,   148,    22,   510,     0,   517,
   790,     0,    21,    83,    93,    83,    83,   511,   139,     0,
     7,     8,    19,     0,     0,     0,     0,   512,   140,     0,
   513,   514,    21,     0,    22,   191,    26,  1092,     0,   604,
     0,   141,     0,     0,    83,     0,   139,     0,     0,     0,
    83,     0,     0,    83,     0,     0,   140,    83,    19,     0,
     0,     0,     0,     0,    26,     0,     0,     0,    21,   141,
    22,     8,    92,    10,    11,     0,     0,     0,     0,    12,
     0,     0,   377,     0,     0,     0,     0,     0,     0,   604,
   604,   839,   378,     0,    15,     0,     0,   839,    16,     0,
    26,     0,    17,   790,   790,   141,     0,     0,     0,     0,
     0,   530,     0,   150,   150,     0,   150,     0,    21,     0,
    93,     0,     0,   191,     0,   148,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   582,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   380,     0,     0,     0,     0,
     0,     0,     0,    64,    64,   115,   115,     0,     0,     0,
    64,   846,   846,   846,   517,     0,     0,     0,     0,     0,
    83,     0,     0,     0,   433,   433,   433,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    64,
     0,     0,    64,     0,    64,     0,     0,     0,     0,   148,
     0,   148,   148,     0,     0,     0,     0,   790,   790,   518,
   522,   524,     0,   148,     0,   148,     0,   148,   148,     0,
     0,     0,     0,     0,   148,     0,     0,     0,     0,     0,
   148,     0,     0,   148,     0,     0,    83,     0,     0,     0,
     0,     0,    62,     0,     0,     0,    83,     0,    83,    83,
     0,     0,   148,     0,     0,   517,     0,   517,     0,     0,
     0,     0,   102,   106,     0,     0,     0,     0,   517,    64,
     0,   125,   517,   517,   517,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   157,     0,     0,     0,     0,   177,
     0,   605,     0,   518,   522,   524,     0,     0,     0,     0,
    64,    64,    64,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    64,    64,     0,    64,     8,   151,
    10,   152,   604,   604,   839,   839,    12,     0,     0,   604,
   839,   839,   839,     0,     0,     0,     0,     0,     0,   305,
     0,    15,     0,   307,     0,    16,    64,     0,     0,    17,
     0,     0,     0,     0,     0,     0,     0,    62,   150,     0,
   329,     0,     0,   191,     0,    21,     0,    93,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   102,   106,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   148,   473,   474,   475,   476,   477,   478,   479,   480,   481,
   482,   483,   484,   485,   486,   754,   754,     0,   754,     0,
     0,     0,     0,    83,     0,     0,     0,     0,   846,     0,
     0,   418,     0,    83,    83,    83,   517,   517,     0,     0,
     0,   424,     0,     0,     0,     0,     0,     0,     0,     0,
   148,   148,   837,   769,     0,   771,     0,     0,   837,     0,
     0,     0,   771,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   148,   148,     0,   148,     0,   150,
     0,   150,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   522,   604,   604,     0,   604,     0,     0,     0,
     0,     0,     0,   846,   846,   846,   837,     0,     0,     0,
     0,     0,     0,     0,    83,     0,    83,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    83,   472,   473,
   474,   475,   476,   477,   478,   479,   480,   481,   482,   483,
   484,   485,   486,   769,   771,     0,     0,    64,     7,     8,
   771,    10,   436,   233,   234,     0,   235,    12,     0,     0,
   556,     0,     0,   557,     0,     0,     0,   558,     0,     0,
     0,     0,    15,   236,   237,   238,    16,     0,   239,     0,
    17,     0,   240,   241,     0,   242,    19,   243,   244,     0,
     0,   245,   246,   247,   248,   249,    21,   380,    22,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   606,     0,
     0,     0,     0,     0,     0,   616,     0,   522,     0,     0,
    83,   305,     0,   307,     0,     0,   255,   256,   257,     0,
     0,     0,     0,   258,     0,     0,     0,   259,   424,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   260,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   663,   666,     0,   418,    83,    83,     0,    83,     0,     0,
     0,     0,   380,   380,   380,     0,     0,     0,     0,     0,
     0,     0,     0,   148,   148,   148,   148,     0,   996,     0,
   148,   837,   837,   837,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   927,     0,
   928,     0,     0,     0,     0,     0,   150,     0,     0,   148,
     0,   932,     0,     0,     0,     0,   769,   771,     0,     0,
     0,     7,     8,    92,    10,    11,     0,     0,   353,     0,
    12,     0,     7,     8,   151,    10,   152,     0,     0,     0,
     0,    12,     0,     0,     0,    15,     0,     0,     0,    16,
     0,     0,     0,    17,     0,     0,    15,     0,     0,    19,
    16,     0,     0,     0,    17,   927,   928,     0,   769,    21,
    19,    22,   932,     0,   769,   771,     0,     0,     0,     0,
    21,   191,    22,   377,     0,   153,     0,     0,     0,     0,
     0,     0,     0,   378,    24,     0,     0,     0,     0,     0,
     0,    26,     0,     0,    25,     0,   141,     0,     0,     0,
     0,   354,    26,     0,     0,     0,     0,    27,     0,     0,
   148,     0,   148,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   148,   148,     0,   148,   102,   106,
   467,     0,   468,   469,   470,   471,   472,   473,   474,   475,
   476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
   486,     0,   556,   557,     0,   558,     0,     0,     0,  1101,
   769,   962,     8,    92,    10,   232,   233,   234,     0,   235,
    12,   963,     0,   964,   965,   966,   967,   968,   969,   970,
   971,   972,   973,    13,    14,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,   974,   346,     0,   975,     0,   927,   928,     0,   932,
   250,     0,     0,   251,     0,     0,     0,     0,   837,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,   976,   454,
   259,     7,     8,    92,    10,   232,   233,   234,   353,   235,
    12,  1102,   260,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,   509,     0,   245,   246,   247,   248,   249,    21,
     0,    22,  -234,   837,   837,   837,     0,     0,     0,     0,
   250,     0,     0,   937,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   938,  1160,     0,     0,     0,     0,   255,
   256,   257,     0,   512,     0,     0,   785,   514,     0,     0,
   259,   354,     0,     0,     0,     0,     0,   148,     0,     0,
     0,     0,   260,     0,     0,     0,     0,     0,     0,     0,
     0,   305,   307,     0,     0,     0,     0,     0,   424,     0,
     0,   465,   466,   467,  1161,   468,   469,   470,   471,   472,
   473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
   483,   484,   485,   486,     0,     0,     0,  1022,     0,     0,
  1022,  1251,   418,   962,     8,    92,    10,   232,   233,   234,
     0,   235,    12,   963,     0,   964,   965,   966,   967,   968,
   969,   970,   971,   972,   973,    13,    14,    15,   236,   237,
   238,    16,     0,   239,     0,    17,     0,   240,   241,     0,
   242,    19,   243,   244,     0,     0,   245,   246,   247,   248,
   249,    21,     0,   974,   346,     0,   975,     0,     0,     0,
     0,     0,   250,     0,     0,   251,     0,     0,     0,     0,
     0,     0,     0,   252,   253,   254,     0,   418,     0,     0,
     0,   255,   256,   257,     0,     0,     0,     0,   258,     0,
   976,     0,   259,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,  1252,   260,     0,     0,     0,     0,  1097,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   556,   557,     0,   558,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,  1273,     0,   962,     8,    92,    10,   232,   233,   234,
     0,   235,    12,   963,   418,   964,   965,   966,   967,   968,
   969,   970,   971,   972,   973,    13,    14,    15,   236,   237,
   238,    16,     0,   239,     0,    17,     0,   240,   241,     0,
   242,    19,   243,   244,     0,     0,   245,   246,   247,   248,
   249,    21,     0,   974,   346,     0,   975,     0,     0,     0,
     0,     0,   250,     0,     0,   251,     0,     0,     0,     0,
     0,     0,     0,   252,   253,   254,     0,     0,     0,     0,
     0,   255,   256,   257,     0,     0,     0,     0,   258,     0,
   976,     0,   259,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,  1274,   260,  1273,     0,   962,     8,    92,
    10,   232,   233,   234,     0,   235,    12,   963,     0,   964,
   965,   966,   967,   968,   969,   970,   971,   972,   973,    13,
    14,    15,   236,   237,   238,    16,     0,   239,     0,    17,
     0,   240,   241,     0,   242,    19,   243,   244,     0,     0,
   245,   246,   247,   248,   249,    21,     0,   974,   346,     0,
   975,     0,     0,     0,     0,     0,   250,     0,     0,   251,
     0,     0,     0,     0,     0,     0,     0,   252,   253,   254,
     0,     0,     0,     0,     0,   255,   256,   257,     0,     0,
     0,     0,   258,     0,   976,     0,   259,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,  1279,   260,  1273,
     0,   962,     8,    92,    10,   232,   233,   234,     0,   235,
    12,   963,     0,   964,   965,   966,   967,   968,   969,   970,
   971,   972,   973,    13,    14,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,   974,   346,     0,   975,     0,     0,     0,     0,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,   976,     0,
   259,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,  1318,   260,   961,     0,   962,     8,    92,    10,   232,
   233,   234,     0,   235,    12,   963,     0,   964,   965,   966,
   967,   968,   969,   970,   971,   972,   973,    13,    14,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,     0,     0,   245,   246,
   247,   248,   249,    21,     0,   974,   346,     0,   975,     0,
     0,     0,     0,     0,   250,     0,     0,   251,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   254,     0,     0,
     0,     0,     0,   255,   256,   257,     0,     0,     0,     0,
   258,     0,   976,  1245,   259,   962,     8,    92,    10,   232,
   233,   234,     0,   235,    12,   963,   260,   964,   965,   966,
   967,   968,   969,   970,   971,   972,   973,    13,    14,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,     0,     0,   245,   246,
   247,   248,   249,    21,     0,   974,   346,     0,   975,     0,
     0,     0,     0,     0,   250,     0,     0,   251,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   254,     0,     0,
     0,     0,     0,   255,   256,   257,     0,     0,     0,     0,
   258,     0,   976,  1306,   259,   962,     8,    92,    10,   232,
   233,   234,     0,   235,    12,   963,   260,   964,   965,   966,
   967,   968,   969,   970,   971,   972,   973,    13,    14,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,     0,     0,   245,   246,
   247,   248,   249,    21,     0,   974,   346,     0,   975,     0,
     0,     0,     0,     0,   250,     0,     0,   251,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   254,     0,     0,
     0,     0,     0,   255,   256,   257,     0,     0,     0,     0,
   258,     0,   976,   454,   259,     7,     8,    92,    10,   232,
   233,   234,   353,   235,    12,     0,   260,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,   509,     0,   245,   246,
   247,   248,   249,    21,     0,    22,  -234,     0,     0,     0,
     0,     0,     0,     0,   250,     0,     0,   841,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   842,     0,     0,
     0,     0,     0,   255,   256,   257,     0,   512,     0,     0,
   843,   514,     0,     0,   259,   354,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   352,   260,     7,     8,    92,
    10,   232,   233,   234,   353,   235,    12,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    15,   236,   237,   238,    16,     0,   239,     0,    17,
     0,   240,   241,     0,   242,    19,   243,   244,     0,     0,
   245,   246,   247,   248,   249,    21,     0,    22,     0,     0,
     0,     0,     0,     0,     0,     0,   250,     0,     0,   251,
     0,     0,     0,     0,     0,     0,     0,   252,   253,   254,
     0,     0,     0,     0,     0,   255,   256,   257,     0,     0,
     0,     0,   258,     0,     0,     0,   259,   354,     0,     0,
     0,     0,     0,     0,     0,     0,  -662,   631,   260,     7,
     8,    92,    10,   232,   233,   234,   353,   235,    12,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    15,   236,   237,   238,    16,     0,   239,
     0,    17,     0,   240,   241,     0,   242,    19,   243,   244,
     0,     0,   245,   246,   247,   248,   249,    21,     0,    22,
     0,     0,     0,     0,     0,     0,     0,     0,   250,     0,
     0,   251,     0,     0,     0,     0,     0,     0,     0,   252,
   253,   254,     0,     0,     0,     0,     0,   255,   256,   257,
     0,     0,     0,     0,   258,     0,     0,     0,   259,   354,
     0,     0,     0,     0,     0,     0,     0,     0,  -662,   584,
   260,   708,   709,     0,    10,   436,   233,   234,     0,   235,
    12,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,   710,   585,     0,     0,     0,     0,     0,     0,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,   711,     0,   584,
   259,   708,   709,     0,    10,   436,   233,   234,     0,   235,
    12,   822,   260,     0,     0,     0,     0,  1038,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,   710,   585,     0,     0,     0,     0,     0,     0,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,     0,   584,
   259,   708,   709,     0,    10,   436,   233,   234,     0,   235,
    12,  -381,   260,     0,     0,     0,     0,  1038,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,   710,   585,     0,     0,     0,     0,     0,     0,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,     0,  1154,
   259,     7,     8,    92,    10,   232,   233,   234,     0,   235,
    12,  1068,   260,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,    22,  1155,     0,  1156,     0,     0,     0,     0,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,     0,   454,
   259,     7,     8,     0,    10,   232,   233,   234,     0,   235,
    12,     0,   260,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,    22,  -234,     0,     0,     0,     0,     0,     0,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,     0,   584,
   259,     7,     8,     0,    10,   436,   233,   234,     0,   235,
    12,     0,   260,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,    22,   585,     0,     0,     0,     0,     0,     0,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,     0,   718,
   259,     7,     8,     0,    10,   436,   233,   234,     0,   235,
    12,     0,   260,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,    22,     0,     0,     0,     0,     0,     0,  -652,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,     0,   454,
   259,     7,     8,     0,    10,   232,   233,   234,     0,   235,
    12,     0,   260,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,    22,  -234,     0,     0,     0,     0,     0,     0,     0,
   250,     0,     0,  1173,     0,     0,     0,     0,     0,     0,
     0,   252,   253,  1174,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,  1175,     0,     0,  1225,
   259,     7,     8,     0,    10,   232,   233,   234,     0,   235,
    12,     0,   260,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,    22,     0,     0,  -136,     0,     0,     0,     0,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,     0,   718,
   259,     7,     8,     0,    10,   436,   233,   234,     0,   235,
    12,     0,   260,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,     0,     0,   245,   246,   247,   248,   249,    21,
     0,    22,     0,     0,     0,     0,     0,     0,     0,     0,
   250,     0,     0,   251,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   254,     0,     0,     0,     0,     0,   255,
   256,   257,     0,     0,     0,     0,   258,     0,     0,     0,
   259,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  -652,   797,   260,     7,     8,     0,    10,   436,   233,   234,
     0,   235,    12,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    15,   236,   237,
   238,    16,     0,   239,     0,    17,     0,   240,   241,     0,
   242,    19,   243,   244,     0,     0,   245,   246,   247,   248,
   249,    21,     0,    22,     0,     0,     0,     0,     0,     0,
     0,     0,   250,     0,     0,   251,     0,     0,     0,     0,
     0,     0,     0,   252,   253,   254,     0,     0,     0,     0,
     0,   255,   256,   257,     0,     0,     0,     0,   258,     0,
     0,   799,   259,     7,     8,     0,    10,   436,   233,   234,
     0,   235,    12,     0,   260,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    15,   236,   237,
   238,    16,     0,   239,     0,    17,     0,   240,   241,     0,
   242,    19,   243,   244,     0,     0,   245,   246,   247,   248,
   249,    21,     0,    22,     0,     0,     0,     0,     0,     0,
     0,     0,   250,     0,     0,   251,     0,     0,     0,     0,
     0,     0,     0,   252,   253,   254,     0,     0,     0,     0,
     0,   255,   256,   257,     0,     0,     0,     0,   258,     0,
     7,     8,   259,    10,   436,   233,   234,     0,   235,    12,
     0,     0,     0,     0,   260,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    15,   236,   237,   238,    16,     0,
   239,     0,    17,     0,   240,   241,     0,   242,    19,   243,
   244,     0,     0,   245,   246,   247,   248,   249,    21,     0,
    22,     0,     0,     0,     0,     0,     0,     0,     0,   250,
     0,     0,   251,     0,     0,     0,     0,     0,     0,     0,
   252,   253,   254,     0,     0,     0,     0,     0,   255,   256,
   257,     0,     0,     0,     0,   258,     0,     0,     0,   259,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   260,   757,   962,     8,    92,    10,   232,   233,   234,
     0,   235,    12,   963,     0,   964,   965,   966,   967,   968,
   969,   970,   971,   972,   973,    13,    14,    15,   236,   237,
   238,    16,     0,   239,     0,    17,     0,   240,   241,     0,
   242,    19,   243,   244,     0,     0,   245,   246,   247,   248,
   249,    21,     0,   974,   346,     0,   975,     0,     0,     0,
     0,     0,   250,     0,     0,   251,     0,     0,     0,     0,
     0,     0,     0,   252,   253,   254,     0,     0,     0,     0,
     0,   255,   256,   257,     0,     0,     0,     0,   258,     0,
   976,     0,   259,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,  1106,   260,   962,     8,    92,    10,   232,
   233,   234,     0,   235,    12,   963,     0,   964,   965,   966,
   967,   968,   969,   970,   971,   972,   973,    13,    14,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,     0,     0,   245,   246,
   247,   248,   249,    21,     0,   974,   346,     0,   975,     0,
     0,     0,     0,     0,   250,     0,     0,   251,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   254,     0,     0,
     0,     0,     0,   255,   256,   257,     0,     0,     0,     0,
   258,     0,   976,     0,   259,   962,     8,    92,    10,   232,
   233,   234,     0,   235,    12,   963,   260,   964,   965,   966,
   967,   968,   969,   970,   971,   972,   973,    13,    14,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,     0,     0,   245,   246,
   247,   248,   249,    21,     0,   974,  1266,     0,   975,     0,
     0,     0,     0,     0,   250,     0,     0,   251,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   254,     0,     0,
     0,     0,     0,   255,   256,   257,     0,     0,     0,     0,
   258,     0,   976,     0,   259,   962,     8,    92,    10,   232,
   233,   234,     0,   235,    12,   963,   260,   964,   965,   966,
   967,   968,   969,   970,   971,   972,   973,    13,    14,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,     0,     0,   245,   246,
   247,   248,   249,    21,     0,   974,     0,     0,   975,     0,
     0,     0,     0,     0,   250,     0,     0,   251,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   254,     0,     0,
     0,     0,     0,   255,   256,   257,     0,     0,     0,     0,
   258,     0,   976,     0,   259,     7,     8,    92,    10,   232,
   233,   234,   353,   235,    12,     0,   260,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,   509,     0,   245,   246,
   247,   248,   249,    21,     0,    22,     0,     0,     0,     0,
     0,     0,     0,     0,   250,     0,     0,   783,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   784,     0,     0,
     0,     0,     0,   255,   256,   257,     0,   512,     0,     0,
   785,   514,     0,     0,   259,   354,     7,     8,    92,    10,
   232,   233,   234,   353,   235,    12,   260,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    15,   236,   237,   238,    16,     0,   239,     0,    17,     0,
   240,   241,     0,   242,    19,   243,   244,   509,     0,   245,
   246,   247,   248,   249,    21,     0,    22,     0,     0,     0,
     0,     0,     0,     0,     0,   250,     0,     0,   841,     0,
     0,     0,     0,     0,     0,     0,   252,   253,   842,     0,
     0,     0,     0,     0,   255,   256,   257,     0,   512,     0,
     0,   843,   514,     0,     0,   259,   354,     7,     8,     0,
    10,   232,   233,   234,     0,   235,    12,   260,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    15,   236,   237,   238,    16,     0,   239,     0,    17,
     0,   240,   241,     0,   242,    19,   243,   244,   509,     0,
   245,   246,   247,   248,   249,    21,     0,    22,     0,     0,
     0,     0,     0,     0,     0,     0,   250,     0,     0,   783,
     0,     0,     0,     0,     0,     0,     0,   252,   253,   784,
     0,     0,     0,     0,     0,   255,   256,   257,     0,   512,
     0,     0,   785,   514,     7,     8,     0,    10,   232,   233,
   234,     0,   235,    12,     0,     0,     0,     0,   260,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    15,   236,
   237,   238,    16,     0,   239,     0,    17,     0,   240,   241,
     0,   242,    19,   243,   244,   509,     0,   245,   246,   247,
   248,   249,    21,     0,    22,     0,     0,     0,     0,     0,
     0,     0,     0,   250,     0,     0,   841,     0,     0,     0,
     0,     0,     0,     0,   252,   253,   842,     0,     0,     0,
     0,     0,   255,   256,   257,     0,   512,     0,     0,   843,
   514,     7,     8,     0,    10,   232,   233,   234,     0,   235,
    12,     0,     0,     0,     0,   260,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    15,   236,   237,   238,    16,
     0,   239,     0,    17,     0,   240,   241,     0,   242,    19,
   243,   244,   509,     0,   245,   246,   247,   248,   249,    21,
     0,    22,     0,     0,     0,     0,     0,     0,     0,     0,
   250,     0,     0,   937,     0,     0,     0,     0,     0,     0,
     0,   252,   253,   938,     0,     0,     0,     0,     0,   255,
   256,   257,     0,   512,     0,     0,   785,   514,     7,     8,
     0,    10,   436,   233,   234,     0,   235,    12,     0,     0,
     0,     0,   260,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    15,   236,   237,   238,    16,     0,   239,     0,
    17,     0,   240,   241,     0,   242,    19,   243,   244,     0,
     0,   245,   246,   247,   248,   249,    21,     0,    22,     0,
     0,  1083,     0,     0,     0,     0,     0,   250,     0,     0,
   251,     0,     0,     0,     0,     0,     0,     0,   252,   253,
   254,     0,     0,     0,     0,     0,   255,   256,   257,     0,
     0,     0,     0,   258,     0,     7,     8,   259,    10,   232,
   233,   234,     0,   235,    12,     0,     0,     0,     0,   260,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,     0,     0,   245,   246,
   247,   248,   249,    21,     0,    22,     0,     0,     0,     0,
     0,     0,     0,     0,   250,     0,     0,   251,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   254,     0,     0,
     0,     0,     0,   255,   256,   257,     0,     0,     0,     0,
   258,     0,     7,     8,   259,    10,   436,   233,   234,     0,
   235,    12,     0,     0,     0,     0,   260,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    15,   236,   237,   238,
    16,     0,   239,     0,    17,     0,   240,   241,     0,   242,
    19,   243,   244,     0,     0,   245,   246,   247,   248,   249,
    21,     0,    22,   462,     0,     0,     0,     0,     0,     0,
     0,   250,     0,     0,   251,     0,     0,     0,     0,     0,
     0,     0,   252,   253,   254,     0,     0,     0,     0,     0,
   255,   256,   257,     0,     0,     7,     8,   463,    10,   436,
   233,   234,     0,   235,    12,     0,     0,     0,     0,     0,
     0,     0,     0,   260,     0,     0,     0,     0,     0,    15,
   236,   237,   238,    16,     0,   239,     0,    17,     0,   240,
   241,     0,   242,    19,   243,   244,     0,     0,   245,   246,
   247,   248,   249,    21,     0,    22,     0,     0,     0,     0,
     0,     0,     0,     0,   250,     0,     0,   251,     0,     0,
     0,     0,     0,     0,     0,   252,   253,   254,     0,     0,
     0,     0,     0,   255,   256,   257,     0,     0,     0,     0,
   258,   499,     7,     8,     0,    10,   436,   233,   234,     0,
   235,    12,     0,     0,     0,     0,   260,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    15,   236,   237,   238,
    16,     0,   239,     0,    17,     0,   240,   241,     0,   242,
    19,   243,   244,     0,     0,   245,   246,   247,   248,   249,
    21,     0,    22,     0,     0,     0,     0,     0,     0,     0,
     0,   250,     0,     0,   251,     0,     0,     0,     0,     0,
     0,     0,   252,   253,   254,     0,     0,     0,     0,     0,
   255,   256,   257,     0,     0,     0,     0,   258,     0,     7,
   694,   259,    10,   436,   233,   234,     0,   235,    12,     0,
     0,     0,     0,   260,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    15,   236,   237,   238,    16,     0,   239,
     0,    17,     0,   240,   241,     0,   242,    19,   243,   244,
     0,     0,   245,   246,   247,   248,   249,    21,     0,    22,
     0,     0,     0,     0,     0,     0,     0,     0,   250,     0,
     0,   251,     0,     0,     0,     0,     0,     0,     0,   252,
   253,   254,     0,     0,     0,     0,     0,   255,   256,   257,
     0,     0,     0,     0,   258,     0,     7,     8,   259,    10,
   436,   233,   234,     0,   235,    12,     0,     0,     0,     0,
   260,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    15,   236,   237,   238,    16,     0,   239,     0,    17,     0,
   240,   241,     0,   242,    19,   243,   244,     0,     0,   245,
   246,   247,   248,   249,    21,     0,    22,     0,     0,     0,
     0,     0,     0,     0,     0,   250,     0,     0,   887,     0,
     0,     0,     0,     0,     0,     0,   252,   253,   888,     0,
     0,     0,     0,     0,   255,   256,   257,     0,     0,     0,
     0,   258,     0,     7,     8,   259,    10,   436,   233,   234,
     0,   235,    12,     0,     0,     0,     0,   260,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    15,   236,   237,
   238,    16,     0,   239,     0,    17,     0,   240,   241,     0,
   242,    19,   243,   244,     0,     0,   245,   246,   247,   248,
   249,    21,     0,    22,     0,     0,     0,     0,     0,     0,
     0,     0,   250,     0,     0,  1173,     0,     0,     0,     0,
     0,     0,     0,   252,   253,  1174,     0,     0,     0,     0,
     0,   255,   256,   257,     0,     0,     0,     0,  1175,     0,
  1238,     8,   259,    10,   436,   233,   234,     0,   235,    12,
     0,     0,     0,     0,   260,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    15,   236,   237,   238,    16,     0,
   239,     0,    17,     0,   240,   241,     0,   242,    19,   243,
   244,     0,     0,   245,   246,   247,   248,   249,    21,     0,
    22,     0,     0,     0,     0,     0,     0,     0,     0,   250,
     0,     0,   251,     0,     0,     0,     0,     0,     0,     0,
   252,   253,   254,     0,     0,     0,     0,     0,   255,   256,
   257,     0,     0,     0,     0,   258,     0,     7,     8,   259,
    10,   436,   233,   234,     0,   235,    12,     0,     0,     0,
     0,   260,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    15,   236,   237,   238,    16,     0,   239,     0,    17,
     0,   240,   241,     0,   242,    19,   243,   244,     0,     0,
   245,   246,   247,   248,   249,    21,     0,    22,     0,     0,
     0,     0,     0,     0,     0,     0,   250,     0,     0,   251,
     0,     0,     0,     0,     0,     0,     0,   252,   253,   254,
     0,     0,     0,     0,     0,   255,   256,   257,     0,     0,
     7,     8,   258,    10,   436,   233,   234,     0,   235,    12,
     0,     0,     0,     0,     0,     0,     0,     0,   260,     0,
     0,     0,     0,     0,    15,   236,   237,   238,    16,     0,
   239,     0,    17,     0,   240,   241,     0,   242,    19,   243,
   244,     0,     0,   245,   246,   247,   248,   249,    21,     0,
    22,     0,     0,     0,     0,     0,     0,     0,     0,   250,
     0,     0,   887,     0,     0,     0,     0,     0,     0,     0,
   252,   253,   888,     0,     0,     0,     0,     0,   255,   256,
   257,     0,     0,     7,     8,   258,    10,   232,   233,   234,
     0,   235,    12,     0,     0,     0,     0,     0,     0,     0,
     0,   260,     0,     0,     0,     0,     0,    15,   236,   237,
   238,    16,     0,   239,     0,    17,     0,   240,   241,     0,
   242,    19,   243,   244,     0,     0,   245,   246,   247,   248,
   249,    21,     0,    22,     0,     0,     0,     0,     0,     0,
     0,     0,   250,     0,     0,  1173,     0,     0,     0,     0,
     0,     0,     0,   252,   253,  1174,     0,     0,     0,     0,
     0,   255,   256,   257,     0,     0,     7,     8,  1175,    10,
   436,   233,   234,     0,   235,    12,     0,     0,     0,     0,
     0,     0,     0,     0,   260,     0,     0,     0,     0,     0,
    15,   236,     0,     0,    16,     0,   239,     0,    17,     0,
   240,   241,     0,   242,    19,   243,   244,     0,     0,   245,
   246,   247,   248,   249,    21,     0,    22,     0,     0,     0,
     0,     0,     0,     0,     0,   250,     0,     0,   251,     0,
     0,     0,     0,     0,     0,     0,   252,   253,   254,     0,
     0,     0,     0,     0,   255,   256,   257,     0,     0,     0,
     0,   440,     7,     8,    92,    10,    11,     0,     0,   615,
     0,    12,     0,     0,     0,     0,     0,   260,     0,   652,
     8,   151,    10,   152,     0,     0,    15,     0,    12,     0,
    16,     0,     0,     0,    17,     0,     0,     0,     0,     0,
    19,     0,     0,    15,     0,     0,     0,    16,     0,     0,
    21,    17,    22,     0,     0,     0,     0,    19,     0,     0,
     0,     0,     0,     0,    24,     0,     0,    21,     0,    22,
     0,     0,     0,     0,    25,     0,   655,     0,     0,     0,
     0,    24,    26,     0,     0,     0,     0,    27,     0,     0,
     0,    25,     7,     8,   151,    10,   152,     0,     0,    26,
     0,    12,     0,     0,    27,     0,     0,     0,     0,     7,
     8,   151,    10,   152,     0,     0,    15,     0,    12,     0,
    16,     0,     0,     0,    17,     0,     0,     0,     0,     0,
    19,     0,     0,    15,     0,     0,     0,    16,     0,     0,
    21,    17,    22,     0,     0,  1095,     0,    19,     0,     0,
     0,     0,     0,     0,    24,     0,     0,    21,     0,    22,
     0,     0,     0,     0,    25,     0,     0,     0,     0,     0,
     0,    24,    26,     0,     0,     0,     0,    27,     0,     0,
     0,    25,     0,     0,     0,     0,     0,     0,     0,    26,
   679,   465,   466,   467,    27,   468,   469,   470,   471,   472,
   473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
   483,   484,   485,   486,     0,   465,   466,   467,     0,   468,
   469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
   479,   480,   481,   482,   483,   484,   485,   486,   542,  1036,
   465,   466,   467,     0,   468,   469,   470,   471,   472,   473,
   474,   475,   476,   477,   478,   479,   480,   481,   482,   483,
   484,   485,   486,   465,   466,   467,  1200,   468,   469,   470,
   471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
   481,   482,   483,   484,   485,   486,   465,   466,   467,  1249,
   468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
   478,   479,   480,   481,   482,   483,   484,   485,   486,   465,
   466,   467,     0,   468,   469,   470,   471,   472,   473,   474,
   475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
   485,   486,   465,   466,   467,     0,   468,   469,   470,   471,
   472,   473,   474,   475,   476,     0,   478,   479,   480,   481,
   482,   483,   484,   485,   486,   469,   470,   471,   472,   473,
   474,   475,   476,   477,   478,   479,   480,   481,   482,   483,
   484,   485,   486,   470,   471,   472,   473,   474,   475,   476,
   477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
   471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
   481,   482,   483,   484,   485,   486
};

static const short yycheck[] = {     4,
     4,   130,   131,   136,   278,   415,    70,    12,   117,   299,
   346,    12,   299,   265,   136,    20,    20,   108,   109,    24,
    25,     4,    27,    87,     4,    52,   338,   188,    33,    33,
   388,    12,   647,   154,    98,   284,   284,   299,   131,    44,
    20,    46,   746,   387,  1043,   129,    71,    52,  1151,   134,
     9,    52,   983,    33,    59,   812,    20,  1179,   983,   990,
    44,     9,   161,   162,   181,    70,    71,    60,     9,    34,
     0,    52,    77,    77,     7,  1212,    48,   367,    55,    10,
   367,    34,    87,    10,  1159,  1222,    56,     0,   362,    56,
    95,    96,    54,    98,   406,    55,   101,    77,    60,   104,
   105,    62,     4,   108,   109,     7,   107,    36,    45,   102,
    70,    95,    60,    77,   119,   119,   121,   122,    36,     1,
  1242,    54,    92,    44,    55,    92,   103,    60,    55,    60,
  1205,    58,   136,    60,   139,   140,   141,   121,   103,   119,
  1243,  1140,    44,   102,     3,     4,     5,     6,     7,    51,
   103,    53,    10,  1275,   102,  1292,   514,    76,     4,    92,
   165,   102,    93,    65,   125,   439,    93,    88,    89,    88,
    89,   102,    54,    75,   103,   336,    35,   299,   183,   183,
    99,   142,   154,    85,   301,   103,    88,    89,   193,   161,
   162,    51,    51,   950,    53,    54,   157,    55,     4,   154,
    44,   286,    60,   183,    56,   188,   910,    53,    60,    69,
    37,     3,     4,   185,   343,   344,   345,   136,     4,    66,
   284,  1324,  1325,    23,    51,   230,   231,    88,     4,    75,
   185,  1162,     4,    88,    44,    93,   397,     3,    85,    98,
    99,   100,   102,    56,    88,   367,   271,    53,     4,   250,
   343,   344,    44,   136,   387,     4,   103,   229,   342,    51,
    60,    53,     6,     7,    55,   387,   271,    53,    12,    75,
   275,   392,   277,   278,   279,    51,     4,    53,    88,     7,
   285,    53,   531,    88,    89,    44,   377,   378,  1219,    65,
   103,    35,   391,   392,   299,   299,    88,    53,    60,    75,
    44,   285,   149,    75,    53,    69,   278,   312,    44,    88,
   315,   102,   656,    89,   319,  1246,    51,    56,   323,   323,
   419,  1246,  1253,    51,    56,    53,    75,   456,  1253,    88,
    89,     3,     4,   948,    69,   647,    55,    65,    54,   258,
   102,    56,  1046,   323,    88,     4,  1277,    75,   195,     3,
     4,    70,    88,   336,   359,   360,   361,   362,   363,   323,
    44,    89,   367,   367,   103,    51,   102,   328,   373,    54,
   375,   103,   377,   378,    55,   359,  1307,   361,   362,   384,
   299,    53,  1307,   387,    55,   390,   103,    41,   393,    70,
   362,   513,    51,    54,    53,     3,     4,   102,   520,    53,
   383,   406,   563,    75,    88,    89,    65,   412,   413,    56,
   415,   415,     3,     4,   397,   420,    75,    56,   102,   391,
   392,    75,     3,     4,   782,    44,   102,     4,   412,    83,
     7,   102,   102,    41,    55,   415,   283,   781,     4,    58,
   401,   446,   447,   448,   449,    53,   102,   419,   367,   102,
    41,    27,     9,   258,    56,    44,   103,   418,   341,   306,
   589,   462,    53,   103,   103,    31,    92,    27,   387,    88,
     4,   496,    53,     7,    51,    83,    53,     3,    56,   640,
   602,   102,    55,    97,    75,    51,   608,    53,    65,    56,
    55,   496,    83,   498,   105,    97,   589,    70,    75,    88,
    89,   420,    60,   815,   387,   510,   511,    89,   513,   513,
    44,   801,   673,   102,   801,   520,   520,    51,   437,    53,
    44,   440,    60,   656,   551,   103,   445,   446,   447,   448,
   449,    65,   108,   109,   656,   787,   103,   102,   637,   801,
   459,    75,   791,   791,   463,   550,   551,   859,   108,   109,
   551,    85,   435,    56,    88,    89,    88,     3,     4,    25,
    26,   980,   920,   982,    88,   141,   550,   372,    60,   678,
   551,     3,     4,     5,     6,     7,   495,    69,   550,    44,
   563,   141,    44,    60,   585,   432,    44,    89,    54,   105,
   384,    88,    69,    58,    60,   600,   601,   602,   602,   393,
   103,    44,    44,   608,   608,    51,    44,    53,    54,   492,
    44,   494,   495,    25,    26,    58,  1026,    78,    79,   624,
   625,    53,   627,    88,    89,    44,    88,    89,    44,    88,
    88,   967,   437,     3,     4,   440,   948,   442,   443,   574,
   445,   915,   647,   526,    27,    88,    88,    54,   781,    54,
    88,   656,   656,    60,    88,    60,    69,   640,   463,   781,
    88,   508,   467,   785,    88,   637,   685,   686,   687,    88,
   675,    41,    88,    55,    56,     1,   523,    55,    56,   801,
   685,   686,   687,    53,    69,    92,     9,    92,   493,    51,
   673,    55,    56,   628,   499,   578,   657,    23,    60,    25,
    26,   662,   663,   675,   639,   666,    32,    69,   982,   870,
   871,    69,   873,    83,    69,     3,     4,    54,     6,    56,
    55,   843,     4,    60,   103,     7,   109,   791,    54,    55,
    56,   102,    58,   340,    60,     6,     7,   656,  1074,  1075,
   745,    12,    55,    56,   835,   836,   916,   917,   102,   919,
   841,   842,  1088,    41,    23,    25,    26,   102,   141,    55,
    56,   766,    44,   768,    35,    53,    92,     4,     5,    51,
   775,    53,  1108,  1109,   779,   102,   781,   781,   783,   784,
   785,   785,     3,    65,    54,    54,   791,    56,   103,    58,
    60,    60,     4,    75,    31,    83,   801,   801,    54,    36,
    12,   377,   378,    85,    55,    56,    88,    89,    20,     7,
     3,     4,    24,    25,    51,    27,    53,   377,   378,  1155,
    58,    33,   102,     3,     4,   826,   745,   102,   833,   834,
   835,   836,    44,    58,    46,   840,   841,   842,   843,   843,
    52,    55,    56,   102,    37,    38,    88,    59,    41,   102,
     5,     6,     7,   105,   859,   105,   775,    12,    51,    71,
    53,    41,   781,    32,   869,    77,   749,   872,   102,   874,
   874,   876,   807,    53,    75,    76,    77,    78,    79,   762,
    35,   764,   801,    95,    96,    25,    26,   870,   871,   101,
   873,   102,    32,   105,   874,    75,   108,   109,   105,    51,
    54,   902,    56,    83,   865,   105,    60,   119,    60,   121,
   122,   916,   917,   102,   919,    55,    56,    69,    58,     4,
     5,   105,   857,    51,    54,     6,    56,   139,   140,   141,
    60,   866,   937,   938,   817,    88,   819,    44,   821,   858,
   875,    44,  1216,   948,   949,   949,    31,  1076,   753,    51,
    58,    36,    56,   165,    55,    56,   957,   876,    60,    55,
  1121,  1122,    56,     5,     6,     7,    51,    69,    53,   949,
    12,   183,   973,  1324,  1325,   980,   981,   982,    81,    82,
   785,   193,    56,    86,    87,    88,    89,   235,   236,   994,
   995,   838,   997,    35,    56,   378,   980,    56,   982,    55,
     4,    58,     6,     7,  1286,  1287,    58,   102,    12,   102,
   982,  1172,   619,   102,   102,   105,    55,    88,   230,   231,
    60,  1026,  1026,    27,    55,    55,   602,    31,    60,  1030,
    88,    35,   608,    58,   102,   102,   102,  1327,   843,   102,
  1327,   102,   602,    70,    70,    55,  1026,    51,   608,    53,
  1179,   102,   102,   858,    70,    70,   102,    60,  1167,   271,
  1021,  1022,    60,    60,   136,   277,   278,   279,  1069,   102,
   105,    89,   284,   285,   102,  1010,  1011,    83,    44,   103,
   656,   102,  1173,  1174,    88,   102,   105,   299,  1023,  1024,
   102,   102,   105,  1098,   941,   102,   656,   105,   103,    60,
   312,   102,   102,   315,    34,    58,   102,   319,   102,    58,
   102,   323,    88,  1242,    88,  1276,    71,    72,    73,    74,
    75,    76,    77,    78,    79,    88,   338,    73,    74,    75,
    76,    77,    78,    79,    88,   103,  1097,   520,  1121,  1122,
    88,   748,   102,   102,     6,   102,  1275,   359,   360,   361,
   362,   363,   102,   105,   105,   367,  1117,   102,    60,   103,
   102,   373,   102,   375,   102,   377,   378,   972,  1173,  1174,
  1175,    88,   384,    60,    56,    56,   251,     4,   390,   254,
    54,   393,   257,     7,    56,  1120,  1169,    58,   263,  1172,
   102,    14,  1193,   102,   406,    60,    60,   272,   105,  1328,
   412,   413,    44,   415,    88,  1327,    56,    56,   420,    88,
    58,    58,  1217,    88,   102,   105,   102,    44,    15,   602,
    56,    56,   102,    56,    51,   608,    53,  1032,  1033,  1034,
  1035,    56,   102,  1217,   446,   447,   448,   449,    65,  1044,
   103,   848,   849,   102,  1216,   102,    56,    58,    75,    58,
   102,  1186,  1187,     9,  1189,  1190,  1175,   102,    85,   835,
   836,    88,    89,    56,    56,   841,   842,   843,    56,   341,
    88,    55,  1077,   656,   102,   835,   836,    91,    56,    58,
  1085,   841,   842,   843,   496,   102,   498,  1248,    88,   102,
   102,     9,    56,  1276,   901,   902,   102,   102,   510,   511,
   102,   513,     9,    56,     2,     0,     0,   690,   520,   129,
   118,     7,  1195,   801,    10,   387,   325,   815,   119,   531,
   119,   551,  1327,  1327,    99,   459,  1140,     1,  1150,   508,
  1181,  1077,   981,   681,    33,   805,  1193,   859,   550,   551,
   585,   796,    33,   949,   874,   872,   794,   539,    44,    23,
   957,    25,    26,   413,  1159,   496,    12,  1266,    32,    55,
   829,  1296,    58,   435,    60,   876,  1300,    -1,    -1,   444,
  1175,     3,     4,    -1,    70,  1180,  1181,  1302,  1261,    -1,
    54,    55,    56,    -1,    58,    -1,    60,    -1,   600,   601,
   602,    -1,    88,    89,    -1,    -1,   608,    93,    -1,    -1,
  1205,   784,    -1,    -1,    -1,    -1,   102,    -1,  1327,    41,
    -1,    -1,   624,   625,    -1,   627,     4,    -1,    92,    51,
   492,    53,   494,   495,  1031,    -1,    -1,    -1,    60,  1036,
    -1,    -1,    20,    65,    -1,   647,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    75,   656,    33,    -1,    -1,   520,    -1,
    -1,    83,    -1,   836,   526,    -1,    88,    -1,    46,   842,
   843,    -1,     1,   675,    -1,  1270,    -1,    -1,    -1,    -1,
    -1,    59,    -1,   685,   686,   687,    -1,    -1,    -1,    -1,
    -1,  1286,  1287,    71,    23,    -1,    25,    26,    76,    77,
    -1,    -1,    -1,    32,  1299,    -1,    -1,    -1,    -1,    -1,
    88,    89,    -1,  1110,  1111,   888,   578,    -1,    96,    -1,
    -1,    99,    -1,    -1,    -1,    54,    55,    56,    -1,    58,
    -1,    60,  1098,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   119,  1139,   745,   122,    -1,   608,    -1,  1098,    -1,
    -1,    -1,    -1,     4,     5,     6,     7,    -1,   136,    10,
    -1,    12,    -1,    92,   766,    -1,   768,    -1,    -1,    -1,
    -1,    -1,    -1,   775,    -1,    -1,    27,   779,    -1,   781,
    31,   783,   784,   785,    35,    -1,    -1,  1184,     4,   791,
     6,     7,    -1,    -1,  1191,  1192,    12,    -1,    -1,   801,
    51,    -1,    53,  1200,    -1,   183,    -1,  1173,  1174,  1175,
    -1,    27,    -1,   815,    -1,    31,    -1,    69,    -1,    35,
    -1,    -1,    -1,  1173,  1174,  1175,    -1,    -1,   690,    -1,
    -1,   833,   834,   835,   836,    51,    -1,    53,   840,   841,
   842,   843,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   230,    -1,    -1,    -1,    -1,   859,    24,    25,
    -1,    -1,  1259,  1260,   116,    -1,    -1,   869,    -1,    -1,
   872,    -1,   874,    -1,   876,    -1,    -1,    -1,     3,     4,
   258,    -1,     7,   135,    -1,    -1,    -1,   749,    -1,    -1,
    -1,    -1,   757,   271,    -1,    -1,    -1,    -1,   150,    -1,
   762,   279,   764,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    76,    -1,    -1,    -1,   916,   917,    41,   919,   783,   784,
    -1,   299,    88,    89,    -1,  1098,    51,    -1,    53,  1326,
    -1,    -1,    -1,    99,    -1,   937,   938,    -1,    10,    -1,
    65,    -1,   108,   109,    -1,   323,   948,   949,    -1,    -1,
    75,    -1,    -1,    25,    26,   817,    -1,   819,    83,   821,
    32,    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,
   136,    -1,    44,   139,   140,    -1,   841,   842,   980,   981,
   982,    -1,   360,    55,    56,   363,    58,    -1,    60,   367,
    -1,    -1,   994,   995,    -1,   997,    -1,    -1,    -1,    -1,
    -1,  1174,  1175,    -1,    -1,    -1,    -1,    -1,    -1,   387,
    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    -1,
    92,    93,   887,   888,  1026,    -1,     3,     4,    -1,    -1,
   102,    -1,    -1,    -1,    -1,   413,    -1,   415,    -1,    -1,
    -1,    -1,   420,    -1,    -1,    -1,    -1,    -1,    -1,     1,
    -1,     3,     4,     5,     6,     7,    -1,   922,    -1,   437,
    12,    -1,   440,    -1,    41,    -1,    -1,   445,   446,   447,
   448,   449,   937,   938,    51,    27,    53,     3,     4,    31,
    -1,   459,    -1,    35,    36,   463,    -1,    -1,    65,    41,
    -1,    -1,   258,    -1,    -1,    -1,  1098,    -1,    75,    51,
    -1,    53,     3,     4,    56,   271,    83,    -1,    60,    -1,
    -1,    88,    -1,    65,    -1,    41,    -1,   495,   496,    -1,
    -1,    -1,    -1,    75,    -1,    51,    -1,    53,   380,    -1,
    56,    83,    -1,   299,   386,   513,    88,    -1,    -1,    65,
    41,    -1,   520,    44,    -1,    -1,    -1,    -1,    71,    75,
    51,   103,    53,    76,    -1,    -1,    -1,    83,    -1,    60,
    -1,    -1,    88,    -1,    65,    88,    89,    -1,    -1,    -1,
    -1,  1173,  1174,  1175,    75,    -1,    99,    -1,   430,   431,
    -1,   433,    83,    -1,    -1,    -1,    -1,    88,     1,    -1,
     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
    -1,   367,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
    12,   377,   378,   136,    27,  1217,    -1,    -1,    31,    -1,
    -1,   387,    35,    36,   602,    27,    -1,    -1,    41,    31,
   608,    -1,    -1,    35,    -1,    -1,  1098,    -1,    51,    -1,
    53,    -1,    -1,    56,    -1,    -1,    -1,    60,    -1,    51,
    -1,    53,    65,    -1,   420,     4,    -1,     6,     7,    -1,
    -1,    -1,    75,    12,   516,   517,    -1,    69,    -1,   521,
    83,   437,    -1,    -1,   440,    88,    -1,    -1,   656,   445,
   446,   447,   448,   449,    -1,    -1,    35,    -1,    -1,    -1,
   103,    -1,    -1,   459,    -1,    44,    -1,   463,    -1,    -1,
    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,  1173,  1174,
    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,  1327,    75,    -1,    -1,   495,
   496,    -1,    -1,  1195,    -1,   258,    85,    -1,    -1,    88,
    89,    -1,   594,   595,   510,   511,    -1,   513,   271,    -1,
    -1,    -1,   604,    -1,   520,    -1,    -1,    -1,   610,    -1,
     3,     4,     5,     6,     7,    -1,    -1,   745,    -1,    12,
    -1,   749,    -1,    -1,    -1,    -1,   299,     3,     4,     1,
    -1,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
    12,    -1,    35,    -1,    -1,    -1,    -1,   775,    41,  1261,
    -1,    44,   654,   781,    -1,    27,    -1,   785,    51,    31,
    53,    -1,    -1,    35,    36,    41,    -1,    -1,    44,    41,
    -1,    -1,    65,   801,    -1,    51,    -1,    53,    -1,    51,
    -1,    53,    75,    -1,   600,   601,   602,    -1,    60,    65,
    83,    -1,   608,    65,   367,    88,    -1,    -1,    -1,    75,
   828,    -1,    -1,    75,    -1,    -1,    -1,    83,    -1,    85,
    -1,    83,    88,    89,   387,   843,    88,    -1,    -1,    -1,
     3,     4,    -1,    -1,     7,    -1,    -1,    -1,    -1,    -1,
   858,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   656,    -1,    -1,    -1,    -1,    -1,   874,   420,   876,   751,
   752,     1,   754,     3,     4,     5,     6,     7,    41,    -1,
    -1,    -1,    12,    -1,   437,    -1,    -1,   440,    51,    -1,
    53,    -1,   445,   446,   447,   448,   449,    27,   780,    -1,
    -1,    31,    65,    -1,    -1,    35,   459,    -1,    -1,    -1,
   463,    41,    75,    -1,    -1,    45,    -1,    -1,    -1,    -1,
    83,    51,    -1,    53,    -1,    88,    56,    -1,     3,     4,
    -1,    -1,     7,    -1,    -1,    65,    -1,    -1,    76,    -1,
    -1,   949,   495,   496,    -1,    75,    -1,    -1,    -1,   745,
    -1,    -1,    -1,    83,    -1,    -1,    -1,   839,    88,    -1,
   513,    99,    -1,    -1,    94,    -1,    41,   520,    -1,    44,
   852,   853,   854,   981,    -1,   983,    51,    -1,    53,   775,
    -1,    -1,   990,    -1,    -1,   781,    -1,   783,   784,   785,
    65,    -1,    -1,    -1,     3,     4,    -1,    -1,   136,    -1,
    75,    -1,    -1,    -1,    -1,   801,    -1,    -1,    83,    -1,
    85,    -1,    -1,    88,    89,    -1,    -1,    -1,  1026,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    41,    -1,    -1,    -1,    -1,    -1,    -1,   835,
   836,    -1,    51,    -1,    53,   841,   842,   843,   930,   602,
    -1,    60,    -1,    -1,    -1,   608,    65,    -1,    -1,    -1,
    -1,    -1,   858,    -1,    -1,     1,    75,     3,     4,  1077,
     6,     7,     8,     9,    83,    11,    12,    -1,    -1,    88,
   876,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
    -1,    37,    38,   656,    40,    41,    42,    43,    -1,    -1,
    46,    47,    48,    49,    50,    51,    -1,    53,    54,    -1,
    -1,   259,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,
    -1,    -1,  1014,    -1,    -1,    -1,    -1,    73,    74,    75,
    -1,   937,   938,  1151,    -1,    81,    82,    83,    -1,    -1,
    -1,  1159,    88,    89,  1162,    -1,    92,    -1,    -1,    -1,
     1,    -1,     3,     4,     5,     6,     7,  1175,   104,    -1,
    -1,    12,  1180,  1181,    -1,    -1,    -1,  1059,    -1,    -1,
   139,   140,   141,    -1,    -1,    -1,    27,    -1,    -1,    -1,
    31,    -1,   745,    -1,    35,    36,    -1,  1205,    -1,    -1,
    41,    -1,   340,   341,  1212,    -1,    -1,    -1,    -1,    -1,
    51,  1219,    53,    -1,  1222,    -1,     3,     4,    -1,    60,
     7,    -1,   775,    -1,    65,    -1,    -1,    -1,   781,    -1,
    -1,    -1,   785,    -1,    75,  1243,    -1,    -1,  1246,    -1,
    -1,    -1,    83,    -1,    -1,  1253,    -1,    88,   801,   387,
    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,
    -1,    -1,   103,    -1,    51,    -1,    53,    -1,    -1,  1277,
    -1,    -1,   410,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    -1,    -1,    -1,    -1,  1292,    -1,    -1,    -1,    75,    -1,
   843,    -1,    -1,    -1,    -1,    -1,    83,   435,    85,  1307,
    -1,    88,    89,    -1,    -1,   858,    -1,    -1,    -1,    -1,
    -1,     3,     4,    -1,    -1,     7,  1324,  1325,    -1,  1327,
    -1,   459,    -1,   876,   462,    -1,    -1,   465,   466,    -1,
   468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
   478,   479,   480,   481,   482,   483,   484,   485,   486,    41,
    -1,    -1,    44,    -1,   492,    -1,   494,   495,    -1,    51,
    -1,    53,    -1,  1159,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    65,    -1,    -1,    -1,  1173,  1174,  1175,
    -1,    -1,   520,    75,  1180,  1181,     3,     4,   526,    -1,
     7,    83,    -1,    85,    -1,    -1,    88,    89,    -1,    -1,
    -1,    -1,    -1,   541,   542,    -1,    -1,    -1,    -1,  1205,
    -1,    -1,    -1,    -1,   373,    -1,   375,    -1,   377,   378,
   277,   278,   279,    -1,    41,    -1,    -1,    44,    -1,    -1,
    -1,   390,    -1,    -1,    51,    -1,    53,    -1,    -1,     1,
   578,     3,     4,     5,     6,     7,    -1,   585,    65,    -1,
    12,    -1,    -1,   412,    -1,    -1,    -1,    -1,    75,    -1,
    -1,    -1,    -1,    25,    26,    27,    83,    -1,    85,    31,
   608,    88,    89,    35,    -1,    -1,    -1,    39,     4,    41,
    -1,   619,    -1,    45,    -1,    -1,     3,     4,    -1,    51,
     7,    53,    -1,    -1,    56,    -1,    -1,    -1,    24,    25,
    -1,    27,   359,    65,   361,   362,   363,    33,    -1,    -1,
    -1,    -1,    -1,    75,    -1,    -1,    -1,   655,    44,    -1,
    46,    83,     3,     4,    41,    -1,    88,    -1,    -1,    -1,
    -1,  1327,    94,    95,    51,    -1,    53,    -1,    -1,    -1,
    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    -1,    -1,   690,    -1,    -1,    -1,    -1,    -1,    75,    -1,
    41,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    95,
    51,    88,    53,   711,    -1,   101,    -1,   103,    -1,   105,
    -1,    -1,   108,   109,    65,    -1,    -1,    -1,    -1,     4,
    -1,     6,     7,   119,    75,   121,   122,    12,    -1,    -1,
    -1,    -1,    83,    -1,    -1,    -1,  1159,    88,    -1,    -1,
   748,   749,    27,   139,   140,   141,    31,    -1,    -1,    -1,
    35,    -1,  1175,   149,   762,    -1,   764,  1180,  1181,    44,
    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    53,   165,
    -1,   600,   601,   602,     3,     4,    -1,    -1,     7,   608,
    65,    -1,  1205,   510,   511,   793,   513,   183,    -1,    -1,
    75,    -1,    -1,   520,    -1,   624,   625,   193,   627,    -1,
    85,    -1,    -1,    88,    89,    -1,    -1,    -1,    -1,   817,
    -1,   819,    41,   821,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    51,   550,    53,    -1,    -1,   656,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
   848,   849,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    83,   863,   864,    -1,    -1,    88,
     3,     4,     5,     6,     7,    -1,    -1,    10,     4,    12,
     6,     7,    -1,   600,   601,   602,    12,    -1,    -1,   275,
    -1,   608,    -1,    -1,    27,    -1,    -1,   283,    31,   285,
    -1,    27,    35,   901,   902,    31,    -1,   905,    41,    35,
    -1,    44,    -1,    -1,  1327,    -1,    -1,    -1,    51,    -1,
    53,    -1,    -1,    -1,    -1,    51,   312,    53,    54,   315,
    -1,    -1,    65,   319,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,     4,    75,     6,     7,    -1,    -1,    -1,    -1,    12,
    83,    -1,    85,    -1,    -1,    88,    89,    -1,   675,   957,
    93,    -1,    88,    -1,    27,    -1,    -1,    -1,    31,    -1,
   968,    -1,    35,   359,   360,   361,   362,    -1,    -1,    -1,
    -1,   367,    -1,    -1,    -1,    -1,    -1,   373,    51,   375,
    53,   377,   378,     3,     4,     5,     6,     7,   384,    -1,
    -1,    -1,    12,    -1,   390,    -1,    -1,   393,     3,     4,
    -1,    -1,     7,    -1,   833,   834,   835,   836,    -1,  1017,
    -1,   840,   841,   842,   843,    35,   412,   413,    -1,   415,
    -1,    41,    -1,  1031,    44,    -1,    -1,    -1,  1036,    -1,
  1038,    51,    -1,    53,    -1,    -1,    41,    -1,    -1,   766,
   869,   768,    -1,    -1,    -1,    65,    51,    -1,    53,    -1,
    -1,    -1,   779,    -1,    -1,    75,   783,   784,   785,    -1,
    65,    -1,    -1,    83,    -1,    85,    -1,    -1,    88,    89,
    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,
    -1,    -1,    -1,    88,     3,     4,    -1,    -1,     7,    -1,
  1098,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
    -1,    -1,  1110,  1111,    12,    -1,   833,   834,   835,   836,
  1118,  1119,   508,   840,   841,   842,   843,    -1,    -1,    27,
    -1,    -1,    41,    31,   520,    -1,    -1,    35,    -1,    -1,
    -1,  1139,    51,    41,    53,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    51,    -1,    53,    65,    -1,    -1,    -1,
    -1,    -1,  1160,    -1,   550,    -1,    75,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    83,   994,   995,    75,   997,    88,
    -1,    -1,    -1,    -1,    -1,    83,  1184,    -1,    -1,    -1,
    88,    -1,    -1,  1191,  1192,    -1,    -1,  1195,    -1,    -1,
    -1,    -1,  1200,    -1,     4,     4,     5,     6,     7,    -1,
    -1,    10,    -1,    12,   600,   601,   602,    -1,    -1,    -1,
   937,   938,   608,    -1,    24,    25,    -1,    27,    27,    -1,
    -1,    -1,    31,    33,    -1,    -1,    35,    -1,   624,   625,
    -1,   627,    -1,    -1,    44,    44,    46,    -1,    -1,    -1,
    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,
    -1,  1259,  1260,  1261,     3,     4,    65,    -1,     7,    -1,
   656,    -1,    -1,    -1,    -1,    -1,    75,   994,   995,  1098,
   997,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    88,
    89,    -1,    -1,    -1,    93,    95,    -1,    -1,    -1,    -1,
    -1,   101,    41,    -1,   690,   105,    -1,    -1,   108,   109,
    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,    -1,   119,
    -1,   121,   122,    -1,    -1,    -1,    65,    -1,  1326,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,   139,
   140,   141,    -1,    -1,    83,    -1,    -1,    -1,    -1,    88,
    -1,    -1,    -1,    -1,  1173,  1174,  1175,    -1,     1,    -1,
    -1,     4,    -1,     6,     7,   165,    -1,    -1,    -1,    12,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    -1,   183,    27,    -1,    -1,    -1,    31,    -1,
    -1,    -1,    35,   193,    37,    38,    27,   783,   784,    -1,
    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
    53,    -1,    55,    44,    57,    58,    59,    -1,    61,    62,
    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,    77,    78,    -1,    -1,    81,    82,
    83,    -1,    -1,    86,    -1,    -1,    89,   833,   834,   835,
   836,    -1,   838,    -1,   840,   841,   842,   843,    -1,    -1,
    -1,   104,    -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,   109,    -1,
    -1,    -1,    -1,   869,   284,   285,   872,    -1,   874,    -1,
   121,    -1,    -1,    -1,     3,     4,     5,     6,     7,    -1,
    -1,   887,   888,    12,    -1,    -1,    -1,    -1,   139,   140,
   141,    -1,   312,    -1,    -1,   315,    -1,    -1,    27,   319,
    -1,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
    -1,    -1,    41,    -1,   165,    44,    -1,    -1,   338,    -1,
    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   941,    65,    -1,    -1,   359,
   360,   361,   362,   949,    -1,    -1,    75,   367,    -1,    -1,
    -1,    -1,    -1,   373,    83,   375,    85,   377,   378,    88,
    89,    -1,    -1,    -1,   384,    -1,    -1,    -1,    -1,    -1,
   390,    -1,    -1,   393,   980,   981,   982,    -1,    -1,    -1,
   231,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   994,   995,
    -1,   997,   412,   413,    -1,   415,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
    12,     6,     7,     8,     9,    -1,    11,    12,    -1,    -1,
  1026,    -1,    24,    25,    -1,    27,   277,   278,   279,    -1,
    -1,    -1,    27,    28,   285,    -1,    31,    -1,    33,    -1,
    35,    -1,    37,    38,    -1,    40,    41,    42,    43,    -1,
    52,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,
    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,
    75,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,
    -1,    -1,  1098,    88,    -1,    -1,    -1,    -1,    -1,   101,
   520,   103,   104,   105,    -1,    -1,   108,   109,   359,   104,
   361,   362,   363,    -1,     3,     4,     5,     6,     7,    -1,
    -1,    -1,   373,    12,   375,    -1,   377,   378,    -1,    -1,
   550,    -1,    -1,   384,    -1,    -1,    -1,    -1,    -1,   390,
    -1,    -1,   393,    -1,    44,    -1,    35,    -1,    -1,    -1,
    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,
    -1,   412,    51,    -1,    53,    -1,    66,  1173,  1174,  1175,
    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
   600,   601,   602,    -1,    -1,    85,    75,    -1,   608,    -1,
    -1,   193,    -1,    -1,    83,    95,    85,    -1,    -1,    88,
    89,    -1,    -1,    -1,   624,   625,     4,   627,     6,     7,
    -1,  1217,    -1,    -1,    12,    -1,     3,     4,    -1,    -1,
     7,   121,    -1,    -1,    -1,     4,     5,     6,     7,   231,
    -1,    10,    -1,    12,    -1,    -1,   656,    35,    -1,   139,
   140,   141,    -1,    -1,     3,     4,    44,   498,    27,   149,
    -1,    -1,    31,    51,    41,    53,    35,    -1,    -1,   510,
   511,    -1,   513,    -1,    51,   165,    53,    65,    -1,   520,
   690,    -1,    51,   275,    53,   277,   278,    75,    65,    -1,
     3,     4,    41,    -1,    -1,    -1,    -1,    85,    75,    -1,
    88,    89,    51,    -1,    53,   195,    83,    56,    -1,   550,
    -1,    88,    -1,    -1,   306,    -1,    65,    -1,    -1,    -1,
   312,    -1,    -1,   315,    -1,    -1,    75,   319,    41,    -1,
    -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,    51,    88,
    53,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,   600,
   601,   602,    75,    -1,    27,    -1,    -1,   608,    31,    -1,
    83,    -1,    35,   783,   784,    88,    -1,    -1,    -1,    -1,
    -1,   791,    -1,   624,   625,    -1,   627,    -1,    51,    -1,
    53,    -1,    -1,   283,    -1,   285,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   815,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   656,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   833,   834,   835,   836,    -1,    -1,    -1,
   840,   841,   842,   843,   675,    -1,    -1,    -1,    -1,    -1,
   432,    -1,    -1,    -1,   685,   686,   687,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   869,
    -1,    -1,   872,    -1,   874,    -1,    -1,    -1,    -1,   359,
    -1,   361,   362,    -1,    -1,    -1,    -1,   887,   888,   277,
   278,   279,    -1,   373,    -1,   375,    -1,   377,   378,    -1,
    -1,    -1,    -1,    -1,   384,    -1,    -1,    -1,    -1,    -1,
   390,    -1,    -1,   393,    -1,    -1,   498,    -1,    -1,    -1,
    -1,    -1,     4,    -1,    -1,    -1,   508,    -1,   510,   511,
    -1,    -1,   412,    -1,    -1,   766,    -1,   768,    -1,    -1,
    -1,    -1,    24,    25,    -1,    -1,    -1,    -1,   779,   949,
    -1,    33,   783,   784,   785,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    46,    -1,    -1,    -1,    -1,   551,
    -1,   359,    -1,   361,   362,   363,    -1,    -1,    -1,    -1,
   980,   981,   982,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   994,   995,    -1,   997,     4,     5,
     6,     7,   833,   834,   835,   836,    12,    -1,    -1,   840,
   841,   842,   843,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    -1,    27,    -1,   105,    -1,    31,  1026,    -1,    -1,    35,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,   869,    -1,
   122,    -1,    -1,   523,    -1,    51,    -1,    53,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   139,   140,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   550,    66,    67,    68,    69,    70,    71,    72,    73,    74,
    75,    76,    77,    78,    79,   916,   917,    -1,   919,    -1,
    -1,    -1,    -1,   675,    -1,    -1,    -1,    -1,  1098,    -1,
    -1,   183,    -1,   685,   686,   687,   937,   938,    -1,    -1,
    -1,   193,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   600,   601,   602,   511,    -1,   513,    -1,    -1,   608,    -1,
    -1,    -1,   520,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   624,   625,    -1,   627,    -1,   980,
    -1,   982,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   550,   994,   995,    -1,   997,    -1,    -1,    -1,
    -1,    -1,    -1,  1173,  1174,  1175,   656,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   766,    -1,   768,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   779,    65,    66,
    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    77,    78,    79,   601,   602,    -1,    -1,  1217,     3,     4,
   608,     6,     7,     8,     9,    -1,    11,    12,    -1,    -1,
   312,    -1,    -1,   315,    -1,    -1,    -1,   319,    -1,    -1,
    -1,    -1,    27,    28,    29,    30,    31,    -1,    33,    -1,
    35,    -1,    37,    38,    -1,    40,    41,    42,    43,    -1,
    -1,    46,    47,    48,    49,    50,    51,  1098,    53,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   360,    -1,
    -1,    -1,    -1,    -1,    -1,   367,    -1,   675,    -1,    -1,
   872,   373,    -1,   375,    -1,    -1,    81,    82,    83,    -1,
    -1,    -1,    -1,    88,    -1,    -1,    -1,    92,   390,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   412,   413,    -1,   415,   916,   917,    -1,   919,    -1,    -1,
    -1,    -1,  1173,  1174,  1175,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   833,   834,   835,   836,    -1,   838,    -1,
   840,   841,   842,   843,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   766,    -1,
   768,    -1,    -1,    -1,    -1,    -1,  1217,    -1,    -1,   869,
    -1,   779,    -1,    -1,    -1,    -1,   784,   785,    -1,    -1,
    -1,     3,     4,     5,     6,     7,    -1,    -1,    10,    -1,
    12,    -1,     3,     4,     5,     6,     7,    -1,    -1,    -1,
    -1,    12,    -1,    -1,    -1,    27,    -1,    -1,    -1,    31,
    -1,    -1,    -1,    35,    -1,    -1,    27,    -1,    -1,    41,
    31,    -1,    -1,    -1,    35,   833,   834,    -1,   836,    51,
    41,    53,   840,    -1,   842,   843,    -1,    -1,    -1,    -1,
    51,   941,    53,    65,    -1,    56,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    75,    65,    -1,    -1,    -1,    -1,    -1,
    -1,    83,    -1,    -1,    75,    -1,    88,    -1,    -1,    -1,
    -1,    93,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,
   980,    -1,   982,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   994,   995,    -1,   997,   600,   601,
    59,    -1,    61,    62,    63,    64,    65,    66,    67,    68,
    69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
    79,    -1,   624,   625,    -1,   627,    -1,    -1,    -1,     1,
   938,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
    12,    13,    -1,    15,    16,    17,    18,    19,    20,    21,
    22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,    -1,    56,    -1,   994,   995,    -1,   997,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,  1098,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    90,     1,
    92,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    12,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    44,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,  1173,  1174,  1175,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    10,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    85,    -1,    -1,    88,    89,    -1,    -1,
    92,    93,    -1,    -1,    -1,    -1,    -1,  1217,    -1,    -1,
    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   833,   834,    -1,    -1,    -1,    -1,    -1,   840,    -1,
    -1,    57,    58,    59,    60,    61,    62,    63,    64,    65,
    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    -1,    -1,    -1,   869,    -1,    -1,
   872,     1,   874,     3,     4,     5,     6,     7,     8,     9,
    -1,    11,    12,    13,    -1,    15,    16,    17,    18,    19,
    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
    40,    41,    42,    43,    -1,    -1,    46,    47,    48,    49,
    50,    51,    -1,    53,    54,    -1,    56,    -1,    -1,    -1,
    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    73,    74,    75,    -1,   949,    -1,    -1,
    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    88,    -1,
    90,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   103,   104,    -1,    -1,    -1,    -1,   981,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   994,   995,    -1,   997,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
    -1,    11,    12,    13,  1026,    15,    16,    17,    18,    19,
    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
    40,    41,    42,    43,    -1,    -1,    46,    47,    48,    49,
    50,    51,    -1,    53,    54,    -1,    56,    -1,    -1,    -1,
    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    88,    -1,
    90,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   103,   104,     1,    -1,     3,     4,     5,
     6,     7,     8,     9,    -1,    11,    12,    13,    -1,    15,
    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
    -1,    37,    38,    -1,    40,    41,    42,    43,    -1,    -1,
    46,    47,    48,    49,    50,    51,    -1,    53,    54,    -1,
    56,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,
    -1,    -1,    88,    -1,    90,    -1,    92,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,     1,
    -1,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
    12,    13,    -1,    15,    16,    17,    18,    19,    20,    21,
    22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    90,    -1,
    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   103,   104,     1,    -1,     3,     4,     5,     6,     7,
     8,     9,    -1,    11,    12,    13,    -1,    15,    16,    17,
    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    54,    -1,    56,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
    88,    -1,    90,     1,    92,     3,     4,     5,     6,     7,
     8,     9,    -1,    11,    12,    13,   104,    15,    16,    17,
    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    54,    -1,    56,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
    88,    -1,    90,     1,    92,     3,     4,     5,     6,     7,
     8,     9,    -1,    11,    12,    13,   104,    15,    16,    17,
    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    54,    -1,    56,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
    88,    -1,    90,     1,    92,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    12,    -1,   104,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    44,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    54,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    85,    -1,    -1,
    88,    89,    -1,    -1,    92,    93,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,     1,   104,     3,     4,     5,
     6,     7,     8,     9,    10,    11,    12,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
    -1,    37,    38,    -1,    40,    41,    42,    43,    -1,    -1,
    46,    47,    48,    49,    50,    51,    -1,    53,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,
    -1,    -1,    88,    -1,    -1,    -1,    92,    93,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   102,     1,   104,     3,
     4,     5,     6,     7,     8,     9,    10,    11,    12,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    27,    28,    29,    30,    31,    -1,    33,
    -1,    35,    -1,    37,    38,    -1,    40,    41,    42,    43,
    -1,    -1,    46,    47,    48,    49,    50,    51,    -1,    53,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,
    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,
    74,    75,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,
    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    92,    93,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,     1,
   104,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    89,    -1,     1,
    92,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,   103,   104,    -1,    -1,    -1,    -1,    19,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,     1,
    92,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,   103,   104,    -1,    -1,    -1,    -1,    19,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,     1,
    92,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
    12,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,     1,
    92,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,     1,
    92,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,     1,
    92,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,     1,
    92,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,     1,
    92,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    -1,    -1,    56,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,     1,
    92,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,
    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   102,     1,   104,     3,     4,    -1,     6,     7,     8,     9,
    -1,    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,
    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
    40,    41,    42,    43,    -1,    -1,    46,    47,    48,    49,
    50,    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    88,    -1,
    -1,     1,    92,     3,     4,    -1,     6,     7,     8,     9,
    -1,    11,    12,    -1,   104,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,
    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
    40,    41,    42,    43,    -1,    -1,    46,    47,    48,    49,
    50,    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    88,    -1,
     3,     4,    92,     6,     7,     8,     9,    -1,    11,    12,
    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,    -1,
    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    42,
    43,    -1,    -1,    46,    47,    48,    49,    50,    51,    -1,
    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,
    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,    82,
    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    92,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   104,   105,     3,     4,     5,     6,     7,     8,     9,
    -1,    11,    12,    13,    -1,    15,    16,    17,    18,    19,
    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
    40,    41,    42,    43,    -1,    -1,    46,    47,    48,    49,
    50,    51,    -1,    53,    54,    -1,    56,    -1,    -1,    -1,
    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    88,    -1,
    90,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   103,   104,     3,     4,     5,     6,     7,
     8,     9,    -1,    11,    12,    13,    -1,    15,    16,    17,
    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    54,    -1,    56,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
    88,    -1,    90,    -1,    92,     3,     4,     5,     6,     7,
     8,     9,    -1,    11,    12,    13,   104,    15,    16,    17,
    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    54,    -1,    56,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
    88,    -1,    90,    -1,    92,     3,     4,     5,     6,     7,
     8,     9,    -1,    11,    12,    13,   104,    15,    16,    17,
    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    -1,    -1,    56,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
    88,    -1,    90,    -1,    92,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    12,    -1,   104,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    44,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    85,    -1,    -1,
    88,    89,    -1,    -1,    92,    93,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,   104,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    27,    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,
    37,    38,    -1,    40,    41,    42,    43,    44,    -1,    46,
    47,    48,    49,    50,    51,    -1,    53,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,
    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    85,    -1,
    -1,    88,    89,    -1,    -1,    92,    93,     3,     4,    -1,
     6,     7,     8,     9,    -1,    11,    12,   104,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
    -1,    37,    38,    -1,    40,    41,    42,    43,    44,    -1,
    46,    47,    48,    49,    50,    51,    -1,    53,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    85,
    -1,    -1,    88,    89,     3,     4,    -1,     6,     7,     8,
     9,    -1,    11,    12,    -1,    -1,    -1,    -1,   104,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,
    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,
    -1,    40,    41,    42,    43,    44,    -1,    46,    47,    48,
    49,    50,    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,
    -1,    -1,    81,    82,    83,    -1,    85,    -1,    -1,    88,
    89,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
    12,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
    42,    43,    44,    -1,    46,    47,    48,    49,    50,    51,
    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,
    82,    83,    -1,    85,    -1,    -1,    88,    89,     3,     4,
    -1,     6,     7,     8,     9,    -1,    11,    12,    -1,    -1,
    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    27,    28,    29,    30,    31,    -1,    33,    -1,
    35,    -1,    37,    38,    -1,    40,    41,    42,    43,    -1,
    -1,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
    -1,    56,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,
    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,
    75,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,
    -1,    -1,    -1,    88,    -1,     3,     4,    92,     6,     7,
     8,     9,    -1,    11,    12,    -1,    -1,    -1,    -1,   104,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
    88,    -1,     3,     4,    92,     6,     7,     8,     9,    -1,
    11,    12,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,
    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,
    41,    42,    43,    -1,    -1,    46,    47,    48,    49,    50,
    51,    -1,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,
    81,    82,    83,    -1,    -1,     3,     4,    88,     6,     7,
     8,     9,    -1,    11,    12,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,    27,
    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
    48,    49,    50,    51,    -1,    53,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,    -1,
    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
    88,    89,     3,     4,    -1,     6,     7,     8,     9,    -1,
    11,    12,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,
    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,
    41,    42,    43,    -1,    -1,    46,    47,    48,    49,    50,
    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,
    81,    82,    83,    -1,    -1,    -1,    -1,    88,    -1,     3,
     4,    92,     6,     7,     8,     9,    -1,    11,    12,    -1,
    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    27,    28,    29,    30,    31,    -1,    33,
    -1,    35,    -1,    37,    38,    -1,    40,    41,    42,    43,
    -1,    -1,    46,    47,    48,    49,    50,    51,    -1,    53,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,
    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,
    74,    75,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,
    -1,    -1,    -1,    -1,    88,    -1,     3,     4,    92,     6,
     7,     8,     9,    -1,    11,    12,    -1,    -1,    -1,    -1,
   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    27,    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,
    37,    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,
    47,    48,    49,    50,    51,    -1,    53,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,
    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,
    -1,    88,    -1,     3,     4,    92,     6,     7,     8,     9,
    -1,    11,    12,    -1,    -1,    -1,    -1,   104,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,
    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
    40,    41,    42,    43,    -1,    -1,    46,    47,    48,    49,
    50,    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    88,    -1,
     3,     4,    92,     6,     7,     8,     9,    -1,    11,    12,
    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,    -1,
    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    42,
    43,    -1,    -1,    46,    47,    48,    49,    50,    51,    -1,
    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,
    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,    82,
    83,    -1,    -1,    -1,    -1,    88,    -1,     3,     4,    92,
     6,     7,     8,     9,    -1,    11,    12,    -1,    -1,    -1,
    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
    -1,    37,    38,    -1,    40,    41,    42,    43,    -1,    -1,
    46,    47,    48,    49,    50,    51,    -1,    53,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,
     3,     4,    88,     6,     7,     8,     9,    -1,    11,    12,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,    -1,
    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,    -1,
    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    42,
    43,    -1,    -1,    46,    47,    48,    49,    50,    51,    -1,
    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,
    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,    82,
    83,    -1,    -1,     3,     4,    88,     6,     7,     8,     9,
    -1,    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   104,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,
    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
    40,    41,    42,    43,    -1,    -1,    46,    47,    48,    49,
    50,    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
    -1,    81,    82,    83,    -1,    -1,     3,     4,    88,     6,
     7,     8,     9,    -1,    11,    12,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,
    27,    28,    -1,    -1,    31,    -1,    33,    -1,    35,    -1,
    37,    38,    -1,    40,    41,    42,    43,    -1,    -1,    46,
    47,    48,    49,    50,    51,    -1,    53,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,    -1,
    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,
    -1,    88,     3,     4,     5,     6,     7,    -1,    -1,    10,
    -1,    12,    -1,    -1,    -1,    -1,    -1,   104,    -1,     3,
     4,     5,     6,     7,    -1,    -1,    27,    -1,    12,    -1,
    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,
    41,    -1,    -1,    27,    -1,    -1,    -1,    31,    -1,    -1,
    51,    35,    53,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    -1,    -1,    -1,    -1,    65,    -1,    -1,    51,    -1,    53,
    -1,    -1,    -1,    -1,    75,    -1,    60,    -1,    -1,    -1,
    -1,    65,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,
    -1,    75,     3,     4,     5,     6,     7,    -1,    -1,    83,
    -1,    12,    -1,    -1,    88,    -1,    -1,    -1,    -1,     3,
     4,     5,     6,     7,    -1,    -1,    27,    -1,    12,    -1,
    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,
    41,    -1,    -1,    27,    -1,    -1,    -1,    31,    -1,    -1,
    51,    35,    53,    -1,    -1,    56,    -1,    41,    -1,    -1,
    -1,    -1,    -1,    -1,    65,    -1,    -1,    51,    -1,    53,
    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    -1,
    -1,    65,    83,    -1,    -1,    -1,    -1,    88,    -1,    -1,
    -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    32,    57,    58,    59,    88,    61,    62,    63,    64,    65,
    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    -1,    57,    58,    59,    -1,    61,
    62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    72,    73,    74,    75,    76,    77,    78,    79,    55,   105,
    57,    58,    59,    -1,    61,    62,    63,    64,    65,    66,
    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    77,    78,    79,    57,    58,    59,    60,    61,    62,    63,
    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
    74,    75,    76,    77,    78,    79,    57,    58,    59,    60,
    61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
    71,    72,    73,    74,    75,    76,    77,    78,    79,    57,
    58,    59,    -1,    61,    62,    63,    64,    65,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    57,    58,    59,    -1,    61,    62,    63,    64,
    65,    66,    67,    68,    69,    -1,    71,    72,    73,    74,
    75,    76,    77,    78,    79,    62,    63,    64,    65,    66,
    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    77,    78,    79,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
    74,    75,    76,    77,    78,    79
};
#define YYPURE 1

/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "bison.simple"

/* Skeleton output parser for bison,
   Copyright (C) 1984 Bob Corbett and Richard Stallman

   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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA.  */


#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
#include <alloca.h>
#endif

/* 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.  */

/* 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 YYFAIL		goto yyerrlab;
#define YYACCEPT	return(0)
#define YYABORT 	return(1)
#define YYERROR		goto yyerrlab

#define YYTERROR	1
#define YYERRCODE	256

#ifndef YYIMPURE
#define YYLEX		yylex()
#endif

#ifndef YYPURE
#define YYLEX		yylex(&yylval, &yylloc)
#endif

/* If nonreentrant, generate the variables here */

#ifndef YYIMPURE

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

YYLTYPE yylloc;			/*  location data for the lookahead	*/
				/*  symbol				*/

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

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

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

#ifndef	YYMAXDEPTH
#define YYMAXDEPTH 200
#endif

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

#ifndef YYMAXLIMIT
#define YYMAXLIMIT 10000
#endif


#line 90 "bison.simple"
int
yyparse()
{
  register int yystate;
  register int yyn;
  register short *yyssp;
  register YYSTYPE *yyvsp;
  YYLTYPE *yylsp;
  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
  int yychar1;		/*  lookahead token as an internal (translated) token number */

  short	yyssa[YYMAXDEPTH];	/*  the state stack			*/
  YYSTYPE yyvsa[YYMAXDEPTH];	/*  the semantic value stack		*/
  YYLTYPE yylsa[YYMAXDEPTH];	/*  the location stack			*/

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

  int yymaxdepth = YYMAXDEPTH;

#ifndef YYPURE
  int yychar;
  YYSTYPE yylval;
  YYLTYPE yylloc;
  int yynerrs;
#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.  */

  yyssp = yyss - 1;
  yyvsp = yyvs;
  yylsp = yyls;

/* 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 + yymaxdepth - 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;
      YYLTYPE *yyls1 = yyls;
      short *yyss1 = yyss;

      /* 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.  */
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yyls1, size * sizeof (*yylsp),
		 &yymaxdepth);

      yyss = yyss1; yyvs = yyvs1; yyls = yyls1;
#else /* no yyoverflow */
      /* Extend the stack our own way.  */
      if (yymaxdepth >= YYMAXLIMIT)
	yyerror("parser stack overflow");
      yymaxdepth *= 2;
      if (yymaxdepth > YYMAXLIMIT)
	yymaxdepth = YYMAXLIMIT;
      yyss = (short *) alloca (yymaxdepth * sizeof (*yyssp));
      bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
      yyvs = (YYSTYPE *) alloca (yymaxdepth * sizeof (*yyvsp));
      bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) alloca (yymaxdepth * sizeof (*yylsp));
      bcopy ((char *)yyls1, (char *)yyls, size * 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", yymaxdepth);
#endif

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

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

/* 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)\n", yychar, yytname[yychar1]);
#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];
  yyval = yyvsp[1-yylen]; /* implement default value of the action */

#if YYDEBUG != 0
  if (yydebug)
    {
      if (yylen == 1)
	fprintf (stderr, "Reducing 1 value via line %d, ",
		 yyrline[yyn]);
      else
	fprintf (stderr, "Reducing %d values via line %d, ",
		 yylen, yyrline[yyn]);
    }
#endif


  switch (yyn) {

case 2:
#line 293 "parse.y"
{
		  /* In case there were missing closebraces,
		     get us back to the global binding level.  */
		  while (! global_bindings_p ())
		    poplevel (0, 0, 0);
		  finish_file ();
		;
    break;}
case 3:
#line 307 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 4:
#line 308 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 5:
#line 310 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 6:
#line 314 "parse.y"
{ have_extern_spec = 1;
		  used_extern_spec = 0;
		  yyval.ttype = NULL_TREE; ;
    break;}
case 7:
#line 319 "parse.y"
{ have_extern_spec = 0; ;
    break;}
case 10:
#line 328 "parse.y"
{ if (pending_lang_change) do_pending_lang_change(); ;
    break;}
case 11:
#line 330 "parse.y"
{ if (! global_bindings_p () && ! pseudo_global_level_p())
	      pop_everything (); ;
    break;}
case 12:
#line 336 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 13:
#line 338 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 14:
#line 340 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 16:
#line 343 "parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
		  assemble_asm (yyvsp[-2].ttype); ;
    break;}
case 17:
#line 346 "parse.y"
{ pop_lang_context (); ;
    break;}
case 18:
#line 348 "parse.y"
{ pop_lang_context (); ;
    break;}
case 19:
#line 350 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 20:
#line 353 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 21:
#line 359 "parse.y"
{ push_lang_context (yyvsp[0].ttype); ;
    break;}
case 22:
#line 364 "parse.y"
{ begin_template_parm_list (); ;
    break;}
case 23:
#line 366 "parse.y"
{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
    break;}
case 24:
#line 371 "parse.y"
{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 25:
#line 373 "parse.y"
{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 26:
#line 385 "parse.y"
{
		  if (yyvsp[-1].ttype == signature_type_node)
		    sorry ("signature as template type parameter");
		  else if (yyvsp[-1].ttype != class_type_node)
		    error ("template type parameter must use keyword `class'");
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 27:
#line 393 "parse.y"
{
		  if (yyvsp[-3].ttype == signature_type_node)
		    sorry ("signature as template type parameter");
		  else if (yyvsp[-3].ttype != class_type_node)
		    error ("template type parameter must use keyword `class'");
		  warning ("restricted template type parameters not yet implemented");
		  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 29:
#line 406 "parse.y"
{ warning ("use of `overload' is an anachronism"); ;
    break;}
case 30:
#line 410 "parse.y"
{ declare_overloaded (yyvsp[0].ttype); ;
    break;}
case 31:
#line 412 "parse.y"
{ declare_overloaded (yyvsp[0].ttype); ;
    break;}
case 32:
#line 419 "parse.y"
{ yychar = '{'; goto template1; ;
    break;}
case 34:
#line 422 "parse.y"
{ yychar = '{'; goto template1; ;
    break;}
case 36:
#line 425 "parse.y"
{ yychar = ':'; goto template1; ;
    break;}
case 38:
#line 428 "parse.y"
{
		  yychar = ':';
		template1:
		  if (current_aggr == exception_type_node)
		    error ("template type must define an aggregate or union");
		  else if (current_aggr == signature_type_node)
		    sorry ("template type defining a signature");
		  /* Maybe pedantic warning for union?
		     How about an enum? :-)  */
		  end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr, 1);
		  reinit_parse_for_template (yychar, yyvsp[-2].ttype, yyvsp[-1].ttype);
		  yychar = YYEMPTY;
		;
    break;}
case 40:
#line 443 "parse.y"
{
		  end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr, 0);
		  /* declare $2 as template name with $1 parm list */
		;
    break;}
case 41:
#line 448 "parse.y"
{
		  end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr, 0);
		  /* declare $2 as template name with $1 parm list */
		;
    break;}
case 42:
#line 455 "parse.y"
{
		  tree d;
		  int momentary;
		  int def = (yyvsp[0].itype != ';');
		  momentary = suspend_momentary ();
		  d = start_decl (yyvsp[-4].ttype, /*current_declspecs*/NULL_TREE, 0,
				  yyvsp[-3].ttype);
		  cplus_decl_attributes (d, yyvsp[-1].ttype);
		  finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
		  end_template_decl (yyvsp[-5].ttype, d, 0, def);
		  if (def)
		    reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-5].ttype, d);
		  resume_momentary (momentary);
		;
    break;}
case 43:
#line 472 "parse.y"
{
		  tree d;
		  int momentary;
		  int def = (yyvsp[0].itype != ';');

		  current_declspecs = yyvsp[-5].ttype;
		  momentary = suspend_momentary ();
		  d = start_decl (yyvsp[-4].ttype, current_declspecs,
				  0, yyvsp[-3].ttype);
		  cplus_decl_attributes (d, yyvsp[-1].ttype);
		  finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
		  end_template_decl (yyvsp[-6].ttype, d, 0, def);
		  if (def)
		    {
		      reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-6].ttype, d);
		      yychar = YYEMPTY;
		    }
		  note_list_got_semicolon (yyvsp[-5].ttype);
		  resume_momentary (momentary);
		;
    break;}
case 44:
#line 493 "parse.y"
{
		  int def = (yyvsp[0].itype != ';');
		  tree d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
		  finish_decl (d, NULL_TREE, NULL_TREE, 0);
		  end_template_decl (yyvsp[-3].ttype, d, 0, def);
		  if (def)
		    reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-3].ttype, d);
		;
    break;}
case 45:
#line 502 "parse.y"
{ end_template_decl (yyvsp[-2].ttype, 0, 0, 0); ;
    break;}
case 46:
#line 503 "parse.y"
{ end_template_decl (yyvsp[-2].ttype, 0, 0, 0); ;
    break;}
case 47:
#line 506 "parse.y"
{ yyval.itype = '{'; ;
    break;}
case 48:
#line 507 "parse.y"
{ yyval.itype = ':'; ;
    break;}
case 49:
#line 508 "parse.y"
{ yyval.itype = ';'; ;
    break;}
case 50:
#line 509 "parse.y"
{ yyval.itype = '='; ;
    break;}
case 51:
#line 510 "parse.y"
{ yyval.itype = RETURN; ;
    break;}
case 52:
#line 515 "parse.y"
{;
    break;}
case 53:
#line 517 "parse.y"
{;
    break;}
case 54:
#line 520 "parse.y"
{ tree d;
		  d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
		  finish_decl (d, NULL_TREE, NULL_TREE, 0);
		;
    break;}
case 55:
#line 525 "parse.y"
{
		  note_list_got_semicolon (yyval.ttype);
		;
    break;}
case 56:
#line 530 "parse.y"
{ tree d;
		  d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
		  finish_decl (d, NULL_TREE, NULL_TREE, 0);
		  note_list_got_semicolon (yyval.ttype);
		;
    break;}
case 57:
#line 536 "parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 59:
#line 539 "parse.y"
{
	    tree t = yyval.ttype;
	    shadow_tag (t);
	    if (TREE_CODE (t) == TREE_LIST
		&& TREE_PURPOSE (t) == NULL_TREE)
	      {
		t = TREE_VALUE (t);
		if (IS_AGGR_TYPE (t)
		    && IDENTIFIER_TEMPLATE (TYPE_IDENTIFIER (t)))
		  {
		    if (CLASSTYPE_USE_TEMPLATE (t) == 0)
		      SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
		    else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
		      error ("override declaration for already-expanded template");
		  }
	      }
	    note_list_got_semicolon (yyval.ttype);
	  ;
    break;}
case 63:
#line 564 "parse.y"
{
		  finish_function (lineno, 1);
		  /* finish_function performs these three statements:

		     expand_end_bindings (getdecls (), 1, 0);
		     poplevel (1, 1, 0);

		     expand_end_bindings (0, 0, 0);
		     poplevel (0, 0, 1);
		     */
		  if (yyval.ttype) process_next_inline (yyval.ttype);
		;
    break;}
case 64:
#line 577 "parse.y"
{
		  finish_function (lineno, 1);
		  /* finish_function performs these three statements:

		     expand_end_bindings (getdecls (), 1, 0);
		     poplevel (1, 1, 0);

		     expand_end_bindings (0, 0, 0);
		     poplevel (0, 0, 1);
		     */
		  if (yyval.ttype) process_next_inline (yyval.ttype);
		;
    break;}
case 65:
#line 590 "parse.y"
{ finish_function (lineno, 0);
		  if (yyval.ttype) process_next_inline (yyval.ttype); ;
    break;}
case 66:
#line 593 "parse.y"
{ finish_function (lineno, 0);
		  if (yyval.ttype) process_next_inline (yyval.ttype); ;
    break;}
case 67:
#line 596 "parse.y"
{ finish_function (lineno, 0);
		  if (yyval.ttype) process_next_inline (yyval.ttype); ;
    break;}
case 68:
#line 599 "parse.y"
{;
    break;}
case 69:
#line 601 "parse.y"
{;
    break;}
case 70:
#line 603 "parse.y"
{;
    break;}
case 71:
#line 608 "parse.y"
{ if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
		    YYERROR1;
		  reinit_parse_for_function ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 72:
#line 613 "parse.y"
{ if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
		    YYERROR1;
		  reinit_parse_for_function ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 73:
#line 618 "parse.y"
{ if (! start_function (NULL_TREE, yyval.ttype, yyvsp[0].ttype, 0))
		    YYERROR1;
		  reinit_parse_for_function ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 74:
#line 623 "parse.y"
{ start_function (NULL_TREE, TREE_VALUE (yyval.ttype), NULL_TREE, 1);
		  reinit_parse_for_function (); ;
    break;}
case 75:
#line 631 "parse.y"
{
		  yyval.ttype = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-5].ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
		  yyval.ttype = start_method (TREE_CHAIN (yyvsp[-5].ttype), yyval.ttype, yyvsp[0].ttype);
		 rest_of_mdef:
		  if (! yyval.ttype)
		    YYERROR1;
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  reinit_parse_for_method (yychar, yyval.ttype); ;
    break;}
case 76:
#line 641 "parse.y"
{
		  yyval.ttype = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-3].ttype),
					 empty_parms (), yyvsp[-1].ttype);
		  yyval.ttype = start_method (TREE_CHAIN (yyvsp[-3].ttype), yyval.ttype, yyvsp[0].ttype);
		  goto rest_of_mdef;
		;
    break;}
case 77:
#line 648 "parse.y"
{ yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 78:
#line 650 "parse.y"
{ yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 79:
#line 652 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 80:
#line 656 "parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 81:
#line 664 "parse.y"
{ store_return_init (yyval.ttype, NULL_TREE); ;
    break;}
case 82:
#line 666 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 83:
#line 668 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 84:
#line 670 "parse.y"
{ store_return_init (yyval.ttype, NULL_TREE); ;
    break;}
case 85:
#line 675 "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 86:
#line 688 "parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();

		  /* Flag that we are processing base and member initializers.  */
		  current_vtable_decl = error_mark_node;

		  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 87:
#line 711 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 88:
#line 713 "parse.y"
{ yyval.itype = 1; ;
    break;}
case 91:
#line 719 "parse.y"
{
		  if (current_class_name && !flag_traditional)
		    pedwarn ("anachronistic old style base class initializer");
		  expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
		;
    break;}
case 92:
#line 725 "parse.y"
{
		  if (current_class_name && !flag_traditional)
		    pedwarn ("anachronistic old style base class initializer");
		  expand_member_init (C_C_D, NULL_TREE, void_type_node);
		;
    break;}
case 93:
#line 731 "parse.y"
{ expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 94:
#line 733 "parse.y"
{ expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
    break;}
case 95:
#line 735 "parse.y"
{ expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 96:
#line 737 "parse.y"
{ expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
    break;}
case 97:
#line 740 "parse.y"
{
		  do_member_init (OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
		;
    break;}
case 98:
#line 744 "parse.y"
{
		  do_member_init (OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), void_type_node);
		;
    break;}
case 107:
#line 768 "parse.y"
{ do_type_instantiation (yyvsp[0].ttype ? yyvsp[0].ttype : yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 108:
#line 770 "parse.y"
{ do_function_instantiation (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 109:
#line 772 "parse.y"
{ do_type_instantiation (yyvsp[0].ttype ? yyvsp[0].ttype : yyvsp[-1].ttype, yyvsp[-3].ttype); ;
    break;}
case 110:
#line 774 "parse.y"
{ do_function_instantiation (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 111:
#line 779 "parse.y"
{ if (yyvsp[0].ttype) yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 112:
#line 784 "parse.y"
{ yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 113:
#line 786 "parse.y"
{ yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 114:
#line 791 "parse.y"
{ yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
    break;}
case 115:
#line 796 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 116:
#line 798 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 117:
#line 803 "parse.y"
{ yyval.ttype = groktypename (yyval.ttype); ;
    break;}
case 119:
#line 809 "parse.y"
{
		  tree t, decl, tmpl;

		  tmpl = TREE_PURPOSE (IDENTIFIER_TEMPLATE (yyvsp[-1].ttype));
		  t = xref_tag (DECL_TEMPLATE_INFO (tmpl)->aggr, yyvsp[-1].ttype, yyvsp[0].ttype, 0);
		  set_current_level_tags_transparency (1);
		  my_friendly_assert (TREE_CODE (t) == RECORD_TYPE
				      || TREE_CODE (t) == UNION_TYPE, 257);
		  yyval.ttype = t;

		  /* Now, put a copy of the decl in global scope, to avoid
		     recursive expansion.  */
		  decl = IDENTIFIER_LOCAL_VALUE (yyvsp[-1].ttype);
		  if (!decl)
		    decl = IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype);
		  /* Now, put a copy of the decl in global scope, to avoid
		     recursive expansion.  */
                  if (decl)
                    {
		      /* Need to copy it to clear the chain pointer,
			 and need to get it into permanent storage.  */
                      my_friendly_assert (TREE_CODE (decl) == TYPE_DECL, 258);
		      push_obstacks (&permanent_obstack, &permanent_obstack);
                      decl = copy_node (decl);
		      if (DECL_LANG_SPECIFIC (decl))
			copy_lang_decl (decl);
		      pop_obstacks ();
		      pushdecl_top_level (decl);
		    }
		  /* Kludge; see instantiate_class_template.  */
		  TYPE_BEING_DEFINED (t) = 0;
		;
    break;}
case 120:
#line 842 "parse.y"
{
		  tree t = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0);

		  pop_obstacks ();
		  end_template_instantiation (yyvsp[-5].ttype);

                  /* Now go after the methods & class data.  */
                  instantiate_member_templates (yyvsp[-5].ttype);

		  pop_tinst_level();

		  CLASSTYPE_GOT_SEMICOLON (t) = 1;
		;
    break;}
case 121:
#line 859 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 122:
#line 861 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 123:
#line 866 "parse.y"
{ yyval.ttype = NULL_TREE; /* never used from here... */;
    break;}
case 124:
#line 868 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; /*???*/ ;
    break;}
case 125:
#line 872 "parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 126:
#line 874 "parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 127:
#line 876 "parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 128:
#line 878 "parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 129:
#line 880 "parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 130:
#line 884 "parse.y"
{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
    break;}
case 132:
#line 890 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 133:
#line 894 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 134:
#line 899 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 135:
#line 903 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 136:
#line 908 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 138:
#line 911 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 139:
#line 916 "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[-5].ttype;
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype);
		;
    break;}
case 140:
#line 933 "parse.y"
{ 
		  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 0);
		  resume_momentary (yyvsp[-2].itype);
		  yyval.ttype = yyvsp[-1].ttype; 
		  if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
		    cp_error ("definition of array `%#D' in condition", yyval.ttype); 
		;
    break;}
case 142:
#line 945 "parse.y"
{ finish_stmt (); ;
    break;}
case 143:
#line 947 "parse.y"
{ finish_stmt (); ;
    break;}
case 144:
#line 949 "parse.y"
{ finish_stmt (); ;
    break;}
case 146:
#line 956 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, 
		                  build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 147:
#line 959 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, 
		                  build_tree_list (NULL_TREE, error_mark_node)); ;
    break;}
case 148:
#line 962 "parse.y"
{ chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 149:
#line 964 "parse.y"
{ chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
    break;}
case 150:
#line 969 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 152:
#line 975 "parse.y"
{
#if 0
		  if (TREE_CODE (yyval.ttype) == TYPE_EXPR)
		    yyval.ttype = build_component_type_expr (C_C_D, yyval.ttype, NULL_TREE, 1);
#endif
		;
    break;}
case 153:
#line 983 "parse.y"
{ yyvsp[0].itype = pedantic;
		  pedantic = 0; ;
    break;}
case 154:
#line 986 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-2].itype; ;
    break;}
case 155:
#line 989 "parse.y"
{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 156:
#line 991 "parse.y"
{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 157:
#line 993 "parse.y"
{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 158:
#line 995 "parse.y"
{ yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
		  if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
		    TREE_NEGATED_INT (yyval.ttype) = 1;
		  overflow_warning (yyval.ttype);
		;
    break;}
case 159:
#line 1002 "parse.y"
{ tree label = lookup_label (yyvsp[0].ttype);
		  if (label == NULL_TREE)
		    yyval.ttype = null_pointer_node;
		  else
		    {
		      TREE_USED (label) = 1;
		      yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
		      TREE_CONSTANT (yyval.ttype) = 1;
		    }
		;
    break;}
case 160:
#line 1013 "parse.y"
{ if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
		      && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
		    error ("sizeof applied to a bit-field");
		  /* ANSI says arrays and functions are converted inside comma.
		     But we can't really convert them in build_compound_expr
		     because that would break commas in lvalues.
		     So do the conversion here if operand was a comma.  */
		  if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
		      && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
			  || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
		    yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
		  else if (TREE_CODE (yyvsp[0].ttype) == TREE_LIST)
	            {
		      tree t = TREE_VALUE (yyvsp[0].ttype);
		      if (t != NULL_TREE
			  && TREE_CODE (TREE_TYPE (t)) == FUNCTION_TYPE)
			pedwarn ("ANSI C++ forbids using sizeof() on a function");
		    }
		  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
    break;}
case 161:
#line 1033 "parse.y"
{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
    break;}
case 162:
#line 1035 "parse.y"
{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
    break;}
case 163:
#line 1037 "parse.y"
{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
    break;}
case 164:
#line 1042 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[0].ttype, NULL_TREE, yyvsp[-1].itype); ;
    break;}
case 165:
#line 1044 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-2].itype); ;
    break;}
case 166:
#line 1046 "parse.y"
{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyvsp[-2].itype); ;
    break;}
case 167:
#line 1048 "parse.y"
{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].itype); ;
    break;}
case 168:
#line 1050 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ttype),
				  NULL_TREE, yyvsp[-3].itype); ;
    break;}
case 169:
#line 1053 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ttype), yyvsp[0].ttype, yyvsp[-4].itype); ;
    break;}
case 170:
#line 1055 "parse.y"
{ yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ttype), NULL_TREE, yyvsp[-4].itype); ;
    break;}
case 171:
#line 1057 "parse.y"
{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ttype), yyvsp[0].ttype, yyvsp[-5].itype); ;
    break;}
case 172:
#line 1060 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
    break;}
case 173:
#line 1062 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 174:
#line 1066 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 175:
#line 1073 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 176:
#line 1075 "parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype; 
		  pedwarn ("old style placement syntax, use () instead");
		;
    break;}
case 177:
#line 1083 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 178:
#line 1085 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 179:
#line 1087 "parse.y"
{
		  cp_error ("`%T' is not a valid expression", yyvsp[-1].ttype);
		  yyval.ttype = error_mark_node;
		;
    break;}
case 180:
#line 1095 "parse.y"
{
		  if (flag_ansi)
		    pedwarn ("ANSI C++ forbids initialization of new expression with `='");
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 181:
#line 1105 "parse.y"
{ yyvsp[-1].ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, void_list_node);
		  TREE_PARMLIST (yyvsp[-1].ttype) = 1;
		  yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-1].ttype, 
					 NULL_TREE); ;
    break;}
case 182:
#line 1110 "parse.y"
{ yyvsp[-1].ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, void_list_node);
		  TREE_PARMLIST (yyvsp[-1].ttype) = 1;
		  yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 184:
#line 1118 "parse.y"
{ yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 185:
#line 1120 "parse.y"
{ 
		  tree init = build_nt (CONSTRUCTOR, NULL_TREE,
					nreverse (yyvsp[-2].ttype)); 
		  if (flag_ansi)
		    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 187:
#line 1135 "parse.y"
{ yyval.ttype = build_headof (yyvsp[-1].ttype); ;
    break;}
case 188:
#line 1137 "parse.y"
{ yyval.ttype = build_classof (yyvsp[-1].ttype); ;
    break;}
case 189:
#line 1139 "parse.y"
{ if (is_aggr_typedef (yyvsp[-1].ttype, 1))
		    {
		      tree type = IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype);
		      if (! IS_SIGNATURE(type))
			yyval.ttype = CLASSTYPE_DOSSIER (type);
		      else
			{
			  sorry ("signature name as argument of `classof'");
			  yyval.ttype = error_mark_node;
			}
		    }
		  else
		    yyval.ttype = error_mark_node;
		;
    break;}
case 191:
#line 1159 "parse.y"
{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 192:
#line 1161 "parse.y"
{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 193:
#line 1163 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 194:
#line 1165 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 195:
#line 1167 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 196:
#line 1169 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 197:
#line 1171 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 198:
#line 1173 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 199:
#line 1175 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 200:
#line 1177 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 201:
#line 1179 "parse.y"
{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 202:
#line 1181 "parse.y"
{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 203:
#line 1183 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 204:
#line 1185 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 205:
#line 1187 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 206:
#line 1189 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 207:
#line 1191 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 208:
#line 1193 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 209:
#line 1195 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 210:
#line 1197 "parse.y"
{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 211:
#line 1199 "parse.y"
{ yyval.ttype = build_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); ;
    break;}
case 212:
#line 1201 "parse.y"
{ register tree rval;
		  if ((rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyval.ttype, yyvsp[0].ttype,
					     make_node (yyvsp[-1].code))))
		    yyval.ttype = rval;
		  else
		    yyval.ttype = build_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 213:
#line 1208 "parse.y"
{ yyval.ttype = build_throw (NULL_TREE); ;
    break;}
case 214:
#line 1210 "parse.y"
{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
    break;}
case 215:
#line 1228 "parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 223:
#line 1243 "parse.y"
{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
    break;}
case 224:
#line 1245 "parse.y"
{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 227:
#line 1252 "parse.y"
{ push_nested_class (TREE_TYPE (OP0 (yyval.ttype)), 3);
		  TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
    break;}
case 228:
#line 1258 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
		    yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
		  else if (IDENTIFIER_OPNAME_P (yyval.ttype))
		    {
		      tree op = yyval.ttype;
		      yyval.ttype = lookup_name (op, 0);
		      if (yyval.ttype == NULL_TREE)
			{
			  if (op != ansi_opname[ERROR_MARK])
			    error ("operator %s not defined",
				   operator_name_string (op));
			  yyval.ttype = error_mark_node;
			}
		    }
		  else
		    yyval.ttype = do_identifier (yyval.ttype);
		;
    break;}
case 231:
#line 1279 "parse.y"
{ yyval.ttype = combine_strings (yyval.ttype); ;
    break;}
case 232:
#line 1281 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 233:
#line 1283 "parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 234:
#line 1285 "parse.y"
{ if (current_function_decl == 0)
		    {
		      error ("braced-group within expression allowed only inside a function");
		      YYERROR;
		    }
		  keep_next_level ();
		  yyval.ttype = expand_start_stmt_expr (); ;
    break;}
case 235:
#line 1293 "parse.y"
{ tree rtl_exp;
		  if (flag_ansi)
		    pedwarn ("ANSI C++ forbids braced-groups within expressions");
		  rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
		  /* The statements have side effects, so the group does.  */
		  TREE_SIDE_EFFECTS (rtl_exp) = 1;

		  if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
		    {
		      /* Make a BIND_EXPR for the BLOCK already made.  */
		      yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
				  NULL_TREE, rtl_exp, yyvsp[-1].ttype);
		      /* Remove the block from the tree at this point.
			 It gets put back at the proper place
			 when the BIND_EXPR is expanded.  */
		      delete_block (yyvsp[-1].ttype);
		    }
		  else
		    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 236:
#line 1314 "parse.y"
{ /* [eichin:19911016.1902EST] */
                  yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); 
                  /* here we instantiate_class_template as needed... */
                  do_pending_templates ();
                ;
    break;}
case 237:
#line 1318 "parse.y"
{
                  if (TREE_CODE (yyvsp[-1].ttype) == CALL_EXPR
                      && TREE_TYPE (yyvsp[-1].ttype) != void_type_node)
	            yyval.ttype = require_complete_type (yyvsp[-1].ttype);
                  else
                    yyval.ttype = yyvsp[-1].ttype;
                ;
    break;}
case 238:
#line 1326 "parse.y"
{
		  yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_decl);
		  if (TREE_CODE (yyval.ttype) == CALL_EXPR
		      && TREE_TYPE (yyval.ttype) != void_type_node)
		    yyval.ttype = require_complete_type (yyval.ttype);
                ;
    break;}
case 239:
#line 1333 "parse.y"
{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 240:
#line 1335 "parse.y"
{ /* If we get an OFFSET_REF, turn it into what it really
		     means (e.g., a COMPONENT_REF).  This way if we've got,
		     say, a reference to a static member that's being operated
		     on, we don't end up trying to find a member operator for
		     the class it's in.  */
		  if (TREE_CODE (yyval.ttype) == OFFSET_REF)
		    yyval.ttype = resolve_offset_ref (yyval.ttype);
		  yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
    break;}
case 241:
#line 1344 "parse.y"
{ if (TREE_CODE (yyval.ttype) == OFFSET_REF)
		    yyval.ttype = resolve_offset_ref (yyval.ttype);
		  yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
    break;}
case 242:
#line 1349 "parse.y"
{ if (current_class_decl)
		    {
#ifdef WARNING_ABOUT_CCD
		      TREE_USED (current_class_decl) = 1;
#endif
		      yyval.ttype = current_class_decl;
		    }
		  else if (current_function_decl
			   && DECL_STATIC_FUNCTION_P (current_function_decl))
		    {
		      error ("`this' is unavailable for static member functions");
		      yyval.ttype = error_mark_node;
		    }
		  else
		    {
		      if (current_function_decl)
			error ("invalid use of `this' in non-member function");
		      else
			error ("invalid use of `this' at top level");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 243:
#line 1372 "parse.y"
{
		  tree type;
		  tree id = yyval.ttype;

		  /* This is a C cast in C++'s `functional' notation.  */
		  if (yyvsp[-1].ttype == error_mark_node)
		    {
		      yyval.ttype = error_mark_node;
		      break;
		    }
#if 0
		  if (yyvsp[-1].ttype == NULL_TREE)
		    {
		      error ("cannot cast null list to type `%s'",
		             IDENTIFIER_POINTER (TYPE_NAME (id)));
		      yyval.ttype = error_mark_node;
		      break;
		    }
#endif
#if 0
		  /* type is not set! (mrs) */
		  if (type == error_mark_node)
		    yyval.ttype = error_mark_node;
		  else
#endif
		    {
		      if (id == ridpointers[(int) RID_CONST])
		        type = build_type_variant (integer_type_node, 1, 0);
		      else if (id == ridpointers[(int) RID_VOLATILE])
		        type = build_type_variant (integer_type_node, 0, 1);
#if 0
		      /* should not be able to get here (mrs) */
		      else if (id == ridpointers[(int) RID_FRIEND])
		        {
		          error ("cannot cast expression to `friend' type");
		          yyval.ttype = error_mark_node;
		          break;
		        }
#endif
		      else my_friendly_abort (79);
		      yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
		    }
		;
    break;}
case 245:
#line 1417 "parse.y"
{ tree type = groktypename (yyvsp[-4].ttype);
		  yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
    break;}
case 246:
#line 1420 "parse.y"
{ tree type = groktypename (yyvsp[-4].ttype);
		  yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
    break;}
case 247:
#line 1423 "parse.y"
{ tree type = groktypename (yyvsp[-4].ttype);
		  yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
    break;}
case 248:
#line 1426 "parse.y"
{ tree type = groktypename (yyvsp[-4].ttype);
		  yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
    break;}
case 249:
#line 1429 "parse.y"
{ yyval.ttype = build_typeid (yyvsp[-1].ttype); ;
    break;}
case 250:
#line 1431 "parse.y"
{ tree type = groktypename (yyvsp[-1].ttype);
		  yyval.ttype = get_typeid (type); ;
    break;}
case 251:
#line 1434 "parse.y"
{
		do_scoped_id:
		  yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  if (! yyval.ttype)
		    {
		      if (yychar == '(' || yychar == LEFT_RIGHT)
			yyval.ttype = implicitly_declare (yyvsp[0].ttype);
		      else
			{
			  if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
			    error ("undeclared variable `%s' (first use here)",
				   IDENTIFIER_POINTER (yyvsp[0].ttype));
			  yyval.ttype = error_mark_node;
			  /* Prevent repeated error messages.  */
			  IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
			}
		    }
		  else
		    {
		      if (TREE_CODE (yyval.ttype) == ADDR_EXPR)
			assemble_external (TREE_OPERAND (yyval.ttype, 0));
		      else
			assemble_external (yyval.ttype);
		      TREE_USED (yyval.ttype) = 1;
		    }
		  if (TREE_CODE (yyval.ttype) == CONST_DECL)
		    {
		      /* XXX CHS - should we set TREE_USED of the constant? */
		      yyval.ttype = DECL_INITIAL (yyval.ttype);
		      /* This is to prevent an enum whose value is 0
			 from being considered a null pointer constant.  */
		      yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
		      TREE_CONSTANT (yyval.ttype) = 1;
		    }

		;
    break;}
case 252:
#line 1473 "parse.y"
{
		  got_scope = NULL_TREE;
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    goto do_scoped_id;
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 253:
#line 1480 "parse.y"
{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
    break;}
case 254:
#line 1482 "parse.y"
{ yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
    break;}
case 255:
#line 1484 "parse.y"
{ yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
    break;}
case 256:
#line 1486 "parse.y"
{ yyval.ttype = build_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 257:
#line 1488 "parse.y"
{ yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
    break;}
case 258:
#line 1490 "parse.y"
{
#if 0
		  /* This is a future direction of this code, but because
		     build_x_function_call cannot always undo what is done
		     in build_component_ref entirely yet, we cannot do this. */
		  yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, yyval.ttype);
		  if (TREE_CODE (yyval.ttype) == CALL_EXPR
		      && TREE_TYPE (yyval.ttype) != void_type_node)
		    yyval.ttype = require_complete_type (yyval.ttype);
#else
		  yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
					  (LOOKUP_NORMAL|LOOKUP_AGGR));
#endif
		;
    break;}
case 259:
#line 1505 "parse.y"
{
#if 0
		  /* This is a future direction of this code, but because
		     build_x_function_call cannot always undo what is done
		     in build_component_ref entirely yet, we cannot do this. */
		  yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, yyval.ttype);
		  if (TREE_CODE (yyval.ttype) == CALL_EXPR
		      && TREE_TYPE (yyval.ttype) != void_type_node)
		    yyval.ttype = require_complete_type (yyval.ttype);
#else
		  yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
					  (LOOKUP_NORMAL|LOOKUP_AGGR));
#endif
		;
    break;}
case 260:
#line 1520 "parse.y"
{
		  if (IS_SIGNATURE (IDENTIFIER_TYPE_VALUE (OP0 (yyvsp[-3].ttype))))
		    {
		      warning ("signature name in scope resolution ignored");
		      yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
					      (LOOKUP_NORMAL|LOOKUP_AGGR));
		    }
		  else
		    yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
		;
    break;}
case 261:
#line 1531 "parse.y"
{
		  if (IS_SIGNATURE (IDENTIFIER_TYPE_VALUE (OP0 (yyvsp[-1].ttype))))
		    {
		      warning ("signature name in scope resolution ignored");
		      yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
					      (LOOKUP_NORMAL|LOOKUP_AGGR));
		    }
		  else
		    yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
		;
    break;}
case 262:
#line 1543 "parse.y"
{ 
		  if (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) 
		      != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype))))
		    cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
		  yyval.ttype = void_zero_node;
		;
    break;}
case 263:
#line 1550 "parse.y"
{ 
		  if (yyvsp[-4].ttype != yyvsp[-1].ttype)
		    cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
		  if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
		      != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
		    cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
		  yyval.ttype = void_zero_node; 
		;
    break;}
case 264:
#line 1599 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 265:
#line 1601 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 266:
#line 1605 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 267:
#line 1607 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 268:
#line 1612 "parse.y"
{ yyval.ttype = true_node; ;
    break;}
case 269:
#line 1614 "parse.y"
{ yyval.ttype = false_node; ;
    break;}
case 271:
#line 1621 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 272:
#line 1626 "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 274:
#line 1639 "parse.y"
{
		  yyval.ttype = build_x_arrow (yyval.ttype);
		;
    break;}
case 275:
#line 1647 "parse.y"
{ tree d = get_decl_list (yyvsp[-2].ttype);
		  int yes = suspend_momentary ();
		  d = start_decl (yyvsp[-1].ttype, d, 0, NULL_TREE);
		  finish_decl (d, NULL_TREE, NULL_TREE, 0);
		  resume_momentary (yes);
		  if (IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ttype)))
		    note_got_semicolon (yyvsp[-2].ttype);
		;
    break;}
case 276:
#line 1656 "parse.y"
{ tree d = yyvsp[-2].ttype;
		  int yes = suspend_momentary ();
		  d = start_decl (yyvsp[-1].ttype, d, 0, NULL_TREE);
		  finish_decl (d, NULL_TREE, NULL_TREE, 0);
		  resume_momentary (yes);
		  note_list_got_semicolon (yyvsp[-2].ttype);
		;
    break;}
case 277:
#line 1664 "parse.y"
{
		  resume_momentary (yyvsp[-1].itype);
		  if (IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ttype)))
		    note_got_semicolon (yyvsp[-2].ttype);
		;
    break;}
case 278:
#line 1670 "parse.y"
{
		  resume_momentary (yyvsp[-1].itype);
		  note_list_got_semicolon (yyvsp[-2].ttype);
		;
    break;}
case 279:
#line 1675 "parse.y"
{ resume_momentary (yyvsp[-1].itype); ;
    break;}
case 280:
#line 1677 "parse.y"
{
		  shadow_tag (yyvsp[-1].ttype);
		  note_list_got_semicolon (yyvsp[-1].ttype);
		;
    break;}
case 281:
#line 1682 "parse.y"
{ warning ("empty declaration"); ;
    break;}
case 284:
#line 1696 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (),
					 NULL_TREE); ;
    break;}
case 285:
#line 1699 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), 
					 NULL_TREE); ;
    break;}
case 286:
#line 1706 "parse.y"
{ yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 287:
#line 1708 "parse.y"
{ yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 288:
#line 1710 "parse.y"
{ yyval.ttype = build_decl_list (get_decl_list (yyval.ttype), yyvsp[0].ttype); ;
    break;}
case 289:
#line 1712 "parse.y"
{ yyval.ttype = build_decl_list (yyval.ttype, NULL_TREE); ;
    break;}
case 290:
#line 1714 "parse.y"
{ yyval.ttype = build_decl_list (yyval.ttype, NULL_TREE); ;
    break;}
case 293:
#line 1727 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 294:
#line 1729 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 295:
#line 1731 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyval.ttype)); ;
    break;}
case 296:
#line 1733 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyval.ttype)); ;
    break;}
case 297:
#line 1735 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-2].ttype, 
				       chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyval.ttype))); ;
    break;}
case 298:
#line 1741 "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 299:
#line 1746 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 300:
#line 1748 "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 301:
#line 1760 "parse.y"
{ TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 302:
#line 1762 "parse.y"
{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
    break;}
case 303:
#line 1764 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 304:
#line 1767 "parse.y"
{ if (extra_warnings && TREE_STATIC (yyval.ttype))
		    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);
		  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
    break;}
case 305:
#line 1783 "parse.y"
{ yyval.ttype = get_decl_list (yyval.ttype); ;
    break;}
case 306:
#line 1785 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 307:
#line 1787 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 308:
#line 1789 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyval.ttype)); ;
    break;}
case 309:
#line 1794 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
    break;}
case 310:
#line 1796 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 314:
#line 1807 "parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
		  if (flag_ansi)
		    pedwarn ("ANSI C++ forbids `typeof'"); ;
    break;}
case 315:
#line 1811 "parse.y"
{ yyval.ttype = groktypename (yyvsp[-1].ttype);
		  if (flag_ansi)
		    pedwarn ("ANSI C++ forbids `typeof'"); ;
    break;}
case 316:
#line 1815 "parse.y"
{ tree type = TREE_TYPE (yyvsp[-1].ttype);

		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ttype = type;
		    }
		  else
		    {
		      error ("`sigof' applied to non-aggregate expression");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 317:
#line 1829 "parse.y"
{ tree type = groktypename (yyvsp[-1].ttype);

		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ttype = type;
		    }
		  else
		    {
		      error("`sigof' applied to non-aggregate type");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 327:
#line 1868 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 328:
#line 1870 "parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 329:
#line 1875 "parse.y"
{ current_declspecs = yyvsp[-5].ttype;
		  if (TREE_CODE (current_declspecs) != TREE_LIST)
		    current_declspecs = get_decl_list (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;
		    }
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 330:
#line 1890 "parse.y"
{ finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
		  yyval.itype = yyvsp[-2].itype; ;
    break;}
case 331:
#line 1893 "parse.y"
{ tree d;
		  current_declspecs = yyvsp[-4].ttype;
		  if (TREE_CODE (current_declspecs) != TREE_LIST)
		    current_declspecs = get_decl_list (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;
		    }
		  yyval.itype = suspend_momentary ();
		  d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
		  cplus_decl_attributes (d, yyvsp[0].ttype);
		  finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
    break;}
case 332:
#line 1912 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 333:
#line 1916 "parse.y"
{ finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0); ;
    break;}
case 334:
#line 1918 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype);
		  finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 0); ;
    break;}
case 335:
#line 1925 "parse.y"
{ current_declspecs = yyvsp[-5].ttype;
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 336:
#line 1931 "parse.y"
{ finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
		  yyval.itype = yyvsp[-2].itype; ;
    break;}
case 337:
#line 1934 "parse.y"
{ tree d;
		  current_declspecs = yyvsp[-4].ttype;
		  yyval.itype = suspend_momentary ();
		  d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
		  cplus_decl_attributes (d, yyvsp[0].ttype);
		  finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
    break;}
case 338:
#line 1944 "parse.y"
{ current_declspecs = NULL_TREE;
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 339:
#line 1950 "parse.y"
{ finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
		  yyval.itype = yyvsp[-2].itype; ;
    break;}
case 340:
#line 1953 "parse.y"
{ tree d;
		  current_declspecs = NULL_TREE;
		  yyval.itype = suspend_momentary ();
		  d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
		  cplus_decl_attributes (d, yyvsp[0].ttype);
		  finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
    break;}
case 341:
#line 1965 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 342:
#line 1967 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 343:
#line 1972 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 344:
#line 1974 "parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 345:
#line 1979 "parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 346:
#line 1984 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 347:
#line 1986 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 348:
#line 1991 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 349:
#line 1993 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 350:
#line 1995 "parse.y"
{ yyval.ttype = tree_cons (yyvsp[-3].ttype, NULL_TREE, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 351:
#line 1997 "parse.y"
{ yyval.ttype = tree_cons (yyvsp[-5].ttype, NULL_TREE, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 352:
#line 1999 "parse.y"
{ yyval.ttype = tree_cons (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 357:
#line 2015 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 358:
#line 2017 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 360:
#line 2023 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 361:
#line 2026 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 362:
#line 2029 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 363:
#line 2032 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 364:
#line 2039 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 365:
#line 2041 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 366:
#line 2044 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 367:
#line 2046 "parse.y"
{ yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 368:
#line 2048 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 369:
#line 2050 "parse.y"
{ yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 370:
#line 2055 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
    break;}
case 371:
#line 2058 "parse.y"
{ yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
		  resume_momentary ((int) yyvsp[-4].itype);
		  check_for_missing_semicolon (yyvsp[-3].ttype); ;
    break;}
case 372:
#line 2062 "parse.y"
{ yyval.ttype = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
		  check_for_missing_semicolon (yyval.ttype); ;
    break;}
case 373:
#line 2065 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (make_anon_name ()); ;
    break;}
case 374:
#line 2068 "parse.y"
{ yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
		  resume_momentary ((int) yyvsp[-5].itype);
		  check_for_missing_semicolon (yyvsp[-3].ttype); ;
    break;}
case 375:
#line 2072 "parse.y"
{ yyval.ttype = finish_enum (start_enum (make_anon_name()), NULL_TREE);
		  check_for_missing_semicolon (yyval.ttype); ;
    break;}
case 376:
#line 2075 "parse.y"
{ yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 0); ;
    break;}
case 377:
#line 2077 "parse.y"
{ yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 0); ;
    break;}
case 378:
#line 2081 "parse.y"
{
		  int semi;
		  tree id;

#if 0
		  /* Need to rework class nesting in the
		     presence of nested classes, etc.  */
		  shadow_tag (CLASSTYPE_AS_LIST (yyval.ttype)); */
#endif
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  semi = yychar == ';';
		  /* finish_struct nukes this anyway; if
		     finish_exception does too, then it can go. */
		  if (semi)
		    note_got_semicolon (yyval.ttype);

		  if (TREE_CODE (yyval.ttype) == ENUMERAL_TYPE)
		    /* $$ = $1 from default rule.  */;
		  else if (CLASSTYPE_DECLARED_EXCEPTION (yyval.ttype))
		    {
		    }
		  else
		    {
		      yyval.ttype = finish_struct (yyval.ttype, yyvsp[-1].ttype, semi);
		      if (semi) note_got_semicolon (yyval.ttype);
		    }

		  pop_obstacks ();

		  id = TYPE_IDENTIFIER (yyval.ttype);
		  if (id && IDENTIFIER_TEMPLATE (id))
		    {
		      tree decl;

		      /* I don't know if the copying of this TYPE_DECL is
		       * really needed.  However, it's such a small per-
		       * formance penalty that the extra safety is a bargain.
		       * - niklas@appli.se
		       */
		      push_obstacks (&permanent_obstack, &permanent_obstack);
		      decl = copy_node (lookup_name (id, 0));
		      if (DECL_LANG_SPECIFIC (decl))
			copy_lang_decl (decl);
		      pop_obstacks ();
		      undo_template_name_overload (id, 0);
		      pushdecl_top_level (decl);
		    }
		  if (! semi)
		    check_for_missing_semicolon (yyval.ttype); ;
    break;}
case 379:
#line 2132 "parse.y"
{
#if 0
  /* It's no longer clear what the following error is supposed to
     accomplish.  If it turns out to be needed, add a comment why.  */
		  if (TYPE_BINFO_BASETYPES (yyval.ttype) && !TYPE_SIZE (yyval.ttype))
		    {
		      error ("incomplete definition of type `%s'",
			     TYPE_NAME_STRING (yyval.ttype));
		      yyval.ttype = error_mark_node;
		    }
#endif
		;
    break;}
case 383:
#line 2154 "parse.y"
{ if (pedantic) pedwarn ("comma at end of enumerator list"); ;
    break;}
case 385:
#line 2159 "parse.y"
{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 386:
#line 2161 "parse.y"
{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 387:
#line 2163 "parse.y"
{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 388:
#line 2165 "parse.y"
{ error ("no body nor ';' separates two class, struct or union declarations"); ;
    break;}
case 389:
#line 2170 "parse.y"
{ 
		  yyungetc (';', 1); current_aggr = yyval.ttype; yyval.ttype = yyvsp[-1].ttype; 
		  if (yyvsp[-3].ttype == ridpointers[(int) RID_TEMPLATE])
		    instantiate_class_template (yyval.ttype, 2);
		;
    break;}
case 390:
#line 2179 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 391:
#line 2181 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 392:
#line 2183 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 393:
#line 2185 "parse.y"
{ yyungetc ('{', 1);
		aggr2:
		  current_aggr = yyval.ttype;
		  yyval.ttype = yyvsp[-1].ttype;
		  overload_template_name (yyval.ttype, 0); ;
    break;}
case 394:
#line 2191 "parse.y"
{ yyungetc (':', 1); goto aggr2; ;
    break;}
case 396:
#line 2197 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 397:
#line 2201 "parse.y"
{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 398:
#line 2204 "parse.y"
{ yyval.ttype = xref_defn_tag (current_aggr, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 399:
#line 2209 "parse.y"
{
		  if (yyvsp[0].ttype)
		    yyval.ttype = xref_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype, 1);
		  else
		    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 400:
#line 2218 "parse.y"
{
		  if (yyvsp[0].ttype)
		    yyval.ttype = xref_defn_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 401:
#line 2227 "parse.y"
{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
		  yyungetc ('{', 1); ;
    break;}
case 404:
#line 2235 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 405:
#line 2237 "parse.y"
{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
    break;}
case 406:
#line 2239 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 408:
#line 2245 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 409:
#line 2250 "parse.y"
{
		  tree type;
		 do_base_class1:
		  type = IDENTIFIER_TYPE_VALUE (yyval.ttype);
		  if (! is_aggr_typedef (yyval.ttype, 1))
		    yyval.ttype = NULL_TREE;
		  else if (current_aggr == signature_type_node
			   && (! type) && (! IS_SIGNATURE (type)))
		    {
		      error ("class name not allowed as base signature");
		      yyval.ttype = NULL_TREE;
		    }
		  else if (current_aggr == signature_type_node)
		    {
		      sorry ("signature inheritance, base type `%s' ignored",
			     IDENTIFIER_POINTER (yyval.ttype));
		      yyval.ttype = build_tree_list ((tree)access_public, yyval.ttype);
		    }
		  else if (type && IS_SIGNATURE (type))
		    {
		      error ("signature name not allowed as base class");
		      yyval.ttype = NULL_TREE;
		    }
		  else
		    yyval.ttype = build_tree_list ((tree)access_default, yyval.ttype);
		;
    break;}
case 410:
#line 2277 "parse.y"
{
		  tree type;
		 do_base_class2:
		  type = IDENTIFIER_TYPE_VALUE (yyvsp[0].ttype);
		  if (current_aggr == signature_type_node)
		    error ("access and source specifiers not allowed in signature");
		  if (! is_aggr_typedef (yyvsp[0].ttype, 1))
		    yyval.ttype = NULL_TREE;
		  else if (current_aggr == signature_type_node
			   && (! type) && (! IS_SIGNATURE (type)))
		    {
		      error ("class name not allowed as base signature");
		      yyval.ttype = NULL_TREE;
		    }
		  else if (current_aggr == signature_type_node)
		    {
		      sorry ("signature inheritance, base type `%s' ignored",
			     IDENTIFIER_POINTER (yyval.ttype));
		      yyval.ttype = build_tree_list ((tree)access_public, yyvsp[0].ttype);
		    }
		  else if (type && IS_SIGNATURE (type))
		    {
		      error ("signature name not allowed as base class");
		      yyval.ttype = NULL_TREE;
		    }
		  else
		    yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype);
		;
    break;}
case 412:
#line 2310 "parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
			{
			  sorry ("`sigof' as base signature specifier");
			  /* need to return some dummy signature identifier */
			  yyval.ttype = 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 413:
#line 2332 "parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ttype)))
			{
			  sorry ("`sigof' as base signature specifier");
			  /* need to return some dummy signature identifier */
			  yyval.ttype = 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 415:
#line 2358 "parse.y"
{ if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
		    sorry ("non-virtual access");
		  yyval.itype = access_default_virtual; ;
    break;}
case 416:
#line 2362 "parse.y"
{ int err = 0;
		  if (yyvsp[0].itype == access_protected)
		    {
		      warning ("`protected' access not implemented");
		      yyvsp[0].itype = access_public;
		      err++;
		    }
		  else if (yyvsp[0].itype == access_public)
		    {
		      if (yyvsp[-1].itype == access_private)
			{
			mixed:
			  error ("base class cannot be public and private");
			}
		      else if (yyvsp[-1].itype == access_default_virtual)
			yyval.itype = access_public_virtual;
		    }
		  else /* $2 == access_private */
		    {
		      if (yyvsp[-1].itype == access_public)
			goto mixed;
		      else if (yyvsp[-1].itype == access_default_virtual)
			yyval.itype = access_private_virtual;
		    }
		;
    break;}
case 417:
#line 2388 "parse.y"
{ if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
		    sorry ("non-virtual access");
		  if (yyval.itype == access_public)
		    yyval.itype = access_public_virtual;
		  else if (yyval.itype == access_private)
		    yyval.itype = access_private_virtual; ;
    break;}
case 418:
#line 2397 "parse.y"
{ tree t;
		  push_obstacks_nochange ();
		  end_temporary_allocation ();

		  if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
		    {
		      yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
		      TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
		    }
		  if (TYPE_SIZE (yyvsp[-1].ttype))
		    duplicate_tag_error (yyvsp[-1].ttype);
                  if (TYPE_SIZE (yyvsp[-1].ttype) || TYPE_BEING_DEFINED (yyvsp[-1].ttype))
                    {
                      t = make_lang_type (TREE_CODE (yyvsp[-1].ttype));
                      pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
                      yyvsp[-1].ttype = t;
                    }
		  pushclass (yyvsp[-1].ttype, 0);
		  TYPE_BEING_DEFINED (yyvsp[-1].ttype) = 1;
#if 0
		  t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
		  if (t && IDENTIFIER_TEMPLATE (t))
		    overload_template_name (t, 1);
#endif
		;
    break;}
case 419:
#line 2426 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 420:
#line 2428 "parse.y"
{
		  if (current_aggr == signature_type_node)
		    yyval.ttype = build_tree_list ((tree) access_public, yyval.ttype);
		  else
		    yyval.ttype = build_tree_list ((tree) access_default, yyval.ttype);
		;
    break;}
case 421:
#line 2435 "parse.y"
{
		  tree visspec = (tree) yyvsp[-2].itype;

		  if (current_aggr == signature_type_node)
		    {
		      error ("access specifier not allowed in signature");
		      visspec = (tree) access_public;
		    }
		  yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
		;
    break;}
case 422:
#line 2446 "parse.y"
{
		  if (current_aggr == signature_type_node)
		    error ("access specifier not allowed in signature");
		;
    break;}
case 423:
#line 2456 "parse.y"
{ if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; 
		;
    break;}
case 424:
#line 2459 "parse.y"
{ /* In pushdecl, we created a reverse list of names
		     in this binding level.  Make sure that the chain
		     of what we're trying to add isn't the item itself
		     (which can happen with what pushdecl's doing).  */
		  if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
		    {
		      if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
			yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
		      else
			yyval.ttype = yyvsp[0].ttype;
		    }
		;
    break;}
case 427:
#line 2477 "parse.y"
{ error ("missing ';' before right brace");
		  yyungetc ('}', 0); ;
    break;}
case 428:
#line 2482 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 429:
#line 2484 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 430:
#line 2492 "parse.y"
{
		  yyval.ttype = grok_x_components (yyval.ttype, yyvsp[0].ttype);
		;
    break;}
case 431:
#line 2496 "parse.y"
{ 
		  yyval.ttype = grok_x_components (yyval.ttype, yyvsp[0].ttype);
		;
    break;}
case 432:
#line 2500 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 433:
#line 2503 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 434:
#line 2505 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 435:
#line 2516 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-4].ttype),
					 yyvsp[-2].ttype, yyvsp[0].ttype);
		  yyval.ttype = grokfield (yyval.ttype, TREE_CHAIN (yyvsp[-4].ttype), NULL_TREE, NULL_TREE,
				  NULL_TREE); ;
    break;}
case 436:
#line 2521 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-2].ttype),
					 empty_parms (), yyvsp[0].ttype);
		  yyval.ttype = grokfield (yyval.ttype, TREE_CHAIN (yyvsp[-2].ttype), NULL_TREE, NULL_TREE,
				  NULL_TREE); ;
    break;}
case 437:
#line 2530 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 439:
#line 2533 "parse.y"
{
		  /* In this context, void_type_node encodes
		     friends.  They have been recorded elsewhere.  */
		  if (yyval.ttype == void_type_node)
		    yyval.ttype = yyvsp[0].ttype;
		  else
		    yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
		;
    break;}
case 440:
#line 2545 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 442:
#line 2548 "parse.y"
{
		  /* In this context, void_type_node encodes
		     friends.  They have been recorded elsewhere.  */
		  if (yyval.ttype == void_type_node)
		    yyval.ttype = yyvsp[0].ttype;
		  else
		    yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
		;
    break;}
case 447:
#line 2570 "parse.y"
{ current_declspecs = yyvsp[-4].ttype;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 448:
#line 2574 "parse.y"
{ current_declspecs = yyvsp[-6].ttype;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
    break;}
case 449:
#line 2578 "parse.y"
{ current_declspecs = yyvsp[-4].ttype;
		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 450:
#line 2585 "parse.y"
{ current_declspecs = yyvsp[-4].ttype;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 451:
#line 2589 "parse.y"
{ current_declspecs = yyvsp[-6].ttype;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
    break;}
case 452:
#line 2593 "parse.y"
{ current_declspecs = yyvsp[-4].ttype;
		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 453:
#line 2597 "parse.y"
{ current_declspecs = yyvsp[-3].ttype;
		  yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 454:
#line 2604 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 455:
#line 2607 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
    break;}
case 456:
#line 2610 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 457:
#line 2616 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 458:
#line 2619 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
    break;}
case 459:
#line 2622 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 460:
#line 2625 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 462:
#line 2636 "parse.y"
{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 463:
#line 2641 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
    break;}
case 464:
#line 2643 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 465:
#line 2649 "parse.y"
{ yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 466:
#line 2651 "parse.y"
{ yyval.ttype = build_decl_list (yyval.ttype, NULL_TREE); ;
    break;}
case 467:
#line 2655 "parse.y"
{
		  if (flag_ansi)
		    pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
		  yyval.ttype = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ttype), yyvsp[-1].ttype);
		  yyval.ttype = build_decl_list (TREE_PURPOSE (yyvsp[-4].ttype), yyval.ttype);
		;
    break;}
case 468:
#line 2665 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 469:
#line 2667 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 470:
#line 2672 "parse.y"
{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
    break;}
case 471:
#line 2674 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 472:
#line 2682 "parse.y"
{ yyval.itype = suspend_momentary (); ;
    break;}
case 473:
#line 2683 "parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 474:
#line 2690 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 475:
#line 2692 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 476:
#line 2694 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 477:
#line 2696 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 478:
#line 2698 "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 480:
#line 2706 "parse.y"
{
		  /* Remember that this name has been used in the class
		     definition, as per [class.scope0] */
		  if (current_class_type
		      && TYPE_BEING_DEFINED (current_class_type)
		      && ! IDENTIFIER_CLASS_VALUE (yyval.ttype))
		    {
		      tree t = lookup_name (yyval.ttype, -2);
		      if (t)
			pushdecl_class_level (t);
		    }
		;
    break;}
case 482:
#line 2723 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 483:
#line 2728 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 484:
#line 2730 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 485:
#line 2732 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
    break;}
case 486:
#line 2734 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 487:
#line 2736 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 488:
#line 2738 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 489:
#line 2740 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 490:
#line 2742 "parse.y"
{ push_nested_class (TREE_TYPE (yyval.ttype), 3);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
		  TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
    break;}
case 492:
#line 2753 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 493:
#line 2755 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 494:
#line 2757 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 495:
#line 2759 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 496:
#line 2761 "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 498:
#line 2769 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 499:
#line 2771 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 500:
#line 2773 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 501:
#line 2775 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 502:
#line 2777 "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 504:
#line 2785 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 505:
#line 2787 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 506:
#line 2789 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
    break;}
case 507:
#line 2791 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 508:
#line 2793 "parse.y"
{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
    break;}
case 509:
#line 2795 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 510:
#line 2797 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 511:
#line 2799 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 512:
#line 2804 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 513:
#line 2810 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 515:
#line 2817 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 516:
#line 2822 "parse.y"
{ yyval.ttype = build_functional_cast (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 517:
#line 2824 "parse.y"
{ yyval.ttype = reparse_decl_as_expr (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 518:
#line 2826 "parse.y"
{ yyval.ttype = reparse_absdcl_as_expr (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 522:
#line 2837 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 523:
#line 2844 "parse.y"
{ got_scope = TREE_TYPE (yyval.ttype); ;
    break;}
case 524:
#line 2846 "parse.y"
{ got_scope = TREE_TYPE (yyval.ttype); ;
    break;}
case 526:
#line 2862 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 528:
#line 2868 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 529:
#line 2873 "parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 530:
#line 2875 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
    break;}
case 531:
#line 2882 "parse.y"
{ got_scope = void_type_node; ;
    break;}
case 532:
#line 2888 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 533:
#line 2890 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 534:
#line 2892 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 535:
#line 2894 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 536:
#line 2896 "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 537:
#line 2900 "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 539:
#line 2909 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 540:
#line 2911 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 541:
#line 2917 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 542:
#line 2919 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 543:
#line 2921 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 544:
#line 2923 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 545:
#line 2925 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 546:
#line 2927 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 547:
#line 2929 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 548:
#line 2931 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 549:
#line 2933 "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 550:
#line 2937 "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 552:
#line 2946 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 554:
#line 2950 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 555:
#line 2952 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
    break;}
case 556:
#line 2954 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 557:
#line 2956 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 558:
#line 2958 "parse.y"
{ yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 559:
#line 2960 "parse.y"
{ TREE_OPERAND (yyval.ttype, 2) = yyvsp[0].ttype; ;
    break;}
case 560:
#line 2962 "parse.y"
{ TREE_OPERAND (yyval.ttype, 2) = yyvsp[0].ttype; ;
    break;}
case 561:
#line 2964 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 562:
#line 2966 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 568:
#line 2988 "parse.y"
{ emit_line_note (input_filename, lineno);
		  pushlevel (0);
		  clear_last_expr ();
		  push_momentary ();
		  expand_start_bindings (0); ;
    break;}
case 570:
#line 3000 "parse.y"
{ if (flag_ansi)
		    pedwarn ("ANSI C++ forbids label declarations"); ;
    break;}
case 573:
#line 3011 "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 574:
#line 3025 "parse.y"
{;
    break;}
case 576:
#line 3030 "parse.y"
{ expand_end_bindings (getdecls (), kept_level_p(), 1);
		  yyval.ttype = poplevel (kept_level_p (), 1, 0);
		  pop_momentary (); ;
    break;}
case 577:
#line 3034 "parse.y"
{ expand_end_bindings (getdecls (), kept_level_p(), 1);
		  yyval.ttype = poplevel (kept_level_p (), 1, 0);
		  pop_momentary (); ;
    break;}
case 578:
#line 3038 "parse.y"
{ expand_end_bindings (getdecls (), kept_level_p(), 1);
		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
		  pop_momentary (); ;
    break;}
case 579:
#line 3042 "parse.y"
{ expand_end_bindings (getdecls (), kept_level_p(), 1);
		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
		  pop_momentary (); ;
    break;}
case 580:
#line 3049 "parse.y"
{ cond_stmt_keyword = "if"; ;
    break;}
case 581:
#line 3051 "parse.y"
{ emit_line_note (input_filename, lineno);
		  expand_start_cond (bool_truthvalue_conversion (yyvsp[0].ttype), 0); ;
    break;}
case 583:
#line 3058 "parse.y"
{ finish_stmt (); ;
    break;}
case 584:
#line 3060 "parse.y"
{ expand_end_bindings (getdecls (), kept_level_p (), 1);
		  yyval.ttype = poplevel (kept_level_p (), 1, 0);
		  pop_momentary (); ;
    break;}
case 585:
#line 3067 "parse.y"
{ finish_stmt (); ;
    break;}
case 587:
#line 3073 "parse.y"
{ finish_stmt (); ;
    break;}
case 588:
#line 3075 "parse.y"
{
		  tree expr = yyvsp[-1].ttype;
		  emit_line_note (input_filename, lineno);
		  /* Do default conversion if safe and possibly important,
		     in case within ({...}).  */
		  if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
		       && lvalue_p (expr))
		      || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
		    expr = default_conversion (expr);
		  cplus_expand_expr_stmt (expr);
		  clear_momentary ();
		  finish_stmt (); ;
    break;}
case 589:
#line 3088 "parse.y"
{ expand_start_else (); ;
    break;}
case 590:
#line 3090 "parse.y"
{ expand_end_cond ();
		  expand_end_bindings (getdecls (), kept_level_p (), 1);
		  poplevel (kept_level_p (), 1, 0);
		  pop_momentary ();
		  finish_stmt (); ;
    break;}
case 591:
#line 3096 "parse.y"
{ expand_end_cond ();
		  expand_end_bindings (getdecls (), kept_level_p (), 1);
		  poplevel (kept_level_p (), 1, 0);
		  pop_momentary ();
		  finish_stmt (); ;
    break;}
case 592:
#line 3102 "parse.y"
{ emit_nop ();
		  emit_line_note (input_filename, lineno);
		  expand_start_loop (1);
		  cond_stmt_keyword = "while"; ;
    break;}
case 593:
#line 3107 "parse.y"
{ expand_exit_loop_if_false (0, bool_truthvalue_conversion (yyvsp[0].ttype)); ;
    break;}
case 594:
#line 3109 "parse.y"
{ expand_end_bindings (getdecls (), kept_level_p (), 1);
		  poplevel (kept_level_p (), 1, 0);
		  pop_momentary ();
		  expand_end_loop ();
		  finish_stmt (); ;
    break;}
case 595:
#line 3115 "parse.y"
{ emit_nop ();
		  emit_line_note (input_filename, lineno);
		  expand_start_loop_continue_elsewhere (1); ;
    break;}
case 596:
#line 3119 "parse.y"
{ expand_loop_continue_here ();
		  cond_stmt_keyword = "do"; ;
    break;}
case 597:
#line 3122 "parse.y"
{ emit_line_note (input_filename, lineno);
		  expand_exit_loop_if_false (0, bool_truthvalue_conversion (yyvsp[-1].ttype));
		  expand_end_loop ();
		  clear_momentary ();
		  finish_stmt (); ;
    break;}
case 598:
#line 3128 "parse.y"
{ emit_nop ();
		  emit_line_note (input_filename, lineno);
		  if (yyvsp[0].ttype) cplus_expand_expr_stmt (yyvsp[0].ttype);
		  expand_start_loop_continue_elsewhere (1); ;
    break;}
case 599:
#line 3133 "parse.y"
{ emit_line_note (input_filename, lineno);
		  if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, bool_truthvalue_conversion (yyvsp[-1].ttype)); ;
    break;}
case 600:
#line 3138 "parse.y"
{ push_momentary (); ;
    break;}
case 601:
#line 3140 "parse.y"
{ emit_line_note (input_filename, lineno);
		  expand_end_bindings (getdecls (), kept_level_p (), 1);
		  poplevel (kept_level_p (), 1, 0);
		  pop_momentary ();
		  expand_loop_continue_here ();
		  if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
		  pop_momentary ();
		  expand_end_loop ();
		  finish_stmt (); ;
    break;}
case 602:
#line 3150 "parse.y"
{ emit_nop ();
		  emit_line_note (input_filename, lineno);
		  expand_start_loop_continue_elsewhere (1); ;
    break;}
case 603:
#line 3154 "parse.y"
{ emit_line_note (input_filename, lineno);
		  if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, bool_truthvalue_conversion (yyvsp[-1].ttype)); ;
    break;}
case 604:
#line 3159 "parse.y"
{ push_momentary ();
		  yyvsp[0].itype = lineno; ;
    break;}
case 605:
#line 3162 "parse.y"
{ emit_line_note (input_filename, (int) yyvsp[-2].itype);
		  expand_end_bindings (getdecls (), kept_level_p (), 1);
		  poplevel (kept_level_p (), 1, 0);
		  pop_momentary ();
		  expand_loop_continue_here ();
		  if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
		  pop_momentary ();
		  expand_end_loop ();
		  finish_stmt ();
		;
    break;}
case 606:
#line 3173 "parse.y"
{ emit_line_note (input_filename, lineno);
		  c_expand_start_case (yyvsp[-1].ttype); 
		  /* Don't let the tree nodes for $4 be discarded by
		     clear_momentary during the parsing of the next stmt.  */
		  push_momentary (); ;
    break;}
case 607:
#line 3179 "parse.y"
{ expand_end_case (yyvsp[-3].ttype);
		  pop_momentary ();
		  expand_end_bindings (getdecls (), kept_level_p (), 1);
		  poplevel (kept_level_p (), 1, 0);
		  pop_momentary ();
		  finish_stmt (); ;
    break;}
case 608:
#line 3186 "parse.y"
{ register tree value = check_cp_case_value (yyvsp[-1].ttype);
		  register tree label
		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);

		  if (value != error_mark_node)
		    {
		      tree duplicate;
		      int success = pushcase (value, convert_and_check,
					      label, &duplicate);
		      if (success == 1)
			cp_error ("case label `%E' not within a switch statement", yyvsp[-1].ttype);
		      else if (success == 2)
			{
			  cp_error ("duplicate case value `%E'", yyvsp[-1].ttype);
			  cp_error_at ("`%E' previously used here", duplicate);
			}
		      else if (success == 3)
			warning ("case value out of range");
		      else if (success == 5)
			cp_error ("case label `%E' within scope of cleanup or variable array", yyvsp[-1].ttype);
		    }
		  define_case_label (label);
		;
    break;}
case 610:
#line 3211 "parse.y"
{ register tree value1 = check_cp_case_value (yyvsp[-3].ttype);
		  register tree value2 = check_cp_case_value (yyvsp[-1].ttype);
		  register tree label
		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);

		  if (flag_ansi)
		    pedwarn ("ANSI C++ forbids range expressions in switch statement");
		  if (value1 != error_mark_node
		      && value2 != error_mark_node)
		    {
		      tree duplicate;
		      int success = pushcase_range (value1, value2,
						    convert_and_check, label,
						    &duplicate);
		      if (success == 1)
			error ("case label not within a switch statement");
		      else if (success == 2)
			{
			  error ("duplicate (or overlapping) case value");
			  error_with_decl (duplicate, "this is the first entry overlapping that value");
			}
		      else if (success == 3)
			warning ("case value out of range");
		      else if (success == 4)
			warning ("empty range specified");
		      else if (success == 5)
			error ("case label within scope of cleanup or variable array");
		    }
		  define_case_label (label);
		;
    break;}
case 612:
#line 3243 "parse.y"
{
		  tree duplicate;
		  register tree label
		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
		  int success = pushcase (NULL_TREE, 0, label, &duplicate);
		  if (success == 1)
		    error ("default label not within a switch statement");
		  else if (success == 2)
		    {
		      error ("multiple default labels in one switch");
		      error_with_decl (duplicate, "this is the first default label");
		    }
		  define_case_label (NULL_TREE);
		;
    break;}
case 614:
#line 3259 "parse.y"
{ emit_line_note (input_filename, lineno);
		  if ( ! expand_exit_something ())
		    error ("break statement not within loop or switch"); ;
    break;}
case 615:
#line 3263 "parse.y"
{ emit_line_note (input_filename, lineno);
		  if (! expand_continue_loop (0))
		    error ("continue statement not within a loop"); ;
    break;}
case 616:
#line 3267 "parse.y"
{ emit_line_note (input_filename, lineno);
		  c_expand_return (NULL_TREE); ;
    break;}
case 617:
#line 3270 "parse.y"
{ emit_line_note (input_filename, lineno);
		  c_expand_return (yyvsp[-1].ttype);
		  finish_stmt ();
		;
    break;}
case 618:
#line 3275 "parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
		  emit_line_note (input_filename, lineno);
		  expand_asm (yyvsp[-2].ttype);
		  finish_stmt ();
		;
    break;}
case 619:
#line 3282 "parse.y"
{ if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
		  emit_line_note (input_filename, lineno);
		  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
					 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
					 input_filename, lineno);
		  finish_stmt ();
		;
    break;}
case 620:
#line 3291 "parse.y"
{ if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
		  emit_line_note (input_filename, lineno);
		  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
					 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
					 input_filename, lineno);
		  finish_stmt ();
		;
    break;}
case 621:
#line 3301 "parse.y"
{ if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
		  emit_line_note (input_filename, lineno);
		  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
					 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
					 input_filename, lineno);
		  finish_stmt ();
		;
    break;}
case 622:
#line 3309 "parse.y"
{ emit_line_note (input_filename, lineno);
		  expand_computed_goto (yyvsp[-1].ttype); ;
    break;}
case 623:
#line 3312 "parse.y"
{ tree decl;
		  emit_line_note (input_filename, lineno);
		  decl = lookup_label (yyvsp[-1].ttype);
		  TREE_USED (decl) = 1;
		  expand_goto (decl); ;
    break;}
case 624:
#line 3318 "parse.y"
{ finish_stmt (); ;
    break;}
case 625:
#line 3320 "parse.y"
{ error ("label must be followed by statement");
		  yyungetc ('}', 0);
		  finish_stmt (); ;
    break;}
case 626:
#line 3324 "parse.y"
{ finish_stmt (); ;
    break;}
case 628:
#line 3330 "parse.y"
{ expand_start_try_stmts (); ;
    break;}
case 629:
#line 3332 "parse.y"
{ expand_end_try_stmts ();
		  expand_start_all_catch (); ;
    break;}
case 630:
#line 3335 "parse.y"
{ expand_end_all_catch (); ;
    break;}
case 631:
#line 3343 "parse.y"
{ expand_end_bindings (0,1,1);
		  poplevel (2,0,0);
		;
    break;}
case 632:
#line 3347 "parse.y"
{ expand_end_bindings (0,1,1);
		  poplevel (2,0,0);
		;
    break;}
case 633:
#line 3351 "parse.y"
{ expand_end_bindings (0,1,1);
		  poplevel (2,0,0);
		;
    break;}
case 635:
#line 3359 "parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 636:
#line 3361 "parse.y"
{ expand_end_catch_block (); ;
    break;}
case 639:
#line 3371 "parse.y"
{ expand_start_catch_block (NULL_TREE, NULL_TREE); ;
    break;}
case 640:
#line 3383 "parse.y"
{ expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ttype),
					    TREE_VALUE (yyvsp[-1].ttype)); ;
    break;}
case 641:
#line 3389 "parse.y"
{ tree label;
		do_label:
		  label = define_label (input_filename, lineno, yyvsp[-1].ttype);
		  if (label)
		    expand_label (label);
		;
    break;}
case 642:
#line 3396 "parse.y"
{ goto do_label; ;
    break;}
case 643:
#line 3401 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 644:
#line 3403 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 645:
#line 3405 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 646:
#line 3410 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 647:
#line 3412 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 648:
#line 3414 "parse.y"
{ yyval.itype = 1; ;
    break;}
case 649:
#line 3416 "parse.y"
{ yyval.itype = -1; ;
    break;}
case 650:
#line 3423 "parse.y"
{ emit_line_note (input_filename, lineno);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 651:
#line 3426 "parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 652:
#line 3431 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 654:
#line 3434 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 655:
#line 3440 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 658:
#line 3447 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 659:
#line 3452 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 660:
#line 3457 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
    break;}
case 661:
#line 3459 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 662:
#line 3469 "parse.y"
{
		  if (strict_prototype)
		    yyval.ttype = void_list_node;
		  else
		    yyval.ttype = NULL_TREE;
		;
    break;}
case 664:
#line 3477 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, void_list_node);
		  TREE_PARMLIST (yyval.ttype) = 1; ;
    break;}
case 665:
#line 3485 "parse.y"
{
		  yyval.ttype = chainon (yyval.ttype, void_list_node);
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 666:
#line 3490 "parse.y"
{
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 667:
#line 3495 "parse.y"
{
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 668:
#line 3499 "parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); 
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 669:
#line 3504 "parse.y"
{
		  /* ARM $8.2.5 has this as a boxed-off comment.  */
		  if (pedantic)
		    warning ("use of `...' without a first argument is non-portable");
		  yyval.ttype = NULL_TREE;
		;
    break;}
case 670:
#line 3511 "parse.y"
{
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 671:
#line 3515 "parse.y"
{
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 672:
#line 3519 "parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype);
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 673:
#line 3524 "parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = chainon (yyval.ttype, void_list_node);
		  TREE_PARMLIST (yyval.ttype) = 1;
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 674:
#line 3535 "parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, void_list_node);
		  TREE_PARMLIST (yyval.ttype) = 1;
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 675:
#line 3550 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 676:
#line 3552 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 677:
#line 3554 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 678:
#line 3556 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
    break;}
case 679:
#line 3558 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 680:
#line 3560 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
    break;}
case 682:
#line 3566 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 683:
#line 3589 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 684:
#line 3591 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 685:
#line 3593 "parse.y"
{ yyval.ttype = build_tree_list (get_decl_list (yyval.ttype), yyvsp[0].ttype); ;
    break;}
case 686:
#line 3595 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 687:
#line 3597 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, NULL_TREE); ;
    break;}
case 688:
#line 3599 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 691:
#line 3608 "parse.y"
{ see_typename (); ;
    break;}
case 692:
#line 3631 "parse.y"
{
		  warning ("type specifier omitted for parameter");
		  yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-1].ttype)), NULL_TREE);
		;
    break;}
case 693:
#line 3636 "parse.y"
{
		  warning ("type specifier omitted for parameter");
		  yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-2].ttype)), yyval.ttype);
		;
    break;}
case 694:
#line 3644 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 695:
#line 3646 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 696:
#line 3651 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
    break;}
case 698:
#line 3657 "parse.y"
{
		  TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 699:
#line 3665 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 700:
#line 3667 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 701:
#line 3669 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 702:
#line 3671 "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 703:
#line 3677 "parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 704:
#line 3682 "parse.y"
{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
    break;}
case 705:
#line 3684 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
    break;}
case 706:
#line 3686 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
    break;}
case 707:
#line 3688 "parse.y"
{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
    break;}
case 708:
#line 3690 "parse.y"
{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
    break;}
case 709:
#line 3692 "parse.y"
{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
    break;}
case 710:
#line 3694 "parse.y"
{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
    break;}
case 711:
#line 3696 "parse.y"
{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
    break;}
case 712:
#line 3698 "parse.y"
{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
    break;}
case 713:
#line 3700 "parse.y"
{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
    break;}
case 714:
#line 3702 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 715:
#line 3704 "parse.y"
{ yyval.ttype = ansi_opname[LT_EXPR]; ;
    break;}
case 716:
#line 3706 "parse.y"
{ yyval.ttype = ansi_opname[GT_EXPR]; ;
    break;}
case 717:
#line 3708 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 718:
#line 3710 "parse.y"
{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
    break;}
case 719:
#line 3712 "parse.y"
{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
    break;}
case 720:
#line 3714 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 721:
#line 3716 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 722:
#line 3718 "parse.y"
{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
    break;}
case 723:
#line 3720 "parse.y"
{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
    break;}
case 724:
#line 3722 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
    break;}
case 725:
#line 3724 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
    break;}
case 726:
#line 3726 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
    break;}
case 727:
#line 3728 "parse.y"
{ yyval.ttype = ansi_opname[COND_EXPR]; ;
    break;}
case 728:
#line 3730 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 729:
#line 3732 "parse.y"
{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
    break;}
case 730:
#line 3734 "parse.y"
{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
    break;}
case 731:
#line 3736 "parse.y"
{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
    break;}
case 732:
#line 3738 "parse.y"
{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
    break;}
case 733:
#line 3740 "parse.y"
{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
    break;}
case 734:
#line 3742 "parse.y"
{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
    break;}
case 735:
#line 3744 "parse.y"
{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
    break;}
case 736:
#line 3746 "parse.y"
{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
    break;}
case 737:
#line 3749 "parse.y"
{ yyval.ttype = grokoptypename (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 738:
#line 3751 "parse.y"
{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 327 "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;
      yyerror("parse error");
    }

  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;
}
#line 3754 "parse.y"

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.