compiler/libec: Fixed parsing memory leaks
[sdk] / compiler / libec / src / grammar.ec
1 /* A Bison parser, made by GNU Bison 2.0.  */
2
3 /* Skeleton parser for Yacc-like parsing with Bison,
4    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2, or (at your option)
9    any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place - Suite 330,
19    Boston, MA 02111-1307, USA.  */
20
21 /* As a special exception, when this file is copied by Bison into a
22    Bison output file, you may use that output file without restriction.
23    This special exception was added by the Free Software Foundation
24    in version 1.24 of Bison.  */
25
26 /* Written by Richard Stallman by simplifying the original so called
27    ``semantic'' parser.  */
28
29 /* All symbols defined below should begin with yy or YY, to avoid
30    infringing on user name space.  This should be done even for local
31    variables, as they might otherwise be expanded by user macros.
32    There are some unavoidable exceptions within include files to
33    define necessary library symbols; they are noted "INFRINGES ON
34    USER NAME SPACE" below.  */
35
36 /* Identify Bison output.  */
37 #define YYBISON 1
38
39 /* Skeleton name.  */
40 #define YYSKELETON_NAME "yacc.c"
41
42 /* Pure parsers.  */
43 #define YYPURE 0
44
45 /* Using locations.  */
46 #define YYLSP_NEEDED 1
47
48
49
50 /* Tokens.  */
51 #ifndef YYTOKENTYPE
52 # define YYTOKENTYPE
53    /* Put the tokens into the symbol table, so that GDB and other debuggers
54       know about them.  */
55    enum yytokentype {
56      IDENTIFIER = 258,
57      CONSTANT = 259,
58      STRING_LITERAL = 260,
59      SIZEOF = 261,
60      PTR_OP = 262,
61      INC_OP = 263,
62      DEC_OP = 264,
63      LEFT_OP = 265,
64      RIGHT_OP = 266,
65      LE_OP = 267,
66      GE_OP = 268,
67      EQ_OP = 269,
68      NE_OP = 270,
69      AND_OP = 271,
70      OR_OP = 272,
71      MUL_ASSIGN = 273,
72      DIV_ASSIGN = 274,
73      MOD_ASSIGN = 275,
74      ADD_ASSIGN = 276,
75      SUB_ASSIGN = 277,
76      LEFT_ASSIGN = 278,
77      RIGHT_ASSIGN = 279,
78      AND_ASSIGN = 280,
79      XOR_ASSIGN = 281,
80      OR_ASSIGN = 282,
81      TYPE_NAME = 283,
82      TYPEDEF = 284,
83      EXTERN = 285,
84      STATIC = 286,
85      AUTO = 287,
86      REGISTER = 288,
87      CHAR = 289,
88      SHORT = 290,
89      INT = 291,
90      UINT = 292,
91      INT64 = 293,
92      LONG = 294,
93      SIGNED = 295,
94      UNSIGNED = 296,
95      FLOAT = 297,
96      DOUBLE = 298,
97      CONST = 299,
98      VOLATILE = 300,
99      VOID = 301,
100      VALIST = 302,
101      STRUCT = 303,
102      UNION = 304,
103      ENUM = 305,
104      ELLIPSIS = 306,
105      CASE = 307,
106      DEFAULT = 308,
107      IF = 309,
108      SWITCH = 310,
109      WHILE = 311,
110      DO = 312,
111      FOR = 313,
112      GOTO = 314,
113      CONTINUE = 315,
114      BREAK = 316,
115      RETURN = 317,
116      IFX = 318,
117      ELSE = 319,
118      CLASS = 320,
119      THISCLASS = 321,
120      CLASS_NAME = 322,
121      PROPERTY = 323,
122      SETPROP = 324,
123      GETPROP = 325,
124      NEWOP = 326,
125      RENEW = 327,
126      DELETE = 328,
127      EXT_DECL = 329,
128      EXT_STORAGE = 330,
129      IMPORT = 331,
130      DEFINE = 332,
131      VIRTUAL = 333,
132      EXT_ATTRIB = 334,
133      PUBLIC = 335,
134      PRIVATE = 336,
135      TYPED_OBJECT = 337,
136      ANY_OBJECT = 338,
137      _INCREF = 339,
138      EXTENSION = 340,
139      ASM = 341,
140      TYPEOF = 342,
141      WATCH = 343,
142      STOPWATCHING = 344,
143      FIREWATCHERS = 345,
144      WATCHABLE = 346,
145      CLASS_DESIGNER = 347,
146      CLASS_NO_EXPANSION = 348,
147      CLASS_FIXED = 349,
148      ISPROPSET = 350,
149      CLASS_DEFAULT_PROPERTY = 351,
150      PROPERTY_CATEGORY = 352,
151      CLASS_DATA = 353,
152      CLASS_PROPERTY = 354,
153      SUBCLASS = 355,
154      NAMESPACE = 356,
155      NEW0OP = 357,
156      RENEW0 = 358,
157      VAARG = 359,
158      DBTABLE = 360,
159      DBFIELD = 361,
160      DBINDEX = 362,
161      DATABASE_OPEN = 363
162    };
163 #endif
164 #define IDENTIFIER 258
165 #define CONSTANT 259
166 #define STRING_LITERAL 260
167 #define SIZEOF 261
168 #define PTR_OP 262
169 #define INC_OP 263
170 #define DEC_OP 264
171 #define LEFT_OP 265
172 #define RIGHT_OP 266
173 #define LE_OP 267
174 #define GE_OP 268
175 #define EQ_OP 269
176 #define NE_OP 270
177 #define AND_OP 271
178 #define OR_OP 272
179 #define MUL_ASSIGN 273
180 #define DIV_ASSIGN 274
181 #define MOD_ASSIGN 275
182 #define ADD_ASSIGN 276
183 #define SUB_ASSIGN 277
184 #define LEFT_ASSIGN 278
185 #define RIGHT_ASSIGN 279
186 #define AND_ASSIGN 280
187 #define XOR_ASSIGN 281
188 #define OR_ASSIGN 282
189 #define TYPE_NAME 283
190 #define TYPEDEF 284
191 #define EXTERN 285
192 #define STATIC 286
193 #define AUTO 287
194 #define REGISTER 288
195 #define CHAR 289
196 #define SHORT 290
197 #define INT 291
198 #define UINT 292
199 #define INT64 293
200 #define LONG 294
201 #define SIGNED 295
202 #define UNSIGNED 296
203 #define FLOAT 297
204 #define DOUBLE 298
205 #define CONST 299
206 #define VOLATILE 300
207 #define VOID 301
208 #define VALIST 302
209 #define STRUCT 303
210 #define UNION 304
211 #define ENUM 305
212 #define ELLIPSIS 306
213 #define CASE 307
214 #define DEFAULT 308
215 #define IF 309
216 #define SWITCH 310
217 #define WHILE 311
218 #define DO 312
219 #define FOR 313
220 #define GOTO 314
221 #define CONTINUE 315
222 #define BREAK 316
223 #define RETURN 317
224 #define IFX 318
225 #define ELSE 319
226 #define CLASS 320
227 #define THISCLASS 321
228 #define CLASS_NAME 322
229 #define PROPERTY 323
230 #define SETPROP 324
231 #define GETPROP 325
232 #define NEWOP 326
233 #define RENEW 327
234 #define DELETE 328
235 #define EXT_DECL 329
236 #define EXT_STORAGE 330
237 #define IMPORT 331
238 #define DEFINE 332
239 #define VIRTUAL 333
240 #define EXT_ATTRIB 334
241 #define PUBLIC 335
242 #define PRIVATE 336
243 #define TYPED_OBJECT 337
244 #define ANY_OBJECT 338
245 #define _INCREF 339
246 #define EXTENSION 340
247 #define ASM 341
248 #define TYPEOF 342
249 #define WATCH 343
250 #define STOPWATCHING 344
251 #define FIREWATCHERS 345
252 #define WATCHABLE 346
253 #define CLASS_DESIGNER 347
254 #define CLASS_NO_EXPANSION 348
255 #define CLASS_FIXED 349
256 #define ISPROPSET 350
257 #define CLASS_DEFAULT_PROPERTY 351
258 #define PROPERTY_CATEGORY 352
259 #define CLASS_DATA 353
260 #define CLASS_PROPERTY 354
261 #define SUBCLASS 355
262 #define NAMESPACE 356
263 #define NEW0OP 357
264 #define RENEW0 358
265 #define VAARG 359
266 #define DBTABLE 360
267 #define DBFIELD 361
268 #define DBINDEX 362
269 #define DATABASE_OPEN 363
270
271
272
273
274 /* Copy the first part of user declarations.  */
275 #line 1 "grammar.y"
276
277 import "ecdefs"
278
279 #define YYLTYPE Location
280
281 #ifndef YYLLOC_DEFAULT
282 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
283   (Current).start = (Rhs)[1].start;      \
284   (Current).end = (Rhs)[N].end;
285 #endif
286
287 #define PRECOMPILER
288 extern File fileInput;
289 extern char * yytext;
290 OldList * ast;
291 int yylex();
292 int yyerror();
293 bool guess;
294 bool deleteWatchable = false;
295
296 #define MAX_STRUCT_LEVELS     256
297 AccessMode memberAccessStack[MAX_STRUCT_LEVELS];
298 int defaultMemberAccess = -1;
299
300 #define POP_DEFAULT_ACCESS    if(defaultMemberAccess > -1) defaultMemberAccess--;
301
302 #define uint _uint
303 default:
304
305
306
307 /* Enabling traces.  */
308 #ifndef YYDEBUG
309 # define YYDEBUG 1
310 #endif
311
312 /* Enabling verbose error messages.  */
313 #ifdef YYERROR_VERBOSE
314 # undef YYERROR_VERBOSE
315 # define YYERROR_VERBOSE 1
316 #else
317 # define YYERROR_VERBOSE 0
318 #endif
319
320 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
321 #line 34 "grammar.y"
322 typedef union YYSTYPE {
323    SpecifierType specifierType;
324    int i;
325    AccessMode declMode;
326    Identifier id;
327    Expression exp;
328    Specifier specifier;
329    OldList * list;
330    Enumerator enumerator;
331    Declarator declarator;
332    Pointer pointer;
333    Initializer initializer;
334    InitDeclarator initDeclarator;
335    TypeName typeName;
336    Declaration declaration;
337    Statement stmt;
338    FunctionDefinition function;
339    External external;
340    Context context;
341    AsmField asmField;
342
343    Instantiation instance;
344    MembersInit membersInit;
345    MemberInit memberInit;
346    ClassFunction classFunction;
347    ClassDefinition _class;
348    ClassDef classDef;
349    PropertyDef prop;
350    char * string;
351    Symbol symbol;
352    PropertyWatch propertyWatch;
353    TemplateParameter templateParameter;
354    TemplateArgument templateArgument;
355    TemplateDatatype templateDatatype;
356    
357    DBTableEntry dbtableEntry;
358    DBIndexItem dbindexItem;
359    DBTableDef dbtableDef;
360 } YYSTYPE;
361 /* Line 190 of yacc.c.  */
362 #line 363 "grammar.ec"
363 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
364 # define YYSTYPE_IS_DECLARED 1
365 # define YYSTYPE_IS_TRIVIAL 1
366 #endif
367
368 #if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
369 typedef struct YYLTYPE
370 {
371   int first_line;
372   int first_column;
373   int last_line;
374   int last_column;
375 } YYLTYPE;
376 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
377 # define YYLTYPE_IS_DECLARED 1
378 # define YYLTYPE_IS_TRIVIAL 1
379 #endif
380
381
382 /* Copy the second part of user declarations.  */
383
384
385 /* Line 213 of yacc.c.  */
386 #line 387 "grammar.ec"
387
388 #if ! defined (yyoverflow) || YYERROR_VERBOSE
389
390 # ifndef YYFREE
391 #  define YYFREE free
392 # endif
393 # ifndef YYMALLOC
394 #  define YYMALLOC malloc
395 # endif
396
397 /* The parser invokes alloca or malloc; define the necessary symbols.  */
398
399 # ifdef YYSTACK_USE_ALLOCA
400 #  if YYSTACK_USE_ALLOCA
401 #   ifdef __GNUC__
402 #    define YYSTACK_ALLOC __builtin_alloca
403 #   else
404 #    define YYSTACK_ALLOC alloca
405 #   endif
406 #  endif
407 # endif
408
409 # ifdef YYSTACK_ALLOC
410    /* Pacify GCC's `empty if-body' warning. */
411 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
412 # else
413 #  if defined (__STDC__) || defined (__cplusplus)
414 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
415 #   define YYSIZE_T size_t
416 #  endif
417 #  define YYSTACK_ALLOC YYMALLOC
418 #  define YYSTACK_FREE YYFREE
419 # endif
420 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
421
422
423 #if (! defined (yyoverflow) \
424      && (! defined (__cplusplus) \
425          || (defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \
426              && defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
427
428 /* A type that is properly aligned for any stack member.  */
429 union yyalloc
430 {
431   short int yyss;
432   YYSTYPE yyvs;
433     YYLTYPE yyls;
434 };
435
436 /* The size of the maximum gap between one aligned stack and the next.  */
437 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
438
439 /* The size of an array large to enough to hold all stacks, each with
440    N elements.  */
441 # define YYSTACK_BYTES(N) \
442      ((N) * (sizeof (short int) + sizeof (YYSTYPE) + sizeof (YYLTYPE))  \
443       + 2 * YYSTACK_GAP_MAXIMUM)
444
445 /* Copy COUNT objects from FROM to TO.  The source and destination do
446    not overlap.  */
447 # ifndef YYCOPY
448 #  if defined (__GNUC__) && 1 < __GNUC__
449 #   define YYCOPY(To, From, Count) \
450       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
451 #  else
452 #   define YYCOPY(To, From, Count)              \
453       do                                        \
454         {                                       \
455           register YYSIZE_T yyi;                \
456           for (yyi = 0; yyi < (Count); yyi++)   \
457             (To)[yyi] = (From)[yyi];            \
458         }                                       \
459       while (0)
460 #  endif
461 # endif
462
463 /* Relocate STACK from its old location to the new one.  The
464    local variables YYSIZE and YYSTACKSIZE give the old and new number of
465    elements in the stack, and YYPTR gives the new location of the
466    stack.  Advance YYPTR to a properly aligned location for the next
467    stack.  */
468 # define YYSTACK_RELOCATE(Stack)                                        \
469     do                                                                  \
470       {                                                                 \
471         YYSIZE_T yynewbytes;                                            \
472         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
473         Stack = &yyptr->Stack;                                          \
474         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
475         yyptr += yynewbytes / sizeof (*yyptr);                          \
476       }                                                                 \
477     while (0)
478
479 #endif
480
481 #if defined (__STDC__) || defined (__cplusplus)
482    typedef signed char yysigned_char;
483 #else
484    typedef short int yysigned_char;
485 #endif
486
487 /* YYFINAL -- State number of the termination state. */
488 #define YYFINAL  261
489 /* YYLAST -- Last index in YYTABLE.  */
490 #define YYLAST   36903
491
492 /* YYNTOKENS -- Number of terminals. */
493 #define YYNTOKENS  134
494 /* YYNNTS -- Number of nonterminals. */
495 #define YYNNTS  247
496 /* YYNRULES -- Number of rules. */
497 #define YYNRULES  1271
498 /* YYNRULES -- Number of states. */
499 #define YYNSTATES  2060
500
501 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
502 #define YYUNDEFTOK  2
503 #define YYMAXUTOK   363
504
505 #define YYTRANSLATE(YYX)                                                \
506   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
507
508 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
509 static const unsigned char yytranslate[] =
510 {
511        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
512        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
513        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
514        2,     2,     2,   128,     2,     2,   122,   130,   125,     2,
515      112,   113,   109,   126,   117,   127,   120,   129,     2,     2,
516        2,     2,     2,     2,     2,     2,     2,     2,   121,   115,
517      110,   116,   111,   133,     2,     2,     2,     2,     2,     2,
518        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
519        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
520        2,   123,     2,   124,   131,     2,     2,     2,     2,     2,
521        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
522        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
523        2,     2,     2,   119,   132,   118,   114,     2,     2,     2,
524        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
525        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
526        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
527        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
528        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
529        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
530        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
531        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
532        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
533        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
534        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
535        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
536        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
537        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
538       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
539       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
540       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
541       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
542       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
543       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
544       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
545       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
546       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
547      105,   106,   107,   108
548 };
549
550 #if YYDEBUG
551 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
552    YYRHS.  */
553 static const unsigned short int yyprhs[] =
554 {
555        0,     0,     3,     6,     9,    11,    14,    16,    18,    20,
556       25,    30,    33,    35,    39,    44,    48,    51,    54,    56,
557       60,    63,    66,    69,    72,    75,    78,    81,    84,    86,
558       89,    91,    94,    97,   100,   103,   106,   109,   111,   113,
559      117,   119,   123,   127,   129,   131,   135,   139,   141,   145,
560      149,   153,   157,   159,   162,   165,   167,   169,   172,   175,
561      178,   181,   183,   186,   189,   191,   193,   196,   199,   201,
562      204,   207,   210,   213,   215,   218,   221,   225,   230,   236,
563      241,   245,   250,   253,   257,   262,   268,   273,   277,   282,
564      288,   294,   299,   302,   306,   310,   314,   318,   321,   326,
565      330,   334,   337,   342,   346,   349,   353,   356,   360,   363,
566      365,   368,   372,   376,   380,   383,   385,   389,   393,   395,
567      399,   403,   406,   411,   417,   421,   426,   430,   432,   436,
568      440,   444,   447,   451,   454,   459,   465,   469,   474,   478,
569      480,   484,   488,   491,   493,   496,   499,   502,   504,   507,
570      513,   521,   531,   538,   547,   552,   559,   561,   564,   568,
571      573,   577,   580,   583,   586,   588,   590,   595,   599,   603,
572      607,   610,   613,   616,   621,   623,   626,   628,   632,   636,
573      638,   640,   644,   652,   654,   657,   662,   664,   667,   670,
574      672,   674,   677,   681,   685,   688,   691,   693,   695,   698,
575      701,   703,   706,   709,   712,   715,   717,   720,   722,   724,
576      727,   732,   737,   744,   747,   752,   757,   764,   766,   768,
577      772,   774,   777,   782,   784,   786,   788,   790,   794,   796,
578      798,   800,   804,   808,   812,   816,   820,   824,   826,   830,
579      832,   835,   838,   842,   846,   852,   858,   865,   872,   875,
580      878,   882,   886,   890,   894,   898,   902,   906,   910,   914,
581      918,   922,   924,   926,   930,   932,   934,   939,   944,   950,
582      959,   961,   963,   966,   971,   974,   981,   988,   994,  1000,
583     1007,  1014,  1020,  1026,  1034,  1042,  1049,  1056,  1064,  1072,
584     1079,  1086,  1091,  1097,  1102,  1109,  1114,  1116,  1118,  1120,
585     1122,  1126,  1128,  1131,  1134,  1137,  1139,  1144,  1149,  1153,
586     1158,  1163,  1167,  1171,  1174,  1177,  1182,  1187,  1191,  1196,
587     1200,  1204,  1207,  1210,  1212,  1217,  1222,  1226,  1231,  1236,
588     1240,  1244,  1247,  1250,  1255,  1260,  1264,  1269,  1273,  1277,
589     1280,  1283,  1285,  1287,  1291,  1295,  1297,  1299,  1303,  1307,
590     1310,  1313,  1316,  1319,  1322,  1327,  1330,  1335,  1341,  1347,
591     1349,  1351,  1353,  1355,  1357,  1359,  1361,  1363,  1365,  1367,
592     1369,  1371,  1373,  1378,  1380,  1384,  1388,  1392,  1396,  1400,
593     1404,  1406,  1410,  1414,  1418,  1422,  1424,  1428,  1432,  1436,
594     1440,  1443,  1445,  1448,  1452,  1456,  1460,  1464,  1468,  1472,
595     1476,  1478,  1482,  1486,  1490,  1494,  1498,  1502,  1506,  1510,
596     1512,  1516,  1520,  1524,  1528,  1530,  1534,  1538,  1542,  1546,
597     1548,  1552,  1556,  1560,  1564,  1566,  1570,  1574,  1576,  1580,
598     1584,  1586,  1592,  1598,  1604,  1610,  1616,  1622,  1628,  1634,
599     1640,  1646,  1652,  1658,  1664,  1670,  1676,  1682,  1684,  1688,
600     1692,  1696,  1700,  1704,  1708,  1712,  1716,  1718,  1720,  1722,
601     1724,  1726,  1728,  1730,  1732,  1734,  1736,  1738,  1740,  1744,
602     1748,  1751,  1753,  1757,  1761,  1763,  1765,  1768,  1771,  1775,
603     1779,  1783,  1787,  1793,  1797,  1801,  1805,  1811,  1815,  1819,
604     1821,  1824,  1827,  1831,  1835,  1839,  1843,  1849,  1853,  1857,
605     1861,  1867,  1871,  1875,  1878,  1881,  1884,  1887,  1891,  1894,
606     1900,  1907,  1914,  1916,  1918,  1920,  1922,  1924,  1929,  1931,
607     1935,  1939,  1943,  1947,  1951,  1955,  1957,  1961,  1965,  1969,
608     1973,  1977,  1981,  1985,  1989,  1991,  1995,  1999,  2003,  2007,
609     2009,  2012,  2016,  2020,  2024,  2028,  2032,  2036,  2040,  2042,
610     2046,  2050,  2054,  2058,  2062,  2066,  2070,  2074,  2078,  2082,
611     2086,  2090,  2092,  2096,  2100,  2104,  2108,  2110,  2114,  2118,
612     2122,  2126,  2128,  2132,  2136,  2140,  2144,  2146,  2150,  2154,
613     2156,  2160,  2164,  2166,  2172,  2178,  2184,  2190,  2195,  2200,
614     2205,  2210,  2216,  2222,  2228,  2234,  2239,  2244,  2249,  2254,
615     2260,  2266,  2272,  2278,  2284,  2290,  2296,  2302,  2306,  2310,
616     2313,  2316,  2318,  2322,  2326,  2330,  2334,  2338,  2342,  2344,
617     2347,  2351,  2355,  2359,  2363,  2366,  2369,  2372,  2375,  2377,
618     2380,  2384,  2388,  2390,  2392,  2394,  2396,  2398,  2400,  2402,
619     2404,  2406,  2408,  2410,  2412,  2414,  2418,  2422,  2424,  2428,
620     2431,  2433,  2436,  2439,  2442,  2447,  2452,  2456,  2460,  2465,
621     2471,  2476,  2483,  2490,  2495,  2501,  2506,  2513,  2520,  2523,
622     2526,  2529,  2535,  2539,  2545,  2552,  2558,  2566,  2574,  2583,
623     2592,  2600,  2608,  2612,  2616,  2620,  2625,  2629,  2635,  2641,
624     2643,  2645,  2647,  2649,  2651,  2653,  2655,  2657,  2659,  2661,
625     2664,  2666,  2668,  2670,  2672,  2674,  2676,  2678,  2680,  2682,
626     2684,  2686,  2688,  2690,  2692,  2694,  2696,  2701,  2706,  2711,
627     2713,  2715,  2717,  2719,  2721,  2723,  2725,  2727,  2729,  2731,
628     2733,  2735,  2737,  2739,  2741,  2743,  2745,  2747,  2749,  2754,
629     2759,  2764,  2766,  2768,  2771,  2774,  2778,  2784,  2787,  2791,
630     2797,  2803,  2809,  2811,  2815,  2818,  2821,  2824,  2828,  2832,
631     2836,  2840,  2844,  2848,  2852,  2856,  2858,  2860,  2865,  2869,
632     2872,  2876,  2880,  2884,  2888,  2892,  2896,  2900,  2904,  2908,
633     2912,  2916,  2920,  2922,  2924,  2926,  2929,  2931,  2934,  2936,
634     2939,  2941,  2944,  2946,  2949,  2951,  2954,  2956,  2959,  2961,
635     2964,  2966,  2969,  2971,  2974,  2976,  2979,  2981,  2984,  2986,
636     2989,  2991,  2994,  2996,  2999,  3001,  3004,  3006,  3009,  3011,
637     3014,  3016,  3019,  3021,  3024,  3026,  3029,  3031,  3034,  3036,
638     3039,  3041,  3044,  3046,  3049,  3051,  3054,  3056,  3058,  3060,
639     3063,  3065,  3068,  3070,  3073,  3075,  3078,  3083,  3089,  3091,
640     3093,  3095,  3098,  3100,  3103,  3105,  3108,  3110,  3113,  3118,
641     3124,  3126,  3129,  3131,  3134,  3136,  3139,  3141,  3144,  3146,
642     3149,  3151,  3154,  3159,  3165,  3167,  3170,  3172,  3175,  3177,
643     3180,  3182,  3185,  3187,  3190,  3192,  3195,  3200,  3206,  3210,
644     3214,  3216,  3220,  3224,  3228,  3232,  3234,  3238,  3243,  3248,
645     3253,  3257,  3260,  3264,  3268,  3272,  3276,  3279,  3282,  3285,
646     3289,  3294,  3296,  3298,  3301,  3304,  3306,  3308,  3313,  3315,
647     3319,  3322,  3326,  3330,  3334,  3338,  3343,  3348,  3353,  3356,
648     3360,  3364,  3368,  3373,  3378,  3382,  3385,  3389,  3393,  3397,
649     3402,  3407,  3409,  3412,  3415,  3419,  3421,  3423,  3426,  3429,
650     3432,  3436,  3438,  3440,  3443,  3446,  3449,  3453,  3455,  3458,
651     3462,  3465,  3467,  3470,  3473,  3477,  3481,  3483,  3486,  3489,
652     3493,  3497,  3499,  3502,  3505,  3509,  3513,  3515,  3519,  3524,
653     3526,  3531,  3534,  3540,  3544,  3546,  3548,  3550,  3552,  3554,
654     3556,  3560,  3564,  3567,  3570,  3572,  3576,  3579,  3583,  3587,
655     3589,  3593,  3597,  3599,  3602,  3606,  3610,  3612,  3615,  3617,
656     3620,  3623,  3626,  3629,  3633,  3635,  3637,  3641,  3645,  3647,
657     3651,  3656,  3660,  3665,  3669,  3673,  3678,  3682,  3687,  3689,
658     3693,  3697,  3702,  3706,  3710,  3714,  3719,  3721,  3725,  3729,
659     3733,  3737,  3741,  3743,  3747,  3750,  3752,  3754,  3756,  3758,
660     3760,  3763,  3765,  3767,  3769,  3771,  3774,  3777,  3780,  3782,
661     3784,  3786,  3788,  3790,  3793,  3795,  3797,  3802,  3804,  3808,
662     3809,  3816,  3825,  3836,  3849,  3858,  3869,  3880,  3886,  3894,
663     3904,  3916,  3924,  3934,  3944,  3948,  3953,  3958,  3962,  3966,
664     3970,  3975,  3980,  3984,  3987,  3991,  3994,  3996,  3998,  4000,
665     4002,  4004,  4007,  4011,  4014,  4017,  4020,  4024,  4028,  4031,
666     4037,  4044,  4047,  4050,  4053,  4056,  4059,  4062,  4064,  4067,
667     4070,  4074,  4076,  4079,  4081,  4084,  4087,  4089,  4092,  4095,
668     4098,  4101,  4104,  4107,  4109,  4111,  4114,  4117,  4119,  4121,
669     4124,  4127,  4129,  4132,  4135,  4137,  4140,  4142,  4145,  4148,
670     4154,  4160,  4168,  4176,  4182,  4188,  4192,  4195,  4201,  4206,
671     4211,  4219,  4226,  4233,  4239,  4247,  4254,  4259,  4267,  4277,
672     4281,  4286,  4291,  4297,  4303,  4309,  4316,  4324,  4331,  4338,
673     4344,  4350,  4355,  4359,  4362,  4364,  4367,  4371,  4376,  4380,
674     4385,  4391,  4396,  4400,  4403,  4406,  4409,  4413,  4417,  4421,
675     4425,  4428,  4431,  4433,  4435,  4440,  4444,  4448,  4451,  4456,
676     4460,  4464,  4467,  4469,  4472,  4474,  4476,  4479,  4481,  4484,
677     4488,  4492,  4494,  4497,  4500,  4503,  4507,  4512,  4517,  4520,
678     4523,  4526,  4529,  4531,  4534,  4536,  4539,  4541,  4544,  4547,
679     4549,  4552,  4554,  4557,  4560,  4563,  4566,  4568,  4571,  4574,
680     4578,  4580,  4582,  4583,  4590,  4597,  4603,  4608,  4610,  4613,
681     4616,  4618,  4622,  4626,  4631,  4633,  4635,  4638,  4641,  4648,
682     4655,  4662
683 };
684
685 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
686 static const short int yyrhs[] =
687 {
688      370,     0,    -1,   206,   109,    -1,   206,   110,    -1,   139,
689       -1,   206,   206,    -1,    28,    -1,    28,    -1,   137,    -1,
690      137,   110,   200,   111,    -1,   137,   110,   200,    11,    -1,
691      291,   314,    -1,   314,    -1,   291,   112,   113,    -1,   114,
692      291,   112,   113,    -1,    78,   291,   314,    -1,    78,   314,
693       -1,   291,   315,    -1,   315,    -1,    78,   291,   315,    -1,
694       78,   315,    -1,   140,   354,    -1,   143,   354,    -1,   143,
695      115,    -1,   141,   354,    -1,   142,   354,    -1,   140,   115,
696       -1,   140,   355,    -1,   144,    -1,   143,   355,    -1,   145,
697       -1,   145,   115,    -1,   290,   314,    -1,   290,   316,    -1,
698      290,   315,    -1,   148,   354,    -1,   148,   355,    -1,   149,
699       -1,   148,    -1,   212,   116,   319,    -1,   319,    -1,   212,
700      116,   320,    -1,   212,   116,     1,    -1,   320,    -1,   152,
701       -1,   154,   117,   152,    -1,   155,   117,   152,    -1,   153,
702       -1,   154,   117,   153,    -1,   155,   117,   153,    -1,   154,
703      117,     1,    -1,   155,   117,     1,    -1,   117,    -1,   154,
704      115,    -1,   155,   115,    -1,   156,    -1,   150,    -1,   159,
705      156,    -1,   159,   150,    -1,   157,   156,    -1,   157,   150,
706       -1,   115,    -1,   159,   115,    -1,   157,   115,    -1,   157,
707       -1,   154,    -1,   157,   154,    -1,   159,   154,    -1,   151,
708       -1,   158,   151,    -1,   159,   151,    -1,   157,   151,    -1,
709      157,   155,    -1,   155,    -1,   154,     1,    -1,   161,   118,
710       -1,   161,     1,   118,    -1,   290,   206,   119,   159,    -1,
711      290,   206,   119,   158,     1,    -1,   290,   206,   119,   158,
712       -1,   290,   206,   119,    -1,   290,   206,   119,     1,    -1,
713      163,   118,    -1,   163,     1,   118,    -1,   291,   206,   119,
714      159,    -1,   291,   206,   119,   158,     1,    -1,   291,   206,
715      119,   158,    -1,   291,   206,   119,    -1,   291,   206,   119,
716        1,    -1,   292,   206,   119,   158,   118,    -1,   292,   206,
717      119,   159,   118,    -1,   292,   206,   119,   118,    -1,   166,
718      118,    -1,   166,     1,   118,    -1,   139,   119,   158,    -1,
719      206,   119,   158,    -1,   139,   119,   159,    -1,   139,   119,
720       -1,   139,   119,   158,     1,    -1,   139,   119,     1,    -1,
721      206,   119,   159,    -1,   206,   119,    -1,   206,   119,   158,
722        1,    -1,   206,   119,     1,    -1,   168,   118,    -1,   168,
723        1,   118,    -1,   119,   159,    -1,   119,   158,     1,    -1,
724      119,     1,    -1,   119,    -1,   119,   158,    -1,   212,   116,
725      319,    -1,   212,   116,   320,    -1,   212,   116,     1,    -1,
726      212,     1,    -1,   169,    -1,   171,   117,   169,    -1,   172,
727      117,   169,    -1,   170,    -1,   171,   117,   170,    -1,   172,
728      117,   170,    -1,   171,     1,    -1,    68,   296,   206,   119,
729       -1,    68,   296,   311,   206,   119,    -1,    68,   296,   119,
730       -1,    68,   296,   311,   119,    -1,    68,     1,   119,    -1,
731      173,    -1,   174,    69,   354,    -1,   174,    70,   354,    -1,
732      174,    95,   354,    -1,   174,    91,    -1,   174,    97,   365,
733       -1,   174,   118,    -1,    99,   296,   206,   119,    -1,    99,
734      296,   311,   206,   119,    -1,    99,   296,   119,    -1,    99,
735      296,   311,   119,    -1,    99,     1,   119,    -1,   176,    -1,
736      177,    69,   354,    -1,   177,    70,   354,    -1,   177,   118,
737       -1,   206,    -1,   179,   206,    -1,   179,   354,    -1,    73,
738      354,    -1,   180,    -1,   181,   180,    -1,    88,   112,   179,
739      113,   354,    -1,    88,   112,   233,   113,   119,   181,   118,
740       -1,   233,   120,    88,   112,   233,   113,   119,   181,   118,
741       -1,    89,   112,   233,   117,   179,   113,    -1,   233,   120,
742       89,   112,   233,   117,   179,   113,    -1,    89,   112,   233,
743      113,    -1,   233,   120,    89,   112,   233,   113,    -1,    90,
744       -1,    90,   179,    -1,   212,   120,    90,    -1,   233,   120,
745       90,   179,    -1,   291,   278,   115,    -1,   291,   115,    -1,
746      165,   115,    -1,   162,   115,    -1,   146,    -1,   175,    -1,
747      342,   291,   278,   115,    -1,   342,   291,   115,    -1,   342,
748      165,   115,    -1,   342,   162,   115,    -1,   342,   146,    -1,
749      342,   175,    -1,   171,   115,    -1,    98,   291,   278,   115,
750       -1,   178,    -1,   182,   115,    -1,    91,    -1,    92,   206,
751      115,    -1,    92,   139,   115,    -1,    93,    -1,    94,    -1,
752       96,   206,   115,    -1,    99,   112,   206,   113,   116,   319,
753      115,    -1,   115,    -1,   342,   121,    -1,   342,   112,   206,
754      113,    -1,   147,    -1,   163,     1,    -1,   166,     1,    -1,
755      162,    -1,   165,    -1,   342,   147,    -1,   342,   163,     1,
756       -1,   342,   166,     1,    -1,   342,   162,    -1,   342,   165,
757       -1,   172,    -1,   186,    -1,   188,   186,    -1,   189,   186,
758       -1,   187,    -1,   188,     1,    -1,   189,     1,    -1,   188,
759      187,    -1,   189,   187,    -1,   290,    -1,   290,   311,    -1,
760      206,    -1,   190,    -1,    65,   206,    -1,    65,   206,   116,
761      191,    -1,    65,   206,   121,   190,    -1,    65,   206,   121,
762      190,   116,   191,    -1,    65,   138,    -1,    65,   138,   116,
763      191,    -1,    65,   138,   121,   190,    -1,    65,   138,   121,
764      190,   116,   191,    -1,   206,    -1,   206,    -1,   206,   116,
765      193,    -1,   257,    -1,   190,   206,    -1,   190,   206,   116,
766      195,    -1,   192,    -1,   194,    -1,   196,    -1,   197,    -1,
767      198,   117,   197,    -1,   195,    -1,   193,    -1,   191,    -1,
768      206,   116,   195,    -1,   206,   116,   193,    -1,   206,   116,
769      191,    -1,   190,   116,   195,    -1,   190,   116,   193,    -1,
770      190,   116,   191,    -1,   199,    -1,   200,   117,   199,    -1,
771       65,    -1,   201,   206,    -1,   201,   137,    -1,   206,   201,
772      206,    -1,   206,   201,   137,    -1,   201,   206,   110,   198,
773      111,    -1,   201,   137,   110,   198,   111,    -1,   206,   201,
774      206,   110,   198,   111,    -1,   206,   201,   137,   110,   198,
775      111,    -1,   205,   118,    -1,   204,   115,    -1,   202,   119,
776      118,    -1,   204,   119,   118,    -1,   201,   206,   115,    -1,
777      201,   136,   115,    -1,   202,   121,   295,    -1,   202,   119,
778      189,    -1,   204,   119,   189,    -1,   202,   119,   188,    -1,
779      204,   119,   188,    -1,   202,   119,     1,    -1,   204,   119,
780        1,    -1,     3,    -1,   208,    -1,   112,   235,   113,    -1,
781      206,    -1,   165,    -1,    85,   112,   354,   113,    -1,    85,
782      112,   235,   113,    -1,    85,   112,   326,   113,   317,    -1,
783       85,   112,   326,   113,   112,   326,   113,   317,    -1,     4,
784       -1,   365,    -1,   122,   365,    -1,   122,   365,   120,   365,
785       -1,   112,   113,    -1,    71,   298,   312,   123,   257,   124,
786       -1,    71,   298,   312,   123,   258,   124,    -1,    71,   298,
787      123,   257,   124,    -1,    71,   298,   123,   258,   124,    -1,
788      102,   298,   312,   123,   257,   124,    -1,   102,   298,   312,
789      123,   258,   124,    -1,   102,   298,   123,   257,   124,    -1,
790      102,   298,   123,   258,   124,    -1,    72,   257,   297,   312,
791      123,   257,   124,    -1,    72,   257,   297,   312,   123,   258,
792      124,    -1,    72,   257,   297,   123,   257,   124,    -1,    72,
793      257,   297,   123,   258,   124,    -1,   103,   257,   297,   312,
794      123,   257,   124,    -1,   103,   257,   297,   312,   123,   258,
795      124,    -1,   103,   257,   297,   123,   257,   124,    -1,   103,
796      257,   297,   123,   258,   124,    -1,    65,   112,   290,   113,
797       -1,    65,   112,   290,   311,   113,    -1,    65,   112,   206,
798      113,    -1,   104,   112,   233,   117,   326,   113,    -1,    98,
799      112,   206,   113,    -1,   377,    -1,   378,    -1,   379,    -1,
800      380,    -1,   123,   214,   124,    -1,   167,    -1,   168,     1,
801       -1,   112,   235,    -1,   112,   255,    -1,   207,    -1,   212,
802      123,   235,   124,    -1,   212,   123,   255,   124,    -1,   212,
803      112,   113,    -1,   212,   112,   214,   113,    -1,   212,   112,
804      215,   113,    -1,   212,   120,   206,    -1,   212,     7,   206,
805       -1,   212,     8,    -1,   212,     9,    -1,   237,   123,   235,
806      124,    -1,   237,   123,   255,   124,    -1,   237,   112,   113,
807       -1,   237,   112,   214,   113,    -1,   237,   120,   206,    -1,
808      237,     7,   206,    -1,   237,     8,    -1,   237,     9,    -1,
809      208,    -1,   213,   123,   235,   124,    -1,   213,   123,   255,
810      124,    -1,   213,   112,   113,    -1,   213,   112,   214,   113,
811       -1,   213,   112,   215,   113,    -1,   213,   120,   206,    -1,
812      213,     7,   206,    -1,   213,     8,    -1,   213,     9,    -1,
813      238,   123,   235,   124,    -1,   238,   123,   255,   124,    -1,
814      238,   112,   113,    -1,   238,   112,   214,   113,    -1,   238,
815      120,   206,    -1,   238,     7,   206,    -1,   238,     8,    -1,
816      238,     9,    -1,   233,    -1,   209,    -1,   214,   117,   233,
817       -1,   214,   117,   209,    -1,   254,    -1,   210,    -1,   214,
818      117,   254,    -1,   214,   117,   210,    -1,   214,   117,    -1,
819        8,   217,    -1,     9,   217,    -1,   219,   220,    -1,   219,
820      209,    -1,     6,   112,   217,   113,    -1,     6,   218,    -1,
821        6,   112,   327,   113,    -1,     6,   112,    65,   136,   113,
822       -1,     6,   112,    65,   135,   113,    -1,   216,    -1,   212,
823       -1,   216,    -1,   213,    -1,   125,    -1,   109,    -1,   126,
824       -1,   127,    -1,   114,    -1,   128,    -1,    73,    -1,    84,
825       -1,   217,    -1,   112,   326,   113,   220,    -1,   220,    -1,
826      221,   109,   220,    -1,   221,   129,   220,    -1,   221,   130,
827      220,    -1,   243,   109,   220,    -1,   243,   129,   220,    -1,
828      243,   130,   220,    -1,   221,    -1,   222,   126,   221,    -1,
829      222,   127,   221,    -1,   244,   126,   221,    -1,   244,   127,
830      221,    -1,   222,    -1,   223,    10,   222,    -1,   223,    11,
831      222,    -1,   245,    10,   222,    -1,   245,    11,   222,    -1,
832      225,   110,    -1,   223,    -1,   224,   223,    -1,   225,   111,
833      223,    -1,   225,    12,   223,    -1,   225,    13,   223,    -1,
834      246,   110,   223,    -1,   246,   111,   223,    -1,   246,    12,
835      223,    -1,   246,    13,   223,    -1,   225,    -1,   226,    14,
836      225,    -1,   226,    15,   225,    -1,   247,    14,   225,    -1,
837      247,    15,   225,    -1,   226,    14,   209,    -1,   226,    15,
838      209,    -1,   247,    14,   209,    -1,   247,    15,   209,    -1,
839      226,    -1,   227,   125,   226,    -1,   248,   125,   226,    -1,
840      227,   125,   209,    -1,   248,   125,   209,    -1,   227,    -1,
841      228,   131,   227,    -1,   249,   131,   227,    -1,   228,   131,
842      209,    -1,   249,   131,   209,    -1,   228,    -1,   229,   132,
843      228,    -1,   250,   132,   228,    -1,   229,   132,   209,    -1,
844      250,   132,   209,    -1,   229,    -1,   230,    16,   229,    -1,
845      251,    16,   229,    -1,   230,    -1,   231,    17,   230,    -1,
846      252,    17,   230,    -1,   231,    -1,   231,   133,   235,   121,
847      232,    -1,   231,   133,   255,   121,   232,    -1,   252,   133,
848      235,   121,   232,    -1,   252,   133,   255,   121,   232,    -1,
849      231,   133,   236,   121,   232,    -1,   231,   133,   256,   121,
850      232,    -1,   252,   133,   236,   121,   232,    -1,   252,   133,
851      256,   121,   232,    -1,   231,   133,   235,   121,   209,    -1,
852      231,   133,   255,   121,   209,    -1,   252,   133,   235,   121,
853      209,    -1,   252,   133,   255,   121,   209,    -1,   231,   133,
854      236,   121,   209,    -1,   231,   133,   256,   121,   209,    -1,
855      252,   133,   236,   121,   209,    -1,   252,   133,   256,   121,
856      209,    -1,   232,    -1,   217,   234,   233,    -1,   240,   234,
857      233,    -1,   232,   234,   233,    -1,   253,   234,   233,    -1,
858      217,   234,   209,    -1,   240,   234,   209,    -1,   232,   234,
859      209,    -1,   253,   234,   209,    -1,   116,    -1,    18,    -1,
860       19,    -1,    20,    -1,    21,    -1,    22,    -1,    23,    -1,
861       24,    -1,    25,    -1,    26,    -1,    27,    -1,   233,    -1,
862      235,   117,   233,    -1,   255,   117,   233,    -1,   255,   113,
863       -1,   209,    -1,   235,   117,   209,    -1,   255,   117,   209,
864       -1,   211,    -1,     1,    -1,   212,     1,    -1,   166,     1,
865       -1,   212,     7,     1,    -1,   237,     7,     1,    -1,   212,
866      112,   214,    -1,   212,   112,   215,    -1,   212,   112,   214,
867      117,     1,    -1,   212,   112,     1,    -1,   212,   120,     1,
868       -1,   237,   112,   215,    -1,   237,   112,   214,   117,     1,
869       -1,   237,   112,     1,    -1,   237,   120,     1,    -1,     1,
870       -1,   213,     1,    -1,   166,     1,    -1,   213,     7,     1,
871       -1,   238,     7,     1,    -1,   213,   112,   214,    -1,   213,
872      112,   215,    -1,   213,   112,   214,   117,     1,    -1,   213,
873      112,     1,    -1,   213,   120,     1,    -1,   238,   112,   215,
874       -1,   238,   112,   214,   117,     1,    -1,   238,   112,     1,
875       -1,   238,   120,     1,    -1,     8,   240,    -1,     9,   240,
876       -1,   219,   242,    -1,   219,   210,    -1,     6,   112,   240,
877       -1,     6,   241,    -1,     6,   112,   327,   113,     1,    -1,
878        6,   112,    65,   136,   113,     1,    -1,     6,   112,    65,
879      135,   113,     1,    -1,   239,    -1,   237,    -1,   239,    -1,
880      238,    -1,   240,    -1,   112,   326,   113,   242,    -1,   242,
881       -1,   221,   109,   242,    -1,   221,   129,   242,    -1,   221,
882      130,   242,    -1,   243,   109,   242,    -1,   243,   129,   242,
883       -1,   243,   130,   242,    -1,   243,    -1,   222,   126,   243,
884       -1,   222,   126,     1,    -1,   222,   127,   243,    -1,   222,
885      127,     1,    -1,   244,   126,   243,    -1,   244,   126,     1,
886       -1,   244,   127,   243,    -1,   244,   127,     1,    -1,   244,
887       -1,   223,    10,   244,    -1,   223,    11,   244,    -1,   245,
888       10,   244,    -1,   245,    11,   244,    -1,   245,    -1,   224,
889      245,    -1,   225,   111,   245,    -1,   225,    12,   245,    -1,
890      225,    13,   245,    -1,   246,   110,   245,    -1,   246,   111,
891      245,    -1,   246,    12,   245,    -1,   246,    13,   245,    -1,
892      246,    -1,   226,    14,   246,    -1,   226,    15,   246,    -1,
893      247,    14,   246,    -1,   247,    15,   246,    -1,   226,    14,
894        1,    -1,   226,    15,     1,    -1,   247,    14,     1,    -1,
895      247,    15,     1,    -1,   226,    14,   210,    -1,   226,    15,
896      210,    -1,   247,    14,   210,    -1,   247,    15,   210,    -1,
897      247,    -1,   227,   125,   247,    -1,   248,   125,   247,    -1,
898      227,   125,   210,    -1,   248,   125,   210,    -1,   248,    -1,
899      228,   131,   248,    -1,   249,   131,   248,    -1,   228,   131,
900      210,    -1,   249,   131,   210,    -1,   249,    -1,   229,   132,
901      249,    -1,   250,   132,   249,    -1,   229,   132,   210,    -1,
902      250,   132,   210,    -1,   250,    -1,   230,    16,   250,    -1,
903      251,    16,   250,    -1,   251,    -1,   231,    17,   251,    -1,
904      252,    17,   251,    -1,   252,    -1,   231,   133,   235,   121,
905      252,    -1,   231,   133,   255,   121,   252,    -1,   252,   133,
906      235,   121,   252,    -1,   252,   133,   255,   121,   252,    -1,
907      231,   133,   235,   121,    -1,   231,   133,   255,   121,    -1,
908      252,   133,   235,   121,    -1,   252,   133,   255,   121,    -1,
909      231,   133,   236,   121,   252,    -1,   231,   133,   256,   121,
910      252,    -1,   252,   133,   236,   121,   252,    -1,   252,   133,
911      256,   121,   252,    -1,   231,   133,   236,   121,    -1,   231,
912      133,   256,   121,    -1,   252,   133,   236,   121,    -1,   252,
913      133,   256,   121,    -1,   231,   133,   235,   121,   210,    -1,
914      231,   133,   255,   121,   210,    -1,   252,   133,   235,   121,
915      210,    -1,   252,   133,   255,   121,   210,    -1,   231,   133,
916      236,   121,   210,    -1,   231,   133,   256,   121,   210,    -1,
917      252,   133,   236,   121,   210,    -1,   252,   133,   256,   121,
918      210,    -1,   231,   133,   121,    -1,   252,   133,   121,    -1,
919      231,   133,    -1,   252,   133,    -1,   253,    -1,   217,   234,
920      254,    -1,   217,   234,     1,    -1,   240,   234,   254,    -1,
921      240,   234,     1,    -1,   217,   234,   210,    -1,   240,   234,
922      210,    -1,   254,    -1,   233,     1,    -1,   235,   117,   254,
923       -1,   255,   117,   254,    -1,   235,   117,     1,    -1,   255,
924      117,     1,    -1,   235,     1,    -1,   235,   235,    -1,   255,
925      235,    -1,   235,   255,    -1,   210,    -1,   209,     1,    -1,
926      235,   117,   210,    -1,   255,   117,   210,    -1,   232,    -1,
927      253,    -1,    29,    -1,    30,    -1,    31,    -1,    32,    -1,
928       33,    -1,    29,    -1,    30,    -1,    31,    -1,    32,    -1,
929       33,    -1,   206,    -1,   206,   116,   257,    -1,   206,   116,
930      258,    -1,   261,    -1,   262,   117,   261,    -1,   262,   117,
931       -1,    50,    -1,   263,   206,    -1,   263,   139,    -1,   266,
932      118,    -1,   263,   206,   119,   118,    -1,   263,   139,   119,
933      118,    -1,   263,   119,   262,    -1,   263,   119,     1,    -1,
934      263,   206,   119,   262,    -1,   263,   206,   119,   262,     1,
935       -1,   263,   206,   119,     1,    -1,   263,   206,   119,   262,
936      115,   188,    -1,   263,   206,   119,   262,   115,   189,    -1,
937      263,   139,   119,   262,    -1,   263,   139,   119,   262,     1,
938       -1,   263,   139,   119,     1,    -1,   263,   139,   119,   262,
939      115,   188,    -1,   263,   139,   119,   262,   115,   189,    -1,
940      263,   206,    -1,   263,   139,    -1,   269,   118,    -1,   267,
941      121,   295,   119,   118,    -1,   267,   119,   118,    -1,   267,
942      121,   295,   119,   262,    -1,   267,   121,   295,   119,   262,
943        1,    -1,   267,   121,   295,   119,     1,    -1,   267,   121,
944      295,   119,   262,   115,   188,    -1,   267,   121,   295,   119,
945      262,   115,   189,    -1,   267,   121,   295,   119,   262,     1,
946      115,   188,    -1,   267,   121,   295,   119,   262,     1,   115,
947      189,    -1,   267,   121,   295,   119,     1,   115,   188,    -1,
948      267,   121,   295,   119,     1,   115,   189,    -1,   263,   119,
949      262,    -1,   263,   119,     1,    -1,   267,   119,   262,    -1,
950      267,   119,   262,     1,    -1,   267,   119,     1,    -1,   267,
951      119,   262,   115,   188,    -1,   267,   119,   262,   115,   189,
952       -1,   268,    -1,   285,    -1,   269,    -1,   286,    -1,    75,
953       -1,   306,    -1,    44,    -1,    45,    -1,   272,    -1,   273,
954       -1,   274,   273,    -1,    46,    -1,    34,    -1,    35,    -1,
955       36,    -1,    37,    -1,    38,    -1,    47,    -1,    39,    -1,
956       42,    -1,    43,    -1,    40,    -1,    41,    -1,    85,    -1,
957      282,    -1,   264,    -1,   136,    -1,    87,   112,   233,   113,
958       -1,   100,   112,   136,   113,    -1,   100,   112,   206,   113,
959       -1,    66,    -1,    82,    -1,    83,    -1,    46,    -1,    34,
960       -1,    35,    -1,    36,    -1,    37,    -1,    38,    -1,    47,
961       -1,    39,    -1,    42,    -1,    43,    -1,    40,    -1,    41,
962       -1,    85,    -1,   282,    -1,   264,    -1,   139,    -1,    87,
963      112,   233,   113,    -1,   100,   112,   136,   113,    -1,   100,
964      112,   206,   113,    -1,    66,    -1,   316,    -1,   316,   307,
965       -1,   121,   257,    -1,   316,   121,   257,    -1,   316,   121,
966      257,   121,   257,    -1,   121,   258,    -1,   316,   121,   258,
967       -1,   316,   121,   257,   121,   258,    -1,   316,   121,   258,
968      121,   258,    -1,   316,   121,   258,   121,   257,    -1,   277,
969       -1,   278,   117,   277,    -1,   287,   206,    -1,   287,   137,
970       -1,   281,   118,    -1,   279,   119,   118,    -1,   287,   119,
971      118,    -1,   279,   119,   188,    -1,   279,   119,   189,    -1,
972      279,   119,     1,    -1,   287,   119,   188,    -1,   287,   119,
973      189,    -1,   287,   119,     1,    -1,   279,    -1,   279,    -1,
974      279,   110,   198,   111,    -1,   283,   121,   295,    -1,   286,
975      118,    -1,   284,   119,   118,    -1,   283,   119,   118,    -1,
976      287,   119,   118,    -1,   284,   119,   188,    -1,   284,   119,
977      189,    -1,   284,   119,     1,    -1,   283,   119,   188,    -1,
978      283,   119,   189,    -1,   283,   119,     1,    -1,   287,   119,
979      188,    -1,   287,   119,   189,    -1,   287,   119,     1,    -1,
980       48,    -1,    49,    -1,   273,    -1,   288,   273,    -1,   275,
981       -1,   288,   275,    -1,   265,    -1,   288,   265,    -1,   280,
982       -1,   288,   280,    -1,   273,    -1,   289,   273,    -1,   275,
983       -1,   289,   275,    -1,   135,    -1,   289,   135,    -1,   265,
984       -1,   289,   265,    -1,   280,    -1,   289,   280,    -1,   259,
985       -1,   290,   259,    -1,   273,    -1,   290,   273,    -1,   276,
986       -1,   290,   276,    -1,   265,    -1,   290,   265,    -1,   280,
987       -1,   290,   280,    -1,   259,    -1,   291,   259,    -1,   273,
988       -1,   291,   273,    -1,   275,    -1,   291,   275,    -1,   135,
989       -1,   291,   135,    -1,   280,    -1,   291,   280,    -1,   265,
990       -1,   291,   265,    -1,   260,    -1,   292,   260,    -1,   273,
991       -1,   292,   273,    -1,   275,    -1,   292,   275,    -1,   135,
992       -1,   292,   135,    -1,   270,    -1,   292,   270,    -1,   271,
993       -1,   292,   271,    -1,    81,    -1,    80,    -1,   259,    -1,
994      294,   259,    -1,   273,    -1,   294,   273,    -1,   276,    -1,
995      294,   276,    -1,   206,    -1,   294,   206,    -1,   206,   110,
996      200,   111,    -1,   294,   206,   110,   200,   111,    -1,   294,
997       -1,   287,    -1,   259,    -1,   296,   259,    -1,   273,    -1,
998      296,   273,    -1,   276,    -1,   296,   276,    -1,   206,    -1,
999      296,   206,    -1,   206,   110,   200,   111,    -1,   296,   206,
1000      110,   200,   111,    -1,   259,    -1,   297,   259,    -1,   273,
1001       -1,   297,   273,    -1,   276,    -1,   297,   276,    -1,   280,
1002       -1,   297,   280,    -1,   265,    -1,   297,   265,    -1,   206,
1003       -1,   297,   206,    -1,   206,   110,   200,   111,    -1,   297,
1004      206,   110,   200,   111,    -1,   259,    -1,   298,   259,    -1,
1005      273,    -1,   298,   273,    -1,   276,    -1,   298,   276,    -1,
1006      280,    -1,   298,   280,    -1,   265,    -1,   298,   265,    -1,
1007      206,    -1,   298,   206,    -1,   206,   110,   200,   111,    -1,
1008      298,   206,   110,   200,   111,    -1,   300,   117,     1,    -1,
1009      299,   117,     1,    -1,   206,    -1,   300,   117,   206,    -1,
1010      299,   117,   206,    -1,   330,   117,   206,    -1,   331,   117,
1011      206,    -1,   206,    -1,   112,   313,   113,    -1,   301,   123,
1012      257,   124,    -1,   301,   123,   258,   124,    -1,   301,   123,
1013      136,   124,    -1,   301,   123,   124,    -1,   301,   112,    -1,
1014      302,   332,   113,    -1,   302,   333,   113,    -1,   302,   300,
1015      113,    -1,   302,   299,   113,    -1,   302,   113,    -1,   302,
1016      299,    -1,   302,     1,    -1,   302,   330,   112,    -1,   302,
1017      291,   206,   112,    -1,   303,    -1,   301,    -1,   306,   303,
1018       -1,   306,   301,    -1,    74,    -1,   307,    -1,    86,   112,
1019      365,   113,    -1,    79,    -1,   112,   311,   113,    -1,   123,
1020      124,    -1,   123,   257,   124,    -1,   123,   258,   124,    -1,
1021      123,   136,   124,    -1,   308,   123,   124,    -1,   308,   123,
1022      257,   124,    -1,   308,   123,   136,   124,    -1,   308,   123,
1023      258,   124,    -1,   112,   113,    -1,   112,   332,   113,    -1,
1024      112,   333,   113,    -1,   308,   112,   113,    -1,   308,   112,
1025      332,   113,    -1,   308,   112,   333,   113,    -1,   112,   312,
1026      113,    -1,   112,   113,    -1,   112,   332,   113,    -1,   112,
1027      333,   113,    -1,   309,   112,   113,    -1,   309,   112,   332,
1028      113,    -1,   309,   112,   333,   113,    -1,   109,    -1,   109,
1029      274,    -1,   109,   310,    -1,   109,   274,   310,    -1,   310,
1030       -1,   308,    -1,   310,   308,    -1,   306,   310,    -1,   306,
1031      308,    -1,   306,   310,   308,    -1,   310,    -1,   309,    -1,
1032      310,   309,    -1,   306,   310,    -1,   306,   309,    -1,   306,
1033      310,   309,    -1,   305,    -1,   310,   305,    -1,   306,   310,
1034      305,    -1,   313,   306,    -1,   303,    -1,   310,   303,    -1,
1035      306,   303,    -1,   306,   310,   303,    -1,   310,   306,   303,
1036       -1,   304,    -1,   310,   304,    -1,   306,   304,    -1,   306,
1037      310,   304,    -1,   310,   306,   304,    -1,   301,    -1,   310,
1038      301,    -1,   306,   301,    -1,   306,   310,   301,    -1,   310,
1039      306,   301,    -1,   233,    -1,   119,   321,   118,    -1,   119,
1040      321,   117,   118,    -1,   254,    -1,   119,   321,   118,     1,
1041       -1,   119,   321,    -1,   119,   321,   117,   118,     1,    -1,
1042      119,   321,   117,    -1,   232,    -1,   209,    -1,   253,    -1,
1043      210,    -1,   317,    -1,   318,    -1,   321,   117,   317,    -1,
1044      321,   117,   318,    -1,   321,   317,    -1,   321,   318,    -1,
1045      313,    -1,   313,   116,   317,    -1,   313,     1,    -1,   313,
1046      116,     1,    -1,   313,   116,   318,    -1,   322,    -1,   324,
1047      117,   322,    -1,   325,   117,   322,    -1,   323,    -1,   322,
1048        1,    -1,   324,   117,   323,    -1,   325,   117,   323,    -1,
1049      288,    -1,   288,   311,    -1,   289,    -1,   289,   311,    -1,
1050      291,   313,    -1,   291,   311,    -1,   291,   125,    -1,   291,
1051      125,   313,    -1,   291,    -1,    65,    -1,   291,   313,     1,
1052       -1,   291,   311,     1,    -1,   328,    -1,   330,   117,   328,
1053       -1,   330,     1,   117,   328,    -1,   331,   117,   328,    -1,
1054      331,     1,   117,   328,    -1,     1,   117,   328,    -1,   300,
1055      117,   328,    -1,   300,     1,   117,   328,    -1,   299,   117,
1056      328,    -1,   299,     1,   117,   328,    -1,   329,    -1,   330,
1057      117,   329,    -1,   331,   117,   329,    -1,   331,     1,   117,
1058      329,    -1,     1,   117,   329,    -1,   300,   117,   329,    -1,
1059      299,   117,   329,    -1,   299,     1,   117,   329,    -1,   330,
1060       -1,   330,   117,    51,    -1,   331,   117,    51,    -1,   300,
1061      117,    51,    -1,   299,   117,    51,    -1,     1,   117,    51,
1062       -1,   331,    -1,   330,   117,     1,    -1,   331,     1,    -1,
1063      339,    -1,    79,    -1,   354,    -1,   115,    -1,   121,    -1,
1064      235,   115,    -1,   357,    -1,   359,    -1,   361,    -1,   338,
1065       -1,   185,   115,    -1,   184,   115,    -1,   183,   115,    -1,
1066      340,    -1,   360,    -1,   355,    -1,   358,    -1,   362,    -1,
1067      361,     1,    -1,   255,    -1,   365,    -1,   365,   112,   233,
1068      113,    -1,   336,    -1,   337,   117,   336,    -1,    -1,    86,
1069      273,   112,   365,   113,   115,    -1,    86,   273,   112,   365,
1070      121,   337,   113,   115,    -1,    86,   273,   112,   365,   121,
1071      337,   121,   337,   113,   115,    -1,    86,   273,   112,   365,
1072      121,   337,   121,   337,   121,   337,   113,   115,    -1,    86,
1073      273,   112,   365,     3,   337,   113,   115,    -1,    86,   273,
1074      112,   365,     3,   337,   121,   337,   113,   115,    -1,    86,
1075      273,   112,   365,   121,   337,     3,   337,   113,   115,    -1,
1076       86,   112,   365,   113,   115,    -1,    86,   112,   365,   121,
1077      337,   113,   115,    -1,    86,   112,   365,   121,   337,   121,
1078      337,   113,   115,    -1,    86,   112,   365,   121,   337,   121,
1079      337,   121,   337,   113,   115,    -1,    86,   112,   365,     3,
1080      337,   113,   115,    -1,    86,   112,   365,     3,   337,   121,
1081      337,   113,   115,    -1,    86,   112,   365,   121,   337,     3,
1082      337,   113,   115,    -1,   206,   121,   334,    -1,    52,   257,
1083      121,   334,    -1,    52,   258,   121,   334,    -1,    52,   121,
1084      334,    -1,    53,   121,   334,    -1,   206,   121,   335,    -1,
1085       52,   257,   121,   335,    -1,    52,   258,   121,   335,    -1,
1086       52,   121,   335,    -1,    52,   121,    -1,    53,   121,   335,
1087       -1,    53,   121,    -1,    80,    -1,    81,    -1,    53,    -1,
1088       80,    -1,    81,    -1,   290,   115,    -1,   290,   324,   115,
1089       -1,   160,   115,    -1,   346,   115,    -1,   292,   115,    -1,
1090      292,   324,   115,    -1,   293,   324,   115,    -1,   164,   115,
1091       -1,    77,   206,   116,   232,   115,    -1,    31,    77,   206,
1092      116,   232,   115,    -1,   292,     1,    -1,   290,     1,    -1,
1093      346,     1,    -1,   161,     1,    -1,   160,     1,    -1,   290,
1094      325,    -1,   343,    -1,   347,   343,    -1,   348,   343,    -1,
1095      347,     1,   115,    -1,   346,    -1,   347,   346,    -1,   334,
1096       -1,   349,   334,    -1,   350,   334,    -1,   335,    -1,   349,
1097      335,    -1,   350,   335,    -1,   349,   343,    -1,   350,   343,
1098       -1,   349,   346,    -1,   350,   346,    -1,   349,    -1,   347,
1099       -1,   347,   349,    -1,   348,   349,    -1,   350,    -1,   348,
1100       -1,   347,   350,    -1,   348,   350,    -1,   119,    -1,   355,
1101      118,    -1,   353,   352,    -1,   353,    -1,   353,   351,    -1,
1102      115,    -1,   235,   115,    -1,   255,   115,    -1,    54,   112,
1103      235,   113,   334,    -1,    54,   112,   255,   113,   334,    -1,
1104       54,   112,   235,   113,   334,    64,   334,    -1,    54,   112,
1105      255,   113,   334,    64,   334,    -1,    55,   112,   235,   113,
1106      334,    -1,    55,   112,   255,   113,   334,    -1,    54,   112,
1107      255,    -1,   357,     1,    -1,    56,   112,   235,   113,   334,
1108       -1,    56,   112,   255,   334,    -1,    56,   112,   113,   334,
1109       -1,    57,   334,    56,   112,   235,   113,   115,    -1,    57,
1110      334,    56,   112,   255,   115,    -1,    58,   112,   356,   356,
1111      113,   334,    -1,    58,   112,   356,   113,   334,    -1,    58,
1112      112,   356,   356,   235,   113,   334,    -1,    58,   112,   356,
1113      356,   255,   334,    -1,    58,   112,   113,   334,    -1,    58,
1114      112,   206,   121,   235,   113,   334,    -1,    58,   112,   206,
1115      121,   235,   115,   235,   113,   334,    -1,    58,   112,     1,
1116       -1,    58,   112,   255,     1,    -1,    58,   112,   356,     1,
1117       -1,    58,   112,   356,   255,     1,    -1,    58,   112,   356,
1118      356,     1,    -1,    58,   112,   356,   356,   255,    -1,    58,
1119      112,   356,   356,   113,   335,    -1,    58,   112,   356,   356,
1120      235,   113,   335,    -1,    58,   112,   356,   356,   255,   335,
1121       -1,    57,   334,    56,   112,   235,   113,    -1,    57,   334,
1122       56,   112,   235,    -1,    57,   334,    56,   112,   255,    -1,
1123       57,   334,    56,   112,    -1,    57,   334,    56,    -1,    57,
1124      334,    -1,    57,    -1,    56,     1,    -1,    56,   112,     1,
1125       -1,    56,   112,   113,     1,    -1,    56,   112,   255,    -1,
1126       56,   112,   255,     1,    -1,    56,   112,   235,   113,   335,
1127       -1,    56,   112,   255,   335,    -1,    59,   206,   115,    -1,
1128       60,   115,    -1,    61,   115,    -1,    62,   115,    -1,    62,
1129      235,   115,    -1,    62,   255,   115,    -1,    62,   209,   115,
1130       -1,    62,   210,   115,    -1,    62,   255,    -1,    62,   210,
1131       -1,    62,    -1,    59,    -1,   292,   314,   347,   354,    -1,
1132      292,   314,   354,    -1,   314,   347,   354,    -1,   314,   354,
1133       -1,   292,   314,   347,   355,    -1,   292,   314,   355,    -1,
1134      314,   347,   355,    -1,   314,   355,    -1,     5,    -1,   365,
1135        5,    -1,   363,    -1,   203,    -1,   292,   203,    -1,   344,
1136       -1,    76,   365,    -1,    76,    31,   365,    -1,    76,   206,
1137      365,    -1,   115,    -1,   341,   363,    -1,   341,   203,    -1,
1138      341,   344,    -1,   341,    76,   365,    -1,   341,    76,    31,
1139      365,    -1,   341,    76,   206,   365,    -1,   341,   121,    -1,
1140       31,   121,    -1,   101,   206,    -1,   101,   139,    -1,   371,
1141       -1,   341,   371,    -1,   205,    -1,   292,   205,    -1,   364,
1142       -1,   341,   205,    -1,   341,   364,    -1,   345,    -1,   341,
1143      345,    -1,   367,    -1,   369,   367,    -1,   368,   367,    -1,
1144      369,     1,    -1,   368,     1,    -1,   366,    -1,   369,   366,
1145       -1,   368,   203,    -1,   368,   341,   203,    -1,   369,    -1,
1146      368,    -1,    -1,   105,   365,   206,   119,   376,   118,    -1,
1147      105,   365,   139,   119,   376,   118,    -1,   105,   365,   119,
1148      376,   118,    -1,   291,   206,   365,   115,    -1,   206,    -1,
1149      111,   206,    -1,   110,   206,    -1,   373,    -1,   374,   117,
1150      373,    -1,   107,   374,   115,    -1,   107,   374,   206,   115,
1151       -1,   372,    -1,   375,    -1,   376,   372,    -1,   376,   375,
1152       -1,   108,   112,   233,   117,   233,   113,    -1,   106,   112,
1153      365,   117,   206,   113,    -1,   107,   112,   365,   117,   206,
1154      113,    -1,   105,   112,   365,   113,    -1
1155 };
1156
1157 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1158 static const unsigned short int yyrline[] =
1159 {
1160        0,   254,   254,   282,   340,   341,   441,   445,   448,   449,
1161      450,   499,   501,   506,   511,   516,   518,   523,   525,   530,
1162      532,   537,   539,   541,   543,   545,   549,   554,   556,   558,
1163      560,   562,   568,   570,   575,   580,   585,   587,   589,   594,
1164      595,   599,   600,   611,   615,   616,   618,   623,   624,   626,
1165      629,   640,   650,   669,   671,   676,   677,   678,   679,   680,
1166      681,   682,   683,   684,   688,   689,   690,   691,   695,   696,
1167      697,   698,   699,   700,   701,   705,   707,   712,   714,   716,
1168      718,   720,   750,   752,   757,   759,   761,   763,   765,   794,
1169      796,   798,   803,   805,   810,   812,   816,   818,   820,   822,
1170      827,   830,   833,   836,   901,   903,   908,   910,   912,   914,
1171      916,   947,   951,   952,   953,   957,   958,   959,   963,   964,
1172      965,   966,   970,   973,   976,   979,   982,   987,   988,   990,
1173      992,   994,   996,  1001,  1005,  1008,  1011,  1014,  1017,  1022,
1174     1023,  1025,  1030,  1034,  1036,  1041,  1043,  1048,  1050,  1055,
1175     1060,  1062,  1067,  1069,  1071,  1073,  1078,  1080,  1082,  1084,
1176     1089,  1090,  1091,  1092,  1093,  1094,  1096,  1097,  1098,  1099,
1177     1100,  1101,  1103,  1104,  1105,  1106,  1107,  1108,  1109,  1110,
1178     1111,  1112,  1113,  1115,  1116,  1118,  1122,  1123,  1124,  1125,
1179     1126,  1128,  1129,  1130,  1131,  1132,  1134,  1138,  1139,  1140,
1180     1144,  1145,  1146,  1147,  1148,  1152,  1153,  1154,  1158,  1162,
1181     1163,  1164,  1165,  1166,  1167,  1168,  1169,  1173,  1177,  1178,
1182     1182,  1186,  1187,  1191,  1192,  1193,  1197,  1198,  1202,  1203,
1183     1204,  1205,  1206,  1207,  1208,  1220,  1232,  1247,  1248,  1252,
1184     1258,  1259,  1267,  1268,  1270,  1271,  1280,  1281,  1285,  1291,
1185     1298,  1304,  1311,  1317,  1326,  1333,  1339,  1345,  1351,  1357,
1186     1363,  1374,  1379,  1380,  1385,  1386,  1387,  1388,  1389,  1390,
1187     1391,  1392,  1393,  1394,  1395,  1396,  1397,  1398,  1399,  1400,
1188     1401,  1402,  1403,  1404,  1405,  1406,  1407,  1408,  1409,  1410,
1189     1411,  1412,  1413,  1414,  1415,  1417,  1418,  1419,  1420,  1421,
1190     1423,  1427,  1431,  1435,  1436,  1440,  1442,  1443,  1444,  1445,
1191     1446,  1447,  1448,  1449,  1450,  1452,  1453,  1454,  1455,  1456,
1192     1457,  1458,  1459,  1463,  1465,  1466,  1467,  1468,  1469,  1470,
1193     1471,  1472,  1473,  1475,  1476,  1477,  1478,  1479,  1480,  1481,
1194     1482,  1486,  1487,  1488,  1489,  1493,  1494,  1495,  1496,  1497,
1195     1501,  1502,  1503,  1504,  1505,  1506,  1507,  1508,  1509,  1513,
1196     1514,  1518,  1519,  1523,  1524,  1525,  1526,  1527,  1528,  1529,
1197     1530,  1534,  1535,  1539,  1540,  1541,  1542,  1543,  1544,  1545,
1198     1549,  1550,  1551,  1552,  1553,  1557,  1558,  1559,  1560,  1561,
1199     1565,  1573,  1574,  1575,  1576,  1577,  1578,  1579,  1580,  1581,
1200     1585,  1586,  1587,  1588,  1589,  1591,  1592,  1593,  1594,  1598,
1201     1599,  1600,  1602,  1603,  1607,  1608,  1609,  1611,  1612,  1616,
1202     1617,  1618,  1620,  1621,  1625,  1626,  1627,  1631,  1632,  1633,
1203     1637,  1638,  1639,  1640,  1641,  1643,  1644,  1645,  1646,  1648,
1204     1649,  1650,  1651,  1653,  1654,  1655,  1656,  1660,  1661,  1662,
1205     1663,  1664,  1666,  1667,  1668,  1669,  1673,  1674,  1675,  1676,
1206     1677,  1678,  1679,  1680,  1681,  1682,  1683,  1687,  1688,  1689,
1207     1690,  1694,  1695,  1696,  1700,  1701,  1702,  1703,  1705,  1706,
1208     1708,  1709,  1710,  1711,  1712,  1714,  1715,  1716,  1717,  1721,
1209     1722,  1723,  1725,  1726,  1728,  1729,  1730,  1731,  1732,  1734,
1210     1735,  1736,  1737,  1741,  1742,  1743,  1744,  1745,  1746,  1747,
1211     1748,  1749,  1753,  1754,  1758,  1759,  1764,  1765,  1769,  1770,
1212     1771,  1772,  1773,  1774,  1775,  1779,  1780,  1781,  1782,  1783,
1213     1784,  1785,  1786,  1787,  1791,  1792,  1793,  1794,  1795,  1799,
1214     1800,  1850,  1851,  1852,  1853,  1854,  1855,  1856,  1860,  1861,
1215     1862,  1863,  1864,  1866,  1867,  1868,  1869,  1871,  1872,  1873,
1216     1874,  1878,  1879,  1880,  1882,  1883,  1887,  1888,  1889,  1891,
1217     1892,  1896,  1897,  1898,  1900,  1901,  1905,  1906,  1907,  1911,
1218     1912,  1913,  1917,  1918,  1919,  1920,  1921,  1922,  1923,  1924,
1219     1925,  1927,  1928,  1929,  1930,  1931,  1932,  1933,  1934,  1936,
1220     1937,  1938,  1939,  1941,  1942,  1943,  1944,  1946,  1953,  1957,
1221     1961,  1968,  1969,  1970,  1971,  1972,  1974,  1975,  1979,  1980,
1222     1981,  1982,  1983,  1984,  1985,  1986,  1987,  1988,  1992,  1993,
1223     1994,  1995,  1999,  2001,  2005,  2006,  2007,  2008,  2009,  2013,
1224     2014,  2015,  2016,  2017,  2021,  2022,  2023,  2027,  2028,  2029,
1225     2033,  2037,  2038,  2042,  2043,  2044,  2048,  2049,  2051,  2052,
1226     2053,  2054,  2055,  2057,  2058,  2059,  2060,  2061,  2065,  2066,
1227     2070,  2071,  2072,  2076,  2077,  2078,  2079,  2080,  2081,  2082,
1228     2083,  2084,  2086,  2087,  2089,  2090,  2091,  2092,  2093,  2097,
1229     2098,  2102,  2103,  2107,  2108,  2112,  2113,  2114,  2119,  2120,
1230     2124,  2125,  2126,  2127,  2128,  2129,  2130,  2131,  2132,  2133,
1231     2134,  2135,  2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,
1232     2144,  2145,  2149,  2150,  2151,  2152,  2153,  2154,  2155,  2156,
1233     2157,  2158,  2159,  2160,  2161,  2162,  2163,  2164,  2165,  2166,
1234     2167,  2168,  2174,  2176,  2178,  2180,  2182,  2184,  2186,  2188,
1235     2190,  2192,  2197,  2198,  2202,  2208,  2217,  2218,  2219,  2223,
1236     2224,  2225,  2227,  2228,  2229,  2233,  2237,  2245,  2254,  2263,
1237     2264,  2266,  2267,  2271,  2278,  2285,  2288,  2301,  2315,  2318,
1238     2320,  2322,  2327,  2328,  2332,  2333,  2334,  2335,  2336,  2337,
1239     2338,  2339,  2343,  2344,  2345,  2346,  2347,  2348,  2349,  2350,
1240     2351,  2352,  2356,  2357,  2358,  2359,  2360,  2361,  2362,  2363,
1241     2364,  2365,  2369,  2370,  2371,  2372,  2373,  2374,  2375,  2376,
1242     2377,  2378,  2379,  2380,  2384,  2385,  2386,  2387,  2388,  2389,
1243     2390,  2391,  2392,  2393,  2397,  2398,  2402,  2403,  2404,  2405,
1244     2406,  2407,  2408,  2409,  2410,  2412,  2414,  2432,  2449,  2450,
1245     2454,  2455,  2456,  2457,  2458,  2459,  2460,  2461,  2462,  2480,
1246     2497,  2498,  2499,  2500,  2501,  2502,  2503,  2504,  2505,  2506,
1247     2507,  2508,  2509,  2527,  2544,  2545,  2546,  2547,  2548,  2549,
1248     2550,  2551,  2552,  2553,  2554,  2555,  2556,  2574,  2591,  2592,
1249     2596,  2597,  2598,  2599,  2600,  2604,  2605,  2606,  2607,  2608,
1250     2609,  2613,  2617,  2618,  2619,  2620,  2621,  2626,  2635,  2644,
1251     2653,  2666,  2667,  2668,  2670,  2715,  2716,  2717,  2729,  2734,
1252     2736,  2738,  2740,  2742,  2744,  2746,  2748,  2750,  2752,  2754,
1253     2756,  2758,  2760,  2762,  2767,  2769,  2771,  2773,  2775,  2777,
1254     2779,  2784,  2785,  2786,  2787,  2791,  2792,  2793,  2794,  2795,
1255     2796,  2800,  2801,  2802,  2803,  2804,  2805,  2809,  2810,  2812,
1256     2814,  2819,  2820,  2821,  2822,  2823,  2827,  2828,  2829,  2830,
1257     2831,  2835,  2836,  2837,  2838,  2839,  2843,  2844,  2845,  2861,
1258     2862,  2863,  2864,  2877,  2893,  2894,  2899,  2900,  2904,  2905,
1259     2906,  2907,  2910,  2911,  2915,  2916,  2920,  2921,  2922,  2926,
1260     2927,  2928,  2932,  2933,  2934,  2935,  2939,  2940,  2944,  2945,
1261     2950,  2951,  2952,  2953,  2954,  2955,  2974,  2975,  2979,  2980,
1262     2981,  2982,  2983,  2984,  2986,  2987,  2988,  2989,  2993,  2994,
1263     2995,  2996,  2997,  2999,  3000,  3001,  3005,  3006,  3007,  3008,
1264     3009,  3010,  3014,  3015,  3016,  3021,  3022,  3023,  3024,  3025,
1265     3026,  3027,  3028,  3029,  3030,  3032,  3033,  3034,  3038,  3039,
1266     3040,  3041,  3042,  3043,  3044,  3048,  3049,  3053,  3054,  3055,
1267     3059,  3060,  3061,  3062,  3064,  3065,  3066,  3068,  3069,  3070,
1268     3071,  3073,  3074,  3075,  3079,  3080,  3081,  3082,  3083,  3087,
1269     3088,  3089,  3090,  3091,  3092,  3093,  3097,  3098,  3099,  3103,
1270     3104,  3108,  3109,  3110,  3111,  3115,  3116,  3117,  3119,  3120,
1271     3121,  3125,  3129,  3130,  3132,  3133,  3134,  3138,  3139,  3140,
1272     3141,  3145,  3146,  3150,  3151,  3152,  3156,  3157,  3158,  3159,
1273     3160,  3161,  3162,  3166,  3167,  3168,  3169,  3173,  3174,  3175,
1274     3176,  3180,  3184,  3188,  3190,  3193,  3199,  3200,  3201,  3205,
1275     3206,  3207,  3208,  3209,  3210,  3214,  3215,  3219,  3220,  3221,
1276     3223,  3224,  3226,  3227,  3228,  3229,  3230,  3232,  3233,  3237,
1277     3238,  3239,  3240,  3241,  3242,  3243,  3244,  3245,  3247,  3248,
1278     3249,  3250,  3251,  3252,  3253,  3256,  3257,  3258,  3259,  3260,
1279     3261,  3262,  3266,  3267,  3268,  3269,  3270,  3271,  3272,  3273,
1280     3277,  3278,  3279,  3280,  3286,  3287,  3290,  3291,  3294,  3295,
1281     3296,  3297,  3301,  3302,  3314,  3315,  3318,  3321,  3323,  3324,
1282     3325,  3327,  3329,  3330,  3332,  3333,  3334,  3335,  3336,  3337,
1283     3338,  3339,  3340,  3341,  3345,  3346,  3347,  3349,  3350,  3352,
1284     3354,  3358,  3359,  3360,  3361,  3362,  3366,  3367,  3368,  3370,
1285     3375,  3376,  3377,  3381,  3382,  3383,  3387,  3391,  3392,  3393,
1286     3397,  3398,  3402,  3403,  3407,  3408,  3409,  3410,  3414,  3418,
1287     3422,  3426
1288 };
1289 #endif
1290
1291 #if YYDEBUG || YYERROR_VERBOSE
1292 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1293    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1294 static const char *const yytname[] =
1295 {
1296   "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT",
1297   "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP",
1298   "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
1299   "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN",
1300   "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
1301   "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR",
1302   "SHORT", "INT", "UINT", "INT64", "LONG", "SIGNED", "UNSIGNED", "FLOAT",
1303   "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT", "UNION",
1304   "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE", "DO",
1305   "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE", "CLASS",
1306   "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP", "NEWOP",
1307   "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT", "DEFINE",
1308   "VIRTUAL", "EXT_ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT",
1309   "ANY_OBJECT", "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH",
1310   "STOPWATCHING", "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER",
1311   "CLASS_NO_EXPANSION", "CLASS_FIXED", "ISPROPSET",
1312   "CLASS_DEFAULT_PROPERTY", "PROPERTY_CATEGORY", "CLASS_DATA",
1313   "CLASS_PROPERTY", "SUBCLASS", "NAMESPACE", "NEW0OP", "RENEW0", "VAARG",
1314   "DBTABLE", "DBFIELD", "DBINDEX", "DATABASE_OPEN", "'*'", "'<'", "'>'",
1315   "'('", "')'", "'~'", "';'", "'='", "','", "'}'", "'{'", "'.'", "':'",
1316   "'$'", "'['", "']'", "'&'", "'+'", "'-'", "'!'", "'/'", "'%'", "'^'",
1317   "'|'", "'?'", "$accept", "guess_type", "type", "base_strict_type",
1318   "base_strict_type_name", "strict_type",
1319   "class_function_definition_start",
1320   "constructor_function_definition_start",
1321   "destructor_function_definition_start",
1322   "virtual_class_function_definition_start",
1323   "class_function_definition_start_error",
1324   "virtual_class_function_definition_start_error",
1325   "class_function_definition", "class_function_definition_error",
1326   "instance_class_function_definition_start",
1327   "instance_class_function_definition_start_error",
1328   "instance_class_function_definition",
1329   "instance_class_function_definition_error", "data_member_initialization",
1330   "data_member_initialization_error", "data_member_initialization_list",
1331   "data_member_initialization_list_error",
1332   "data_member_initialization_list_coloned",
1333   "members_initialization_list_coloned", "members_initialization_list",
1334   "members_initialization_list_error", "instantiation_named",
1335   "instantiation_named_error", "guess_instantiation_named",
1336   "guess_instantiation_named_error", "external_guess_instantiation_named",
1337   "instantiation_unnamed", "instantiation_unnamed_error",
1338   "instantiation_anon", "instantiation_anon_error", "default_property",
1339   "default_property_error", "default_property_list",
1340   "default_property_list_error", "property_start", "property_body",
1341   "property", "class_property_start", "class_property_body",
1342   "class_property", "watch_property_list", "property_watch",
1343   "property_watch_list", "self_watch_definition", "watch_definition",
1344   "stopwatching", "firewatchers", "struct_declaration",
1345   "struct_declaration_error", "struct_declaration_list",
1346   "struct_declaration_list_error", "template_datatype",
1347   "template_type_argument", "template_type_parameter",
1348   "template_identifier_argument", "template_identifier_parameter",
1349   "template_expression_argument", "template_expression_parameter",
1350   "template_parameter", "template_parameters_list", "template_argument",
1351   "template_arguments_list", "class_entry", "class_decl", "class",
1352   "class_head", "class_error", "identifier", "primary_expression",
1353   "simple_primary_expression", "anon_instantiation_expression",
1354   "anon_instantiation_expression_error", "primary_expression_error",
1355   "postfix_expression", "simple_postfix_expression",
1356   "argument_expression_list", "argument_expression_list_error",
1357   "common_unary_expression", "unary_expression", "simple_unary_expression",
1358   "unary_operator", "cast_expression", "multiplicative_expression",
1359   "additive_expression", "shift_expression",
1360   "relational_expression_smaller_than", "relational_expression",
1361   "equality_expression", "and_expression", "exclusive_or_expression",
1362   "inclusive_or_expression", "logical_and_expression",
1363   "logical_or_expression", "conditional_expression",
1364   "assignment_expression", "assignment_operator", "expression",
1365   "expression_anon_inst", "postfix_expression_error",
1366   "simple_postfix_expression_error", "common_unary_expression_error",
1367   "unary_expression_error", "simple_unary_expression_error",
1368   "cast_expression_error", "multiplicative_expression_error",
1369   "additive_expression_error", "shift_expression_error",
1370   "relational_expression_error", "equality_expression_error",
1371   "and_expression_error", "exclusive_or_expression_error",
1372   "inclusive_or_expression_error", "logical_and_expression_error",
1373   "logical_or_expression_error", "conditional_expression_error",
1374   "assignment_expression_error", "expression_error",
1375   "expression_anon_inst_error", "constant_expression",
1376   "constant_expression_error", "storage_class_specifier",
1377   "external_storage_class_specifier", "enumerator", "enumerator_list",
1378   "enum_specifier", "enum_specifier_nocompound", "enum_specifier_compound",
1379   "enum_specifier_compound_error", "enum_decl", "enum_class",
1380   "enum_class_error", "class_specifier", "class_specifier_error",
1381   "ext_storage", "type_qualifier", "type_qualifier_list", "type_specifier",
1382   "strict_type_specifier", "struct_declarator", "struct_declarator_list",
1383   "struct_entry", "struct_or_union_specifier_compound",
1384   "struct_or_union_specifier_compound_error",
1385   "struct_or_union_specifier_nocompound", "struct_decl", "struct_head",
1386   "struct_class", "struct_class_error", "struct_or_union",
1387   "specifier_qualifier_list", "guess_specifier_qualifier_list",
1388   "declaration_specifiers", "guess_declaration_specifiers",
1389   "external_guess_declaration_specifiers",
1390   "external_guess_declaration_specifiers_error", "_inheritance_specifiers",
1391   "inheritance_specifiers", "property_specifiers", "renew_specifiers",
1392   "new_specifiers", "identifier_list_error", "identifier_list",
1393   "direct_declarator_nofunction", "direct_declarator_function_start",
1394   "direct_declarator_function", "direct_declarator_function_error",
1395   "direct_declarator", "ext_decl", "ext_attrib",
1396   "direct_abstract_declarator", "direct_abstract_declarator_noarray",
1397   "pointer", "abstract_declarator", "abstract_declarator_noarray",
1398   "declarator", "declarator_function", "declarator_function_error",
1399   "declarator_nofunction", "initializer", "initializer_error",
1400   "initializer_condition", "initializer_condition_error",
1401   "initializer_list", "init_declarator", "init_declarator_error",
1402   "init_declarator_list", "init_declarator_list_error", "type_name",
1403   "guess_type_name", "parameter_declaration",
1404   "parameter_declaration_error", "parameter_list", "parameter_list_error",
1405   "parameter_type_list", "parameter_type_list_error", "statement",
1406   "statement_error", "asm_field", "asm_field_list", "asm_statement",
1407   "labeled_statement", "labeled_statement_error", "declaration_mode",
1408   "member_access", "declaration", "external_guess_declaration",
1409   "external_guess_declaration_error", "declaration_error",
1410   "declaration_list", "declaration_list_error", "statement_list",
1411   "statement_list_error", "compound_inside", "compound_inside_error",
1412   "compound_start", "compound_statement", "compound_statement_error",
1413   "expression_statement", "selection_statement",
1414   "selection_statement_error", "iteration_statement",
1415   "iteration_statement_error", "jump_statement", "jump_statement_error",
1416   "function_definition", "function_definition_error", "string_literal",
1417   "external_declaration", "external_declaration_error",
1418   "translation_unit_error", "translation_unit", "thefile",
1419   "dbtable_definition", "dbfield_entry", "dbindex_item",
1420   "dbindex_item_list", "dbindex_entry", "dbfield_definition_list",
1421   "database_open", "dbfield", "dbindex", "dbtable", 0
1422 };
1423 #endif
1424
1425 # ifdef YYPRINT
1426 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1427    token YYLEX-NUM.  */
1428 static const unsigned short int yytoknum[] =
1429 {
1430        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1431      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1432      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1433      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1434      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1435      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1436      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1437      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1438      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1439      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1440      355,   356,   357,   358,   359,   360,   361,   362,   363,    42,
1441       60,    62,    40,    41,   126,    59,    61,    44,   125,   123,
1442       46,    58,    36,    91,    93,    38,    43,    45,    33,    47,
1443       37,    94,   124,    63
1444 };
1445 # endif
1446
1447 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1448 static const unsigned short int yyr1[] =
1449 {
1450        0,   134,   135,   135,   136,   136,   137,   138,   139,   139,
1451      139,   140,   140,   141,   142,   143,   143,   144,   144,   145,
1452      145,   146,   146,   146,   146,   146,   146,   147,   147,   147,
1453      147,   147,   148,   148,   149,   150,   151,   151,   151,   152,
1454      152,   153,   153,   153,   154,   154,   154,   155,   155,   155,
1455      155,   155,   155,   156,   156,   157,   157,   157,   157,   157,
1456      157,   157,   157,   157,   158,   158,   158,   158,   159,   159,
1457      159,   159,   159,   159,   159,   160,   160,   161,   161,   161,
1458      161,   161,   162,   162,   163,   163,   163,   163,   163,   164,
1459      164,   164,   165,   165,   166,   166,   166,   166,   166,   166,
1460      166,   166,   166,   166,   167,   167,   168,   168,   168,   168,
1461      168,   169,   170,   170,   170,   171,   171,   171,   172,   172,
1462      172,   172,   173,   173,   173,   173,   173,   174,   174,   174,
1463      174,   174,   174,   175,   176,   176,   176,   176,   176,   177,
1464      177,   177,   178,   179,   179,   180,   180,   181,   181,   182,
1465      183,   183,   184,   184,   184,   184,   185,   185,   185,   185,
1466      186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
1467      186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
1468      186,   186,   186,   186,   186,   186,   187,   187,   187,   187,
1469      187,   187,   187,   187,   187,   187,   187,   188,   188,   188,
1470      189,   189,   189,   189,   189,   190,   190,   190,   191,   192,
1471      192,   192,   192,   192,   192,   192,   192,   193,   194,   194,
1472      195,   196,   196,   197,   197,   197,   198,   198,   199,   199,
1473      199,   199,   199,   199,   199,   199,   199,   200,   200,   201,
1474      202,   202,   202,   202,   202,   202,   202,   202,   203,   203,
1475      203,   203,   203,   203,   204,   205,   205,   205,   205,   205,
1476      205,   206,   207,   207,   208,   208,   208,   208,   208,   208,
1477      208,   208,   208,   208,   208,   208,   208,   208,   208,   208,
1478      208,   208,   208,   208,   208,   208,   208,   208,   208,   208,
1479      208,   208,   208,   208,   208,   208,   208,   208,   208,   208,
1480      208,   209,   210,   211,   211,   212,   212,   212,   212,   212,
1481      212,   212,   212,   212,   212,   212,   212,   212,   212,   212,
1482      212,   212,   212,   213,   213,   213,   213,   213,   213,   213,
1483      213,   213,   213,   213,   213,   213,   213,   213,   213,   213,
1484      213,   214,   214,   214,   214,   215,   215,   215,   215,   215,
1485      216,   216,   216,   216,   216,   216,   216,   216,   216,   217,
1486      217,   218,   218,   219,   219,   219,   219,   219,   219,   219,
1487      219,   220,   220,   221,   221,   221,   221,   221,   221,   221,
1488      222,   222,   222,   222,   222,   223,   223,   223,   223,   223,
1489      224,   225,   225,   225,   225,   225,   225,   225,   225,   225,
1490      226,   226,   226,   226,   226,   226,   226,   226,   226,   227,
1491      227,   227,   227,   227,   228,   228,   228,   228,   228,   229,
1492      229,   229,   229,   229,   230,   230,   230,   231,   231,   231,
1493      232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
1494      232,   232,   232,   232,   232,   232,   232,   233,   233,   233,
1495      233,   233,   233,   233,   233,   233,   234,   234,   234,   234,
1496      234,   234,   234,   234,   234,   234,   234,   235,   235,   235,
1497      235,   236,   236,   236,   237,   237,   237,   237,   237,   237,
1498      237,   237,   237,   237,   237,   237,   237,   237,   237,   238,
1499      238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
1500      238,   238,   238,   239,   239,   239,   239,   239,   239,   239,
1501      239,   239,   240,   240,   241,   241,   242,   242,   243,   243,
1502      243,   243,   243,   243,   243,   244,   244,   244,   244,   244,
1503      244,   244,   244,   244,   245,   245,   245,   245,   245,   246,
1504      246,   246,   246,   246,   246,   246,   246,   246,   247,   247,
1505      247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
1506      247,   248,   248,   248,   248,   248,   249,   249,   249,   249,
1507      249,   250,   250,   250,   250,   250,   251,   251,   251,   252,
1508      252,   252,   253,   253,   253,   253,   253,   253,   253,   253,
1509      253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
1510      253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
1511      253,   254,   254,   254,   254,   254,   254,   254,   255,   255,
1512      255,   255,   255,   255,   255,   255,   255,   255,   256,   256,
1513      256,   256,   257,   258,   259,   259,   259,   259,   259,   260,
1514      260,   260,   260,   260,   261,   261,   261,   262,   262,   262,
1515      263,   264,   264,   265,   265,   265,   266,   266,   266,   266,
1516      266,   266,   266,   266,   266,   266,   266,   266,   267,   267,
1517      268,   268,   268,   269,   269,   269,   269,   269,   269,   269,
1518      269,   269,   269,   269,   269,   269,   269,   269,   269,   270,
1519      270,   271,   271,   272,   272,   273,   273,   273,   274,   274,
1520      275,   275,   275,   275,   275,   275,   275,   275,   275,   275,
1521      275,   275,   275,   275,   275,   275,   275,   275,   275,   275,
1522      275,   275,   276,   276,   276,   276,   276,   276,   276,   276,
1523      276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
1524      276,   276,   277,   277,   277,   277,   277,   277,   277,   277,
1525      277,   277,   278,   278,   279,   279,   280,   280,   280,   281,
1526      281,   281,   281,   281,   281,   282,   283,   283,   284,   285,
1527      285,   285,   285,   286,   286,   286,   286,   286,   286,   286,
1528      286,   286,   287,   287,   288,   288,   288,   288,   288,   288,
1529      288,   288,   289,   289,   289,   289,   289,   289,   289,   289,
1530      289,   289,   290,   290,   290,   290,   290,   290,   290,   290,
1531      290,   290,   291,   291,   291,   291,   291,   291,   291,   291,
1532      291,   291,   291,   291,   292,   292,   292,   292,   292,   292,
1533      292,   292,   292,   292,   293,   293,   294,   294,   294,   294,
1534      294,   294,   294,   294,   294,   294,   294,   294,   295,   295,
1535      296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
1536      297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
1537      297,   297,   297,   297,   298,   298,   298,   298,   298,   298,
1538      298,   298,   298,   298,   298,   298,   298,   298,   299,   299,
1539      300,   300,   300,   300,   300,   301,   301,   301,   301,   301,
1540      301,   302,   303,   303,   303,   303,   303,   304,   304,   304,
1541      304,   305,   305,   305,   305,   306,   306,   306,   307,   308,
1542      308,   308,   308,   308,   308,   308,   308,   308,   308,   308,
1543      308,   308,   308,   308,   309,   309,   309,   309,   309,   309,
1544      309,   310,   310,   310,   310,   311,   311,   311,   311,   311,
1545      311,   312,   312,   312,   312,   312,   312,   313,   313,   313,
1546      313,   314,   314,   314,   314,   314,   315,   315,   315,   315,
1547      315,   316,   316,   316,   316,   316,   317,   317,   317,   318,
1548      318,   318,   318,   318,   319,   319,   320,   320,   321,   321,
1549      321,   321,   321,   321,   322,   322,   323,   323,   323,   324,
1550      324,   324,   325,   325,   325,   325,   326,   326,   327,   327,
1551      328,   328,   328,   328,   328,   328,   329,   329,   330,   330,
1552      330,   330,   330,   330,   330,   330,   330,   330,   331,   331,
1553      331,   331,   331,   331,   331,   331,   332,   332,   332,   332,
1554      332,   332,   333,   333,   333,   334,   334,   334,   334,   334,
1555      334,   334,   334,   334,   334,   334,   334,   334,   335,   335,
1556      335,   335,   335,   335,   335,   336,   336,   337,   337,   337,
1557      338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
1558      338,   338,   338,   338,   339,   339,   339,   339,   339,   340,
1559      340,   340,   340,   340,   340,   340,   341,   341,   341,   342,
1560      342,   343,   343,   343,   343,   344,   344,   344,   344,   344,
1561      344,   345,   346,   346,   346,   346,   346,   347,   347,   347,
1562      347,   348,   348,   349,   349,   349,   350,   350,   350,   350,
1563      350,   350,   350,   351,   351,   351,   351,   352,   352,   352,
1564      352,   353,   354,   355,   355,   355,   356,   356,   356,   357,
1565      357,   357,   357,   357,   357,   358,   358,   359,   359,   359,
1566      359,   359,   359,   359,   359,   359,   359,   359,   359,   360,
1567      360,   360,   360,   360,   360,   360,   360,   360,   360,   360,
1568      360,   360,   360,   360,   360,   360,   360,   360,   360,   360,
1569      360,   360,   361,   361,   361,   361,   361,   361,   361,   361,
1570      362,   362,   362,   362,   363,   363,   363,   363,   364,   364,
1571      364,   364,   365,   365,   366,   366,   366,   366,   366,   366,
1572      366,   366,   366,   366,   366,   366,   366,   366,   366,   366,
1573      366,   366,   366,   366,   367,   367,   367,   367,   367,   367,
1574      367,   368,   368,   368,   368,   368,   369,   369,   369,   369,
1575      370,   370,   370,   371,   371,   371,   372,   373,   373,   373,
1576      374,   374,   375,   375,   376,   376,   376,   376,   377,   378,
1577      379,   380
1578 };
1579
1580 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1581 static const unsigned char yyr2[] =
1582 {
1583        0,     2,     2,     2,     1,     2,     1,     1,     1,     4,
1584        4,     2,     1,     3,     4,     3,     2,     2,     1,     3,
1585        2,     2,     2,     2,     2,     2,     2,     2,     1,     2,
1586        1,     2,     2,     2,     2,     2,     2,     1,     1,     3,
1587        1,     3,     3,     1,     1,     3,     3,     1,     3,     3,
1588        3,     3,     1,     2,     2,     1,     1,     2,     2,     2,
1589        2,     1,     2,     2,     1,     1,     2,     2,     1,     2,
1590        2,     2,     2,     1,     2,     2,     3,     4,     5,     4,
1591        3,     4,     2,     3,     4,     5,     4,     3,     4,     5,
1592        5,     4,     2,     3,     3,     3,     3,     2,     4,     3,
1593        3,     2,     4,     3,     2,     3,     2,     3,     2,     1,
1594        2,     3,     3,     3,     2,     1,     3,     3,     1,     3,
1595        3,     2,     4,     5,     3,     4,     3,     1,     3,     3,
1596        3,     2,     3,     2,     4,     5,     3,     4,     3,     1,
1597        3,     3,     2,     1,     2,     2,     2,     1,     2,     5,
1598        7,     9,     6,     8,     4,     6,     1,     2,     3,     4,
1599        3,     2,     2,     2,     1,     1,     4,     3,     3,     3,
1600        2,     2,     2,     4,     1,     2,     1,     3,     3,     1,
1601        1,     3,     7,     1,     2,     4,     1,     2,     2,     1,
1602        1,     2,     3,     3,     2,     2,     1,     1,     2,     2,
1603        1,     2,     2,     2,     2,     1,     2,     1,     1,     2,
1604        4,     4,     6,     2,     4,     4,     6,     1,     1,     3,
1605        1,     2,     4,     1,     1,     1,     1,     3,     1,     1,
1606        1,     3,     3,     3,     3,     3,     3,     1,     3,     1,
1607        2,     2,     3,     3,     5,     5,     6,     6,     2,     2,
1608        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1609        3,     1,     1,     3,     1,     1,     4,     4,     5,     8,
1610        1,     1,     2,     4,     2,     6,     6,     5,     5,     6,
1611        6,     5,     5,     7,     7,     6,     6,     7,     7,     6,
1612        6,     4,     5,     4,     6,     4,     1,     1,     1,     1,
1613        3,     1,     2,     2,     2,     1,     4,     4,     3,     4,
1614        4,     3,     3,     2,     2,     4,     4,     3,     4,     3,
1615        3,     2,     2,     1,     4,     4,     3,     4,     4,     3,
1616        3,     2,     2,     4,     4,     3,     4,     3,     3,     2,
1617        2,     1,     1,     3,     3,     1,     1,     3,     3,     2,
1618        2,     2,     2,     2,     4,     2,     4,     5,     5,     1,
1619        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1620        1,     1,     4,     1,     3,     3,     3,     3,     3,     3,
1621        1,     3,     3,     3,     3,     1,     3,     3,     3,     3,
1622        2,     1,     2,     3,     3,     3,     3,     3,     3,     3,
1623        1,     3,     3,     3,     3,     3,     3,     3,     3,     1,
1624        3,     3,     3,     3,     1,     3,     3,     3,     3,     1,
1625        3,     3,     3,     3,     1,     3,     3,     1,     3,     3,
1626        1,     5,     5,     5,     5,     5,     5,     5,     5,     5,
1627        5,     5,     5,     5,     5,     5,     5,     1,     3,     3,
1628        3,     3,     3,     3,     3,     3,     1,     1,     1,     1,
1629        1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
1630        2,     1,     3,     3,     1,     1,     2,     2,     3,     3,
1631        3,     3,     5,     3,     3,     3,     5,     3,     3,     1,
1632        2,     2,     3,     3,     3,     3,     5,     3,     3,     3,
1633        5,     3,     3,     2,     2,     2,     2,     3,     2,     5,
1634        6,     6,     1,     1,     1,     1,     1,     4,     1,     3,
1635        3,     3,     3,     3,     3,     1,     3,     3,     3,     3,
1636        3,     3,     3,     3,     1,     3,     3,     3,     3,     1,
1637        2,     3,     3,     3,     3,     3,     3,     3,     1,     3,
1638        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1639        3,     1,     3,     3,     3,     3,     1,     3,     3,     3,
1640        3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
1641        3,     3,     1,     5,     5,     5,     5,     4,     4,     4,
1642        4,     5,     5,     5,     5,     4,     4,     4,     4,     5,
1643        5,     5,     5,     5,     5,     5,     5,     3,     3,     2,
1644        2,     1,     3,     3,     3,     3,     3,     3,     1,     2,
1645        3,     3,     3,     3,     2,     2,     2,     2,     1,     2,
1646        3,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1647        1,     1,     1,     1,     1,     3,     3,     1,     3,     2,
1648        1,     2,     2,     2,     4,     4,     3,     3,     4,     5,
1649        4,     6,     6,     4,     5,     4,     6,     6,     2,     2,
1650        2,     5,     3,     5,     6,     5,     7,     7,     8,     8,
1651        7,     7,     3,     3,     3,     4,     3,     5,     5,     1,
1652        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1653        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1654        1,     1,     1,     1,     1,     1,     4,     4,     4,     1,
1655        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1656        1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1657        4,     1,     1,     2,     2,     3,     5,     2,     3,     5,
1658        5,     5,     1,     3,     2,     2,     2,     3,     3,     3,
1659        3,     3,     3,     3,     3,     1,     1,     4,     3,     2,
1660        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1661        3,     3,     1,     1,     1,     2,     1,     2,     1,     2,
1662        1,     2,     1,     2,     1,     2,     1,     2,     1,     2,
1663        1,     2,     1,     2,     1,     2,     1,     2,     1,     2,
1664        1,     2,     1,     2,     1,     2,     1,     2,     1,     2,
1665        1,     2,     1,     2,     1,     2,     1,     2,     1,     2,
1666        1,     2,     1,     2,     1,     2,     1,     1,     1,     2,
1667        1,     2,     1,     2,     1,     2,     4,     5,     1,     1,
1668        1,     2,     1,     2,     1,     2,     1,     2,     4,     5,
1669        1,     2,     1,     2,     1,     2,     1,     2,     1,     2,
1670        1,     2,     4,     5,     1,     2,     1,     2,     1,     2,
1671        1,     2,     1,     2,     1,     2,     4,     5,     3,     3,
1672        1,     3,     3,     3,     3,     1,     3,     4,     4,     4,
1673        3,     2,     3,     3,     3,     3,     2,     2,     2,     3,
1674        4,     1,     1,     2,     2,     1,     1,     4,     1,     3,
1675        2,     3,     3,     3,     3,     4,     4,     4,     2,     3,
1676        3,     3,     4,     4,     3,     2,     3,     3,     3,     4,
1677        4,     1,     2,     2,     3,     1,     1,     2,     2,     2,
1678        3,     1,     1,     2,     2,     2,     3,     1,     2,     3,
1679        2,     1,     2,     2,     3,     3,     1,     2,     2,     3,
1680        3,     1,     2,     2,     3,     3,     1,     3,     4,     1,
1681        4,     2,     5,     3,     1,     1,     1,     1,     1,     1,
1682        3,     3,     2,     2,     1,     3,     2,     3,     3,     1,
1683        3,     3,     1,     2,     3,     3,     1,     2,     1,     2,
1684        2,     2,     2,     3,     1,     1,     3,     3,     1,     3,
1685        4,     3,     4,     3,     3,     4,     3,     4,     1,     3,
1686        3,     4,     3,     3,     3,     4,     1,     3,     3,     3,
1687        3,     3,     1,     3,     2,     1,     1,     1,     1,     1,
1688        2,     1,     1,     1,     1,     2,     2,     2,     1,     1,
1689        1,     1,     1,     2,     1,     1,     4,     1,     3,     0,
1690        6,     8,    10,    12,     8,    10,    10,     5,     7,     9,
1691       11,     7,     9,     9,     3,     4,     4,     3,     3,     3,
1692        4,     4,     3,     2,     3,     2,     1,     1,     1,     1,
1693        1,     2,     3,     2,     2,     2,     3,     3,     2,     5,
1694        6,     2,     2,     2,     2,     2,     2,     1,     2,     2,
1695        3,     1,     2,     1,     2,     2,     1,     2,     2,     2,
1696        2,     2,     2,     1,     1,     2,     2,     1,     1,     2,
1697        2,     1,     2,     2,     1,     2,     1,     2,     2,     5,
1698        5,     7,     7,     5,     5,     3,     2,     5,     4,     4,
1699        7,     6,     6,     5,     7,     6,     4,     7,     9,     3,
1700        4,     4,     5,     5,     5,     6,     7,     6,     6,     5,
1701        5,     4,     3,     2,     1,     2,     3,     4,     3,     4,
1702        5,     4,     3,     2,     2,     2,     3,     3,     3,     3,
1703        2,     2,     1,     1,     4,     3,     3,     2,     4,     3,
1704        3,     2,     1,     2,     1,     1,     2,     1,     2,     3,
1705        3,     1,     2,     2,     2,     3,     4,     4,     2,     2,
1706        2,     2,     1,     2,     1,     2,     1,     2,     2,     1,
1707        2,     1,     2,     2,     2,     2,     1,     2,     2,     3,
1708        1,     1,     0,     6,     6,     5,     4,     1,     2,     2,
1709        1,     3,     3,     4,     1,     1,     2,     2,     6,     6,
1710        6,     4
1711 };
1712
1713 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1714    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1715    means the default is an error.  */
1716 static const unsigned short int yydefact[] =
1717 {
1718     1252,   261,     6,   639,   640,   641,   642,   643,   701,   702,
1719      703,   704,   705,   707,   710,   711,   708,   709,   695,   696,
1720      700,   706,   782,   783,   650,  1098,   239,   719,   915,   693,
1721        0,     0,   918,  1096,  1097,   720,   721,   712,     0,     0,
1722        0,     0,     0,   941,     0,  1221,   830,   715,     8,     4,
1723        0,     0,     0,  1215,     0,  1234,   895,   824,     0,   714,
1724        0,   689,   691,   832,   834,   697,   826,   828,   765,   713,
1725        0,     0,   690,   692,     0,     0,     0,     0,     0,   961,
1726      694,   916,     0,     0,     0,  1217,  1239,  1214,  1236,  1246,
1727     1241,     0,     0,     0,  1232,     0,  1229,  1212,     0,     0,
1728     1218,     0,     0,     0,     0,  1231,  1230,     0,   698,   942,
1729      694,   943,   895,   912,   911,   957,     0,     0,     0,     0,
1730     1108,     0,   241,   240,     0,     0,   249,     0,   248,     2,
1731        3,     0,     5,     0,   652,   651,     0,     0,   670,     0,
1732        0,     0,     0,   769,     0,   755,   754,  1111,   641,  1105,
1733      831,  1216,  1235,   895,   825,   833,   835,   827,   829,   961,
1734      694,     0,     0,     0,     0,  1002,     0,     0,     0,   901,
1735        0,     0,   634,   635,   636,   637,   638,  1015,   906,   818,
1736      890,   812,     0,   822,     0,   814,   816,   765,   820,     0,
1737        0,  1014,     0,     0,  1018,  1028,     0,     0,     0,     0,
1738      963,     0,   962,     0,   723,   724,   725,   726,   727,   729,
1739      732,   733,   730,   731,   722,   728,   741,   734,     0,     0,
1740     1141,   737,     0,     0,   802,   736,   808,   804,   806,   810,
1741      735,     0,  1117,     0,     0,     0,     0,  1207,  1211,   641,
1742        0,  1228,  1223,  1237,     0,  1224,  1240,  1222,  1238,  1233,
1743     1245,  1248,     0,     0,     0,     0,     0,  1243,  1244,  1247,
1744     1242,     1,     0,  1219,  1220,  1213,     0,     0,   475,   270,
1745        0,     0,     0,     0,     0,     0,   369,   370,     0,     0,
1746        0,     0,     0,     0,     0,     0,     0,   364,     0,   367,
1747        0,     0,   363,   365,   366,   368,     0,   265,     0,   264,
1748      305,   262,   474,     0,   359,   371,     0,   373,   380,   385,
1749      391,     0,   400,   409,   414,   419,   424,   427,   430,   447,
1750        0,   513,   512,   516,   518,   525,   534,   539,   548,   561,
1751      566,   571,   576,   579,   582,     0,   271,   296,   297,   298,
1752      299,     0,     0,     0,     0,     0,   699,   944,   914,   913,
1753        0,   958,     0,   896,   960,   734,   737,   208,   230,   229,
1754      228,   237,     0,   264,   371,   430,   632,   516,     0,   220,
1755      205,   253,     0,     0,   252,   259,     0,     0,  1099,  1100,
1756      712,     0,   176,     0,   179,   180,     0,     0,     0,     0,
1757        0,   183,   250,     4,     0,     0,     0,     0,    28,    30,
1758      164,   186,   189,     0,   190,     0,   115,   118,     0,   196,
1759      127,     0,   165,   139,     0,   174,     0,   197,   200,     0,
1760        0,   264,     0,     0,     0,     0,   966,   694,     0,    12,
1761       18,     0,   837,   836,   844,   838,     0,   840,   842,   765,
1762      849,   848,   254,   260,   251,     0,     0,   243,   242,   683,
1763      644,   647,   682,   686,   672,     0,     0,     0,     0,   223,
1764      224,   225,   226,     0,   218,   475,   771,     0,     0,   768,
1765      475,   770,     0,     0,   475,   772,     0,     0,     0,   963,
1766        0,   962,     0,   996,     0,     0,  1205,  1209,  1003,  1106,
1767        0,     0,  1107,   900,     0,   264,   633,     0,     0,     0,
1768        0,   652,   651,   653,     0,   756,     0,     0,     0,  1012,
1769      819,   895,   813,   823,   815,   817,   821,   694,   946,   945,
1770        0,     0,     0,   905,     0,     0,   904,     0,     0,     0,
1771     1044,     0,   902,   903,   964,   965,     0,     0,  1115,  1103,
1772     1114,    75,  1112,  1101,   895,   803,   809,   805,   807,   811,
1773      694,     0,  1116,  1113,  1104,     0,  1118,     0,  1206,  1210,
1774     1119,     0,     0,     0,     0,     0,     0,     0,     0,  1203,
1775        0,     0,     0,  1046,     0,     0,     0,   156,  1048,  1049,
1776        0,     0,     0,   264,     0,   371,     0,     0,   516,   611,
1777      618,     0,  1123,  1126,  1054,  1045,  1058,     0,     0,     0,
1778        0,  1145,  1143,  1047,  1060,     0,  1061,  1052,  1059,     0,
1779     1062,  1142,     0,     0,  1225,   895,     0,     0,     0,  1235,
1780        0,     0,  1211,  1249,     0,     0,     0,   917,   489,     0,
1781        0,   323,     0,   361,   355,   515,   514,   508,     0,   350,
1782      503,   351,   504,     0,   884,   874,   882,   876,   878,   880,
1783        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1784        0,   274,     0,     0,     0,   788,   784,   786,   790,  1006,
1785        0,   272,     0,   301,     0,   342,     0,   341,     0,   477,
1786       92,     0,   476,     0,   313,   314,     0,     0,     0,   457,
1787      458,   459,   460,   461,   462,   463,   464,   465,   466,   456,
1788        0,     0,   353,   506,   352,   505,     0,     0,     0,     0,
1789        0,     0,     0,   392,   540,     0,     0,   390,     0,     0,
1790        0,     0,     0,     0,     0,     0,     0,     0,   716,     0,
1791      321,   322,     0,     0,     0,     0,     0,     0,     0,     0,
1792        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1793        0,     0,     0,     0,     0,     0,   717,   718,     0,     0,
1794        0,  1264,  1265,     0,     0,     0,   959,     0,    10,     9,
1795        0,     0,     0,     0,     0,   694,   945,   206,     0,   208,
1796        0,   264,     0,     0,   856,   850,   852,   854,     0,     0,
1797        0,    16,    20,     0,     0,     0,     0,     0,     0,     0,
1798        0,   364,     0,   264,     0,    26,    21,    27,    24,     0,
1799       25,    23,    22,    29,    31,   163,   187,    82,   162,   188,
1800      121,   172,     0,     0,     0,     0,   131,     0,     0,   133,
1801        0,     0,   142,   175,   201,   198,   203,   202,   199,   204,
1802      114,     0,     0,   161,     0,   895,   752,     0,   971,   694,
1803        0,    11,    17,   742,   908,  1014,     0,     0,   968,     0,
1804      967,     0,     0,   184,   170,   191,   194,     0,   195,     0,
1805      171,   895,     0,     0,   652,   651,   845,   839,   841,   843,
1806        0,     0,     0,   649,   685,     0,     0,     7,   213,   209,
1807      221,   767,     0,     0,    61,    52,    91,    38,    37,    56,
1808       68,    44,    47,     0,    73,    55,     0,     0,     0,   985,
1809      987,     0,   984,   986,     0,    40,    43,   964,   965,   475,
1810        0,   976,   979,   995,   998,  1204,  1208,  1000,  1004,  1001,
1811     1005,   899,   897,   898,  1041,  1023,  1032,   657,   656,     0,
1812        0,   475,   757,     0,     0,   475,   758,     0,     0,   928,
1813      895,     0,     0,     0,     0,     0,   920,     0,     0,     0,
1814     1013,   949,   948,     0,     0,   947,  1017,  1016,     0,   889,
1815     1040,   892,  1026,  1034,     0,   888,  1039,   891,  1024,  1033,
1816        0,  1043,  1037,   893,  1019,  1029,     0,  1038,   894,  1021,
1817     1030,     0,     0,     0,    76,     0,  1102,  1120,     0,     0,
1818        0,     0,     0,     0,  1185,     0,     0,     0,     0,     0,
1819        0,     0,     0,     0,  1046,     0,   264,     0,  1183,  1051,
1820     1053,     0,     0,  1193,  1194,  1195,     0,  1201,     0,     0,
1821        0,     0,     0,     0,   157,   143,  1057,  1056,  1055,     0,
1822        0,     0,   619,     0,   475,  1050,     0,     0,     0,     0,
1823      470,     0,     0,   475,     0,     0,     0,     0,  1124,  1127,
1824     1129,     0,  1125,  1128,  1130,     0,  1156,  1063,  1226,  1227,
1825      241,   240,     0,     0,     0,  1209,  1210,     0,  1109,     0,
1826      796,   264,     0,   507,   798,   792,   794,   800,  1008,     0,
1827      491,   490,     0,   331,   332,     0,     0,     0,     0,   339,
1828      340,     0,     0,     0,     0,     0,     0,     0,     0,   885,
1829      875,   883,   877,   879,   881,   694,   952,   951,     0,   870,
1830      860,   868,   862,   864,   866,     0,     0,     0,     0,     0,
1831        0,     0,     0,     0,     0,     0,     0,     0,   263,     0,
1832      789,   785,   787,   791,  1007,     0,     0,   475,     0,     0,
1833        0,   104,     0,   300,   475,     0,     0,    93,   475,     0,
1834        0,   478,   312,   475,   308,   346,   480,   481,   345,   484,
1835      311,     0,     0,   452,   448,   302,   374,   519,   375,   520,
1836      376,   521,   475,   381,   526,   475,   382,   528,   386,   535,
1837      387,   536,   394,   542,   395,   543,   393,   541,   475,   405,
1838      557,   401,   549,   475,   406,   558,   402,   550,   412,   564,
1839      410,   562,   417,   569,   415,   567,   422,   574,   420,   572,
1840      425,   577,   428,   580,   607,     0,   628,     0,     0,     0,
1841        0,   454,   450,   479,   320,   475,   317,     0,   485,   488,
1842      319,     0,     0,   453,   449,   377,   522,   378,   523,   379,
1843      524,   475,   383,   530,   475,   384,   532,   388,   537,   389,
1844      538,   398,   546,   399,   547,   396,   544,   397,   545,   475,
1845      407,   559,   403,   551,   475,   408,   560,   404,   552,   413,
1846      565,   411,   563,   418,   570,   416,   568,   423,   575,   421,
1847      573,   426,   578,   429,   581,   608,     0,     0,     0,     0,
1848      455,   451,     0,     0,  1257,  1260,     0,     0,  1255,  1266,
1849     1267,     0,     0,   208,   236,   235,   234,   264,   238,   233,
1850      232,   231,     0,     0,     0,     0,     0,     0,     0,     0,
1851      948,   245,     0,   244,   126,     0,   124,   857,   851,   853,
1852      855,     0,    15,    19,     0,   178,   177,   181,     0,   971,
1853      694,     0,   138,     0,   136,   857,     0,   264,     0,    83,
1854      116,   119,   117,   120,   128,   129,   130,   132,   140,   141,
1855      113,   111,   112,    13,   744,   747,     0,   160,     0,   973,
1856        0,   972,     0,     0,   743,   895,   909,   969,   970,   895,
1857      169,   192,   168,   193,   167,     0,     0,     0,     0,     0,
1858      645,   646,   648,     0,     0,   675,   671,     0,     0,     0,
1859        0,     0,     0,   227,   219,   217,    35,    36,    74,    53,
1860        0,    54,     0,    63,    60,    71,    66,    72,    59,    89,
1861       38,    69,    62,    90,    58,    70,    67,     0,    57,     0,
1862       32,    34,    33,   988,   989,     0,   665,   655,     0,   660,
1863      654,     0,   919,   929,   930,   923,   921,   922,   950,   931,
1864        0,     0,   924,     0,     0,     0,  1027,  1035,  1014,  1025,
1865     1020,  1022,  1031,   738,   739,   740,   475,     0,     0,  1087,
1866     1092,     0,     0,  1088,  1094,     0,     0,     0,     0,   475,
1867        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1868        0,     0,     0,     0,     0,  1182,   475,     0,  1146,   264,
1869        0,     0,     0,  1192,  1198,  1199,  1196,  1197,     0,     0,
1870        0,     0,   144,  1084,  1089,   158,   475,   616,   612,     0,
1871        0,     0,   475,   468,   620,   475,   617,   614,   475,   469,
1872      621,     0,  1208,  1110,     0,     0,   354,   797,   799,   793,
1873      795,   801,  1009,     0,   492,   330,   475,   326,   494,   495,
1874      498,   329,     0,     0,   493,   338,   475,   335,     0,   499,
1875      502,   337,     0,     0,   293,   291,     0,     0,   935,     0,
1876        0,     0,     0,     0,     0,   955,   954,     0,   953,     0,
1877        0,     0,   871,   861,   869,   863,   865,   867,     0,   267,
1878        0,   266,   295,     0,     0,     0,     0,     0,     0,  1271,
1879        0,     0,     0,   372,   517,   273,   107,   105,   344,   343,
1880       98,   102,   309,     0,   310,   306,   307,   629,     0,     0,
1881        0,     0,     0,     0,   318,     0,   315,   316,     0,     0,
1882        0,     0,  1259,  1258,  1262,     0,     0,     0,  1254,  1253,
1883        0,     0,     0,     0,     0,     0,     0,     0,   219,     0,
1884        0,   122,   125,     0,     0,   173,   973,     0,   972,     0,
1885        0,   134,   137,     0,    14,   475,     0,     0,   753,     0,
1886      974,   975,   745,   748,   910,   185,   166,   846,     0,   247,
1887      246,     0,   674,     0,   214,   207,   215,   210,   211,   222,
1888       50,    45,    48,    51,    46,    49,    36,    42,    39,    41,
1889        0,     0,   992,   993,   664,     0,   659,     0,   932,   933,
1890      926,   925,   927,  1011,  1010,    78,  1085,  1090,  1086,  1091,
1891        0,     0,     0,     0,   475,  1159,     0,   475,     0,  1158,
1892     1191,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1893        0,     0,  1166,     0,  1147,   475,  1148,   475,     0,     0,
1894        0,  1069,   917,  1069,     0,     0,   154,     0,     0,     0,
1895      159,     0,     0,   509,   327,     0,   328,   324,   325,   336,
1896        0,   333,   334,   292,   886,   934,   936,   937,   277,   278,
1897        0,   956,   938,     0,     0,     0,     0,     0,     0,     0,
1898        0,     0,     0,     0,   268,   281,   282,     0,     0,     0,
1899        0,     0,     0,     0,     0,     0,   475,   348,   347,   472,
1900      630,   439,   599,   431,   583,   443,   603,   435,   591,   473,
1901      631,   440,   600,   432,   584,   444,   604,   436,   592,   475,
1902      441,   601,   433,   585,   445,   605,   437,   593,   442,   602,
1903      434,   586,   446,   606,   438,   594,  1261,  1263,  1256,   858,
1904        0,   123,   149,   974,   975,     0,   135,    85,     0,     0,
1905      847,     0,     0,     0,     0,     0,     0,     0,     0,   990,
1906      991,   980,     0,     0,     0,     0,  1149,  1150,  1153,  1154,
1907     1157,  1190,     0,     0,     0,     0,     0,     0,     0,  1163,
1908      475,   475,     0,     0,     0,  1067,     0,  1065,  1077,     0,
1909     1069,     0,  1069,     0,     0,     0,     0,   511,   510,   475,
1910      475,   887,   939,   940,   275,   276,   872,   285,   286,     0,
1911        0,     0,     0,     0,   279,   280,   289,   290,     0,     0,
1912      294,  1269,  1270,  1268,   859,     0,   746,   749,   751,   750,
1913        0,     0,   216,   212,   982,     0,     0,     0,     0,     0,
1914        0,     0,  1178,  1161,     0,     0,  1162,  1175,     0,  1165,
1915     1177,     0,     0,  1069,     0,  1069,     0,  1069,     0,  1070,
1916        0,     0,     0,   147,     0,   152,     0,   155,     0,   873,
1917      283,   284,     0,     0,   977,   287,   288,   182,  1151,  1152,
1918        0,     0,  1160,  1167,     0,  1164,  1176,  1081,  1068,     0,
1919        0,     0,  1078,     0,     0,  1069,  1069,     0,  1069,   146,
1920      145,   150,   148,     0,     0,   372,   517,   269,   978,     0,
1921        0,  1066,     0,     0,  1069,  1074,     0,     0,  1071,     0,
1922        0,   153,  1168,  1082,  1083,  1079,     0,     0,     0,     0,
1923     1069,   151,     0,  1075,  1076,  1072,     0,  1080,     0,  1073
1924 };
1925
1926 /* YYDEFGOTO[NTERM-NUM]. */
1927 static const short int yydefgoto[] =
1928 {
1929       -1,   179,    47,    48,   888,   296,   394,   395,   396,   397,
1930      398,   399,   400,   401,   897,   898,   899,   900,   901,   902,
1931      903,   904,   905,   906,   907,   908,   222,   223,   402,   403,
1932       50,   297,   298,   673,   701,   406,   407,   408,   409,   410,
1933      411,   412,   413,   414,   415,  1982,  1983,  1984,   416,   580,
1934      581,   582,   417,   418,   419,   420,   357,   358,   459,   359,
1935      460,   360,   461,   462,   780,   361,   362,    51,    52,    53,
1936       54,    55,   299,   300,   301,   909,   910,   302,   303,   632,
1937      676,  1167,   304,   585,   634,   306,   307,   308,   309,   310,
1938      311,   312,   313,   314,   315,   316,   317,   318,   319,   662,
1939      755,   587,  1228,   321,   635,   322,   588,   637,   324,   325,
1940      326,   327,   328,   329,   330,   331,   332,   333,   334,   589,
1941      590,  1017,  1230,   369,   498,   181,    57,   451,   452,   182,
1942       59,   183,   184,    60,    61,    62,    63,    64,    65,   185,
1943      109,   186,   228,   846,   847,   187,   188,   189,    69,    70,
1944       71,    72,    73,   190,   669,  1088,   370,   424,    75,    76,
1945      441,   442,   789,  1125,   650,   951,   952,    77,   425,    79,
1946      426,   115,   110,    81,   518,  1116,   428,   520,  1118,   118,
1947      429,   430,   853,  1443,  1444,   915,   916,  1445,   164,   165,
1948      166,   167,   670,  1089,   194,   195,   196,   197,   198,   199,
1949      592,   593,  1905,  1906,   594,   595,   596,    84,   431,   232,
1950       85,    86,   233,   234,   235,   599,   600,   601,   602,   236,
1951      603,   809,  1512,  1019,   606,   607,   608,  1020,   610,    87,
1952       88,   336,    89,    90,    91,    92,    93,    94,   761,  1305,
1953     1306,   762,   763,   337,   338,   339,   340
1954 };
1955
1956 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1957    STATE-NUM.  */
1958 #define YYPACT_NINF -1590
1959 static const int yypact[] =
1960 {
1961    34238, -1590, -1590, -1590, -1590,   463, -1590, -1590, -1590, -1590,
1962    -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590,
1963    -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590,
1964      770,   107, -1590, -1590, -1590, -1590, -1590, -1590,    84,   190,
1965      295,   372,   141,  1188,  1236, -1590, -1590, -1590,   312, -1590,
1966      218,   372,   870, -1590,   887,   311,  1166, -1590,   378, -1590,
1967     1215, -1590,   319, -1590, -1590, -1590, -1590, -1590,  1221, -1590,
1968     1233,   334, -1590,   361,   729, 33886,  1236,   290, 34500, -1590,
1969      904, -1590,  1001, 36620, 32417, -1590, -1590, -1590, -1590, -1590,
1970    -1590, 34326, 33525,   557, -1590,   107, -1590, -1590,   141,   141,
1971      569,   507,   141, 26501,   372, -1590, -1590,   573, -1590,  1188,
1972    -1590, -1590, -1590,   290, -1590, -1590,   904,  1001,  1242, 20474,
1973    -1590,   556,   527,   570, 27664, 36136, -1590, 27780, -1590, -1590,
1974    -1590,   372, -1590,  1411,  1351,  1389,   163, 36136, -1590, 36282,
1975    27896, 36136, 28012, -1590, 28128, -1590, -1590, -1590, -1590, -1590,
1976    -1590, -1590,   311,   628, -1590, -1590, -1590, -1590, -1590,   712,
1977      904,  1001,  1004, 36620,   209, -1590,  1388,   562,  1396, -1590,
1978    24530,   581, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590,
1979      823, -1590,   871, -1590,   568, -1590, -1590,   657, -1590,   687,
1980      899,  7616,   458,   723, -1590, -1590,   802,   859,   704,   744,
1981    -1590,   322, -1590,   322, -1590, -1590, -1590, -1590, -1590, -1590,
1982    -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590,   731,   786,
1983    -1590, -1590,    70,    38, -1590, -1590, -1590, -1590, -1590, -1590,
1984    -1590, 34062, -1590, 15586, 32887, 36803, 15715, -1590,   795,   930,
1985      915, -1590, -1590,   311, 33974, -1590, -1590, -1590, -1590, -1590,
1986    -1590, -1590,   319,   361, 34848, 36620, 35107, -1590, -1590, -1590,
1987    -1590, -1590,   805,   569,   569, -1590, 26501,   379, -1590, -1590,
1988    26574, 26647, 26647,   912, 36355, 26501, -1590, -1590,   926,   949,
1989    36355, 26501,   956,   965,   982,   992,   997, -1590, 20698, -1590,
1990      141, 24603, -1590, -1590, -1590, -1590,   908, -1590,   158,   995,
1991    -1590, -1590, -1590, 10895, -1590,  1416, 24603, -1590,   586,  1154,
1992     1395, 26501,  1088,  1465,  1018,  1019,   985,  1163,    80,  1416,
1993     1057,   811, -1590,  1416, -1590,   941,  1359,  1555,  1176,  1571,
1994     1067,  1105,  1119,  1245,   109,  1416,   569, -1590, -1590, -1590,
1995    -1590,  1151,    99, 35532,  1152,  1172, -1590, -1590,   290, -1590,
1996     1001, -1590,   322, -1590, -1590,   926,   908,  1189, -1590, -1590,
1997    -1590, -1590,  1036,  1097, -1590,   235, -1590, -1590,   275, -1590,
1998    36524, -1590, 20586, 36282, -1590,   929, 35844, 35192, -1590, -1590,
1999      926,  1202, -1590,   372, -1590, -1590,   107, 35277, 35022,  5665,
2000    36209, -1590, -1590,   908,   944,  1243,  1243,  1021, -1590,  1304,
2001    -1590, -1590,  1312,   180,  1153,   223, -1590, -1590,   477,  1315,
2002    -1590,  1326, -1590, -1590,    45, -1590,  1401, -1590, -1590, 27200,
2003    27316,   252,   903,   811, 32605, 34587, -1590,   904,  1001, -1590,
2004    -1590, 32511, -1590, -1590,  1354, -1590,   372, -1590, -1590, -1590,
2005      372, 36355, -1590,   929, -1590, 27432, 27548,  1392,  1412, -1590,
2006     1413, -1590,  1422, -1590, -1590,   791,  1414,   694,   107, -1590,
2007    -1590, -1590, -1590,   747,   159,  1063, -1590, 28244, 28360, -1590,
2008     1148, -1590, 28476, 28592,  1191, -1590, 28708, 28824, 18810,  1094,
2009     1001,   712,   322, -1590, 24676, 32887, -1590,   795, -1590, -1590,
2010     1236,  1236, -1590, -1590,  1426,   131, -1590,  1430,  1472, 35917,
2011     1524,  1470,  1485, -1590, 28940, -1590, 29056,  8275, 24749,  1236,
2012    -1590,   823, -1590, -1590, -1590, -1590, -1590,    83,   515,   184,
2013      544,   468,  1489, -1590, 35619,  1496, -1590, 35694,  1499, 35769,
2014     1503, 35990, -1590, -1590, -1590, -1590, 26501,   372, -1590, -1590,
2015     1513, -1590, -1590, -1590,  1515, -1590, -1590, -1590, -1590, -1590,
2016      904,  1425,   562, -1590, -1590,  1520, -1590, 15844, -1590,   795,
2017    -1590,   302, 24822,  1516,  1530,  1534,    62, 15973,  1539,   107,
2018     1540,  1541, 16102, 34150,  1251,  1542,  1546,   107, -1590, -1590,
2019     1547,  1549,  1551,  1424, 14291,  1416, 14425,  7254,  1416,  1416,
2020    -1590, 14554, -1590, -1590, -1590, -1590, -1590, 16231, 16360, 16489,
2021    16618, -1590, -1590, -1590,   795, 16747, -1590, -1590, -1590, 16876,
2022    -1590, -1590,   141,   141,   569,   602,   372,  1428,  1544, -1590,
2023    36620, 32887, -1590, -1590, 34935, 26501,  1556, -1590, -1590, 20826,
2024      248, -1590, 11046, -1590, -1590,   880, -1590, -1590, 24895, -1590,
2025    -1590, -1590, -1590, 36355,  1560, -1590, -1590, -1590, -1590, -1590,
2026    32033, 36355, 20954,   107, 32129, 36355, 26501,   141,   141,   141,
2027    26501, -1590, 11182, 11343, 11477, -1590, -1590, -1590, -1590,  5854,
2028     1552,    85, 18938, -1590,   281, -1590,   236, -1590, 19066,  1563,
2029    -1590, 19194, -1590,  1543, -1590, -1590,  9505,  1550, 26501, -1590,
2030    -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590,
2031    24603,   286, -1590, -1590, -1590, -1590, 26501, 26501, 26501, 26720,
2032    26793, 26501, 26501,  1395,  1555, 26501, 26501, -1590, 26501, 24968,
2033    25041, 24603, 24603, 24603, 26501, 26501, 11611, 24603, -1590,  1554,
2034    -1590, -1590, 22267,  1557, 26501, 24603, 26501, 26501, 26501, 26866,
2035    26939, 26501, 26501, 26501, 26501, 26501, 26501, 25114, 25187, 24603,
2036    24603, 24603, 26501, 26501, 11745, 24603, -1590, -1590,   674,   823,
2037    36209, -1590, -1590, 33613, 35532, 35532, -1590, 20474, -1590, -1590,
2038    20474, 20474, 24603, 24603, 31368,   521,   793, -1590,   702,   262,
2039      848,   914,   864,  1553,  1568, -1590, -1590, -1590,   372,  8113,
2040    35192, -1590, -1590,   107,  1558,  1567,  1569, 32793,  1564,   107,
2041    31937,  1188, 21066,  1059, 35362, -1590, -1590,   795, -1590,   795,
2042    -1590, -1590, -1590,   795, -1590, -1590,  1572, -1590, -1590,  1103,
2043    -1590, -1590,  3269,  3269,  1243,  1243, -1590,  1243,   141, -1590,
2044     1243,  1243, -1590, -1590,  1034, -1590, -1590,  1034, -1590, -1590,
2045     1115, 25260,  1234, -1590, 26501,   631, -1590,  1446,   290,   904,
2046     1001, -1590, -1590,   244,   581,  7616, 18682,   639, -1590,   322,
2047    -1590,   322,  1236, -1590, -1590, -1590,  1574,   300,  1580,   305,
2048    -1590,   252, 32699, 20474, -1590, -1590,  1582, -1590, -1590, -1590,
2049    36282, 36282, 26501,   107, -1590, 31028,   201, -1590,   763,   836,
2050     1545, -1590, 36282,   107, -1590, -1590, -1590,  1243, -1590, -1590,
2051    -1590, -1590, -1590, 32979,  1447, -1590, 19322, 36712, 19450, -1590,
2052    -1590, 10698, -1590, -1590, 35447, -1590, -1590,   712,  1094, -1590,
2053    25333, -1590, -1590, -1590, -1590, -1590,   795, -1590, -1590, -1590,
2054    -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590,  1422,   261,
2055      296,  1578, -1590, 29172, 29288,  1579, -1590, 29404, 29520, -1590,
2056      927,   268,   519,  1585,  1591,  1592, -1590,  1562,  1583,  1586,
2057     1126,   515,   184, 34674, 25406,   515, -1590, -1590, 36063, -1590,
2058    -1590,   823, -1590, -1590, 36063, -1590, -1590,   823, -1590, -1590,
2059    36063, -1590, -1590,   823, -1590, -1590, 36063, -1590,   823, -1590,
2060    -1590,  1593,  1598,   351, -1590, 19578, -1590, -1590, 17005,  1566,
2061     1597, 17134, 26501, 26501, -1590, 25479, 25552,  1600,  1601,  1607,
2062    21153,  1610,   107, 22340, -1590,  1444,  1449, 22413,  1656, -1590,
2063    -1590, 22486,  1608, -1590, -1590, -1590,  1609,  1612, 22559, 14683,
2064      141,  1616, 26501, 26501,   107, -1590, -1590, -1590, -1590, 21281,
2065      354, 25625, -1590,  1336, -1590, -1590, 27012, 11879, 12013, 25698,
2066    -1590, 27085, 12147,  1520, 17263, 17392, 17521, 17650, -1590, -1590,
2067    -1590, 17779, -1590, -1590, -1590, 17908, -1590, -1590,   569,   569,
2068     1619,  1627, 31143, 31258, 32887, -1590, -1590,  1623, -1590,   923,
2069    -1590,   252,  1626, -1590, -1590, -1590, -1590, -1590,  5854,  1630,
2070     1563, -1590,  1570, -1590, -1590, 22632,  1573, 26501,  1576, -1590,
2071    -1590, 22705,  1577, 26501,  1632, 36428, 20474, 34413, 26501,  1637,
2072    -1590, -1590, -1590, -1590, -1590,   484,  1636,  1640,  1631,  1643,
2073    -1590, -1590, -1590, -1590, -1590, 32225, 22778,  1646,  1647,  1650,
2074    26501,  1645, 32321,  1657,   497,   103,   194,  1658, -1590,   107,
2075    -1590, -1590, -1590, -1590, -1590, 26501,   141,   330, 33070, 19706,
2076     1655, -1590, 24603, -1590,   337, 33161, 19834, -1590,   338, 33252,
2077    19962, -1590, -1590, -1590, -1590, -1590,  1074,  1663, -1590, -1590,
2078    -1590, 22851,  6163, -1590, -1590,  1655, -1590, -1590, -1590, -1590,
2079    -1590, -1590, -1590,   586,   941, -1590,   586,   941,  1154,  1359,
2080     1154,  1359,  1395,  1555,  1395,  1555,  1395,  1555, -1590, -1590,
2081    -1590,  1088,  1176, -1590, -1590, -1590,  1088,  1176, -1590, -1590,
2082     1465,  1571, -1590, -1590,  1018,  1067, -1590, -1590,  1019,  1105,
2083      985,  1119,  1163,  1245, -1590,    34, -1590, 22924,  1660,  8972,
2084     1661, -1590, -1590, -1590, -1590, -1590, -1590,  1111, -1590, -1590,
2085    -1590, 22997,  9959, -1590, -1590, -1590, -1590, -1590, -1590, -1590,
2086    -1590, -1590,   586,   941, -1590,   586,   941,  1154,  1359,  1154,
2087     1359,  1395,  1555,  1395,  1555,  1395,  1555,  1395,  1555, -1590,
2088    -1590, -1590,  1088,  1176, -1590, -1590, -1590,  1088,  1176, -1590,
2089    -1590,  1465,  1571, -1590, -1590,  1018,  1067, -1590, -1590,  1019,
2090     1105,   985,  1119,  1163,  1245, -1590, 23070,  1662, 10351,  1664,
2091    -1590, -1590,   107,   107, -1590, -1590,   371,  1180, -1590, -1590,
2092    -1590, 33704, 33795, -1590, -1590, -1590, -1590,   974, -1590, -1590,
2093    -1590, -1590, 23143,  1665, 21537,  1666, 23216,  1667, 21610,  1668,
2094      793, -1590, 20474, -1590, -1590, 20474, -1590,    59, -1590, -1590,
2095    -1590,   585, -1590, -1590,   435, -1590, -1590, -1590,  1466,  1654,
2096      904,  1001, -1590,  1671, -1590,   643,   617,  1055,  1677, -1590,
2097    -1590, -1590, -1590, -1590, -1590, -1590, -1590,   569, -1590, -1590,
2098     3806, -1590, -1590, -1590, -1590, -1590, 20090, -1590,   660,   290,
2099      322,   290,   322, 26501, -1590,   844, -1590, -1590, -1590,  1678,
2100    -1590,  1572, -1590,  1563, -1590,  1477,   934, 20474,   986,  1085,
2101    -1590, -1590, -1590, 29636, 29752,  1679, -1590,  1397, 36355, 36355,
2102    36355, 36355, 26501, -1590, -1590, -1590, -1590,   795, -1590, -1590,
2103    25771, -1590, 25844, -1590, -1590, -1590,  1480,  1447, -1590, -1590,
2104     1243, -1590, -1590, -1590, -1590, -1590,  1480,  1447, -1590, 25917,
2105    -1590, -1590, -1590, -1590, -1590, 18037, -1590, -1590,   142, -1590,
2106    -1590,   217, -1590, -1590, -1590, -1590, -1590, -1590,   515, -1590,
2107     1683,  1684, -1590,  1674,  1682,  1685, -1590, -1590,  7616, -1590,
2108    -1590, -1590, -1590, -1590, -1590, -1590,   347, 33343, 20218, -1590,
2109    -1590, 21281, 21281, -1590, -1590, 23289, 14812, 23362, 23435, -1590,
2110    21409, 23508, 14941, 21153,  1689,  1690, 21153, 26501, 25990,  1722,
2111    23581,  1612, 10136,   141, 21153,  1692, 31748, 21153, -1590,  1479,
2112    23654, 21683, 23727, -1590, -1590, -1590, -1590, -1590,    95,   141,
2113     1695,  1175, -1590, -1590, -1590, -1590, -1590, -1590, -1590,  1700,
2114     1701,   107, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590,
2115    -1590, 36282, -1590, -1590,  1702,  1703, -1590, -1590, -1590, -1590,
2116    -1590, -1590, -1590, 12281, -1590, -1590, -1590, -1590,  1274,  1705,
2117    -1590, -1590, 23800, 21756, -1590, -1590, -1590, -1590,  1334, -1590,
2118    -1590, -1590, 23873, 21829, -1590, -1590,  1706,  1142, -1590,  1707,
2119     1709,  1711,  1704,  1710, 20474,  1636,  1640, 34761,  1636, 26501,
2120    20474, 26501,  1669, -1590, -1590, -1590, -1590, -1590,  1691, -1590,
2121    26063, -1590, -1590,  1712,  1713, 26501, 26501,  1708,  4570, -1590,
2122      107,   107, 26501, -1590, -1590,   569, -1590, -1590, -1590, -1590,
2123    -1590, -1590, -1590, 12415, -1590, -1590, -1590, -1590, 26136, 12549,
2124    12683, 26209, 12817, 12951, -1590, 13085, -1590, -1590, 13219, 13353,
2125    13487, 13621, -1590, -1590, -1590,   674,  1714,   560, -1590, -1590,
2126    24603, 24603, 24603, 24603, 24603, 24603, 24603, 24603,  1781,  1207,
2127    20474, -1590, -1590,  1716,  1243, -1590,  1654,   322,  1654,   322,
2128     1717, -1590, -1590,  1719, -1590,   348, 33434, 20346, -1590,   904,
2129      290,   290,  1718,  1720, -1590, -1590, -1590, -1590,  1250, -1590,
2130    -1590, 31028,  1725, 31028, -1590, -1590,  1727, -1590,  1730, -1590,
2131     2691, -1590, -1590,  2691, -1590, -1590, -1590,  2691, -1590, -1590,
2132    18166, 18295, -1590, -1590, -1590, 31028, -1590, 31028, -1590, -1590,
2133    -1590, -1590, -1590, -1590,  1126, -1590, -1590, -1590, -1590, -1590,
2134    21153,  9138, 21153,  9138, 31463, -1590, 21281, -1590, 15070, -1590,
2135    -1590, 21153, 21153, 23946, 21153, 24019, 10527,  1715, 21902, 24092,
2136      117, 18424, -1590, 26501, -1590, 31558, -1590, 31843, 21153, 21975,
2137    26282,   141,  1732,   141,   195,  1731, -1590,   107, 26501, 26501,
2138      107, 13755, 13889, -1590, -1590, 14023, -1590, -1590, -1590, -1590,
2139    14157, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590,
2140     1255,  1636, -1590,  1738,  1739,  1733,  1735,  1273,  1736,  1740,
2141    20474, 26501, 20698, 25333, -1590, -1590, -1590,  1741,  1742,  1743,
2142     1744, 26501,  1749,  1750,  1756,  1757, -1590, -1590, -1590, -1590,
2143    -1590, -1590, -1590, -1590,   275, -1590, -1590, -1590,   275, -1590,
2144    -1590, -1590, -1590, -1590,   275, -1590, -1590, -1590,   275, -1590,
2145    -1590, -1590, -1590,   275, -1590, -1590, -1590,   275, -1590, -1590,
2146    -1590,   275, -1590, -1590, -1590,   275, -1590, -1590, -1590, -1590,
2147     1275, -1590, -1590,  1654,  1654, 24603, -1590, -1590, 26501, 26501,
2148    -1590, 29868, 29984, 31028, 30100, 30216, 36355, 36355, 18553, -1590,
2149    -1590, -1590, 30332, 30448, 30564, 30680,  1761,  1762, -1590, -1590,
2150    -1590, -1590, 21153, 26501, 26355,  1732, 15199, 15328, 22048, -1590,
2151    31653, -1590, 21281, 24165, 15457, -1590,  1069,   606, -1590,   280,
2152      141,  1764,   141,   423,   546,  1775,  1349, -1590, -1590, -1590,
2153    -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590, -1590,  1290,
2154     1765,  1766,  1778, 22121, -1590, -1590, -1590, -1590,  1769,  1772,
2155    -1590, -1590, -1590, -1590, -1590,  1782, -1590, -1590, -1590, -1590,
2156    30796, 30912, -1590, -1590, -1590, 21153, 21153, 24238, 22194, 21153,
2157    24311, 10527,  1783, -1590, 21153, 26501, -1590, -1590, 21281, -1590,
2158    -1590,  1786,   141,   141, 26501,   141,  1790,   141,  1206, -1590,
2159      326,  1243,   625, -1590,   343, -1590,  1737, -1590,   107, -1590,
2160    -1590, -1590, 26428, 24384, -1590, -1590, -1590, -1590, -1590, -1590,
2161     1783, 21153, -1590, -1590, 24457, -1590, -1590, -1590, -1590,  1350,
2162     1793,  1352, -1590,  1260,  1794,   141,   141,  1796,   141, -1590,
2163    -1590, -1590, -1590,   423,   655, -1590, -1590, -1590, -1590, 21153,
2164     1797, -1590,  1802,  1804,   141, -1590,  1374,  1381, -1590,  1262,
2165      714, -1590, -1590, -1590, -1590, -1590,  1382,  1805,  1806,  1808,
2166      141, -1590,  1810, -1590, -1590, -1590,  1384, -1590,  1811, -1590
2167 };
2168
2169 /* YYPGOTO[NTERM-NUM].  */
2170 static const short int yypgoto[] =
2171 {
2172    -1590,  2678,   -19,    58, -1590,  1803, -1590, -1590, -1590, -1590,
2173    -1590, -1590,  1487,  1498,  -864, -1590,  -856,  -870,   183,   187,
2174     -839,  -655,  -588, -1590,  -543,  -524, -1590, -1590,  1500,  1501,
2175    -1590,  2621,  1289, -1590,  -197,   792,   800, -1590, -1590, -1590,
2176    -1590,  1502, -1590, -1590, -1590,  -570, -1589,  -168, -1590, -1590,
2177    -1590, -1590,  1688,  1779,  -124,   -74,  -126,  -746, -1590,  -743,
2178    -1590,  -706, -1590,  1016,   -46,  1165,  -865,    23,  1694,    74,
2179     1698,   -35,     0, -1590,  1676,  8083,  1687, -1590,  3306, -1590,
2180     -614,  -703,  1693,  4210, -1590, -1590,  -223,   269,   537,   -97,
2181    -1590,   726,  -576,    87,    57,    92,   100,  2380,  3897,  2799,
2182     -218,  8800,   122,  2176, -1590,  1697,  4723, -1590,  -185,   629,
2183      647,   251,   730,   221,   298,   395,   411,   450,  3515,   693,
2184     -381,  8300,   453,    47,   520,  6416,   -61,  1054,  -109,  1680,
2185     7805,  6959, -1590, -1590, -1590,   -68,   -60,   -65, -1590,  5833,
2186    -1590,   272,  1865,   561,  -457,  2689,  7115, -1590,  8253, -1590,
2187    -1590, -1590,   -45,  3532, -1590, -1590,  3913,  2524,     5, -1590,
2188    -1590,  1387,  1561,  1283,  1673,   -56,   -31,  6570,  5956,  6619,
2189     -315,   -84,  2756,  1101,  -508, -1053,  9765,  -264,  -566,   -16,
2190      358,  -247,  1027,  -472,  -458,  -836,  -822,   154,  1134,  1136,
2191      -59,  1729,  -650, -1590,  -302,  -292,  1533, -1590,  -503,  -501,
2192     8441,  -366,   -10,  -717, -1590, -1590, -1590,  1874, -1590,   102,
2193     1885,   -30,   110,  -108,  1734,  1032,  1035, -1590, -1590, -1590,
2194      -82,   620, -1455,  -188, -1590, -1590, -1590,   646, -1590,  1887,
2195      -11,    69,  1880,  1548, -1590, -1590, -1590,  1890,  -729,   331,
2196    -1590,  -721,   884, -1590, -1590, -1590, -1590
2197 };
2198
2199 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
2200    positive, shift that token.  If negative, reduce the rule which
2201    number is the opposite.  If zero, do what YYDEFACT says.
2202    If YYTABLE_NINF, syntax error.  */
2203 #define YYTABLE_NINF -1252
2204 static const short int yytable[] =
2205 {
2206       56,   237,  1127,   445,   954,  1371,   955,  1034,  1396,   961,
2207      156,   965,   923,   458,   154,   155,   467,   168,   472,  1372,
2208      476,  1314,   192,   252,  1315,  1319,   924,   455,  1320,  1238,
2209       99,   101,   121,   351,  1309,  1627,  1425,  1431,  1435,   540,
2210      152,   106,  1310,  1430,   112,  1749,   253,   193,   605,   243,
2211     1424,   123,  1434,   446,   246,   485,   132,  1760,   135,   162,
2212      162,  1316,  1585,  1004,  1588,  1321,   468,  1426,   473,  1436,
2213      477,   538,  1166,   248,   146,   153,   112,   351,   180,   131,
2214      112,   486,   112,   704,    56,   341,     1,   700,  1131,   244,
2215      265,    56,    56,   463,   674,   262,   254,   725,  1761,   100,
2216      265,   727,     1,   922,   342,   735,   777,   345,   265,   122,
2217        1,   107,   858,   860,   830,   831,   112,   112,  1237,   363,
2218     1761,   705,   265,   132,   421,   434,   753,   421,   597,  1148,
2219      792,   448,   145,   450,     1,  1155,   450,   434,  1159,   464,
2220      421,   434,   421,  1714,   421,  1210,    97,   621,  1149,   151,
2221     1414,   494,   558,   132,  1156,  -471,   541,  1160,   242,   679,
2222      112,   112,  -207,   832,   453,   251,     1,   263,   264,  1660,
2223      495,   267,   551,  1281,  1005,   521,   131,   852,  1661,   156,
2224      132,   816,   502,   154,   155,   539,   252,     1,   252,   447,
2225      146,   511,    43,   154,   155,   507,   102,   935,  1910,   265,
2226      265,   112,  1405,   112,     1,  1146,   508,   936,  1762,   253,
2227      488,   253,   757,   726,   713,   162,  1763,   497,  1716,   619,
2228     1610,   243,   972,  1344,   819,   978,   246,   984,   162,   989,
2229     1895,   544,   973,  1059,  1063,   979,   583,   985,  1763,   990,
2230      613,  1577,   754,   953,   615,   248,   779,   458,   145,  1090,
2231      681,  1427,   725,  1437,    56,     1,    56,  1715,    28,   883,
2232     -663,   624,  1446,    32,     1,     1,   766,   961,   965,   522,
2233       38,   954,    67,   955,   644,   893,   680,   616,  1431,  1435,
2234      644,   454,  1150,  1975,  1430,  1431,  1435,  1175,   495,  1431,
2235     1435,  1430,   753,  1434,  1894,  1430,   507,  1449,   817,     1,
2236     1434,  1391,   103,   553,  1434,  1168,  1393,   508,  1911,   614,
2237     1436,  1611,   806,   808,   810,   812,  1912,  1436,  1428,  1406,
2238     1438,  1436,   651,    32,  -999,     1,  -999,   782,   655,  2016,
2239      623,  -108,  1717,   120,   883,  -658,   556,   560,   -99,  -103,
2240     1348,   680,   132,   759,   557,   561,     1,   158,   -81,   -88,
2241      112,  1168,   112,  1152,     1,  1169,    67,     1,    83,   671,
2242     1153,   129,   130,    67,    67,  1383,   680,  1041,   772,   856,
2243     1049,   681,   781,   464,     1,     1,   784,   511,   767,  1447,
2244      943,     1,   947,   795,   265,   524,   796,   759,   784,   803,
2245      759,   938,  1559,  1976,   193,  2022,   766,  1972,  1569,  1151,
2246        2,  1977,   169,   925,  1151,  1144,     2,   104,   773,   605,
2247      605,   605,   605,   170,  1450,  1395,  1981,   554,   817,   421,
2248      421,   132,   119,   680,   845,   180,     1,   112,   112,   128,
2249      944,   871,   948,   163,    44,   351,   875,   138,     1,  2017,
2250      146,   876,    83,  1972,  1525,   421,   421,  2018,  -108,   255,
2251       83,  2022,  1477,   142,  1458,   -99,  -103,   889,   890,   522,
2252     1460,  2021,  1461,   515,  1475,   -81,   -88,   421,   421,   967,
2253     1659,  1478,   421,   421,   162,   162,   421,   421,   820,   143,
2254      112,  1558,   112,  1176,  1178,  1180,  1644,  1568,  1645,   957,
2255      112,   112,   627,   960,  1437,   132,  1981,   133,   145,   759,
2256      450,  1437,   265,   674,   421,  1437,   421,   950,   495,   112,
2257      953,   132,  1074,  1245,  1247,  1249,   158,   112,   992,   112,
2258      525,  1177,  1179,  1181,   971,  1341,   158,   977,    67,   983,
2259      674,   988,  1688,  1791,   858,   860,  1356,   993,   674,   922,
2260       95,  1579,    28,  1343,  1387,   966,  1388,    32,  1664,     1,
2261      112,  1246,  1248,  1250,    38,   958,   252,   261,   674,  1598,
2262      667,  1438,   714,   154,   155,   265,  1607,  1016,  1438,  1022,
2263     1128,   523,  1438,     1,   265,   524,     1,  1035,   265,   253,
2264    -1010, -1010,  1309,  1309,    96, -1010,  1319,   556,     1,  1658,
2265     1310,  1310,   821,    43,   822,   557,  1107,   583,   583,   583,
2266      583,     2,   163,  1708,  1580,     1,  1581,  1431,  1435,   999,
2267     1609,   265,   620,  1430,   255,   132,  1071,  1709,  1192,  1194,
2268        1,  1196,  1434,   266,   511,   852,  1321,   963,     1,  1081,
2269       43,     1,  1480,   774,     1,  1484,   527,   372,   964,  1436,
2270      528,  1313,    -8,  1104,   508,  1313,  1261,  1263,  1265,  1267,
2271     1109,  1119,   495,  1129,  1109,  1119, -1011, -1011,     1,  1985,
2272     1528, -1011,  1694,     1,  1697,  1534,  1466,  1441,  1537,  1139,
2273     1540,   371,  1469,  1524,  1070,  1858,  1467,     1,  1470,   491,
2274      373,  1068,  1069,  1162,  1471,   374,   503,  1170,  1059,  1063,
2275     1059,  1063,   343,    26,  1472,   706,   515,     1,   499,   556,
2276      560,  1060,  1064,   238,  1662,     1,  1699,   557,   561,  1061,
2277     1065,   129,   130,  -911,  1168,   707,   708,     1,  1974,  1790,
2278     1168,   478,   887,   556,   525,  1797,  1134,  1135,  1136,  1234,
2279      887,   557,     1,  1240,    28,   791,  1672,   129,   130,    32,
2280      129,   130,  1364,  1365,   220,  1366,    38,   478,  1368,  1369,
2281     1376,  1386, -1036,  1660,   458,   458,   529,     2,  1304,   132,
2282     1307,  1403,  1671,   759,   759,   759,   458,  1317,  2041,    43,
2283      363,  1317,    44,     1,   180,    97,   504,  1407,   889,   890,
2284     1218,   844,   851,   487,  1302,  1303,  -911,  1981,   146,  1337,
2285      511,  -911,   884,  1035,  -684,  1860,   335,   511,  -911,  1353,
2286     1355,    98,  1357,   528,   759,   505,  1431,  1435,  1289,  1214,
2287      605,  1404,  1430,   605,   643,  1416,  1220,   532,   729,   730,
2288      731,  1434,  1458,  1437,  1552,  1222,     1,  -911,  -911,  -911,
2289     1448,  1451,  2051,  1676,  1398,  1399,   526,  1285,  1436,   521,
2290      527,  1576,   112,   536,  1291,   132,   145,     1,   144,   112,
2291      112,   605,  1677,  1293,   559,  1385,   604,   533,   891,   112,
2292      530,   112,  1389,   496,   892,  -684,   605,   605,   605,   605,
2293     -684,   132,   845,   363,     1,   622,  1297,  -684,   766,  1408,
2294      464,   464,   609,   450,  1409,   421,   450,  1098,  1099,  1100,
2295     1438,  1374,   464,  1415,  1323,  1327,   158,  1367,   537,     2,
2296     -684,  1086,     1,  -684,   840,   774,   885,     1,   883,  -684,
2297      683,   684,   685,   611,   112, -1036,   508,  -207,     1,   529,
2298       97,   625,  1613,   732,   667,  -207,     1,     2,  -890,  1400,
2299        1,   733,   129,   130,   734,  1929,  -475,  -475,  -475,   450,
2300      450,  1142,  1211,   421,   421,  1463,   612,   421,   421,   445,
2301      132,     2,  1410,   129,   130,   674,  1684,  1411,  1812,  1331,
2302     1614,  1770,   112,   180,   495,   892,  1193,  1195,   759,  1197,
2303     1282,   132, -1042,  1712,   759,  1333,   531,   132,  1183,  1186,
2304      759,   892,   620,   132,   335,  -207,   759,  1713,   132,   124,
2305      500,   125,  1101,   132,  1262,  1264,  1266,  1268,   583,   446,
2306     1102,   583,   126,  1103,     1,   483,   127,    95,  1252,  1255,
2307     1016,  1464,  1022,    43,   807,   686,    44,   813,   506,   841,
2308     1215,  1509,  1437,   687,   643,  -207,   688,   678,   959,  1945,
2309     1332,  -207,   515,   681,  1522,   643,   129,   130,   652,   583,
2310     1170,  -475,  -475,  -475,  -890,  1687,  1909,   768,  1286,  -475,
2311      736,   770,  -475,  1494,   583,   583,   583,   583,     1,   805,
2312     1545,   653,   515,   220,   922,  1387,  -778,  1388,   656,   515,
2313      737,   738,   421,   421,   667,    28,   515,   657,    28,   759,
2314       32,   132,  1000,    32,  1793,  -207,  1794,    38,   759,  1438,
2315       38,  -207,  1555,   681,   658,  -913,  1561,  1689,  1565,  1518,
2316      715,   716,  1571,   892,   659,   926,   363,   180,  -207,   660,
2317     -477,  -477,  -477,    44,   681,  1727,  1729,   723,  1219,  -994,
2318      484,  -994,  -476,  -476,  -476,  1592,  1740,   515,  1804,  -895,
2319     1952,  1953,  1592,  -895,  -895,  1221,   811,  -778,  -895,   132,
2320      220,  -895,  -778,   721,   515,  -895,  1290,   769,  1342,  -778,
2321      722,  -775,  1932,   770,  -475,  1582,  1060,  1064,  1060,  1064,
2322     -265,  -265,  -265,  1292,  1061,  1065,  1061,  1065,  -913,     1,
2323      728,   913,  -778,  -913,   681,  1223,   556,  1603,   681,   724,
2324     -913,  -778,  1971,     1,   557,    97,  1972,  1622,   743,   744,
2325     1973,  1623,   749,  1978,  -781,  1980,  1690,  1914,   717,   718,
2326       28,   496,   892,  1294,  1723,    32,  1313,  1299,  -207,  -913,
2327     -913,  -913,    38,   771,  -207,  1615,   681,   604,   604,   604,
2328      604,  1157,  -775,  -477,  1634,  1325,  1329,  -775,  1635,   335,
2329      851,    26,    18,    19,  -775,  -476,   750,     1,  1879,     1,
2330     1075,  1076,  1818,   609,   609,   609,   609,  1534,  1188,  1190,
2331     1540,   751,  1880,  1784,  1818,   496,  2009,  -775,  2011,   770,
2332     2013,   752,    28,    29,   756,  -781,  -775,    32,   818,  -265,
2333     -781,   764,  1440,  -265,    38,   129,   130,  -781,  1257,  1259,
2334      709,   710,  1313,  1696,  1313,  1698,   745,   746,  1766,   129,
2335      130,   765,  1767,   605,   605,    18,    19,    43,  2036,  2037,
2336     -781,  2039,  1642,  1643,   605,   767,  1646,   132,    28,  -781,
2337       28,   759,   759,    32,   793,    32,    28,  2046,  1859,  2014,
2338       38,    32,    38,  1972,   770,    28,    29,  2015,    38,   922,
2339       32,   139,  1317,  2056,   136,   363,   137,    38,  1184,  1187,
2340     -766,  1663,  -766,    43,  1522,    43,    44,  1373,    44,   335,
2341      112,   112,   140,   335,   141,   353,  1673,   132,  1189,  1191,
2342     1550,  1870,   220,  1030,  1375,   913,  1921,   770,  1253,  1256,
2343     1891,   913,   770,  2033,   913,  2049,  1647,  1972,   112,  1972,
2344      112,  2034,   112,  2050,  1926,   132,  1944,  1774,  1258,  1260,
2345      770,  1775,   770,   335,  1818,   824,   825,   363,  1692,  1818,
2346     -673,  1989,  1401,   421,   421,   711,   712,   770,  1695,  1695,
2347     1695,  1695,   449,   405,     1,   458,   405,   826,  2024,   814,
2348      335,   827,   922,   828,  1529,  1530,  1531,   815,   335,   405,
2349     1682,   405,   823,   405,   689,   690,   691,   692,   693,   694,
2350      695,   696,   697,   698,   829,  1201,  1206,  1779,   335,  1202,
2351     1207,  1780,  1724,   674,   674,   674,   674,   674,   674,   674,
2352      674,  1712,  1987,  2030,   873,  2032,  1988,  1972,   511,  1972,
2353     -669,  -673,  -669,  1272,  1277,  1713,  -673,  1273,  1278,   719,
2354      720,   583,   583,  -673,  1465,   739,   740,  2047,    18,    19,
2355     1016,  1972,   583,  1016,  2048,  2052,  1016,  2058,  1972,  1972,
2356     1509,  1972,   880,   489,  1016,   490,  -673,  1016,  -668,  -673,
2357     -668,   492,  1693,   490,   883,  -673,   833,  1417,    28,    29,
2358     2027,  1879,   881,    32,   456,   937,  1495,     1,   469,   882,
2359       38,  1035,   699,   886,   913,  1880,  1967,   496,  1970,   883,
2360      996,   464,   490,   681,  1161,  1039,     1,  1072,   605,   125,
2361      931,  1169,   922,     1,   932,  1233,  1503,     1,  1239,   630,
2362        1,  1377,  1421,  1378,  1422,   741,   742,  1871,   681,  1874,
2363     1504,  1554,  1750,     1,  1560,   496,     1,  1564,  1570,     1,
2364        1,  1665,  1862,  1378,   363,   747,   748,   180,  1764,   939,
2365      363,  1882,  1686,  1884,  1378,  1419,   933,  1420,   681,   913,
2366     1753,   913,  2006,  1701,   940,  1704,   968,  1702,  1139,  1705,
2367     1813,  1814,   922,   974,  1360,  1362,   980,  1872,   604,  1875,
2368      986,   604,  1361,  1363,   927,   929,   928,   930,  1583,  1054,
2369     1056,   994,  1055,  1057,   995,   997,  1795,  1001,  1798,   257,
2370      260,  1883,  1002,  1885,   609,  1304,  1003,   609,  1311,  1312,
2371     1604,  1021,  1807,  1809,  1032,  1023,  1024,   496,  1033,   604,
2372      363,  1412,  1036,  1073,  1037,  1145,  1038,   112,   674,   112,
2373     1106,  1078,  1334,  1345,   604,   604,   604,   604,  1335,   112,
2374       58,  1157,  1346,  1352,  1347,   609,  1455,  1481,   913,  1390,
2375     1359,   421,  1397,   421,  1542,  1392,  -761,  -764,  1452,   496,
2376      609,   609,   609,   609,  1453,  1454,  1473,  1456,   405,   405,
2377     1457,  1474,  1505,  1497,   605,   421,   605,   421,  1482,  1498,
2378      869,  1496,  1500,  1513,  1514,   335,   335,  1515,  1519,  1541,
2379     1016,  1016,  1016,  1016,   405,   405,   583,   373,  1543,  1546,
2380      515,  1016,  1016,  1553,  1016,  1574,  1016,  1584,  1587,  1950,
2381     1313,  1313,  1107,  1590,  1589,    58,   405,   405,  1016,  1600,
2382     1601,   405,   405,  1602,    58,   405,   405,  1035,  1605,  2025,
2383     1522,    58,    58,  1617,  1608,  1612,  1624,   170,  1747,  1800,
2384      605,  1630,  1633,  1639,  1670,  1641,  1651,  1653,  1655,  1657,
2385     1674,  1685,  -232,   405,  1691,   405,  1718,  1719,  1720,  1951,
2386      363,   496,   495,    49,  1751,   436,  1721,  2026,  1765,  1722,
2387     1741,  1742,  1768,  1769,  1801,  1771,  1772,   436,  1776,  1783,
2388     1785,   436,  1786,   496,  1787,  1955,  1956,  1893,  1788,  1857,
2389     1907,  1811,  1907,  1865,  1789,  1861,  1805,  1806,  1866,  1868,
2390     1873,  1869,   913,  1876,   105,   335,  1877,  1908,  1930,   913,
2391     1913,  1922,  1923,   913,    49,  2040,  2023,  1924,  1938,  1925,
2392     1927,   134,  1940,  1941,  1928,  1934,  1935,  1936,  1937,  1942,
2393     1943,   421,   421,   421,   421,   421,  1695,  1695,    49,  1979,
2394      667,    49,   421,   421,   421,   421,   221,    49,  1986,  1990,
2395     1991,  1992,  1016,  1995,    49,    49,  1996,  1997,  2002,  2019,
2396     2020,  2007,   583,  1683,   583,  2012,  2031,    49,  1413,  2035,
2397      344,  2038,  2043,  1035,  1522,  1946,  1948,  2044,   864,  2045,
2398     2053,  2054,   356,  2055,    58,  2057,  2059,   393,   221,   865,
2399      393,   866,   867,   870,    58,  1318,    58,  1402,  1132,  1678,
2400      221,  1442,   221,   393,   221,   393,   631,   393,   617,   800,
2401      421,   421,   618,   654,  1384,  1016,  1016,  1933,   857,  1016,
2402      552,  1016,  2008,   633,  1016,   256,   221,   636,   583,   245,
2403      598,   247,   259,   393,   249,     0,  1856,     0,     0,  1907,
2404        0,  1907,  1522,     0,  1035,   501,     0,     0,  1035,     0,
2405      438,     0,     0,   703,    49,     0,     0,     0,     0,     0,
2406        0,  1016,   438,     0,     0,     0,   438,     0,     0,     0,
2407        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2408        0,     0,     0,  1035,  1522,     0,     0,     0,     0,  1016,
2409        0,     0,     0,     0,   221,     0,     0,   221,   221,   356,
2410     1035,  1907,  1907,     0,  1907,     0,  1907,    49,     0,     0,
2411     1706,     0,     0,     0,     0,     0,   436,    49,   221,    49,
2412        0,     0,     0,     0,     0,     0,     0,     0,   436,   913,
2413        0,     0,     0,     0,   667,     0,   496,   221,     0,     0,
2414        0,     0,     0,   221,  1907,  1907,     0,  1907,     0,     0,
2415        0,   393,     0,     0,     0,     0,   548,     0,     0,     0,
2416        0,   604,   604,  1907,     0,     0,     0,   835,   838,  1796,
2417        0,  1799,   604,   913,     0,   913,     0,     0,     0,  1907,
2418        0,   436,     0,     0,     0,  1808,  1810,   609,   609,     0,
2419        0,     0,   913,   835,   838,     0,     0,     0,   609,   648,
2420        0,     0,     0,     0,     0,   648,    49,     0,     0,     0,
2421        0,     0,     0,     0,     0,   835,   838,     0,     0,     0,
2422      835,   838,     0,     0,   835,   838,     0,     0,     0,     0,
2423        0,   913,     0,   221,   405,   356,   221,     0,     0,   221,
2424       49,     0,     0,     0,     0,     0,   794,     0,     0,     0,
2425       49,   221,     0,    49,     0,     0,     0,     0,   836,   839,
2426        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2427        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2428        0,     0,   393,   393,   836,   839,     0,    49,    49,     0,
2429        0,     0,   405,   405,   393,   548,   405,   405,     0,   874,
2430        0,   787,     0,     0,   221,     0,   836,   839,   393,   393,
2431        0,   836,   839,   787,     0,   836,   839,     0,     0,  1027,
2432        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2433      393,   393,     0,     0,     0,   393,   393,     0,     0,   393,
2434      393,   356,   496,     0,   496,     0,     0,     0,   221,     0,
2435        0,     0,     0,   335,     0,     0,     0,     0,   496,   496,
2436      423,     0,    49,   423,    58,   335,   879,   393,     0,   393,
2437       49,   393,     0,     0,     0,     0,   423,     0,   423,     0,
2438      423,  1931,     0,     0,     0,     0,     0,    49,     0,     0,
2439       49,  1939,    49,     0,    49,     0,     0,     0,     0,     0,
2440       49,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2441        0,     0,     0,     0,     0,     0,   604,     0,     0,     0,
2442        0,   405,   405,     0,     0,     0,     0,     0,     0,     0,
2443      913,     0,     0,  1165,     0,     0,     0,     0,     0,     0,
2444        0,     0,   609,     0,     0,     0,     0,     0,  1947,  1949,
2445        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2446      356,   356,   356,   356,     0,     0,  1200,  1205,  1209,  1213,
2447     1217,     0,     0,  1226,     0,     0,     0,     0,     0,  1165,
2448        0,     0,     0,   221,   221,     0,     0,    49,     0,     0,
2449        0,     0,   393,     0,  1271,  1276,  1280,  1284,  1288,     0,
2450        0,  1226,     0,     0,     0,     0,   221,     0,     0,     0,
2451        0,     0,     0,   221,   221,   393,     0,   221,   221,  1226,
2452     1226,   335,   335,     0,     0,     0,     0,     0,     0,   436,
2453        0,     0,    49,     0,     0,   356,     0,     0,     0,     0,
2454      436,   356,     0,     0,   356,     0,     0,     0,     0,     0,
2455        0,     0,     0,     0,   496,     0,     0,     0,     0,   365,
2456        0,     0,     0,     0,   496,     0,     0,     0,     0,     0,
2457        0,     0,     0,     0,     0,  1113,  1123,     0,     0,  1113,
2458     1123,     0,   604,     0,   604,     0,     0,     0,     0,     0,
2459        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2460        0,     0,     0,     0,     0,     0,     0,     0,   609,     0,
2461      609,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2462        0,   496,   496,    49,     0,     0,    49,    49,    49,     0,
2463      356,     0,     0,   356,   356,     0,     0,    49,     0,     0,
2464        0,     0,     0,     0,     0,     0,     0,     0,   604,     0,
2465        0,     0,   221,    49,     0,   423,   423,     0,     0,     0,
2466       49,     0,   191,   221,     0,   393,     0,    49,     0,     0,
2467        0,     0,     0,     0,   609,     0,     0,     0,     0,     0,
2468        0,   423,   423,     0,     0,     0,     0,     0,     0,     0,
2469        0,   835,   838,     0,     0,   835,   838,     0,     0,     0,
2470        0,     0,     0,   423,   423,     0,   365,     0,   423,   423,
2471        0,     0,   423,   423,  1340,   365,     0,     0,    49,     0,
2472        0,   365,     0,     0,     0,  1340,     0,   335,     0,     0,
2473        0,     0,     0,     0,     0,    49,   356,     0,    46,     0,
2474      423,     0,   423,   221,   221,   335,     0,     0,   393,    68,
2475        0,     0,   405,   405,     0,   221,     0,     0,  -475,     0,
2476     1501,  -475,  -475,  -475,  -475,  -475,  -475,  -475,  -475,   356,
2477      221,   356,     0,     0,     0,     0,     0,   221,     0,     0,
2478        0,     0,   836,   839,     0,     0,   836,   839,  1527,     0,
2479        0,     0,     0,     0,     0,     0,  1536,     0,     0,     0,
2480        0,     0,     0,     0,     0,   404,   393,   393,   404,     0,
2481      393,   393,   365,   150,     0,     0,    80,     0,     0,     0,
2482        0,   404,    46,   404,    68,   404,    49,   393,     0,    46,
2483       46,    49,     0,    68,     0,     0,     0,    49,     0,   548,
2484       68,    68,  1165,    49,     0,     0,     0,     0,  1165,    49,
2485        0,     0,     0,     0,     0,     0,     0,     0,   356,     0,
2486      116,  -475,  -475,     0,     0,     0,     0,     0,     0,     0,
2487        0,  -475,     0,     0,   439,     0,     0,     0,     0,     0,
2488     -475,  -475,  -475,  -475,  -475,     0,   439,     0,     0,     0,
2489      439,   160,   116,     0,     0,     0,     0,     0,   203,     0,
2490       80,     0,     0,     0,     0,     0,     0,    80,    80,     0,
2491        0,     0,     0,     0,     0,     0,     0,   356,   356,   356,
2492      356,     0,     0,     0,     0,     0,     0,   760,     0,   510,
2493        0,     0,     0,   352,   354,   393,   393,   221,     0,     0,
2494      427,     0,    49,   427,     0,     0,     0,     0,     0,     0,
2495        0,    49,     0,     0,     0,     0,   427,     0,   427,     0,
2496      427,   790,   320,     0,     0,     0,     0,     0,   221,   356,
2497       49,   797,     0,     0,   804,     0,     0,   482,   354,     0,
2498        0,     0,   150,     0,     0,     0,     0,     0,   221,     0,
2499        0,     0,   150,    68,    46,   221,     0,     0,     0,     0,
2500        0,     0,     0,    68,     0,    68,     0,   517,     0,   855,
2501        0,   221,   356,     0,     0,   872,     0,     0,   221,   356,
2502        0,     0,   221,   356,     0,     0,     0,     0,     0,     0,
2503      548,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2504      405,     0,   405,     0,     0,     0,     0,   550,     0,     0,
2505     1596,     0,     0,     0,     0,     0,     0,  1596,   423,   423,
2506      160,     0,     0,     0,   405,   365,   405,     0,     0,     0,
2507       80,     0,    80,     0,     0,     0,     0,     0,     0,     0,
2508        0,     0,     0,   191,     0,     0,     0,     0,     0,     0,
2509        0,   191,     0,     0,     0,   586,     0,     0,     0,     0,
2510      404,   404,     0,     0,     0,     0,     0,     0,   191,     0,
2511        0,   191,   868,   191,     0,   191,     0,     0,     0,     0,
2512        0,   423,     0,     0,     0,   439,   404,   404,     0,     0,
2513        0,     0,     0,     0,     0,     0,     0,   439,     0,     0,
2514        0,     0,     0,     0,     0,     0,     0,     0,   404,   404,
2515      677,   835,   838,   404,   404,     0,     0,   404,   404,     0,
2516        0,     0,   510,     0,     0,     0,   352,     0,     0,     0,
2517        0,     0,     0,     0,    49,    49,     0,     0,     0,   423,
2518      423,     0,     0,   423,   423,   404,   775,   404,     0,     0,
2519      439,     0,     0,   427,     0,   356,     0,     0,   356,     0,
2520        0,     0,     0,     0,     0,   116,     0,   365,     0,     0,
2521      365,   365,     0,     0,     0,     0,     0,     0,     0,     0,
2522      405,   405,   405,   405,   405,     0,     0,     0,     0,     0,
2523        0,   405,   405,   405,   405,   427,   427,     0,     0,   356,
2524      849,     0,   836,   839,   861,     0,     0,   427,     0,     0,
2525        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2526      356,   427,   427,     0,     0,     0,   393,   393,     0,     0,
2527        0,   221,   221,   221,   221,     0,     0,     0,     0,     0,
2528        0,     0,     0,   427,   427,     0,     0,     0,   427,   427,
2529        0,     0,   427,   427,     0,     0,   352,     0,     0,   405,
2530      405,     0,     0,     0,     0,     0,   116,   116,   423,   423,
2531        0,     0,     0,   365,     0,     0,     0,     0,     0,     0,
2532      427,     0,   427,   517,     0,   116,     0,     0,     0,     0,
2533      268,    49,     1,   269,    97,   352,     0,   354,     0,     0,
2534      221,   356,     0,   921,     0,     0,     0,   760,   760,   760,
2535        0,     0,     0,     0,     0,     0,     0,     2,   191,     0,
2536        0,     0,   150,     0,     0,     0,     0,  1080,     0,     0,
2537     1817,     0,     0,    68,     0,  1820,  1822,  1826,  1830,  1832,
2538     1836,     0,  1817,     0,     0,  1841,  1845,  1849,  1853,     0,
2539        0,     0,     0,     0,   273,   991,     0,     0,     0,     0,
2540      274,   275,     0,     0,   221,     0,     0,     0,     0,     0,
2541        0,     0,     0,     0,   278,     0,     0,     0,     0,     0,
2542        0,     0,     0,     0,     0,     0,   586,   279,     0,     0,
2543        0,   280,   281,   282,   283,   284,   285,   286,     0,     0,
2544       80,   638,     0,     0,     0,     0,     0,   356,     0,     0,
2545       49,   290,   291,   356,     0,     0,   586,   586,   586,   586,
2546        0,     0,     0,     0,     0,     0,  1115,     0,     0,     0,
2547     1115,    49,     0,     0,     0,     0,     0,     0,     0,     0,
2548        0,     0,     0,     0,     0,   775,     0,     0,     0,     0,
2549      422,     0,     0,   422,     0,     0,     0,     0,   510,     0,
2550        0,     0,     0,     0,     0,     0,   422,     0,   422,     0,
2551      422,     0,     0,     0,     0,  1133,     0,     0,     0,  1137,
2552        0,     0,  1817,   356,     0,     0,     0,  1817,   510,     0,
2553        0,     0,     0,     0,     0,   510,     0,     0,   439,   221,
2554      356,     0,   510,     0,     0,   677,   365,   191,     0,   439,
2555        0,     0,   191,     0,   393,     0,   393,     0,  1468,  1174,
2556        0,     0,     0,     0,  1468,     0,   404,     0,     0,     0,
2557      191,     0,     0,     0,     0,     0,     0,     0,   393,     0,
2558      393,     0,     0,     0,     0,     0,  1232,     0,     0,     0,
2559      775,   677,    74,   510,  1244,     0,     0,     0,     0,     0,
2560        0,     0,   584,     0,     0,   775,   427,     0,     0,     0,
2561      510,     0,     0,  1350,  1301,     0,   775,     0,   550,   835,
2562      838,     0,   835,   838,   404,   404,     0,     0,   404,   404,
2563      835,   838,   835,   838,     0,     0,     0,     0,     0,   423,
2564      423,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2565        0,     0,     0,     0,     0,     0,     0,     0,   116,     0,
2566        0,     0,     0,   356,     0,   393,  1382,    74,     0,     0,
2567        0,   517,     0,     0,     0,     0,    74,     0,   116,     0,
2568        0,     0,     0,    74,    74,     0,     0,     0,   849,     0,
2569        0,   191,     0,     0,   368,     0,     0,     0,   835,   838,
2570        0,   427,     0,     0,     0,     0,     0,     0,     0,     0,
2571      836,   839,     0,   836,   839,     0,     0,   440,     0,     0,
2572        0,   836,   839,   836,   839,     0,     0,     0,     0,   440,
2573      849,     0,     0,   440,   393,   393,   393,   393,   393,   221,
2574      221,     0,     0,     0,     0,   393,   393,   393,   393,     0,
2575        0,     0,     0,   404,   404,     0,     0,     0,     0,   427,
2576      427,     0,     0,   427,   427,     0,     0,     0,     0,     0,
2577        0,     0,   365,     0,     0,   365,   354,     0,   352,   921,
2578        0,     0,     0,     0,     0,   422,   422,     0,     0,   836,
2579      839,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2580        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2581        0,   422,   422,   393,   393,     0,     0,  1544,     0,     0,
2582        0,     0,     0,     0,     0,     0,  1547,     0,     0,     0,
2583        0,     0,     0,   422,   422,     0,    74,   365,   422,   422,
2584        0,   368,   422,   422,   911,     0,    74,     0,    74,     0,
2585      368,     0,   365,     0,     0,     0,   368,   586,     0,     0,
2586      586,     0,     0,     0,     0,     0,     0,     0,     0,   586,
2587      422,     0,   422,  -475,  -475,  -475,  -475,  -475,  -475,  -475,
2588     -475,  -475,  -475,  -475,     0,     0,     0,     0,   427,   427,
2589        0,  1520,  1521,     0,     0,   760,   760,     0,   586,     0,
2590     1174,     0,     0,     0,   775,  1533,     0,     0,  1244,     0,
2591     1539,     0,     0,   586,   586,   586,   586,     0,     0,     0,
2592        0,   775,     0,  1115,     0,     0,     0,   423,     0,   423,
2593        0,     0,     0,   584,     0,     0,     0,     0,     0,     0,
2594        0,  1115,     0,     0,     0,     0,     0,   368,  1115,     0,
2595        0,   423,     0,   423,   677,     0,     0,     0,     0,     0,
2596      677,     0,     0,   584,   584,   584,   584,     0,   788,     0,
2597        0,     0,     0,     0,     0,     0,  -475,  -475,     0,     0,
2598      788,     0,     0,     0,     0,     0,  -475,     0,     0,     0,
2599        0,  -475,  -475,  -475,     0,  -475,  -475,  -475,  -475,  -475,
2600        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2601        0,  1619,     0,     0,     0,     0,     0,     0,     0,     0,
2602        0,     0,     0,     0,   365,     0,     0,     0,     0,     0,
2603      365,     0,     0,   788,     0,     0,     0,     0,   911,     0,
2604        0,     0,     0,     0,   911,     0,     0,   911,     0,     0,
2605        0,     0,     0,     0,     0,     0,   231,     0,     0,     0,
2606        0,     0,     0,     0,     0,     0,     0,     0,     0,   365,
2607      365,     0,   365,   365,     0,     0,   366,     0,   365,   365,
2608      365,   365,     0,     0,   404,   404,     0,     0,     0,     0,
2609      365,   365,   365,   365,   365,   365,   365,   365,     0,     0,
2610      365,     0,     0,     0,     0,     0,     0,   423,   423,   423,
2611      423,   423,     0,     0,     0,     0,     0,     0,   423,   423,
2612      423,   423,     0,     0,     0,     0,     0,   366,     0,     0,
2613        0,     0,     0,     0,     0,     0,   231,     0,     0,     0,
2614        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2615        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2616        0,     0,     0,     0,     0,     0,     0,  1669,     0,     0,
2617        0,   191,     0,     0,     0,     0,     0,     0,     0,     0,
2618        0,     0,     0,     0,     0,     0,   423,   423,   422,   422,
2619        0,     0,     0,     0,  1679,     0,     0,     0,     0,     0,
2620      368,     0,     0,     0,     0,     0,   510,   231,   231,   231,
2621        0,     0,     0,     0,     0,     0,    74,     0,     0,   427,
2622      427,     0,     0,   626,     0,     0,     0,     0,   231,     0,
2623        0,     0,   366,     0,     0,     0,     0,     0,   366,     0,
2624      365,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2625        0,   422,     0,     0,     0,     0,     0,     0,     0,     0,
2626        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2627        0,     0,   911,     0,   911,     0,     0,     0,     0,     0,
2628        0,     0,     0,     0,   517,     0,     0,     0,     0,     0,
2629        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2630        0,     0,     0,     0,   921,   365,     0,     0,     0,   422,
2631      422,     0,     0,   422,   422,     0,     0,     0,     0,     0,
2632        0,     0,     0,     0,     0,     0,     0,     0,     0,   366,
2633        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2634      586,   586,   368,     0,     0,   368,   368,     0,     0,   586,
2635        0,   586,   586,     0,     0,   586,     0,     0,     0,     0,
2636        0,   911,     0,   586,   584,     0,   586,   584,     0,     0,
2637        0,     0,   404,   305,   404,     0,   584,     0,     0,     0,
2638        0,   788,     0,     0,     0,     0,     0,     0,     0,   364,
2639        0,     0,   788,     0,     0,     0,   404,     0,   404,     0,
2640        0,     0,     0,     0,     0,   584,     0,     0,     0,     0,
2641        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2642      584,   584,   584,   584,     0,     0,     0,     0,     0,     0,
2643        0,     0,     0,     0,     0,   912,     0,     0,   422,   422,
2644      364,     0,     0,     0,     0,     0,     0,     0,   368,     0,
2645        0,   914,     0,     0,     0,     0,     0,     0,   231,   921,
2646        0,     0,     0,     0,     0,   366,     0,     0,     0,     0,
2647        0,  1815,     0,     0,     0,     0,     0,     0,     0,     0,
2648        0,     0,  1619,     0,     0,     0,     0,  1533,     0,     0,
2649     1539,     0,     0,     0,  1619,     0,     0,     0,     0,     0,
2650        0,     0,     0,     0,     0,     0,     0,   427,     0,   427,
2651        0,     0,     0,     0,     0,   911,     0,     0,     0,   366,
2652        0,     0,   911,     0,     0,     0,   911,     0,     0,     0,
2653        0,   427,     0,   427,     0,     0,   364,     0,     0,     0,
2654      354,   639,   641,     0,     0,   364,     0,     0,     0,     0,
2655        0,   364,   404,   404,   404,   404,   404,     0,     0,     0,
2656        0,   305,     0,   404,   404,   404,   404,     0,     0,   921,
2657      231,   231,   231,   231,     0,     0,   364,     0,     0,     0,
2658        0,   364,  1077,     0,     0,     0,     0,     0,     0,   586,
2659      586,   586,   586,   231,   231,   586,     0,     0,     0,     0,
2660      586,   586,     0,   586,     0,   586,     0,     0,     0,     0,
2661        0,     0,     0,     0,     0,     0,  1105,   586,     0,     0,
2662        0,     0,     0,     0,     0,     0,     0,  1915,  1916,   912,
2663        0,   404,   404,     1,  1619,   912,     0,     0,   912,  1619,
2664        0,     0,   364,     0,     0,   914,     0,     0,     0,     0,
2665        0,   914,     0,     0,   914,     0,     0,     0,     2,     0,
2666        0,     0,   921,     0,     8,     9,    10,    11,    12,    13,
2667       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2668       24,   368,     0,     0,     0,     0,     0,   427,   427,   427,
2669      427,   427,     0,     0,     0,     0,    27,     0,   427,   427,
2670      427,   427,     0,     0,    28,    29,     0,     0,     0,    32,
2671        0,     0,    35,    36,     0,    37,    38,    39,     0,     0,
2672        0,     0,     0,     0,   366,     0,     0,   366,   366,     0,
2673       40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2674        0,     0,   911,     0,     0,     0,     0,     0,   364,     0,
2675        0,   586,     0,     0,     0,     0,     0,     0,     0,     0,
2676        0,   586,     0,   586,     0,     0,   427,   427,     0,   422,
2677      422,     0,     0,     0,     0,     0,     0,     0,   364,     0,
2678        0,     0,     0,     0,     0,     0,   911,     0,   911,     0,
2679        0,     0,   921,     0,     0,     0,     0,     0,   912,     0,
2680        0,   366,     0,     0,     0,     0,   305,     0,     0,     0,
2681        0,     0,     0,     0,   586,   586,     0,     0,   586,     0,
2682      586,     0,     0,   586,     0,     0,     0,   586,     0,     0,
2683      366,     0,   364,  2010,     0,     0,     0,     0,     0,   366,
2684        0,     0,     0,     0,   911,     0,     0,   584,   584,     0,
2685        0,   921,   921,     0,     0,     0,   584,     0,   584,   584,
2686      586,     0,   584,   912,     0,   912,     0,     0,     0,     0,
2687      584,     0,     0,   584,     0,     0,     0,     0,     0,   914,
2688      914,   914,     0,     0,     0,     0,   323,     0,   586,     0,
2689        0,     0,     0,     0,     0,   364,     0,     0,     0,  1082,
2690        0,     0,   367,     0,     0,     0,     0,   368,     0,     0,
2691      368,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2692        0,   366,     0,     0,     0,     0,   305,     0,     0,     0,
2693      305,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2694        0,     0,   364,     0,     0,     0,     0,     0,   364,     0,
2695        0,   364,   912,   367,     0,     0,     0,     0,     0,     0,
2696        0,     0,     0,   366,     0,     0,     0,     0,   914,     0,
2697      305,     0,   368,     0,     0,     0,   364,   364,   364,   364,
2698      364,   364,   364,     0,     0,   364,   364,   368,   364,   364,
2699      364,   364,   364,   364,   364,   364,     0,   305,     0,     0,
2700        0,     0,     0,     0,     0,   305,   364,   364,   364,   364,
2701      364,   364,   364,   364,   364,   364,   364,   364,   364,   364,
2702      364,   364,   364,   364,     0,   305,     0,   231,   231,   231,
2703      231,     0,     0,     0,     0,     0,     0,   364,     0,     0,
2704      364,   364,     0,   911,     0,     0,     0,   231,     0,   367,
2705        0,     0,     0,     0,   640,   642,     0,   422,   367,   422,
2706        0,     0,     0,   366,   367,   366,     0,     0,     0,     0,
2707        0,     0,     0,     0,   323,     0,     0,     0,     0,     0,
2708        0,   422,     0,   422,     0,     0,     0,   366,     0,   367,
2709        0,     0,     0,     0,   367,     0,   584,   584,   584,   584,
2710        0,     0,   584,     0,     0,     0,   912,   584,   584,     0,
2711      584,   364,   584,   912,   364,     0,     0,   912,     0,     0,
2712        0,   914,   914,     0,   584,     0,     0,     0,   914,   914,
2713        0,     0,   914,   914,     0,     0,     0,     0,     0,     0,
2714        0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
2715        0,     0,   364,     0,     0,   367,     0,     0,     0,   368,
2716        0,     0,     0,     0,     0,   368,     0,     0,     0,     0,
2717        0,     0,     0,     0,     0,     0,   364,     0,   364,     0,
2718        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2719        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2720        0,     0,     0,     0,  1824,  1828,     0,  1834,  1838,     0,
2721        0,     0,     0,  1843,  1847,  1851,  1855,     0,     0,     0,
2722        0,     0,     0,     0,     0,   368,   368,   368,   368,   368,
2723      368,   368,   368,     0,   364,   368,     0,   422,   422,   422,
2724      422,   422,     0,     0,     0,     0,     0,     0,   422,   422,
2725      422,   422,     0,     0,     0,     0,     0,     0,   584,     0,
2726        0,   367,     0,     0,     0,   364,     0,     0,   584,     0,
2727      584,     0,     0,     0,     0,     0,   364,     0,     0,     0,
2728        0,     0,     0,     0,     0,     0,     0,     0,     0,   366,
2729        0,   367,   366,     0,     0,     0,     0,     0,     0,     0,
2730        0,     0,   305,   305,     0,     0,     0,     0,     0,     0,
2731        0,     0,     0,     0,     0,     0,   422,   422,     0,   323,
2732        0,   584,   584,     0,     0,   584,     0,   584,     0,     0,
2733      584,     0,     0,   912,   584,     0,     0,     0,     0,     0,
2734      366,     0,     0,     0,     0,   367,     0,     0,     0,   914,
2735        0,     0,     0,     0,   366,     0,     0,     0,     0,     0,
2736        0,     0,     0,     0,     0,     0,     0,   584,     0,   366,
2737        0,     0,     0,     0,     0,   368,   364,   912,   364,   912,
2738        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2739        0,     0,     0,     0,     0,   584,   912,     0,     0,     0,
2740      364,     0,     0,     0,     0,     0,     0,     0,   367,     0,
2741        0,     0,  1083,     0,     0,   364,     0,     0,     0,   364,
2742        0,     0,   305,     0,     0,     0,   364,     0,     0,     0,
2743      364,     0,     0,     0,     0,   912,     0,     0,     0,   323,
2744      368,     0,     0,   323,     0,     0,     0,     0,     0,     0,
2745      914,   914,     0,     0,     0,   367,     0,     0,     0,     0,
2746        0,   367,     0,     0,   367,     0,     0,     0,     0,     0,
2747        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2748        0,     0,     0,   323,     0,     0,     0,     0,     0,   367,
2749      367,   367,   367,   367,   367,   367,     0,     0,   367,   367,
2750        0,   367,   367,   367,   367,   367,   367,   367,   367,     0,
2751      323,     0,     0,     0,     0,     0,     0,     0,   323,   367,
2752      367,   367,   367,   367,   367,   367,   367,   367,   367,   367,
2753      367,   367,   367,   367,   367,   367,   367,     0,   323,     0,
2754        0,   366,     0,     0,     0,     0,   366,   366,   366,     0,
2755      367,     0,     0,   367,   367,     0,     0,     0,     0,     0,
2756        0,     0,   366,   366,     0,     0,     0,     0,     0,     0,
2757        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2758        0,     0,     0,     0,     0,     0,  1823,  1827,     0,  1833,
2759     1837,     0,     0,     0,     0,  1842,  1846,  1850,  1854,     0,
2760        0,     0,   364,     0,     0,   364,     0,  1823,  1827,  1833,
2761     1837,  1842,  1846,  1850,  1854,     0,     0,   366,     0,     0,
2762        0,     0,     0,     0,   367,     0,     0,   367,     0,     0,
2763        0,     0,     0,     0,   912,     0,     0,     0,     0,     0,
2764        0,     0,     0,     0,     0,     0,   364,     0,     0,   914,
2765      914,     0,     0,   364,     0,     0,   367,     0,     0,     0,
2766        0,     0,     0,     0,     0,   367,     0,   364,     0,     0,
2767        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2768        0,     0,   364,     0,     0,     0,     0,     0,     0,   367,
2769      364,   367,   364,     0,     0,     0,     0,     0,     0,     0,
2770        0,     0,     0,     0,     0,     0,     0,     0,     0,   364,
2771        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2772        0,     0,     0,     0,     0,     0,   268,     0,     1,   269,
2773       97,   270,     0,   271,   272,     0,     0,     0,     0,     0,
2774        0,     0,     0,     0,     0,     0,     0,   367,   364,     0,
2775        0,     0,     0,     2,     0,     0,     0,   366,   366,     0,
2776        0,     0,     0,     0,     0,     0,     0,     0,   366,     0,
2777        0,     0,     0,     0,     0,     0,     0,     0,   367,     0,
2778        0,     0,     0,     0,     0,     0,     0,     0,     0,   367,
2779      273,     0,     0,     0,     0,     0,   274,   275,   276,    28,
2780        0,     0,     0,     0,    32,     0,     0,     0,     0,   277,
2781      278,    38,     0,     0,     0,   323,   323,     0,     0,     0,
2782        0,     0,   912,   279,     0,   366,   366,   280,   281,   282,
2783      283,   284,   285,   286,   801,     0,     0,   802,   661,   289,
2784        0,     0,     0,     0,     0,     0,     0,   290,   291,     0,
2785      292,   293,   294,   295,   364,     0,     0,     0,     0,   364,
2786      364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
2787      305,     0,     0,     0,     0,   364,   364,     0,     0,     0,
2788        0,     0,   305,     0,     0,     0,     0,     0,     0,   367,
2789        0,   367,     0,    66,     0,     0,     0,     0,     0,   364,
2790      364,     0,   364,   364,     0,     0,     0,     0,   364,   364,
2791      364,   364,     0,   367,     0,     0,     0,     1,     0,     0,
2792      364,   364,   364,   364,   364,   364,   364,   364,   367,     0,
2793      364,     0,   367,     0,     0,   323,   108,     0,     0,   367,
2794        0,     0,     2,   367,     0,     0,     0,   364,     8,     9,
2795       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2796       20,    21,    22,    23,    24,     0,     0,     0,   157,     0,
2797        0,     0,     0,     0,     0,     0,   227,    66,     0,     0,
2798       27,     0,     0,     0,    66,    66,     0,     0,    28,    29,
2799        0,     0,     0,    32,     0,     0,    35,    36,     0,    37,
2800       38,    39,   346,     0,     0,     0,     0,     0,     0,     0,
2801        0,     0,   227,     0,    40,     0,    78,     0,   437,     0,
2802        0,     0,     0,    43,     0,     0,   774,     0,     0,     0,
2803      437,     0,   227,     0,   437,     0,     0,   508,   305,   305,
2804        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2805        0,     0,     0,     0,     0,     0,   227,     0,     0,     0,
2806       78,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2807      364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
2808        0,   364,     0,     0,   514,     0,     0,     0,     0,     0,
2809        0,    78,    78,     0,     0,     0,    78,     0,    78,     0,
2810       78,     0,     0,     0,     0,     0,     0,    78,    78,     0,
2811        0,     0,     0,     0,     0,   367,     0,     0,   367,     0,
2812        0,     0,     0,     0,   547,     0,     0,   227,   227,   227,
2813        0,     0,    78,    78,     0,   364,     0,   157,   364,   364,
2814        0,     0,     0,     0,     0,     0,     0,   157,   227,    66,
2815        0,     0,     0,     0,     0,     0,     0,     0,     0,   367,
2816        0,     0,     0,     0,     0,     0,   367,   647,     0,     0,
2817        0,     0,     0,   647,     0,     0,    78,    78,     0,     0,
2818      367,   666,     0,     0,     0,     0,     0,     0,     0,     0,
2819        0,     0,     0,     0,     0,   367,     0,     0,     0,     0,
2820        0,     0,     0,   367,     0,   367,     0,    78,     0,     0,
2821        0,     0,     0,     0,     0,     0,     0,    78,     0,    78,
2822        0,     0,   367,     0,   268,     0,     1,   269,    97,   270,
2823        0,   271,   272,     0,     0,     0,     0,     0,     0,     0,
2824        0,     0,     0,     0,   305,     0,     0,    78,     0,     0,
2825        0,     2,     0,     0,     0,     0,     0,     0,     0,     0,
2826       78,   367,   305,   547,     0,   227,   227,     0,     0,   786,
2827       78,     0,    78,     0,     0,     0,     0,     0,     0,     0,
2828        0,   786,     0,     0,     0,     0,     0,     0,   273,     0,
2829        0,     0,     0,     0,   274,   275,   276,     0,     0,     0,
2830        0,     0,     0,     0,     0,     0,     0,   277,   278,     0,
2831        0,     0,     0,     0,     0,     0,     0,   514,     0,     0,
2832        0,   279,     0,     0,     0,   280,   281,   282,   283,   284,
2833      285,   286,   287,     0,   878,   288,  1050,   289,     0,     0,
2834     1051,     0,     0,     0,     0,   290,   291,  1626,   292,   293,
2835      294,   295,     0,     0,     0,     0,     0,     0,     0,     0,
2836        0,     0,     0,     0,     0,     0,    78,   367,    78,     0,
2837        0,   227,   367,   367,   367,     0,     0,     0,   227,     0,
2838        0,     0,     0,   323,     0,     0,     0,     0,   367,   367,
2839        0,     0,     0,     0,     0,   323,     0,     0,     0,     0,
2840        0,     0,     0,     0,     0,    78,     0,     0,     0,     0,
2841        0,     0,   367,   367,     0,   367,   367,     0,     0,     0,
2842        0,   367,   367,   367,   367,     0,     0,     0,     0,     0,
2843        0,     0,     0,   367,   367,   367,   367,   367,   367,   367,
2844      367,     0,     0,   367,     0,     0,     0,     0,     0,     0,
2845        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2846      367,     0,     0,     0,     0,     0,     0,  1031,     0,     0,
2847        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2848        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2849      227,   227,   227,   227,     0,     0,    78,     0,    78,     0,
2850        0,     0,     0,     0,     0,     0,    78,    78,     0,     0,
2851        0,     0,     0,   227,   227,     0,     0,   157,     0,     0,
2852        0,     0,  1085,    78,     0,    78,     0,     0,     0,     0,
2853        0,     0,     0,    78,     0,    78,   227,     0,     0,     0,
2854        0,     0,     0,  1112,  1122,   666,     0,  1112,  1122,     0,
2855        0,   323,   323,     0,     0,     0,     0,     0,     0,   224,
2856        0,     0,  1141,     0,     0,   227,    78,     0,     0,     0,
2857        0,   227,     0,     0,   227,     0,     0,     0,     0,     0,
2858        0,     0,     0,   367,   367,     0,     0,     0,     0,     0,
2859        0,     0,     0,     0,   367,   224,     0,     0,     0,     0,
2860        0,   435,     0,     0,     0,     0,     0,     0,     0,     0,
2861        0,     0,     0,   435,     0,   224,     0,   435,     0,     0,
2862        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2863        0,     0,     0,     0,     0,     0,     0,     0,     0,   224,
2864       78,     0,     0,     0,     0,     0,     0,     0,   367,     0,
2865        0,   367,   367,   514,     0,     0,     0,     0,     0,     0,
2866      227,     0,     0,   227,   227,     0,     0,   512,     0,     0,
2867        0,     0,     0,     0,   113,     0,     0,     0,     0,     0,
2868        0,     0,  1339,   514,     0,     0,     0,     0,     0,     0,
2869      514,     0,     0,  1339,   108,   666,     0,   514,     0,     0,
2870        0,     0,     0,     0,     0,   113,   113,   545,     0,     0,
2871      224,   224,   224,     0,     0,     0,     0,     0,     0,     0,
2872        0,     0,     0,   114,     0,     0,     0,     0,     0,     0,
2873        0,   224,     0,     0,     0,     0,     0,     0,     0,     0,
2874        0,     0,     0,     0,     0,     0,   348,   113,   514,     0,
2875      645,     0,     0,     0,   159,   114,   645,   323,     0,   200,
2876        0,   202,     0,     0,     0,   514,   227,     0,     0,     0,
2877        0,     0,     0,   227,   227,   323,     0,     0,     0,     0,
2878        0,     0,     0,     0,     0,   227,     0,     0,     0,     0,
2879      348,   113,     0,     0,     0,   349,   114,     0,     0,   227,
2880      227,   227,     0,     0,     0,     0,     0,   547,     0,     0,
2881        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
2882        0,   113,     0,     0,     0,     0,     0,     0,     0,     0,
2883        0,     0,     0,     0,     0,     0,     0,     0,     0,   479,
2884      481,     0,     0,     0,     0,     0,   545,     0,   224,   224,
2885        0,     0,   785,     0,     0,     0,     0,     0,    78,     0,
2886        0,   113,     0,     0,   785,     0,     0,     0,     0,     0,
2887      114,    78,     0,     0,   113,     0,     0,     0,    78,     0,
2888      534,     0,   535,     0,     0,     0,     0,     0,   227,     0,
2889        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2890      512,     0,     0,     0,     0,     0,     0,     0,  1031,     0,
2891      114,     0,     0,     0,     0,     0,     0,   877,     0,     0,
2892        0,     0,     0,   159,     0,     0,     0,     0,     0,     0,
2893        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2894        0,     0,     0,     0,     0,     0,     0,   227,   227,   227,
2895      227,     0,     0,     0,   224,     0,     0,     0,     0,     0,
2896        0,   224,     0,     0,     0,     0,     0,   227,     0,     0,
2897        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
2898      113,  1549,   348,     0,     0,     0,     0,     0,     0,     0,
2899        0,     0,     0,     0,     0,     0,     0,     0,   547,   227,
2900        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2901        0,     0,     0,     0,     0,     0,     0,     0,  1595,   113,
2902        0,     0,     0,     0,     0,  1595,     0,     0,     0,   114,
2903        0,   349,     0,     0,     0,     0,     0,     0,     0,     0,
2904        0,   227,   227,     0,     0,     0,     0,     0,   227,   227,
2905        0,     0,   227,   227,   848,     0,     0,     0,     0,     0,
2906        0,     0,     0,     0,     0,     0,     0,     0,   114,     0,
2907        0,     0,     0,   224,   224,   224,   224,     0,     0,     0,
2908        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2909        0,     0,     0,     0,     0,     0,   224,   224,     0,     0,
2910        0,     0,   226,     0,     0,     0,   200,   202,     0,     0,
2911      113,     0,   348,     0,     0,     0,     0,     0,     0,   224,
2912      113,   113,     0,     0,     0,     0,  1110,  1120,     0,     0,
2913     1110,  1120,     0,     0,     0,     0,     0,   113,   226,   113,
2914        0,     0,     0,     0,     0,     0,     0,   348,   224,   113,
2915        0,     0,     0,     0,   224,     0,     0,   224,   226,   917,
2916        0,   918,     0,     0,     0,     0,     0,     0,     0,   114,
2917      114,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2918      348,     0,   226,     0,     0,     0,   114,     0,   114,     0,
2919        0,     0,     0,     0,     0,     0,   349,     0,   114,     0,
2920        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2921      513,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2922        0,     0,     0,     0,     0,   227,     0,     0,   227,   349,
2923        0,     0,     0,     0,     0,     0,   512,     0,     0,     0,
2924        0,     0,     0,   224,     0,     0,   224,   224,     0,     0,
2925      546,     0,     0,   226,   226,   226,     0,     0,   229,     0,
2926        0,     0,     0,     0,     0,  1338,   512,     0,     0,   227,
2927        0,     0,     0,   512,   226,     0,  1338,     0,     0,     0,
2928      512,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2929      227,     0,     0,   646,   229,     0,     0,     0,     0,   646,
2930        0,   227,   227,   227,   227,     0,     0,   665,     0,     0,
2931        0,     0,     0,     0,   229,  1044,     0,     1,   269,    97,
2932      270,     0,   271,   272,     0,     0,     0,     0,     0,     0,
2933        0,   512,     0,     0,     0,     0,     0,     0,   229,     0,
2934        0,     0,     2,     0,     0,     0,     0,     0,   512,   224,
2935        0,     0,     0,     0,     0,     0,   224,   224,     0,     0,
2936        0,   514,     0,     0,     0,     0,   516,     0,   224,     0,
2937      227,   227,     0,     0,     0,     0,     0,     0,     0,   273,
2938        0,     0,   224,   224,   224,   274,   275,   276,     0,   546,
2939      545,   226,   226,     0,     0,     0,     0,     0,   277,   278,
2940        0,     0,     0,     0,     0,     0,   549,     0,     0,   229,
2941      229,   229,   279,     0,     0,     0,   280,   281,   282,   283,
2942      284,   285,   286,   287,     0,     0,   288,  1349,   289,  1045,
2943      229,  1046,   113,     0,   227,     0,   290,   291,     0,   292,
2944      293,   294,   295,   513,     0,     0,     0,     0,     0,   649,
2945        0,     0,     0,     0,     0,   649,     0,     0,     0,     0,
2946        0,     0,     0,   668,     0,     0,     0,     0,     0,     0,
2947        0,   224,   113,     0,     0,     0,     0,   227,     0,  1379,
2948     1381,   114,     0,   227,    78,   113,     0,     0,     0,     0,
2949        0,     0,   113,     0,     0,     0,     0,   226,     0,     0,
2950        0,   666,   848,     0,   226,     0,     0,     0,     0,     0,
2951        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2952        0,   114,     0,     0,     0,     0,     0,     0,   200,   202,
2953      224,   224,   224,   224,   114,     0,     0,     0,   534,     0,
2954      535,   114,     0,     0,   848,   549,     0,   229,   229,     0,
2955      224,     0,     0,   227,     0,     0,     0,     0,     0,     0,
2956        0,     0,     0,     0,     0,     0,     0,     0,     0,   227,
2957      227,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2958        0,   545,   224,     0,     0,     0,     0,     0,     0,     0,
2959        0,     0,   113,     0,     0,     0,     0,     0,     0,   516,
2960        0,  1593,     0,     0,     0,     0,     0,     0,  1593,     0,
2961        0,     0,     0,     0,     0,     0,   226,   226,   226,   226,
2962        0,     0,     0,     0,   224,   224,     0,     0,     0,     0,
2963        0,   224,   224,     0,     0,   224,   224,     0,     0,   226,
2964      226,   114,     0,     0,     0,     0,     0,     0,  1084,     0,
2965        0,     0,     0,   229,     0,     0,     0,     0,     0,     0,
2966      229,     0,   226,     0,     0,     0,     0,     0,     0,  1111,
2967     1121,   665,     0,  1111,  1121,     0,     0,     0,     0,     1,
2968        0,     0,     0,     0,     0,     0,     0,     0,  1140,     0,
2969        0,   226,     0,   227,     0,   666,     0,   226,     0,     0,
2970      226,     0,     0,     0,     2,   172,   173,   174,   175,   176,
2971        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2972       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
2973        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2974        0,     0,    27,     0,     0,     0,     0,     0,     0,     0,
2975       28,    29,     0,     0,     0,    32,     0,     0,    35,    36,
2976        0,    37,    38,    39,     0,     0,     0,     0,     0,   227,
2977      227,     0,   229,   229,   229,   229,    40,     0,     0,   513,
2978        0,     0,     0,     0,     0,    43,   226,     0,   507,   226,
2979      226,     0,     0,     0,     0,   229,   229,     0,     0,   508,
2980        0,   509,     0,     0,  1087,     0,     0,     0,   224,   513,
2981        0,   224,     0,     0,     0,     0,   513,     0,   229,     0,
2982        0,   665,     0,   513,     0,  1114,  1124,   668,     0,  1114,
2983     1124,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2984        0,     0,     0,     0,  1143,     0,     0,   229,     0,     0,
2985        0,     0,   224,   229,     0,     0,   229,     0,     0,     0,
2986        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2987        0,     0,     0,   224,   513,     0,     0,     0,     0,     0,
2988        0,     0,     0,     0,   224,   224,   224,   224,     0,     0,
2989        0,   513,   226,     0,     0,     0,     0,     0,     0,   226,
2990      226,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2991        0,   226,     0,     0,     0,     0,     0,     0,     0,     0,
2992        0,     0,     0,     0,     0,   226,   226,   226,     0,     0,
2993        0,     0,     0,   546,     0,   516,     0,     0,     0,     0,
2994        0,     0,   229,     0,   512,   229,   229,     0,   225,     0,
2995        0,     0,     0,   224,   224,     0,     0,     0,     0,     0,
2996        0,     0,     0,     0,     0,   516,     0,     0,     0,     0,
2997        0,     0,   516,     0,     0,     0,     0,   668,     0,   516,
2998     1666,  1668,     0,     0,   225,     0,     0,     0,     0,     0,
2999      225,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3000        0,     0,   225,     0,   225,     0,   225,     0,  1349,     0,
3001     1680,     0,  1681,     0,   226,     0,     0,   224,     0,     0,
3002        0,     0,     0,     0,     0,     0,     0,     0,   225,     0,
3003      516,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3004        0,     0,     0,     0,     0,     0,     0,   516,   229,     0,
3005        0,     0,     0,     0,     0,   229,   229,     0,     0,   534,
3006      224,   535,     0,     0,     0,     0,   224,   229,     0,     0,
3007        0,     0,     0,   226,   226,   226,   226,     0,     0,     0,
3008        0,   229,   229,   229,     0,     0,     0,     0,     0,   549,
3009        0,     0,     0,   226,     0,     0,   225,     0,   113,   225,
3010      225,   225,     0,     0,     0,     0,     0,  1548,     0,     0,
3011        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3012      225,     0,     0,     0,   546,   226,     0,     0,     0,     0,
3013        0,     0,     0,     0,     0,     0,   224,     0,     0,   225,
3014        0,     0,     0,     0,  1594,   225,     0,   114,     0,     0,
3015        0,  1594,   224,   224,     0,     0,     0,     0,     0,     0,
3016        0,     0,     0,     0,     0,     0,     0,   226,   226,     0,
3017      229,     0,     0,     0,   226,   226,     1,     0,   226,   226,
3018        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3019        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3020        0,     2,   172,   173,   174,   175,   176,   204,   205,   206,
3021      207,   208,   209,   210,   211,   212,   213,    18,    19,   214,
3022      215,    22,    23,    24,     0,     0,     0,     0,     0,   229,
3023      229,   229,   229,     0,     0,   225,     0,   225,   225,   216,
3024        0,   225,     0,     0,     0,     0,     0,    28,    29,   229,
3025        0,     0,    32,   225,     0,     0,     0,     0,   217,    38,
3026      218,     0,     0,  1551,     0,     0,     0,     0,     0,     0,
3027        0,     0,     0,   219,     0,     0,   224,     0,     0,     0,
3028      549,   229,    43,     0,     0,   774,     0,     0,     0,     0,
3029        0,     0,  1336,     0,     0,     0,   508,  1863,     0,  1864,
3030     1597,     0,     0,     0,     0,     0,   225,  1597,     0,  1666,
3031        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3032        0,     0,     0,   229,   229,     0,     0,     0,     0,     0,
3033      229,   229,     0,     0,   229,   229,   171,     0,     1,     0,
3034        0,     0,     0,   225,     0,     0,     0,     0,     0,     0,
3035      225,   226,   224,   224,   226,     0,     0,     0,     0,     0,
3036        0,     0,     0,     2,   172,   173,   174,   175,   176,     8,
3037        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
3038       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
3039        0,     0,     0,     0,     0,   226,   230,     0,     0,     0,
3040      177,    27,     0,     0,     0,     0,     0,     0,     0,    28,
3041       29,     0,     0,     0,    32,     0,   226,    35,    36,     0,
3042       37,    38,    39,     0,     0,     0,     0,   226,   226,   226,
3043      226,     0,   230,     0,   675,    40,     0,     0,   230,     0,
3044        0,     0,     0,     0,    43,     0,     0,   507,   949,   702,
3045      230,     0,   230,     0,   230,     0,     0,     0,   508,     0,
3046        0,     0,   225,   225,   225,   225,     0,     0,     0,     0,
3047        0,     0,     0,     0,     0,     0,   230,     0,     0,     0,
3048        0,     0,     0,     0,     0,   225,   225,   513,     0,     0,
3049        0,     0,     0,     0,     0,     0,   226,   226,     0,     0,
3050        0,     0,     0,     0,     0,     0,     0,   229,   225,     0,
3051      229,     0,     0,     0,     0,   225,   225,     0,     0,   225,
3052      225,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3053        0,     0,     0,     0,     0,     0,     0,   225,     0,     0,
3054        0,     0,     0,   225,   230,     0,   225,   230,   230,   230,
3055        0,   229,     0,     0,     0,     0,     0,     0,     0,     0,
3056      226,     0,     0,     0,     0,     0,     0,     0,   230,     0,
3057        0,     0,   229,     0,     0,     0,     0,     0,     0,     0,
3058        0,     0,     0,   229,   229,   229,   229,   230,     0,     0,
3059        0,     0,     0,   230,     0,     0,   591,     0,     0,     0,
3060        0,     0,     0,   226,     0,     0,     0,     0,     0,   226,
3061        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3062        0,     0,     0,     0,     0,     0,     0,   665,     0,     0,
3063        0,     0,   225,     0,     0,   225,   225,     0,     0,     0,
3064        0,     0,     0,   516,     0,     0,     0,     0,   664,     0,
3065        0,     0,   229,   229,   225,     0,     0,     0,     0,     0,
3066        0,     0,     0,     0,     0,   225,     0,     0,     0,     0,
3067        0,     0,     0,     0,     0,     0,     0,     0,     0,   226,
3068        0,     0,     0,   230,     0,   230,   230,     0,     0,   230,
3069        0,     0,     0,     0,     0,   226,   226,     0,     0,     0,
3070        0,   230,     0,     0,     0,     0,     0,     0,     0,     0,
3071        0,     0,     0,     0,     0,  1026,   229,     0,     0,     0,
3072        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3073        0,     0,     0,     0,     0,     0,     0,     0,   225,     0,
3074        0,     0,     0,     0,     0,   225,   225,     0,     0,   664,
3075        0,     0,     0,     0,   230,     0,     0,   225,     0,   229,
3076        0,     0,     0,     0,     0,   229,     0,     0,     0,     0,
3077        0,   225,   225,   225,     0,     0,     0,     0,     0,   225,
3078        0,     0,     0,   668,     0,     0,     0,     0,     0,     0,
3079        0,   230,     0,     0,     0,     0,     0,     0,   230,     0,
3080        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3081        0,     0,     0,     0,     0,     0,     0,     0,     0,   226,
3082        0,   665,     0,     0,     0,     0,     0,     0,     0,   675,
3083        0,     0,     0,     0,     0,   229,     0,     0,     0,     0,
3084        0,     0,     0,  1173,     0,     0,     0,     0,     0,     0,
3085        0,   229,   229,     0,     0,     0,     0,     0,     0,     0,
3086      225,     0,  1199,  1204,  1208,  1212,  1216,     0,     0,  1225,
3087     1231,     0,     0,     0,     0,   675,     0,     0,  1243,     0,
3088        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3089     1270,  1275,  1279,  1283,  1287,   226,   226,  1225,  1300,     0,
3090        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3091      230,   230,   230,   230,     0,  1225,  1225,     0,     0,   225,
3092      225,   225,   225,     0,     0,     0,     0,     0,     0,     0,
3093        0,     0,  1029,   230,   230,     0,     0,     0,     0,   225,
3094        0,     0,     0,     0,     0,     0,     0,  1048,     0,     0,
3095        0,     0,     0,     0,     0,     0,   230,   591,   591,   591,
3096      591,     0,     0,   230,   230,     0,     0,   230,   230,     0,
3097      225,   225,     0,     0,     0,   229,     0,   668,     0,     0,
3098        0,     0,     0,     0,     0,   230,     0,     0,     0,     0,
3099      225,   230,     0,     0,   230,     0,     0,   225,   664,     0,
3100        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3101        0,     0,     0,   225,   225,     0,     0,     0,     0,     0,
3102      225,   225,     0,  1048,   225,   225,     0,     0,     0,     0,
3103        0,     0,     0,   268,     0,     1,   269,    97,   270,     0,
3104      271,   272,     0,     0,     0,     0,     0,     0,  1172,     0,
3105        0,   229,   229,     0,     0,     0,     0,     0,     0,     0,
3106        2,     0,     0,     0,     0,     0,     0,     0,  1018,     0,
3107        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3108      230,     0,     0,   230,   230,     0,  1229,     0,     0,     0,
3109        0,     0,     0,     0,  1242,     0,     0,   273,     0,     0,
3110     1058,  1062,   230,   274,   275,   276,     0,     0,     0,     0,
3111        0,     0,     0,   230,  1298,     0,   277,   278,     0,     0,
3112        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3113      279,     0,  1324,  1328,   280,   281,   282,   283,   284,   285,
3114      286,   287,     0,     0,   288,  1050,   289,     0,   663,  1631,
3115        0,     0,     0,  1632,   290,   291,  1026,   292,   293,   294,
3116      295,     0,   664,     0,     0,     0,     0,     0,     0,     0,
3117        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3118        0,     0,     0,     0,  1173,     0,   230,     0,     0,     0,
3119        0,     0,  1243,   230,   230,     0,     0,   225,     0,   268,
3120      225,     1,   269,    97,   270,   230,   271,   272,     0,     0,
3121        0,     0,     0,     0,     0,     0,     0,     0,     0,   230,
3122      230,   230,     0,     0,     0,     0,     2,   230,     0,     0,
3123        0,     0,     0,     0,     0,     0,     0,     0,   675,     0,
3124        0,   225,     0,     0,   675,     0,     0,     0,     0,   663,
3125     1006,  1007,  1008,   565,  1009,  1010,  1011,  1012,   570,   571,
3126     1013,     0,   225,   273,     0,     0,     0,     0,     0,   274,
3127      275,   276,     0,   225,   225,   225,   225,  1014,     0,     0,
3128        0,     0,   277,   278,  1015,     0,   575,   576,   577,     0,
3129        0,     0,     0,     0,     0,  1618,   279,     0,     0,     0,
3130      280,   281,   282,   283,   284,   285,   286,   287,   230,     0,
3131      288,  -470,   289,   578,     0,  -470,     0,   220,     0,   579,
3132      290,   291,     0,   292,   293,   294,   295,     0,     0,     0,
3133        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3134        0,     0,   225,   225,     0,     0,     0,     0,     0,     0,
3135        0,     0,     0,     0,     0,     0,     0,     0,   591,     0,
3136        0,   591,  1486,  1488,     0,  1492,     0,   230,   230,   230,
3137      230,     0,     0,  1502,     0,     0,     0,     0,     0,     0,
3138        0,  1511,     0,     0,     0,     0,     0,   230,  1048,     0,
3139        0,     0,     0,     0,     0,     0,     0,     0,     0,   591,
3140        0,     0,     0,     0,     0,     0,   225,  1048,     0,     0,
3141        0,     0,  1048,     0,   591,   591,   591,   591,   230,   230,
3142        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3143        0,     0,  1028,     0,     0,     0,     0,     0,   230,     0,
3144        0,     0,     0,     0,     0,   230,     0,  1047,     0,   225,
3145        0,  1052,     0,     0,     0,   225,     0,  1563,     0,     0,
3146        0,   230,   230,  1573,     0,     0,     0,     0,   230,   230,
3147        0,     0,   230,   230,     0,     0,     0,     0,     0,     0,
3148        0,     0,     0,     0,     0,     0,  1048,     0,     0,     0,
3149        0,     0,     0,     0,     0,     0,     0,     0,   663,  1479,
3150        0,     0,  1483,     0,     0,     0,     0,     0,     0,     0,
3151        0,  1499,  1126,     0,     0,     0,     0,     0,     0,     0,
3152        0,     0,     0,  1047,  1052,   225,     0,     0,     0,     0,
3153        0,  1048,     0,     0,     0,     0,     0,     0,     0,     0,
3154     1523,   225,   225,     0,     0,     0,     0,     0,  1171,     0,
3155        0,     0,     0,     0,     0,  1058,  1062,  1058,  1062,     0,
3156        0,     0,     0,     0,     0,     0,  1163,     0,     1,   269,
3157       97,   270,     0,   271,   272,     0,     0,     0,     0,     0,
3158        0,     0,     0,     0,     0,     0,  1227,  1048,     0,     0,
3159        0,     0,     0,     2,  1241,     0,     0,     0,     0,     0,
3160        0,  1048,     0,     0,     0,     0,     0,     0,     0,     0,
3161        0,     0,     0,     0,  1296,     0,     0,     0,     0,     0,
3162        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3163      273,     0,  1322,  1326,     0,     0,   274,   275,   276,     0,
3164        0,     0,     0,     0,     0,   230,     0,     0,   230,   277,
3165      278,     0,     0,     0,     0,     0,  1048,     0,     0,     0,
3166        0,     0,   663,   279,     0,   225,     0,   280,   281,   282,
3167      283,   284,   285,   286,   287,     0,     0,   288,  1164,   289,
3168        0,     0,  1048,     0,   672,     0,  1048,   290,   291,   230,
3169      292,   293,   294,   295,     0,     0,     0,     0,     0,     0,
3170        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3171      230,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3172        0,   230,   230,   230,   230,     0,     0,     0,     0,     0,
3173        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3174        0,   225,   225,     0,     0,     0,     0,     0,     0,     0,
3175        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3176        0,     0,     0,     0,     0,     0,  1618,     0,     0,     0,
3177        0,  1819,  1821,  1825,  1829,  1831,  1835,     0,  1618,     0,
3178        0,  1840,  1844,  1848,  1852,     0,     0,     0,     0,     0,
3179      230,   230,     0,  1821,  1825,  1831,  1835,  1840,  1844,  1848,
3180     1852,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3181        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3182        0,     0,     0,     0,     0,    82,     0,     0,     0,     0,
3183        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3184        0,   591,   591,     0,     0,  1048,     0,  1048,     0,     0,
3185        0,  1048,   591,     0,   230,     0,     0,  1743,  1746,     0,
3186     1748,     0,  1485,  1487,     0,  1491,     0,     0,   111,   117,
3187     1048,     0,  1759,  1028,     0,     0,     0,  1052,     0,     0,
3188        0,  1510,     0,     0,     0,     0,     0,     0,  1047,  1052,
3189        0,     0,     0,     0,     0,     0,     0,   230,     0,     0,
3190      161,   117,     0,   230,     0,   201,     0,  1047,  1052,    82,
3191        0,     0,  1047,     0,     0,     0,    82,    82,  1618,     0,
3192        0,     0,  1048,  1618,     0,     0,     0,     0,     0,     0,
3193        0,     0,  1048,     0,   347,     0,     0,     0,     0,     0,
3194        0,   350,     0,     0,     0,     0,     0,     0,     0,     0,
3195        0,     0,     0,     0,     0,     0,     0,  1562,     0,     0,
3196        0,     0,     0,  1572,     0,     0,     0,     0,     0,     0,
3197        0,     0,     0,   230,     0,     0,     0,     0,     0,     0,
3198        0,     0,  1726,  1728,     0,   480,  1047,     0,     0,   230,
3199      230,  1735,     0,  1739,  1479,     0,     0,  1483,     0,     0,
3200        0,     0,     0,     0,     0,  1523,     0,     0,  1752,     0,
3201        0,     0,     0,     0,     0,     0,   519,     0,     0,     0,
3202      268,     0,     1,   269,    97,   270,     0,   271,   272,     0,
3203        0,  1047,  1052,     0,     0,     0,     0,     0,     0,     0,
3204        0,     0,     0,     0,     0,     0,     0,     2,     0,     0,
3205        0,     0,     0,     0,     0,     0,   117,     0,     0,     0,
3206        0,     0,     0,     0,     0,     0,     0,     0,     0,   161,
3207        0,     0,     0,     0,     0,     0,     0,     0,     0,    82,
3208        0,    82,     0,     0,   273,     0,     0,  1047,     0,  1052,
3209      274,   275,   276,     0,     0,     0,   591,     0,  1048,     0,
3210        0,  1047,  1052,   277,   278,  1048,     0,     0,     0,  1748,
3211        0,  1897,     0,   230,     0,     0,     0,   279,     0,     0,
3212     1904,   280,   281,   282,   283,   284,   285,   286,   287,     0,
3213        0,   288,  1050,   289,     0,     0,  1051,     0,     0,     0,
3214        0,   290,   291,  1637,   292,   293,   294,   295,     0,     0,
3215        0,     0,     0,     0,     0,     0,  1047,     0,  1052,     0,
3216        0,     0,   664,     0,     0,     0,     0,     0,     0,     0,
3217        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3218        0,     0,  1047,     0,  1052,     0,  1047,     0,  1052,   230,
3219      230,     0,     0,     0,     0,   776,     0,   268,     0,     1,
3220      269,    97,   270,     0,   271,   272,     0,     0,     0,     0,
3221        0,     0,     0,     0,   117,     0,     0,     0,     0,     0,
3222        0,     0,     0,     0,     2,     0,     0,     0,     0,     0,
3223        0,  1886,  1887,  1888,  1889,     0,     0,  1890,     0,     0,
3224        0,     0,  1726,  1728,     0,  1735,     0,  1739,     0,   850,
3225        0,     0,   859,  1958,  1961,     0,  1048,     0,  1048,  1899,
3226        0,   273,   591,  1048,   591,     0,     0,   274,   275,   276,
3227        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3228      277,   278,     0,     0,     0,     0,     0,     0,     0,     0,
3229        0,     0,     0,     0,   279,     0,     0,     0,   280,   281,
3230      282,   283,   284,   285,   286,   287,     0,     0,   288,  1050,
3231      289,  1517,     0,  1051,     0,   117,   117,  1048,   290,   291,
3232     1048,   292,   293,   294,   295,     0,     0,     0,   591,     0,
3233        0,     0,   519,     0,   117,     0,     0,     0,     0,     0,
3234        0,     0,   962,     0,     0,  1047,  1052,  1047,  1052,     0,
3235        0,  1047,  1738,     0,     0,     0,     0,  1485,  1745,     0,
3236     1510,     0,  1052,     0,  1048,     0,     0,     0,     0,     0,
3237     1047,  1052,  1510,     0,     0,   350,     0,     0,     0,     0,
3238        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3239        0,     0,     0,  1890,     0,     0,     0,     0,     0,     0,
3240        0,     0,     0,  1966,     0,  1969,     0,     0,     0,     0,
3241        0,     0,   268,     0,     1,   269,    97,   270,     0,   271,
3242      272,     0,  1047,  1052,     0,     0,     0,     0,     0,     0,
3243        0,     0,  1047,  1052,     0,     0,     0,     0,     0,     2,
3244        0,     0,     0,     0,     0,     0,     0,     0,     0,    82,
3245        0,     0,     0,     0,     0,     0,  1998,  1999,     0,     0,
3246     1966,     0,  1969,     0,     0,  2003,     0,     0,     0,  2005,
3247        0,     0,     0,     0,     0,  1117,   273,     0,     0,  1117,
3248        0,     0,   274,   275,   276,     0,     0,     0,     0,     0,
3249        0,     0,     0,     0,   776,   277,   278,     0,     0,     0,
3250        0,     0,  2005,     0,     0,     0,     0,     0,     0,   279,
3251        0,     0,     0,   280,   281,   282,   283,   284,   285,   286,
3252      287,     0,     0,   288,  1050,   289,     0,     0,  1631,     0,
3253     2042,     0,  1640,   290,   291,     0,   292,   293,   294,   295,
3254        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3255        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3256        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3257        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3258        0,     0,     0,     0,     0,     0,     0,     0,   268,     0,
3259        1,   269,    97,   270,     0,   271,   272,     0,  1047,   776,
3260     1330,     0,     0,  1052,     0,  1047,  1738,     0,  1052,  1510,
3261        0,  1896,     0,  1898,   776,     2,     0,     0,     0,  1052,
3262     1903,     0,  1351,     0,     0,   776,   111,   117,     0,     0,
3263        0,     0,     0,     0,     0,     0,     0,     0,     0,  1006,
3264     1007,  1008,   565,  1009,  1010,  1011,  1012,   570,   571,  1013,
3265        0,     0,   273,     0,     0,     0,     0,     0,   274,   275,
3266      276,     0,   663,     0,     0,     0,  1014,   117,     0,     0,
3267        0,   277,   278,  1015,  1380,   575,   576,   577,     0,     0,
3268      519,     0,     0,     0,     0,   279,     0,   117,     0,   280,
3269      281,   282,   283,   284,   285,   286,   287,   850,     0,   288,
3270     1050,   289,   578,     0,  1051,     0,   220,     0,   579,   290,
3271      291,     0,   292,   293,   294,   295,     0,     0,     0,     0,
3272        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3273        0,     0,     0,     0,     0,     0,     0,     0,     0,   850,
3274        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3275        0,     0,     0,  1957,  1960,     0,  1047,  1052,  1047,   682,
3276        0,     0,     0,  1047,  1738,   683,   684,   685,  -360,  -360,
3277     -360,  -360,  -360,  -360,  -360,  -360,     0,     0,     0,     0,
3278        0,     0,     0,     0,     0,     0,  -360,  -360,  -360,  -360,
3279     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3280     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,     0,
3281        0,     0,     0,     0,     0,     0,     0,  1047,  1052,     0,
3282     1047,  1738,     0,     0,  -360,  2004,     0,     0,     0,     0,
3283        0,     0,  -360,  -360,     0,     0,     0,  -360,     0,     0,
3284        0,     0,     0,  -360,  -360,  -360,     0,     0,     0,     0,
3285        0,     0,     0,     0,     0,     0,     0,     0,  -360,     0,
3286        0,     0,     0,     0,  1047,     0,     0,  -360,  -360,  -360,
3287      686,     0,     0,  -360,  1439,  -360,  -360,     0,   687,     0,
3288        0,   688,     0,  -360,  -360,  -360,     0,  -360,  -360,  -360,
3289     -360,  -360,     0,     0,     0,     0,     0,     0,     0,     0,
3290        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3291        0,     0,     0,   776,     0,     0,     0,     0,     0,     0,
3292        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3293      776,     0,  1117,     0,     0,     0,     0,     0,     0,     0,
3294     1586,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3295     1117,     0,     0,     0,     0,  -360,   682,  1117,  -360,  -360,
3296     -360,  -360,   683,   684,   685,  -360,  -360,  -360,  -360,  -360,
3297     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3298     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3299     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3300     -360,  -360,  -360,  -360,  -360,  -360,     0,  -360,  -360,  -360,
3301     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,     0,     0,
3302     -360,  -360,     0,  -360,     0,     0,  -360,  -360,  -360,  -360,
3303     -360,     0,     0,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3304     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3305        0,  -360,     0,  -360,  -360,  -360,     0,  -360,  -360,  -360,
3306     -360,  -360,  -360,  -360,  -360,  -360,  -360,   686,  -360,  -360,
3307     -360,  -360,  -360,  -360,  -360,   687,  -360,  -360,   688,  -360,
3308     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,     0,
3309        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3310        0,     0,     0,     0,     0,     0,  -362,  1091,     0,  -362,
3311     -362,  -362,  -362,  1092,  1093,  1094,  -362,  -362,  -362,  -362,
3312     -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,
3313     -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,
3314     -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,
3315     -362,  -362,  -362,  -362,  -362,  -362,  -362,     0,  -362,  -362,
3316     -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,     0,
3317        0,  -362,  -362,     0,  -362,  1667,     0,  -362,  -362,  -362,
3318     -362,  -362,     0,     0,  -362,  -362,  -362,  -362,  -362,  -362,
3319     -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,
3320     -362,     0,  -362,  1351,  -362,  -362,  -362,     0,  -362,  -362,
3321     -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  1095,  -362,
3322     -362,  -362,  -362,  -362,  -362,  -362,  1096,  -362,  -362,  1097,
3323     -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,  -362,
3324        0,     0,  -467,  1042,     0,  -467,  -467,  -467,  -467,  -467,
3325     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3326     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3327     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3328     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3329     -467,  -467,  -467,   519,  -467,  -467,  -467,  -467,  -467,  -467,
3330     -467,  -467,  -467,  -467,  -467,     0,     0,  -467,  -467,     0,
3331     -467,     0,     0,  -467,  -467,  -467,  -467,  -467,     0,     0,
3332     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3333     -467,  -467,  -467,  -467,  -467,  -467,  -467,     0,  -467,     0,
3334     -467,  -467,  -467,     0,  -467,  -467,  -467,  -467,  -467,  -467,
3335     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3336     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3337     -467,  -467,  -467,  -467,  -467,  -467,     0,     0,     0,     0,
3338        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3339        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3340        0,     0,     0,  -303,  1044,     0,     1,   269,    97,   270,
3341     -303,   271,   272,  -303,  -303,  -303,  -303,  -303,  -303,  -303,
3342     -303,  -303,  -303,  -303,  -303,  -303,  -303,  -303,  -303,  -303,
3343     -303,     2,  -303,  -303,  -303,  -303,  -303,  -303,  -303,  -303,
3344     -303,  -303,  -303,  -303,  -303,  -303,  -303,  -303,  -303,  -303,
3345     -303,  -303,  -303,  -303,     0,  -303,  -303,  -303,  -303,  -303,
3346     -303,  -303,  -303,  -303,  -303,  -303,     0,     0,   273,  -303,
3347        0,  -303,     0,     0,   274,   275,   276,  -303,  -303,     0,
3348        0,  -303,  -303,  -303,  -303,  -303,  -303,   277,   278,  -303,
3349     -303,  -303,  -303,  -303,  -303,  -303,  -303,  -303,     0,  -303,
3350        0,   279,  -303,  -303,  1667,   280,   281,   282,   283,   284,
3351      285,   286,   287,  -303,  -303,   288,  1138,   289,  -303,  -303,
3352     1046,  -303,  -303,  -303,  -303,   290,   291,  -303,   292,   293,
3353      294,   295,  -303,  -303,  -303,  -303,  -303,  -304,   268,     0,
3354        1,   269,    97,   270,  -304,   271,   272,  -304,  -304,  -304,
3355     -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
3356     -304,  -304,  -304,  -304,  -304,     2,  -304,  -304,  -304,  -304,
3357     -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
3358     -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,     0,  -304,
3359     -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
3360        0,     0,   273,  -304,     0,  -304,     0,     0,   274,   275,
3361      276,  -304,  -304,     0,     0,  -304,  -304,  -304,  -304,  -304,
3362     -304,   277,   278,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
3363     -304,  -304,     0,  -304,     0,   279,  -304,  -304,     0,   280,
3364      281,   282,   283,   284,   285,   286,   287,  -304,  -304,   288,
3365     1050,   289,  -304,  -304,  1051,  -304,  -304,  -304,  -304,   290,
3366      291,  -304,   292,   293,   294,   295,  -304,  -304,  -304,  -304,
3367     -304,  -609,   268,     0,     1,   269,    97,   270,  -609,   271,
3368      272,  -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,
3369     -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,     2,
3370     -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,
3371     -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,  -609,
3372     -609,  -609,     0,  -609,  -609,  -609,  -609,  -609,  -609,  -609,
3373     -609,  -609,  -609,  -609,     0,     0,   273,  -609,     0,  -609,
3374        0,     0,   274,   275,   276,  -609,  -609,     0,     0,  -609,
3375     -609,  -609,  -609,  -609,  -609,   277,   278,  -609,  -609,  -609,
3376     -609,  -609,  -609,  -609,  -609,  -609,     0,  -609,     0,   279,
3377     -609,  -609,     0,   280,   281,   282,   283,   284,   285,   286,
3378      287,  -609,  -609,   288,  -609,   289,  -609,  -609,  -609,  -609,
3379      672,  -609,  1224,   290,   291,  -609,   292,   293,   294,   295,
3380     -609,  -609,  -609,  -609,  -609,  -610,   268,     0,     1,   269,
3381       97,   270,  -610,   271,   272,  -610,  -610,  -610,  -610,  -610,
3382     -610,  -610,  -610,  -610,  -610,  -610,  -610,  -610,  -610,  -610,
3383     -610,  -610,  -610,     2,  -610,  -610,  -610,  -610,  -610,  -610,
3384     -610,  -610,  -610,  -610,  -610,  -610,  -610,  -610,  -610,  -610,
3385     -610,  -610,  -610,  -610,  -610,  -610,     0,  -610,  -610,  -610,
3386     -610,  -610,  -610,  -610,  -610,  -610,  -610,  -610,     0,     0,
3387      273,  -610,     0,  -610,     0,     0,   274,   275,   276,  -610,
3388     -610,     0,     0,  -610,  -610,  -610,  -610,  -610,  -610,   277,
3389      278,  -610,  -610,  -610,  -610,  -610,  -610,  -610,  -610,  -610,
3390        0,  -610,     0,   279,  -610,  -610,     0,   280,   281,   282,
3391      283,   284,   285,   286,   287,  -610,  -610,   288,  -610,   289,
3392     -610,  -610,  -610,  -610,   672,  -610,  1295,   290,   291,  -610,
3393      292,   293,   294,   295,  -610,  -610,  -610,  -610,  -610,  -625,
3394     1044,     0,     1,   269,    97,   270,  -625,   271,   272,  -625,
3395     -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,
3396     -625,  -625,  -625,  -625,  -625,  -625,  -625,     2,  -625,  -625,
3397     -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,
3398     -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,
3399        0,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,
3400     -625,  -625,     0,     0,   273,  -625,     0,  -625,     0,     0,
3401      274,   275,   276,  -625,  -625,     0,     0,  -625,  -625,  -625,
3402     -625,  -625,  -625,   277,   278,  -625,  -625,  -625,  -625,  -625,
3403     -625,  -625,  -625,  -625,     0,  -625,     0,   279,  -625,  -625,
3404        0,   280,   281,   282,   283,   284,   285,   286,   287,  -625,
3405     -625,   288,  -625,   289,  -625,  -625,  1046,  -625,  -625,  -625,
3406     -625,   290,   291,  -625,   292,   293,   294,   295,  -625,  -625,
3407     -625,  -625,  -625,  -627,   268,     0,     1,   269,    97,   270,
3408     -627,   271,   272,  -627,  -627,  -627,  -627,  -627,  -627,  -627,
3409     -627,  -627,  -627,  -627,  -627,  -627,  -627,  -627,  -627,  -627,
3410     -627,     2,  -627,  -627,  -627,  -627,  -627,  -627,  -627,  -627,
3411     -627,  -627,  -627,  -627,  -627,  -627,  -627,  -627,  -627,  -627,
3412     -627,  -627,  -627,  -627,     0,  -627,  -627,  -627,  -627,  -627,
3413     -627,  -627,  -627,  -627,  -627,  -627,     0,     0,   273,  -627,
3414        0,  -627,     0,     0,   274,   275,   276,  -627,  -627,     0,
3415        0,  -627,  -627,  -627,  -627,  -627,  -627,   277,   278,  -627,
3416     -627,  -627,  -627,  -627,  -627,  -627,  -627,  -627,     0,  -627,
3417        0,   279,  -627,  -627,     0,   280,   281,   282,   283,   284,
3418      285,   286,   287,  -627,  -627,   288,  1050,   289,  -627,  -627,
3419     1051,  -627,  -627,  -627,  -627,   290,   291,  -627,   292,   293,
3420      294,   295,  -627,  -627,  -627,  -627,  -627,  -626,  1044,     0,
3421        1,   269,    97,   270,  -626,   271,   272,  -626,  -626,  -626,
3422     -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
3423     -626,  -626,  -626,  -626,  -626,     2,  -626,  -626,  -626,  -626,
3424     -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
3425     -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,     0,  -626,
3426     -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
3427        0,     0,   273,  -626,     0,  -626,     0,     0,   274,   275,
3428      276,  -626,  -626,     0,     0,  -626,  -626,  -626,  -626,  -626,
3429     -626,   277,   278,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
3430     -626,  -626,     0,  -626,     0,   279,  -626,  -626,     0,   280,
3431      281,   282,   283,   284,   285,   286,   287,  -626,  -626,   288,
3432     -626,   289,  -626,  -626,  1046,  -626,  -626,  -626,  -626,   290,
3433      291,  -626,   292,   293,   294,   295,  -626,  -626,  -626,  -626,
3434     -626,  -356,  1773,     0,  -356,  -356,  -356,  -356,  -356,  -356,
3435     -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,
3436     -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,
3437     -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,
3438     -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,
3439     -356,  -356,     0,  -356,  -356,  -356,  -356,  -356,  -356,  -356,
3440     -356,  -356,  -356,  -356,     0,     0,  -356,  -356,     0,  -356,
3441        0,     0,  -356,  -356,  -356,  -356,  -356,     0,     0,  -356,
3442     -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,
3443     -356,  -356,  -356,  -356,  -356,  -356,     0,  -356,     0,  -356,
3444     -356,  -356,     0,  -356,  -356,  -356,  -356,  -356,  -356,  -356,
3445     -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,
3446     -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,  -356,
3447     -356,  -356,  -356,  -356,  -356,  -349,  1816,     0,     1,   269,
3448       97,   270,  -349,   271,   272,  -349,  -349,  -349,  -349,  -349,
3449     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3450     -349,  -349,  -349,     2,  -349,  -349,  -349,  -349,  -349,  -349,
3451     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3452     -349,  -349,  -349,  -349,  -349,  -349,     0,  -349,  -349,  -349,
3453     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,     0,     0,
3454      273,  -349,     0,  -349,     0,     0,   274,   275,   276,  -349,
3455     -349,     0,     0,  -349,  -349,  -349,  -349,  -349,  -349,   277,
3456      278,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3457        0,  -349,     0,   279,  -349,  -349,     0,   280,   281,   282,
3458      283,   284,   285,   286,   287,  -349,  -349,   288,  -349,   289,
3459     -349,  -349,  -349,  -349,   672,  -349,  -349,   290,   291,  -349,
3460      292,   293,   294,   295,  -349,  -349,  -349,  -349,  -349,  -587,
3461      268,     0,     1,   269,    97,   270,  -587,   271,   272,  -587,
3462     -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,
3463     -587,  -587,  -587,  -587,  -587,  -587,  -587,     2,  -587,  -587,
3464     -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,
3465     -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,
3466        0,  -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,  -587,
3467     -587,  -587,     0,     0,   273,  -587,     0,  -587,     0,     0,
3468      274,   275,   276,  -587,  -587,     0,     0,  -587,  -587,  -587,
3469     -587,  -587,  -587,   277,   278,  -587,  -587,  -587,  -587,  -587,
3470     -587,  -587,  -587,  -587,     0,  -587,     0,   279,  -587,  -587,
3471        0,   280,   281,   282,   283,   284,   285,   286,   287,  -587,
3472     -587,   288,  -587,   289,  -587,  -587,  -587,  -587,   672,  -587,
3473     -587,   290,   291,  -587,   292,   293,   294,   295,  -587,  -587,
3474     -587,  -587,  -587,  -595,   268,     0,     1,   269,    97,   270,
3475     -595,   271,   272,  -595,  -595,  -595,  -595,  -595,  -595,  -595,
3476     -595,  -595,  -595,  -595,  -595,  -595,  -595,  -595,  -595,  -595,
3477     -595,     2,  -595,  -595,  -595,  -595,  -595,  -595,  -595,  -595,
3478     -595,  -595,  -595,  -595,  -595,  -595,  -595,  -595,  -595,  -595,
3479     -595,  -595,  -595,  -595,     0,  -595,  -595,  -595,  -595,  -595,
3480     -595,  -595,  -595,  -595,  -595,  -595,     0,     0,   273,  -595,
3481        0,  -595,     0,     0,   274,   275,   276,  -595,  -595,     0,
3482        0,  -595,  -595,  -595,  -595,  -595,  -595,   277,   278,  -595,
3483     -595,  -595,  -595,  -595,  -595,  -595,  -595,  -595,     0,  -595,
3484        0,   279,  -595,  -595,     0,   280,   281,   282,   283,   284,
3485      285,   286,   287,  -595,  -595,   288,  -595,   289,  -595,  -595,
3486     -595,  -595,   672,  -595,  -595,   290,   291,  -595,   292,   293,
3487      294,   295,  -595,  -595,  -595,  -595,  -595,  -588,   268,     0,
3488        1,   269,    97,   270,  -588,   271,   272,  -588,  -588,  -588,
3489     -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,
3490     -588,  -588,  -588,  -588,  -588,     2,  -588,  -588,  -588,  -588,
3491     -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,
3492     -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,     0,  -588,
3493     -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,  -588,
3494        0,     0,   273,  -588,     0,  -588,     0,     0,   274,   275,
3495      276,  -588,  -588,     0,     0,  -588,  -588,  -588,  -588,  -588,
3496     -588,   277,   278,  -588,  -588,  -588,  -588,  -588,  -588,  -588,
3497     -588,  -588,     0,  -588,     0,   279,  -588,  -588,     0,   280,
3498      281,   282,   283,   284,   285,   286,   287,  -588,  -588,   288,
3499     -588,   289,  -588,  -588,  -588,  -588,   672,  -588,  -588,   290,
3500      291,  -588,   292,   293,   294,   295,  -588,  -588,  -588,  -588,
3501     -588,  -596,   268,     0,     1,   269,    97,   270,  -596,   271,
3502      272,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
3503     -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,     2,
3504     -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
3505     -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
3506     -596,  -596,     0,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
3507     -596,  -596,  -596,  -596,     0,     0,   273,  -596,     0,  -596,
3508        0,     0,   274,   275,   276,  -596,  -596,     0,     0,  -596,
3509     -596,  -596,  -596,  -596,  -596,   277,   278,  -596,  -596,  -596,
3510     -596,  -596,  -596,  -596,  -596,  -596,     0,  -596,     0,   279,
3511     -596,  -596,     0,   280,   281,   282,   283,   284,   285,   286,
3512      287,  -596,  -596,   288,  -596,   289,  -596,  -596,  -596,  -596,
3513      672,  -596,  -596,   290,   291,  -596,   292,   293,   294,   295,
3514     -596,  -596,  -596,  -596,  -596,  -349,  1839,     0,     1,   269,
3515       97,   270,  -349,   271,   272,  -349,  -349,  -349,  -349,  -349,
3516     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3517     -349,  -349,  -349,     2,  -349,  -349,  -349,  -349,  -349,  -349,
3518     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3519     -349,  -349,  -349,  -349,  -349,  -349,     0,  -349,  -349,  -349,
3520     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,     0,     0,
3521      273,  -349,     0,  -349,     0,     0,   274,   275,   276,  -349,
3522     -349,     0,     0,  -349,  -349,  -349,  -349,  -349,  -349,   277,
3523      278,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3524        0,  -349,     0,   279,  -349,  -349,     0,   280,   281,   282,
3525      283,   284,   285,   286,   287,  -349,  -349,   288,  -349,   289,
3526     -349,  -349,  -349,  -349,   672,  -349,  -349,   290,   291,  -349,
3527      292,   293,   294,   295,  -349,  -349,  -349,  -349,  -349,  -589,
3528      268,     0,     1,   269,    97,   270,  -589,   271,   272,  -589,
3529     -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,
3530     -589,  -589,  -589,  -589,  -589,  -589,  -589,     2,  -589,  -589,
3531     -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,
3532     -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,
3533        0,  -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,  -589,
3534     -589,  -589,     0,     0,   273,  -589,     0,  -589,     0,     0,
3535      274,   275,   276,  -589,  -589,     0,     0,  -589,  -589,  -589,
3536     -589,  -589,  -589,   277,   278,  -589,  -589,  -589,  -589,  -589,
3537     -589,  -589,  -589,  -589,     0,  -589,     0,   279,  -589,  -589,
3538        0,   280,   281,   282,   283,   284,   285,   286,   287,  -589,
3539     -589,   288,  -589,   289,  -589,  -589,  -589,  -589,   672,  -589,
3540     -589,   290,   291,  -589,   292,   293,   294,   295,  -589,  -589,
3541     -589,  -589,  -589,  -597,   268,     0,     1,   269,    97,   270,
3542     -597,   271,   272,  -597,  -597,  -597,  -597,  -597,  -597,  -597,
3543     -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,
3544     -597,     2,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,
3545     -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,
3546     -597,  -597,  -597,  -597,     0,  -597,  -597,  -597,  -597,  -597,
3547     -597,  -597,  -597,  -597,  -597,  -597,     0,     0,   273,  -597,
3548        0,  -597,     0,     0,   274,   275,   276,  -597,  -597,     0,
3549        0,  -597,  -597,  -597,  -597,  -597,  -597,   277,   278,  -597,
3550     -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,     0,  -597,
3551        0,   279,  -597,  -597,     0,   280,   281,   282,   283,   284,
3552      285,   286,   287,  -597,  -597,   288,  -597,   289,  -597,  -597,
3553     -597,  -597,   672,  -597,  -597,   290,   291,  -597,   292,   293,
3554      294,   295,  -597,  -597,  -597,  -597,  -597,  -590,   268,     0,
3555        1,   269,    97,   270,  -590,   271,   272,  -590,  -590,  -590,
3556     -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,
3557     -590,  -590,  -590,  -590,  -590,     2,  -590,  -590,  -590,  -590,
3558     -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,
3559     -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,     0,  -590,
3560     -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,  -590,
3561        0,     0,   273,  -590,     0,  -590,     0,     0,   274,   275,
3562      276,  -590,  -590,     0,     0,  -590,  -590,  -590,  -590,  -590,
3563     -590,   277,   278,  -590,  -590,  -590,  -590,  -590,  -590,  -590,
3564     -590,  -590,     0,  -590,     0,   279,  -590,  -590,     0,   280,
3565      281,   282,   283,   284,   285,   286,   287,  -590,  -590,   288,
3566     -590,   289,  -590,  -590,  -590,  -590,   672,  -590,  -590,   290,
3567      291,  -590,   292,   293,   294,   295,  -590,  -590,  -590,  -590,
3568     -590,  -598,   268,     0,     1,   269,    97,   270,  -598,   271,
3569      272,  -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,
3570     -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,     2,
3571     -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,
3572     -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,  -598,
3573     -598,  -598,     0,  -598,  -598,  -598,  -598,  -598,  -598,  -598,
3574     -598,  -598,  -598,  -598,     0,     0,   273,  -598,     0,  -598,
3575        0,     0,   274,   275,   276,  -598,  -598,     0,     0,  -598,
3576     -598,  -598,  -598,  -598,  -598,   277,   278,  -598,  -598,  -598,
3577     -598,  -598,  -598,  -598,  -598,  -598,     0,  -598,     0,   279,
3578     -598,  -598,     0,   280,   281,   282,   283,   284,   285,   286,
3579      287,  -598,  -598,   288,  -598,   289,  -598,  -598,  -598,  -598,
3580      672,  -598,  -598,   290,   291,  -598,   292,   293,   294,   295,
3581     -598,  -598,  -598,  -598,  -598,  -358,  1917,     0,  -358,  -358,
3582     -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,
3583     -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,
3584     -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,
3585     -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,
3586     -358,  -358,  -358,  -358,  -358,  -358,     0,  -358,  -358,  -358,
3587     -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,     0,     0,
3588     -358,  -358,     0,  -358,     0,     0,  -358,  -358,  -358,  -358,
3589     -358,     0,     0,  -358,  -358,  -358,  -358,  -358,  -358,  -358,
3590     -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,
3591        0,  -358,     0,  -358,  -358,  -358,     0,  -358,  -358,  -358,
3592     -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,
3593     -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,
3594     -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,  -357,
3595     1918,     0,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3596     -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3597     -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3598     -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3599     -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3600        0,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3601     -357,  -357,     0,     0,  -357,  -357,     0,  -357,     0,     0,
3602     -357,  -357,  -357,  -357,  -357,     0,     0,  -357,  -357,  -357,
3603     -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3604     -357,  -357,  -357,  -357,     0,  -357,     0,  -357,  -357,  -357,
3605        0,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3606     -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3607     -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,  -357,
3608     -357,  -357,  -357,  -349,  1919,     0,     1,   269,    97,   270,
3609     -349,   271,   272,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3610     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3611     -349,     2,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3612     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3613     -349,  -349,  -349,  -349,     0,  -349,  -349,  -349,  -349,  -349,
3614     -349,  -349,  -349,  -349,  -349,  -349,     0,     0,   273,  -349,
3615        0,  -349,     0,     0,   274,   275,   276,  -349,  -349,     0,
3616        0,  -349,  -349,  -349,  -349,  -349,  -349,   277,   278,  -349,
3617     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,     0,  -349,
3618        0,   279,  -349,  -349,     0,   280,   281,   282,   283,   284,
3619      285,   286,   287,  -349,  -349,   288,  -349,   289,  -349,  -349,
3620     -349,  -349,   672,  -349,  -349,   290,   291,  -349,   292,   293,
3621      294,   295,  -349,  -349,  -349,  -349,  -349,  -349,  1920,     0,
3622        1,   269,    97,   270,  -349,   271,   272,  -349,  -349,  -349,
3623     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3624     -349,  -349,  -349,  -349,  -349,     2,  -349,  -349,  -349,  -349,
3625     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3626     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,     0,  -349,
3627     -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3628        0,     0,   273,  -349,     0,  -349,     0,     0,   274,   275,
3629      276,  -349,  -349,     0,     0,  -349,  -349,  -349,  -349,  -349,
3630     -349,   277,   278,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
3631     -349,  -349,     0,  -349,     0,   279,  -349,  -349,     0,   280,
3632      281,   282,   283,   284,   285,   286,   287,  -349,  -349,   288,
3633     -349,   289,  -349,  -349,  -349,  -349,   672,  -349,  -349,   290,
3634      291,  -349,   292,   293,   294,   295,  -349,  -349,  -349,  -349,
3635     -349,  -360,   682,     0,  -360,  -360,  -360,  -360,   683,   684,
3636      685,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3637     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3638     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3639     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3640     -360,  -360,     0,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3641     -360,  -360,  -360,  -360,     0,     0,  -360,  -360,     0,  -360,
3642        0,     0,  -360,  -360,  -360,  -360,  -360,     0,     0,  -360,
3643     -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3644     -360,  -360,  -360,  -360,  -360,  -360,     0,  -360,     0,  -360,
3645     -360,  -360,     0,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
3646     -360,  -360,  -360,   686,  -360,  -360,  -360,  -360,  -360,  -360,
3647     -360,  1040,  -360,  -360,   688,     0,  -360,  -360,  -360,  -360,
3648     -360,  -360,  -360,  -360,  -360,  -467,  1042,     0,  -467,  -467,
3649     -467,  -467,     0,  -467,  -467,     0,     0,     0,     0,     0,
3650        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3651        0,     0,     0,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3652     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3653     -467,  -467,  -467,  -467,  -467,  -467,     0,  -467,  -467,  -467,
3654     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,     0,     0,
3655     -467,  -467,     0,  -467,     0,     0,  -467,  -467,  -467,  -467,
3656     -467,     0,     0,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3657     -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,  -467,
3658        0,  -467,     0,  -467,  -467,  -467,     0,  -467,  -467,  -467,
3659     -467,  -467,  -467,  -467,  -467,     0,     0,  -467,  -467,  -467,
3660     -467,     0,  -467,  -467,  -467,  1043,  -467,  -467,  -467,     0,
3661     -467,  -467,  -467,  -467, -1064,   268,     0,     1,   269,    97,
3662      270,     0,   271,   272,     0,     0,     0,     0,     0,     0,
3663        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3664        0,     0,     2, -1064, -1064, -1064, -1064, -1064, -1064, -1064,
3665    -1064, -1064, -1064, -1064, -1064, -1064, -1064, -1064, -1064, -1064,
3666    -1064, -1064, -1064, -1064, -1064,     0, -1064, -1064, -1064, -1064,
3667    -1064, -1064, -1064, -1064, -1064, -1064, -1064,     0,     0,   273,
3668    -1064,     0, -1064,     0,     0,   274,   275,   276, -1064, -1064,
3669        0,     0, -1064, -1064, -1064, -1064, -1064, -1064,   277,   278,
3670    -1064, -1064, -1064, -1064, -1064, -1064, -1064, -1064, -1064,     0,
3671    -1064,     0,   279, -1064, -1064,     0,   280,   281,   282,   283,
3672      284,   285,   286,   287,     0,     0,   288,  1050,   289, -1064,
3673        0,  1051, -1064, -1064,     0, -1064,   290,   291,     0,   292,
3674      293,   294,   295, -1200,   268,     0,     1,   269,    97,   270,
3675        0,   271,   272,     0,     0,     0,     0,     0,     0,     0,
3676        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3677        0,     2, -1200, -1200, -1200, -1200, -1200, -1200, -1200, -1200,
3678    -1200, -1200, -1200, -1200, -1200, -1200, -1200, -1200, -1200, -1200,
3679    -1200, -1200, -1200, -1200,     0, -1200, -1200, -1200, -1200, -1200,
3680    -1200, -1200, -1200, -1200, -1200, -1200,     0,     0,   273, -1200,
3681        0, -1200,     0,     0,   274,   275,   276, -1200, -1200,     0,
3682        0, -1200, -1200, -1200, -1200, -1200, -1200,   277,   278, -1200,
3683    -1200, -1200, -1200, -1200, -1200, -1200, -1200, -1200,     0, -1200,
3684        0,   279, -1200, -1200,     0,   280,   281,   282,   283,   284,
3685      285,   286,   287,     0,     0,   288,  1050,   289,  1517,     0,
3686     1051, -1200, -1200,     0, -1200,   290,   291,     0,   292,   293,
3687      294,   295, -1155,   268,     0,     1,   269,    97,   270,     0,
3688      271,   272,     0,     0,     0,     0,     0,     0,     0,     0,
3689        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3690        2, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
3691    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
3692    -1155, -1155, -1155,     0, -1155, -1155, -1155, -1155, -1155, -1155,
3693    -1155, -1155, -1155, -1155, -1155,     0,     0,   273, -1155,     0,
3694    -1155,     0,     0,   274,   275,   276, -1155, -1155,     0,     0,
3695    -1155, -1155, -1155, -1155, -1155, -1155,   277,   278, -1155, -1155,
3696    -1155, -1155, -1155, -1155, -1155, -1155, -1155,     0, -1155,     0,
3697      279, -1155, -1155,     0,   280,   281,   282,   283,   284,   285,
3698      286,   287,     0,     0,   288,  1731,   289, -1155,     0,  1051,
3699    -1155, -1155,     0, -1155,   290,   291,     0,   292,   293,   294,
3700      295, -1188,  1737,     0,     1,   269,    97,   270,     0,   271,
3701      272,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3702        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
3703    -1188, -1188, -1188, -1188, -1188, -1188, -1188, -1188, -1188, -1188,
3704    -1188, -1188, -1188, -1188, -1188, -1188, -1188, -1188, -1188, -1188,
3705    -1188, -1188,     0,   562,   563,   564,   565,   566,   567,   568,
3706      569,   570,   571,   572,     0,     0,   273, -1188,     0, -1188,
3707        0,     0,   274,   275,   276, -1188, -1188,     0,     0, -1188,
3708     1014, -1188, -1188, -1188, -1188,   277,   278,  1015, -1188,   575,
3709      576,   577, -1188, -1188, -1188, -1188,     0, -1188,     0,   279,
3710    -1188, -1188,     0,   280,   281,   282,   283,   284,   285,   286,
3711      287,     0,     0,   288,  1050,   289,   578,     0,  1051, -1188,
3712      220,     0,   579,   290,   291,     0,   292,   293,   294,   295,
3713     -626,  1044,     0,     1,   269,    97,   270,     0,   271,   272,
3714        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3715        0,     0,     0,     0,     0,     0,     0,     0,     2,  -626,
3716     -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
3717     -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
3718     -626,     0,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
3719     -626,  -626,  -626,     0,     0,   273,  -626,     0,  -626,     0,
3720        0,   274,   275,   276,  -626,  -626,     0,     0,  -626,  -626,
3721     -626,  -626,  -626,  -626,   277,   278,  -626,  -626,  -626,  -626,
3722     -626,  -626,  -626,  -626,  -626,     0,  -626,     0,   279,  -626,
3723     -626,     0,   280,   281,   282,   283,   284,   285,   286,   287,
3724        0,     0,   288,  -626,   289,  1045,     0,  1046,  -626,  -626,
3725        0,  -626,   290,   291,     0,   292,   293,   294,   295, -1179,
3726     1044,     0,     1,   269,    97,   270,     0,   271,   272,     0,
3727        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3728        0,     0,     0,     0,     0,     0,     0,     2, -1179, -1179,
3729    -1179, -1179, -1179, -1179, -1179, -1179, -1179, -1179, -1179, -1179,
3730    -1179, -1179, -1179, -1179, -1179, -1179, -1179, -1179, -1179, -1179,
3731        0, -1179, -1179, -1179, -1179, -1179, -1179, -1179, -1179, -1179,
3732    -1179, -1179,     0,     0,   273, -1179,     0, -1179,     0,     0,
3733      274,   275,   276, -1179, -1179,     0,     0, -1179, -1179, -1179,
3734    -1179, -1179, -1179,   277,   278, -1179, -1179, -1179, -1179, -1179,
3735    -1179, -1179, -1179, -1179,     0, -1179,     0,   279, -1179, -1179,
3736        0,   280,   281,   282,   283,   284,   285,   286,   287,     0,
3737        0,   288,  1962,   289, -1179,     0,  1046, -1179, -1179,     0,
3738    -1179,   290,   291,     0,   292,   293,   294,   295, -1180,   268,
3739        0,     1,   269,    97,   270,     0,   271,   272,     0,     0,
3740        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3741        0,     0,     0,     0,     0,     0,     2, -1180, -1180, -1180,
3742    -1180, -1180, -1180, -1180, -1180, -1180, -1180, -1180, -1180, -1180,
3743    -1180, -1180, -1180, -1180, -1180, -1180, -1180, -1180, -1180,     0,
3744    -1180, -1180, -1180, -1180, -1180, -1180, -1180, -1180, -1180, -1180,
3745    -1180,     0,     0,   273, -1180,     0, -1180,     0,     0,   274,
3746      275,   276, -1180, -1180,     0,     0, -1180, -1180, -1180, -1180,
3747    -1180, -1180,   277,   278, -1180, -1180, -1180, -1180, -1180, -1180,
3748    -1180, -1180, -1180,     0, -1180,     0,   279, -1180, -1180,     0,
3749      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
3750      288,  1050,   289,  1963,     0,  1051, -1180, -1180,     0, -1180,
3751      290,   291,     0,   292,   293,   294,   295, -1174,   268,     0,
3752        1,   269,    97,   270,     0,   271,   272,     0,     0,     0,
3753        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3754        0,     0,     0,     0,     0,     2, -1174, -1174, -1174, -1174,
3755    -1174, -1174, -1174, -1174, -1174, -1174, -1174, -1174, -1174, -1174,
3756    -1174, -1174, -1174, -1174, -1174, -1174, -1174, -1174,     0,   562,
3757      563,   564,   565,   566,   567,   568,   569,   570,   571,   572,
3758        0,     0,   273, -1174,     0, -1174,     0,     0,   274,   275,
3759      276, -1174, -1174,     0,     0, -1174,  1014, -1174, -1174, -1174,
3760    -1174,   277,   278,  1015, -1174,   575,   576,   577, -1174, -1174,
3761    -1174, -1174,     0, -1174,     0,   279, -1174, -1174,     0,   280,
3762      281,   282,   283,   284,   285,   286,   287,     0,     0,   288,
3763     1050,   289,   578,     0,  1051, -1174,   220,     0,   579,   290,
3764      291,     0,   292,   293,   294,   295, -1121,   553,     0, -1121,
3765    -1121, -1121, -1121,     0, -1121, -1121,     0,     0,     0,     0,
3766        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3767        0,     0,     0,     0, -1121, -1121, -1121, -1121, -1121, -1121,
3768    -1121, -1121, -1121, -1121, -1121, -1121, -1121, -1121, -1121, -1121,
3769    -1121, -1121, -1121, -1121, -1121, -1121, -1121,     0, -1121, -1121,
3770    -1121, -1121, -1121, -1121, -1121, -1121, -1121, -1121, -1121,     0,
3771        0, -1121, -1121,     0, -1121,     0,     0, -1121, -1121, -1121,
3772    -1121, -1121,     0,     0, -1121, -1121, -1121, -1121, -1121, -1121,
3773    -1121, -1121, -1121, -1121, -1121, -1121, -1121, -1121, -1121, -1121,
3774    -1121,     0, -1121,     0, -1121, -1121, -1121,     0, -1121, -1121,
3775    -1121, -1121, -1121, -1121, -1121, -1121,     0,     0, -1121,     0,
3776    -1121,   554,     0, -1121, -1121, -1121,     0, -1121, -1121, -1121,
3777        0, -1121, -1121, -1121, -1121, -1144,   268,     0,     1,   269,
3778       97,   270,     0,   271,   272,     0,     0,     0,     0,     0,
3779        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3780        0,     0,     0,     2,   172,   173,   174,   175,   176,   204,
3781      205,   206,   207,   208,   209,   210,   211,   212,   213,    18,
3782       19,   214,   215,    22,    23,    24,     0,   562,   563,   564,
3783      565,   566,   567,   568,   569,   570,   571,   572,     0,     0,
3784      273,   216,     0, -1144,     0,     0,   274,   275,   276,    28,
3785       29,     0,     0, -1144,   573, -1144, -1144, -1144, -1144,   277,
3786      355,   574,   218,   575,   576,   577, -1144, -1144, -1144, -1144,
3787        0, -1144,     0,   279, -1144,   219,     0,   280,   281,   282,
3788      283,   284,   285,   286,   287,     0,     0,   288,     0,   289,
3789      578,     0, -1144, -1144,   220,     0,   579,   290,   291,     0,
3790      292,   293,   294,   295, -1122,   553,     0, -1122, -1122, -1122,
3791    -1122,     0, -1122, -1122,     0,     0,     0,     0,     0,     0,
3792        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3793        0,     0, -1122, -1122, -1122, -1122, -1122, -1122, -1122, -1122,
3794    -1122, -1122, -1122, -1122, -1122, -1122, -1122, -1122, -1122, -1122,
3795    -1122, -1122, -1122, -1122, -1122,     0, -1122, -1122, -1122, -1122,
3796    -1122, -1122, -1122, -1122, -1122, -1122, -1122,     0,     0, -1122,
3797    -1122,     0, -1122,     0,     0, -1122, -1122, -1122, -1122, -1122,
3798        0,     0, -1122, -1122, -1122, -1122, -1122, -1122, -1122, -1122,
3799    -1122, -1122, -1122, -1122, -1122, -1122, -1122, -1122, -1122,     0,
3800    -1122,     0, -1122, -1122, -1122,     0, -1122, -1122, -1122, -1122,
3801    -1122, -1122, -1122, -1122,     0,     0, -1122,     0, -1122,   554,
3802        0, -1122, -1122, -1122,     0, -1122, -1122, -1122,     0, -1122,
3803    -1122, -1122, -1122, -1184,   268,     0,     1,   269,    97,   270,
3804        0,   271,   272,     0,     0,     0,     0,     0,     0,     0,
3805        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3806        0,     2, -1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184,
3807    -1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184,
3808    -1184, -1184, -1184, -1184,     0,  1006,  1007,  1008,   565,  1009,
3809     1010,  1011,  1012,   570,   571,  1013,     0,     0,   273, -1184,
3810        0, -1184,     0,     0,   274,   275,   276, -1184, -1184,     0,
3811        0, -1184,  1014, -1184, -1184, -1184, -1184,   277,   278,  1015,
3812    -1184,   575,   576,   577, -1184, -1184, -1184, -1184,     0, -1184,
3813        0,   279, -1184, -1184,     0,   280,   281,   282,   283,   284,
3814      285,   286,   287,     0,     0,   288,     0,   289,   578,     0,
3815    -1184, -1184,   220,     0,   579,   290,   291,     0,   292,   293,
3816      294,   295, -1202,   268,     0,     1,   269,    97,   270,     0,
3817      271,   272,     0,     0,     0,     0,     0,     0,     0,     0,
3818        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3819        2, -1202, -1202, -1202, -1202, -1202, -1202, -1202, -1202, -1202,
3820    -1202, -1202, -1202, -1202, -1202, -1202, -1202, -1202, -1202, -1202,
3821    -1202, -1202, -1202,     0, -1202, -1202, -1202, -1202, -1202, -1202,
3822    -1202, -1202, -1202, -1202, -1202,     0,     0,   273, -1202,     0,
3823    -1202,     0,     0,   274,   275,   276, -1202, -1202,     0,     0,
3824    -1202, -1202, -1202, -1202, -1202, -1202,   277,   278, -1202, -1202,
3825    -1202, -1202, -1202, -1202, -1202, -1202, -1202,     0, -1202,     0,
3826      279, -1202, -1202,     0,   280,   281,   282,   283,   284,   285,
3827      286,   287,     0,     0,   288,     0,   289,  1025,     0, -1202,
3828    -1202,   672,     0, -1202,   290,   291,     0,   292,   293,   294,
3829      295, -1134,  1053,     0,     1,   269,    97,   270,     0,   271,
3830      272,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3831        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
3832      172,   173,   174,   175,   176,   204,   205,   206,   207,   208,
3833      209,   210,   211,   212,   213,    18,    19,   214,   215,    22,
3834       23,    24,     0,   562,   563,   564,   565,   566,   567,   568,
3835      569,   570,   571,   572,     0,     0,   273,   216,     0, -1134,
3836        0,     0,   274,   275,   276,    28,    29,     0,     0, -1134,
3837      573, -1134, -1134, -1134, -1134,   277,   355,   574,   218,   575,
3838      576,   577, -1134, -1134, -1134, -1134,     0, -1134,     0,   279,
3839    -1134,   219,     0,   280,   281,   282,   283,   284,   285,   286,
3840      287,     0,     0,   288,     0,   289,   578,     0, -1134, -1134,
3841      220,     0,   579,   290,   291,     0,   292,   293,   294,   295,
3842    -1138,   268,     0,     1,   269,    97,   270,     0,   271,   272,
3843        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3844        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
3845      173,   174,   175,   176,   204,   205,   206,   207,   208,   209,
3846      210,   211,   212,   213,    18,    19,   214,   215,    22,    23,
3847       24,     0,   562,   563,   564,   565,   566,   567,   568,   569,
3848      570,   571,   572,     0,     0,   273,   216,     0, -1138,     0,
3849        0,   274,   275,   276,    28,    29,     0,     0, -1138,   573,
3850    -1138, -1138, -1138, -1138,   277,   355,   574,   218,   575,   576,
3851      577, -1138, -1138, -1138, -1138,     0, -1138,     0,   279, -1138,
3852      219,     0,   280,   281,   282,   283,   284,   285,   286,   287,
3853        0,     0,   288,     0,   289,   578,     0, -1138, -1138,   220,
3854        0,   579,   290,   291,     0,   292,   293,   294,   295, -1133,
3855      268,     0,     1,   269,    97,   270,     0,   271,   272,     0,
3856        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3857        0,     0,     0,     0,     0,     0,     0,     2,   172,   173,
3858      174,   175,   176,   204,   205,   206,   207,   208,   209,   210,
3859      211,   212,   213,    18,    19,   214,   215,    22,    23,    24,
3860        0,   562,   563,   564,   565,   566,   567,   568,   569,   570,
3861      571,   572,     0,     0,   273,   216,     0, -1133,     0,     0,
3862      274,   275,   276,    28,    29,     0,     0, -1133,   573, -1133,
3863    -1133, -1133, -1133,   277,   355,   574,   218,   575,   576,   577,
3864    -1133, -1133, -1133, -1133,     0, -1133,     0,   279, -1133,   219,
3865        0,   280,   281,   282,   283,   284,   285,   286,   287,     0,
3866        0,   288,     0,   289,   578,     0, -1133, -1133,   220,     0,
3867      579,   290,   291,     0,   292,   293,   294,   295, -1137,   268,
3868        0,     1,   269,    97,   270,     0,   271,   272,     0,     0,
3869        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3870        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
3871      175,   176,   204,   205,   206,   207,   208,   209,   210,   211,
3872      212,   213,    18,    19,   214,   215,    22,    23,    24,     0,
3873      562,   563,   564,   565,   566,   567,   568,   569,   570,   571,
3874      572,     0,     0,   273,   216,     0, -1137,     0,     0,   274,
3875      275,   276,    28,    29,     0,     0, -1137,   573, -1137, -1137,
3876    -1137, -1137,   277,   355,   574,   218,   575,   576,   577, -1137,
3877    -1137, -1137, -1137,     0, -1137,     0,   279, -1137,   219,     0,
3878      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
3879      288,     0,   289,   578,     0, -1137, -1137,   220,     0,   579,
3880      290,   291,     0,   292,   293,   294,   295, -1051,  1066,     0,
3881    -1051, -1051, -1051, -1051,     0, -1051, -1051,     0,     0,     0,
3882        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3883        0,     0,     0,     0,     0, -1051, -1051, -1051, -1051, -1051,
3884    -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051,
3885    -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051,     0, -1051,
3886    -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051,
3887        0,     0, -1051, -1051,     0, -1051,     0,     0, -1051, -1051,
3888    -1051, -1051, -1051,     0,     0, -1051, -1051, -1051, -1051, -1051,
3889    -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051,
3890    -1051, -1051,     0, -1051,     0, -1051, -1051, -1051,     0, -1051,
3891    -1051, -1051, -1051, -1051, -1051, -1051, -1051,     0,     0, -1051,
3892        0, -1051, -1051,     0, -1051, -1051, -1051,     0, -1051, -1051,
3893    -1051,     0, -1051, -1051, -1051, -1051, -1053,  1067,     0, -1053,
3894    -1053, -1053, -1053,     0, -1053, -1053,     0,     0,     0,     0,
3895        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3896        0,     0,     0,     0, -1053, -1053, -1053, -1053, -1053, -1053,
3897    -1053, -1053, -1053, -1053, -1053, -1053, -1053, -1053, -1053, -1053,
3898    -1053, -1053, -1053, -1053, -1053, -1053, -1053,     0, -1053, -1053,
3899    -1053, -1053, -1053, -1053, -1053, -1053, -1053, -1053, -1053,     0,
3900        0, -1053, -1053,     0, -1053,     0,     0, -1053, -1053, -1053,
3901    -1053, -1053,     0,     0, -1053, -1053, -1053, -1053, -1053, -1053,
3902    -1053, -1053, -1053, -1053, -1053, -1053, -1053, -1053, -1053, -1053,
3903    -1053,     0, -1053,     0, -1053, -1053, -1053,     0, -1053, -1053,
3904    -1053, -1053, -1053, -1053, -1053, -1053,     0,     0, -1053,     0,
3905    -1053, -1053,     0, -1053, -1053, -1053,     0, -1053, -1053, -1053,
3906        0, -1053, -1053, -1053, -1053, -1093,   268,     0,     1,   269,
3907       97,   270,     0,   271,   272,     0,     0,     0,     0,     0,
3908        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3909        0,     0,     0,     2, -1093, -1093, -1093, -1093, -1093, -1093,
3910    -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093,
3911    -1093, -1093, -1093, -1093, -1093, -1093,     0,   562,   563,   564,
3912      565,   566,   567,   568,   569,   570,   571,   572,     0,     0,
3913      273, -1093,     0, -1093,     0,     0,   274,   275,   276, -1093,
3914    -1093,     0,     0, -1093,  1014, -1093, -1093, -1093, -1093,   277,
3915      278,  1015, -1093,   575,   576,   577, -1093, -1093, -1093, -1093,
3916        0, -1093,     0,   279, -1093, -1093,     0,   280,   281,   282,
3917      283,   284,   285,   286,   287,     0,     0,   288,     0,   289,
3918      578,     0, -1093, -1093,   220,     0,   579,   290,   291,     0,
3919      292,   293,   294,   295, -1095,   268,     0,     1,   269,    97,
3920      270,     0,   271,   272,     0,     0,     0,     0,     0,     0,
3921        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3922        0,     0,     2, -1095, -1095, -1095, -1095, -1095, -1095, -1095,
3923    -1095, -1095, -1095, -1095, -1095, -1095, -1095, -1095, -1095, -1095,
3924    -1095, -1095, -1095, -1095, -1095,     0,   562,   563,   564,   565,
3925      566,   567,   568,   569,   570,   571,   572,     0,     0,   273,
3926    -1095,     0, -1095,     0,     0,   274,   275,   276, -1095, -1095,
3927        0,     0, -1095,  1014, -1095, -1095, -1095, -1095,   277,   278,
3928     1015, -1095,   575,   576,   577, -1095, -1095, -1095, -1095,     0,
3929    -1095,     0,   279, -1095, -1095,     0,   280,   281,   282,   283,
3930      284,   285,   286,   287,     0,     0,   288,     0,   289,   578,
3931        0, -1095, -1095,   220,     0,   579,   290,   291,     0,   292,
3932      293,   294,   295, -1135,   268,     0,     1,   269,    97,   270,
3933        0,   271,   272,     0,     0,     0,     0,     0,     0,     0,
3934        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3935        0,     2,   172,   173,   174,   175,   176,   204,   205,   206,
3936      207,   208,   209,   210,   211,   212,   213,    18,    19,   214,
3937      215,    22,    23,    24,     0,   562,   563,   564,   565,   566,
3938      567,   568,   569,   570,   571,   572,     0,     0,   273,   216,
3939        0, -1135,     0,     0,   274,   275,   276,    28,    29,     0,
3940        0, -1135,   573, -1135, -1135, -1135, -1135,   277,   355,   574,
3941      218,   575,   576,   577, -1135, -1135, -1135, -1135,     0, -1135,
3942        0,   279, -1135,   219,     0,   280,   281,   282,   283,   284,
3943      285,   286,   287,     0,     0,   288,     0,   289,   578,     0,
3944    -1135, -1135,   220,     0,   579,   290,   291,     0,   292,   293,
3945      294,   295, -1139,   268,     0,     1,   269,    97,   270,     0,
3946      271,   272,     0,     0,     0,     0,     0,     0,     0,     0,
3947        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3948        2,   172,   173,   174,   175,   176,   204,   205,   206,   207,
3949      208,   209,   210,   211,   212,   213,    18,    19,   214,   215,
3950       22,    23,    24,     0,   562,   563,   564,   565,   566,   567,
3951      568,   569,   570,   571,   572,     0,     0,   273,   216,     0,
3952    -1139,     0,     0,   274,   275,   276,    28,    29,     0,     0,
3953    -1139,   573, -1139, -1139, -1139, -1139,   277,   355,   574,   218,
3954      575,   576,   577, -1139, -1139, -1139, -1139,     0, -1139,     0,
3955      279, -1139,   219,     0,   280,   281,   282,   283,   284,   285,
3956      286,   287,     0,     0,   288,     0,   289,   578,     0, -1139,
3957    -1139,   220,     0,   579,   290,   291,     0,   292,   293,   294,
3958      295, -1136,   268,     0,     1,   269,    97,   270,     0,   271,
3959      272,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3960        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
3961      172,   173,   174,   175,   176,   204,   205,   206,   207,   208,
3962      209,   210,   211,   212,   213,    18,    19,   214,   215,    22,
3963       23,    24,     0,   562,   563,   564,   565,   566,   567,   568,
3964      569,   570,   571,   572,     0,     0,   273,   216,     0, -1136,
3965        0,     0,   274,   275,   276,    28,    29,     0,     0, -1136,
3966      573, -1136, -1136, -1136, -1136,   277,   355,   574,   218,   575,
3967      576,   577, -1136, -1136, -1136, -1136,     0, -1136,     0,   279,
3968    -1136,   219,     0,   280,   281,   282,   283,   284,   285,   286,
3969      287,     0,     0,   288,     0,   289,   578,     0, -1136, -1136,
3970      220,     0,   579,   290,   291,     0,   292,   293,   294,   295,
3971    -1140,   268,     0,     1,   269,    97,   270,     0,   271,   272,
3972        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3973        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
3974      173,   174,   175,   176,   204,   205,   206,   207,   208,   209,
3975      210,   211,   212,   213,    18,    19,   214,   215,    22,    23,
3976       24,     0,   562,   563,   564,   565,   566,   567,   568,   569,
3977      570,   571,   572,     0,     0,   273,   216,     0, -1140,     0,
3978        0,   274,   275,   276,    28,    29,     0,     0, -1140,   573,
3979    -1140, -1140, -1140, -1140,   277,   355,   574,   218,   575,   576,
3980      577, -1140, -1140, -1140, -1140,     0, -1140,     0,   279, -1140,
3981      219,     0,   280,   281,   282,   283,   284,   285,   286,   287,
3982        0,     0,   288,     0,   289,   578,     0, -1140, -1140,   220,
3983        0,   579,   290,   291,     0,   292,   293,   294,   295, -1131,
3984      553,     0, -1131, -1131, -1131, -1131,     0, -1131, -1131,     0,
3985        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3986        0,     0,     0,     0,     0,     0,     0, -1131, -1131, -1131,
3987    -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131,
3988    -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131,
3989        0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131,
3990    -1131, -1131,     0,     0, -1131, -1131,     0, -1131,     0,     0,
3991    -1131, -1131, -1131, -1131, -1131,     0,     0, -1131, -1131, -1131,
3992    -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131,
3993    -1131, -1131, -1131, -1131,     0, -1131,     0, -1131, -1131, -1131,
3994        0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131,     0,
3995        0, -1131,     0, -1131,   554,     0, -1131, -1131, -1131,     0,
3996    -1131, -1131, -1131,     0, -1131, -1131, -1131, -1131, -1132,   553,
3997        0, -1132, -1132, -1132, -1132,     0, -1132, -1132,     0,     0,
3998        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3999        0,     0,     0,     0,     0,     0, -1132, -1132, -1132, -1132,
4000    -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132,
4001    -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132,     0,
4002    -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132,
4003    -1132,     0,     0, -1132, -1132,     0, -1132,     0,     0, -1132,
4004    -1132, -1132, -1132, -1132,     0,     0, -1132, -1132, -1132, -1132,
4005    -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132,
4006    -1132, -1132, -1132,     0, -1132,     0, -1132, -1132, -1132,     0,
4007    -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132,     0,     0,
4008    -1132,     0, -1132,   554,     0, -1132, -1132, -1132,     0, -1132,
4009    -1132, -1132,     0, -1132, -1132, -1132, -1132,  -981,   268,     0,
4010        1,   269,    97,   270,     0,   271,   272,     0,     0,     0,
4011        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4012        0,     0,     0,     0,     0,     2,  -981,  -981,  -981,  -981,
4013     -981,  -981,  -981,  -981,  -981,  -981,  -981,  -981,  -981,  -981,
4014     -981,  -981,  -981,  -981,  -981,  -981,  -981,  -981,     0,  -981,
4015     -981,  -981,  -981,  -981,  -981,  -981,  -981,  -981,  -981,  -981,
4016        0,     0,   273,  -981,     0,  -981,     0,     0,   274,   275,
4017      276,  -981,  -981,     0,     0,  -981,  -981,  -981,  -981,  -981,
4018     -981,   277,   278,  -981,  -981,  -981,  -981,  -981,  -981,  -981,
4019     -981,  -981,     0,  -981,     0,   279,  -981,  -981,     0,   280,
4020      281,   282,   283,   284,   285,   286,   287,     0,     0,   288,
4021        0,   289,  -981,     0,  1710,  1711,   920,     0,  -981,   290,
4022      291,     0,   292,   293,   294,   295,  -983,   268,     0,     1,
4023      269,    97,   270,     0,   271,   272,     0,     0,     0,     0,
4024        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4025        0,     0,     0,     0,     2,  -983,  -983,  -983,  -983,  -983,
4026     -983,  -983,  -983,  -983,  -983,  -983,  -983,  -983,  -983,  -983,
4027     -983,  -983,  -983,  -983,  -983,  -983,  -983,     0,  -983,  -983,
4028     -983,  -983,  -983,  -983,  -983,  -983,  -983,  -983,  -983,     0,
4029        0,   273,  -983,     0,  -983,     0,     0,   274,   275,   276,
4030     -983,  -983,     0,     0,  -983,  -983,  -983,  -983,  -983,  -983,
4031      277,   278,  -983,  -983,  -983,  -983,  -983,  -983,  -983,  -983,
4032     -983,     0,  -983,     0,   279,  -983,  -983,     0,   280,   281,
4033      282,   283,   284,   285,   286,   287,     0,     0,   288,     0,
4034      289,  -983,     0,  -983,  1878,   920,     0,  -983,   290,   291,
4035        0,   292,   293,   294,   295,  -977,  1881,     0,  -977,  -977,
4036     -977,  -977,     0,  -977,  -977,     0,     0,     0,     0,     0,
4037        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4038        0,     0,     0,  -977,  -977,  -977,  -977,  -977,  -977,  -977,
4039     -977,  -977,  -977,  -977,  -977,  -977,  -977,  -977,  -977,  -977,
4040     -977,  -977,  -977,  -977,  -977,  -977,     0,  -977,  -977,  -977,
4041     -977,  -977,  -977,  -977,  -977,  -977,  -977,  -977,     0,     0,
4042     -977,  -977,     0,  -977,     0,     0,  -977,  -977,  -977,  -977,
4043     -977,     0,     0,  -977,  -977,  -977,  -977,  -977,  -977,  -977,
4044     -977,  -977,  -977,  -977,  -977,  -977,  -977,  -977,  -977,  -977,
4045        0,  -977,     0,  -977,  -977,  -977,     0,  -977,  -977,  -977,
4046     -977,  -977,  -977,  -977,  -977,     0,     0,  -977,     0,  -977,
4047     -977,     0,  -977,  -977,  -977,     0,  -977,  -977,  -977,     0,
4048     -977,  -977,  -977,  -977, -1181,   268,     0,     1,   269,    97,
4049      270,     0,   271,   272,     0,     0,     0,     0,     0,     0,
4050        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4051        0,     0,     2, -1181, -1181, -1181, -1181, -1181, -1181, -1181,
4052    -1181, -1181, -1181, -1181, -1181, -1181, -1181, -1181, -1181, -1181,
4053    -1181, -1181, -1181, -1181, -1181,     0, -1181, -1181, -1181, -1181,
4054    -1181, -1181, -1181, -1181, -1181, -1181, -1181,     0,     0,   273,
4055    -1181,     0, -1181,     0,     0,   274,   275,   276, -1181, -1181,
4056        0,     0, -1181, -1181, -1181, -1181, -1181, -1181,   277,   278,
4057    -1181, -1181, -1181, -1181, -1181, -1181, -1181, -1181, -1181,     0,
4058    -1181,     0,   279, -1181, -1181,     0,   280,   281,   282,   283,
4059      284,   285,   286,   287,     0,     0,   288,     0,   289, -1181,
4060        0, -1181, -1181, -1181,     0, -1181,   290,   291,     0,   292,
4061      293,   294,   295,  -978,  1954,     0,  -978,  -978,  -978,  -978,
4062        0,  -978,  -978,     0,     0,     0,     0,     0,     0,     0,
4063        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4064        0,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
4065     -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
4066     -978,  -978,  -978,  -978,     0,  -978,  -978,  -978,  -978,  -978,
4067     -978,  -978,  -978,  -978,  -978,  -978,     0,     0,  -978,  -978,
4068        0,  -978,     0,     0,  -978,  -978,  -978,  -978,  -978,     0,
4069        0,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
4070     -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,     0,  -978,
4071        0,  -978,  -978,  -978,     0,  -978,  -978,  -978,  -978,  -978,
4072     -978,  -978,  -978,     0,     0,  -978,     0,  -978,  -978,     0,
4073     -978,  -978,  -978,     0,  -978,  -978,  -978,     0,  -978,  -978,
4074     -978,  -978,  -907,   522,     0,  -907,  -907,  -907,  -907,     0,
4075     -907,  -907,     0,     0,     0,     0,     0,     0,     0,     0,
4076        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4077     -907,  -907,  -907,  -907,  -907,  -907,  -907,  -907,  -907,  -907,
4078     -907,  -907,  -907,  -907,  -907,  -907,  -907,  -907,  -907,  -907,
4079     -907,  -907,  -907,     0,     0,  -907,     0,     0,     0,     0,
4080        0,     0,     0,     0,     0,     0,     0,  -907,  -907,     0,
4081     -907,     0,     0,  -907,  -907,  -907,  -907,  -907,     0,     0,
4082     -907,  -907,  -907,  -907,  -907,  -907,  -907,  -907,  -907,  -907,
4083     -907,     0,     0,  -907,  -907,  -907,  -907,     0,  -907,     0,
4084     -907,  -907,  -907,     0,  -907,  -907,  -907,  -907,  -907,  -907,
4085     -907,  -907,     0,     0,  -907,   523,  -907,  -907,     0,   524,
4086     -907,  -907,     0,     0,  -907,  -907,     0,  -907,  -907,  -907,
4087     -907,   268,     0,     1,   269,    97,   270,     0,   271,   272,
4088        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4089        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
4090      173,   174,   175,   176,   204,   205,   206,   207,   208,   209,
4091      210,   211,   212,   213,    18,    19,   214,   215,    22,    23,
4092       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4093        0,     0,     0,     0,     0,   273,   216,     0,     0,     0,
4094        0,   274,   275,   276,    28,    29,     0,     0,     0,    32,
4095        0,     0,     0,     0,   277,   355,    38,   218,     0,     0,
4096        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4097      219,     0,   280,   281,   282,   283,   284,   285,   286,   287,
4098        0,     0,   288,     0,   289,   894,     0,   895,   896,   672,
4099        0,     0,   290,   291,     0,   292,   293,   294,   295,  1147,
4100        0,     1,   269,    97,   270,     0,   271,   272,     0,     0,
4101        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4102        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
4103      175,   176,   204,   205,   206,   207,   208,   209,   210,   211,
4104      212,   213,    18,    19,   214,   215,    22,    23,    24,     0,
4105        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4106        0,     0,     0,   273,   216,     0,     0,     0,     0,   274,
4107      275,   276,    28,    29,     0,     0,     0,    32,     0,     0,
4108        0,     0,   277,   355,    38,   218,     0,     0,     0,     0,
4109        0,     0,     0,     0,     0,     0,   279,     0,   219,     0,
4110      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4111      288,     0,   289,   894,     0,   895,  -109,   672,     0,     0,
4112      290,   291,     0,   292,   293,   294,   295,  1154,     0,     1,
4113      269,    97,   270,     0,   271,   272,     0,     0,     0,     0,
4114        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4115        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
4116      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
4117       18,    19,   214,   215,    22,    23,    24,     0,     0,     0,
4118        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4119        0,   273,   216,     0,     0,     0,     0,   274,   275,   276,
4120       28,    29,     0,     0,     0,    32,     0,     0,     0,     0,
4121      277,   355,    38,   218,     0,     0,     0,     0,     0,     0,
4122        0,     0,     0,     0,   279,     0,   219,     0,   280,   281,
4123      282,   283,   284,   285,   286,   287,     0,     0,   288,     0,
4124      289,   894,     0,   895,   -97,   672,     0,     0,   290,   291,
4125        0,   292,   293,   294,   295,  1158,     0,     1,   269,    97,
4126      270,     0,   271,   272,     0,     0,     0,     0,     0,     0,
4127        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4128        0,     0,     2,   172,   173,   174,   175,   176,   204,   205,
4129      206,   207,   208,   209,   210,   211,   212,   213,    18,    19,
4130      214,   215,    22,    23,    24,     0,     0,     0,     0,     0,
4131        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4132      216,     0,     0,     0,     0,   274,   275,   276,    28,    29,
4133        0,     0,     0,    32,     0,     0,     0,     0,   277,   355,
4134       38,   218,     0,     0,     0,     0,     0,     0,     0,     0,
4135        0,     0,   279,     0,   219,     0,   280,   281,   282,   283,
4136      284,   285,   286,   287,     0,     0,   288,     0,   289,   894,
4137        0,   895,  -101,   672,     0,     0,   290,   291,     0,   292,
4138      293,   294,   295,   268,     0,     1,   269,    97,   270,     0,
4139      271,   272,     0,     0,     0,     0,     0,     0,     0,     0,
4140        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4141        2,   172,   173,   174,   175,   176,   204,   205,   206,   207,
4142      208,   209,   210,   211,   212,   213,    18,    19,   214,   215,
4143       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
4144        0,     0,     0,     0,     0,     0,     0,   273,   216,     0,
4145        0,     0,     0,   274,   275,   276,    28,    29,     0,     0,
4146        0,    32,     0,     0,     0,     0,   277,   355,    38,   218,
4147        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4148      279,     0,   219,     0,   280,   281,   282,   283,   284,   285,
4149      286,   287,     0,     0,   288,     0,   289,  1423,     0,   895,
4150      -64,   672,     0,     0,   290,   291,     0,   292,   293,   294,
4151      295,   268,     0,     1,   269,    97,   270,     0,   271,   272,
4152        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4153        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
4154      173,   174,   175,   176,   204,   205,   206,   207,   208,   209,
4155      210,   211,   212,   213,    18,    19,   214,   215,    22,    23,
4156       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4157        0,     0,     0,     0,     0,   273,   216,     0,     0,     0,
4158        0,   274,   275,   276,    28,    29,     0,     0,     0,    32,
4159        0,     0,     0,     0,   277,   355,    38,   218,     0,     0,
4160        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4161      219,     0,   280,   281,   282,   283,   284,   285,   286,   287,
4162        0,     0,   288,     0,   289,  1432,     0,   895,  1433,   672,
4163        0,     0,   290,   291,     0,   292,   293,   294,   295,  1476,
4164        0,     1,   269,    97,   270,     0,   271,   272,     0,     0,
4165        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4166        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
4167      175,   176,   204,   205,   206,   207,   208,   209,   210,   211,
4168      212,   213,    18,    19,   214,   215,    22,    23,    24,     0,
4169        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4170        0,     0,     0,   273,   216,     0,     0,     0,     0,   274,
4171      275,   276,    28,    29,     0,     0,     0,    32,     0,     0,
4172        0,     0,   277,   355,    38,   218,     0,     0,     0,     0,
4173        0,     0,     0,     0,     0,     0,   279,     0,   219,     0,
4174      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4175      288,     0,   289,   894,     0,   895,   -80,   672,     0,     0,
4176      290,   291,     0,   292,   293,   294,   295,   268,     0,     1,
4177      269,    97,   270,     0,   271,   272,     0,     0,     0,     0,
4178        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4179        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
4180      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
4181       18,    19,   214,   215,    22,    23,    24,     0,     0,     0,
4182        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4183        0,   273,   216,     0,     0,     0,     0,   274,   275,   276,
4184       28,    29,     0,     0,     0,    32,     0,     0,     0,     0,
4185      277,   355,    38,   218,     0,     0,     0,     0,     0,     0,
4186        0,     0,     0,     0,   279,     0,   219,     0,   280,   281,
4187      282,   283,   284,   285,   286,   287,     0,     0,   288,     0,
4188      289,  1432,     0,   895,  -106,   672,     0,     0,   290,   291,
4189        0,   292,   293,   294,   295,   268,     0,     1,   269,    97,
4190      270,     0,   271,   272,     0,     0,     0,     0,     0,     0,
4191        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4192        0,     0,     2,   172,   173,   174,   175,   176,   204,   205,
4193      206,   207,   208,   209,   210,   211,   212,   213,    18,    19,
4194      214,   215,    22,    23,    24,     0,     0,     0,     0,     0,
4195        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4196      216,     0,     0,     0,     0,   274,   275,   276,    28,    29,
4197        0,     0,     0,    32,     0,     0,     0,     0,   277,   355,
4198       38,   218,     0,     0,     0,     0,     0,     0,     0,     0,
4199        0,     0,   279,     0,   219,     0,   280,   281,   282,   283,
4200      284,   285,   286,   287,     0,     0,   288,     0,   289,  1432,
4201        0,   895,   -96,   672,     0,     0,   290,   291,     0,   292,
4202      293,   294,   295,   268,     0,     1,   269,    97,   270,     0,
4203      271,   272,     0,     0,     0,     0,     0,     0,     0,     0,
4204        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4205        2,   172,   173,   174,   175,   176,   204,   205,   206,   207,
4206      208,   209,   210,   211,   212,   213,    18,    19,   214,   215,
4207       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
4208        0,     0,     0,     0,     0,     0,     0,   273,   216,     0,
4209        0,     0,     0,   274,   275,   276,    28,    29,     0,     0,
4210        0,    32,     0,     0,     0,     0,   277,   355,    38,   218,
4211        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4212      279,     0,   219,     0,   280,   281,   282,   283,   284,   285,
4213      286,   287,     0,     0,   288,     0,   289,  1432,     0,   895,
4214     -100,   672,     0,     0,   290,   291,     0,   292,   293,   294,
4215      295,  1675,     0,     1,   269,    97,   270,     0,   271,   272,
4216        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4217        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
4218      173,   174,   175,   176,   204,   205,   206,   207,   208,   209,
4219      210,   211,   212,   213,    18,    19,   214,   215,    22,    23,
4220       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4221        0,     0,     0,     0,     0,   273,   216,     0,     0,     0,
4222        0,   274,   275,   276,    28,    29,     0,     0,     0,    32,
4223        0,     0,     0,     0,   277,   355,    38,   218,     0,     0,
4224        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4225      219,     0,   280,   281,   282,   283,   284,   285,   286,   287,
4226        0,     0,   288,     0,   289,   894,     0,   895,   -87,   672,
4227        0,     0,   290,   291,     0,   292,   293,   294,   295,   268,
4228        0,     1,   269,    97,   270,     0,   271,   272,     0,     0,
4229        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4230        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
4231      175,   176,   204,   205,   206,   207,   208,   209,   210,   211,
4232      212,   213,    18,    19,   214,   215,    22,    23,    24,     0,
4233        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4234        0,     0,     0,   273,   216,     0,     0,     0,     0,   274,
4235      275,   276,    28,    29,     0,     0,     0,    32,     0,     0,
4236        0,     0,   277,   355,    38,   218,     0,     0,     0,     0,
4237        0,     0,     0,     0,     0,     0,   279,     0,   219,     0,
4238      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4239      288,     0,   289,  1432,     0,   895,   -77,   672,     0,     0,
4240      290,   291,     0,   292,   293,   294,   295,   268,     0,     1,
4241      269,    97,   270,     0,   271,   272,     0,     0,     0,     0,
4242        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4243        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
4244      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
4245       18,    19,   214,   215,    22,    23,    24,     0,     0,     0,
4246        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4247        0,   273,   216,     0,     0,     0,     0,   274,   275,   276,
4248       28,    29,     0,     0,     0,    32,     0,     0,     0,     0,
4249      277,   355,    38,   218,     0,     0,     0,     0,     0,     0,
4250        0,     0,     0,     0,   279,     0,   219,     0,   280,   281,
4251      282,   283,   284,   285,   286,   287,     0,     0,   288,     0,
4252      289,  1432,     0,   895,   -84,   672,     0,     0,   290,   291,
4253        0,   292,   293,   294,   295,   268,     0,     1,   269,    97,
4254      270,     0,   271,   272,     0,     0,     0,     0,     0,     0,
4255        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4256        0,     0,     2,   172,   173,   174,   175,   176,   204,   205,
4257      206,   207,   208,   209,   210,   211,   212,   213,    18,    19,
4258      214,   215,    22,    23,    24,     0,     0,     0,     0,     0,
4259        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4260      216,     0,     0,     0,     0,   274,   275,   276,    28,    29,
4261        0,     0,     0,    32,     0,     0,     0,     0,   277,   355,
4262       38,   218,     0,     0,     0,     0,     0,     0,     0,     0,
4263        0,     0,   279,     0,   219,     0,   280,   281,   282,   283,
4264      284,   285,   286,   287,     0,     0,   288,   268,   289,     1,
4265      269,    97,   270,     0,   271,   272,   290,   291,     0,   292,
4266      293,   294,   295,     0,     0,     0,     0,     0,     0,     0,
4267        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
4268      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
4269       18,    19,   214,   215,    22,    23,    24,     0,     0,     0,
4270        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4271        0,   778,   216,     0,     0,     0,     0,   274,   275,   276,
4272       28,    29,     0,     0,     0,    32,     0,     0,     0,     0,
4273      277,   355,    38,   218,     0,     0,     0,     0,     0,     0,
4274        0,     0,     0,     0,   279,     0,   219,     0,   280,   281,
4275      282,   283,   284,   285,   286,   287,     0,     0,   288,   268,
4276      289,     1,   269,    97,   270,     0,   271,   272,   290,   291,
4277        0,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4278        0,     0,     0,     0,     0,     0,     2,     0,     0,     0,
4279        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
4280       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
4281        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4282        0,     0,     0,   273,    27,     0,     0,     0,     0,   274,
4283      275,   276,    28,    29,     0,     0,     0,    32,     0,     0,
4284       35,    36,   277,   380,    38,    39,     0,     0,     0,     0,
4285        0,     0,     0,     0,     0,     0,   279,     0,    40,     0,
4286      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4287      288,   661,   289,     0,     0,     0,     0,     0,     0,     0,
4288      290,   291,     0,   292,   293,   294,   295,   268,     0,     1,
4289      269,    97,   270,     0,   271,   272,     0,     0,     0,     0,
4290        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4291        0,     0,     0,     0,     2,     0,     0,     0,     0,     0,
4292        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
4293       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
4294        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4295        0,  1079,    27,     0,     0,     0,     0,   274,   275,   276,
4296       28,    29,     0,     0,     0,    32,     0,     0,    35,    36,
4297      277,   380,    38,    39,     0,     0,     0,     0,     0,     0,
4298        0,     0,     0,     0,   279,     0,    40,     0,   280,   281,
4299      282,   283,   284,   285,   286,   287,     0,     0,   638,   661,
4300      289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
4301        0,   292,   293,   294,   295,   268,     0,     1,   269,    97,
4302      270,     0,   271,   272,     0,     0,     0,     0,     0,     0,
4303        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4304        0,     0,     2,     0,     0,     0,     0,     0,     8,     9,
4305       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
4306       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
4307        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4308       27,     0,     0,     0,     0,   274,   275,   276,    28,    29,
4309        0,     0,     0,    32,     0,     0,    35,    36,   277,   380,
4310       38,    39,     0,     0,     0,     0,     0,     0,     0,     0,
4311        0,     0,   279,     0,    40,     0,   280,   281,   282,   283,
4312      284,   285,   286,   287,     0,     0,   288,   268,   289,     1,
4313      269,    97,   270,   220,   271,   272,   290,   291,     0,   292,
4314      293,   294,   295,     0,     0,     0,     0,     0,     0,     0,
4315        0,     0,     0,     0,     2,     0,     0,     0,     0,     0,
4316        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
4317       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
4318        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4319        0,   273,    27,     0,     0,     0,     0,   274,   275,   276,
4320       28,    29,     0,     0,     0,    32,     0,     0,    35,    36,
4321      277,   380,    38,    39,   268,     0,     1,   269,    97,   270,
4322        0,   271,   272,     0,   279,     0,    40,     0,   280,   281,
4323      282,   283,   284,   285,   286,   801,     0,     0,   802,   661,
4324      289,     2,     0,     0,     0,     0,     0,     0,   290,   291,
4325        0,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4326        0,     0,     0,     0,     0,  1006,  1007,  1008,   565,  1009,
4327     1010,  1011,  1012,   570,   571,  1013,     0,     0,   273,     0,
4328        0,     0,     0,     0,   274,   275,   276,     0,     0,     0,
4329        0,     0,  1014,     0,     0,     0,     0,   277,   278,  1015,
4330        0,   575,   576,   577,     0,     0,     0,     0,     0,     0,
4331        0,   279,     0,     0,     0,   280,   281,   282,   283,   284,
4332      285,   286,   287,     0,     0,   288,     0,   289,   578,     0,
4333        0,     0,   220,     0,   579,   290,   291,     0,   292,   293,
4334      294,   295,   268,     0,     1,   269,    97,   270,     0,   271,
4335      272,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4336        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
4337        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4338        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4339        0,     0,     0,   562,   563,   564,   565,   566,   567,   568,
4340      569,   570,   571,   572,     0,     0,   273,     0,     0,     0,
4341        0,     0,   274,   275,   276,     0,     0,     0,     0,     0,
4342     1014,     0,     0,     0,     0,   277,   278,  1015,     0,   575,
4343      576,   577,     0,     0,     0,     0,     0,     0,     0,   279,
4344        0,     0,     0,   280,   281,   282,   283,   284,   285,   286,
4345      287,     0,     0,   288,     0,   289,   578,     0,     0,     0,
4346      220,     0,   579,   290,   291,     0,   292,   293,   294,   295,
4347     1734,     0,     1,   269,    97,   270,     0,   271,   272,     0,
4348        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4349        0,     0,     0,     0,     0,     0,     0,     2,     0,     0,
4350        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4351        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4352        0,  1006,  1007,  1008,   565,  1009,  1010,  1011,  1012,   570,
4353      571,  1013,     0,     0,   273,     0,     0,     0,     0,     0,
4354      274,   275,   276,     0,     0,     0,     0,     0,  1014,     0,
4355        0,     0,     0,   277,   278,  1015,     0,   575,   576,   577,
4356        0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
4357        0,   280,   281,   282,   283,   284,   285,   286,   287,     0,
4358        0,   288,     0,   289,   578,     0,     0,     0,   220,     0,
4359      579,   290,   291,     0,   292,   293,   294,   295,   268,     0,
4360        1,   269,    97,   270,     0,   271,   272,     0,     0,     0,
4361        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4362        0,     0,     0,     0,     0,     2,     0,     0,     0,     0,
4363        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4364        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4365        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4366        0,     0,   273,     0,     0,     0,     0,     0,   274,   275,
4367      276,   268,     0,     1,   269,    97,   270,     0,   271,   272,
4368        0,   277,   278,     0,     0,     0,     0,     0,     0,     0,
4369        0,     0,     0,     0,     0,   279,     0,     0,     2,   280,
4370      281,   282,   283,   284,   285,   286,   287,     0,     0,   288,
4371     1050,   289,     0,     0,  1631,     0,     0,     0,  1652,   290,
4372      291,     0,   292,   293,   294,   295,     0,     0,     0,     0,
4373        0,     0,     0,     0,     0,   273,     0,     0,     0,     0,
4374        0,   274,   275,   276,  1755,     0,     1,   269,    97,   270,
4375        0,   271,   272,     0,   277,   278,     0,     0,     0,     0,
4376        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4377        0,     2,   280,   281,   282,   283,   284,   285,   286,   287,
4378        0,     0,   288,  1050,   289,     0,     0,  1631,     0,     0,
4379        0,  1656,   290,   291,     0,   292,   293,   294,   295,     0,
4380        0,     0,     0,     0,     0,     0,     0,     0,   273,     0,
4381        0,     0,     0,     0,   274,   275,   276,   268,     0,     1,
4382      269,    97,   270,     0,   271,   272,     0,   277,   278,     0,
4383        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4384        0,   279,     0,     0,     2,   280,   281,   282,   283,   284,
4385      285,   286,   287,     0,     0,   288,  1050,   289,  1756,     0,
4386     1051,     0,     0,     0,     0,   290,   291,     0,   292,   293,
4387      294,   295,     0,     0,     0,     0,     0,     0,     0,     0,
4388        0,   273,     0,     0,     0,     0,     0,   274,   275,   276,
4389      268,     0,     1,   269,    97,   270,     0,   271,   272,     0,
4390      277,   278,     0,     0,     0,     0,     0,     0,     0,     0,
4391        0,     0,     0,     0,   279,     0,     0,     2,   280,   281,
4392      282,   283,   284,   285,   286,   287,     0,     0,   288,  1050,
4393      289,     0,     0,  1051,     0,     0,     0,     0,   290,   291,
4394     1778,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4395        0,     0,     0,     0,   273,     0,     0,     0,     0,     0,
4396      274,   275,   276,   268,     0,     1,   269,    97,   270,     0,
4397      271,   272,     0,   277,   278,     0,     0,     0,     0,     0,
4398        0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
4399        2,   280,   281,   282,   283,   284,   285,   286,   287,     0,
4400        0,   288,  1050,   289,     0,     0,  1051,     0,     0,     0,
4401        0,   290,   291,  1782,   292,   293,   294,   295,     0,     0,
4402        0,     0,     0,     0,     0,     0,     0,   273,     0,     0,
4403        0,     0,     0,   274,   275,   276,  1900,     0,     1,   269,
4404       97,   270,     0,   271,   272,     0,   277,   278,     0,     0,
4405        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4406      279,     0,     0,     2,   280,   281,   282,   283,   284,   285,
4407      286,   287,     0,     0,   288,  1050,   289,  1756,     0,  1051,
4408        0,     0,     0,     0,   290,   291,     0,   292,   293,   294,
4409      295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4410      273,     0,     0,     0,     0,     0,   274,   275,   276,  1044,
4411        0,     1,   269,    97,   270,     0,   271,   272,     0,   277,
4412      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4413        0,     0,     0,   279,     0,     0,     2,   280,   281,   282,
4414      283,   284,   285,   286,   287,     0,     0,   288,  1050,   289,
4415     1756,     0,  1051,     0,     0,     0,     0,   290,   291,     0,
4416      292,   293,   294,   295,     0,     0,     0,     0,     0,     0,
4417        0,     0,     0,   273,     0,     0,     0,     0,     0,   274,
4418      275,   276,   268,     0,     1,   269,    97,   270,     0,   271,
4419      272,     0,   277,   278,     0,     0,     0,     0,     0,     0,
4420        0,     0,     0,     0,     0,     0,   279,     0,     0,     2,
4421      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4422      288,  1964,   289,  1965,     0,  1046,     0,     0,     0,     0,
4423      290,   291,     0,   292,   293,   294,   295,     0,     0,     0,
4424        0,     0,     0,     0,     0,     0,   273,     0,     0,     0,
4425        0,     0,   274,   275,   276,   268,     0,     1,   269,    97,
4426      270,     0,   271,   272,     0,   277,   278,     0,     0,     0,
4427        0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
4428        0,     0,     2,   280,   281,   282,   283,   284,   285,   286,
4429      287,     0,     0,   288,     0,   289,     0,     0,  1993,  1994,
4430      920,     0,     0,   290,   291,     0,   292,   293,   294,   295,
4431        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4432        0,     0,     0,     0,     0,   274,   275,   276,  1235,     0,
4433        1,   269,    97,   270,     0,   271,   272,     0,   277,   278,
4434        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4435        0,     0,   279,     0,     0,     2,   280,   281,   282,   283,
4436      284,   285,   286,   287,     0,     0,   288,  1050,   289,  1963,
4437        0,  1051,     0,     0,     0,     0,   290,   291,     0,   292,
4438      293,   294,   295,     0,     0,     0,     0,     0,     0,     0,
4439        0,     0,   273,     0,     0,     0,     0,     0,   274,   275,
4440      276,   268,     0,     1,   269,    97,   270,     0,   271,   272,
4441        0,   277,   278,     0,     0,     0,     0,     0,     0,     0,
4442        0,     0,     0,     0,     0,   279,     0,     0,     2,   280,
4443      281,   282,   283,   284,   285,   286,   287,     0,     0,   288,
4444     1236,   289,     0,     0,     0,     0,   672,     0,     0,   290,
4445      291,     0,   292,   293,   294,   295,     0,     0,     0,     0,
4446        0,     0,     0,     0,     0,   273,     0,     0,     0,     0,
4447        0,   274,   275,   276,   268,     0,     1,   269,    97,   270,
4448        0,   271,   272,     0,   277,   278,     0,     0,     0,     0,
4449        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4450        0,     2,   280,   281,   282,   283,   284,   285,   286,   287,
4451        0,     0,   288,     0,   289,  1025,     0,     0,     0,   672,
4452        0,     0,   290,   291,     0,   292,   293,   294,   295,     0,
4453        0,     0,     0,     0,     0,     0,     0,     0,   273,     0,
4454        0,     0,     0,     0,   274,   275,   276,  1506,     0,     1,
4455      269,    97,   270,     0,   271,   272,     0,   277,   278,     0,
4456        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4457        0,   279,     0,     0,     2,   280,   281,   282,   283,   284,
4458      285,   286,   287,     0,     0,   288,  1050,   289,     0,     0,
4459     1051,     0,     0,     0,     0,   290,   291,     0,   292,   293,
4460      294,   295,     0,     0,     0,     0,     0,     0,     0,     0,
4461        0,   273,     0,     0,     0,     0,     0,   274,   275,   276,
4462     1044,     0,     1,   269,    97,   270,     0,   271,   272,     0,
4463      277,   278,     0,     0,     0,     0,     0,     0,     0,     0,
4464        0,     0,     0,     0,   279,     0,     0,     2,   280,   281,
4465      282,   283,   284,   285,   286,   287,     0,     0,   288,  1507,
4466      289,  1508,     0,     0,     0,     0,     0,     0,   290,   291,
4467        0,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4468        0,     0,     0,     0,   273,     0,     0,     0,     0,     0,
4469      274,   275,   276,  1556,     0,     1,   269,    97,   270,     0,
4470      271,   272,     0,   277,   278,     0,     0,     0,     0,     0,
4471        0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
4472        2,   280,   281,   282,   283,   284,   285,   286,   287,     0,
4473        0,   288,     0,   289,  1516,     0,  1046,     0,     0,     0,
4474        0,   290,   291,     0,   292,   293,   294,   295,     0,     0,
4475        0,     0,     0,     0,     0,     0,     0,   273,     0,     0,
4476        0,     0,     0,   274,   275,   276,  1566,     0,     1,   269,
4477       97,   270,     0,   271,   272,     0,   277,   278,     0,     0,
4478        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4479      279,     0,     0,     2,   280,   281,   282,   283,   284,   285,
4480      286,   287,     0,     0,   288,  1557,   289,     0,     0,     0,
4481        0,   672,     0,     0,   290,   291,     0,   292,   293,   294,
4482      295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4483      273,     0,     0,     0,     0,     0,   274,   275,   276,  1044,
4484        0,     1,   269,    97,   270,     0,   271,   272,     0,   277,
4485      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4486        0,     0,     0,   279,     0,     0,     2,   280,   281,   282,
4487      283,   284,   285,   286,   287,     0,     0,   288,  1567,   289,
4488        0,     0,     0,     0,   672,     0,     0,   290,   291,     0,
4489      292,   293,   294,   295,     0,     0,     0,     0,     0,     0,
4490        0,     0,     0,   273,     0,     0,     0,     0,     0,   274,
4491      275,   276,  1044,     0,     1,   269,    97,   270,     0,   271,
4492      272,     0,   277,   278,     0,     0,     0,     0,     0,     0,
4493        0,     0,     0,     0,     0,     0,   279,     0,     0,     2,
4494      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4495      288,  1599,   289,     0,     0,  1046,     0,     0,     0,     0,
4496      290,   291,     0,   292,   293,   294,   295,     0,     0,     0,
4497        0,     0,     0,     0,     0,     0,   273,     0,     0,     0,
4498        0,     0,   274,   275,   276,  1044,     0,     1,   269,    97,
4499      270,     0,   271,   272,     0,   277,   278,     0,     0,     0,
4500        0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
4501        0,     0,     2,   280,   281,   282,   283,   284,   285,   286,
4502      287,     0,     0,   288,     0,   289,     0,     0,  1046,     0,
4503        0,     0,     0,   290,   291,  1625,   292,   293,   294,   295,
4504        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4505        0,     0,     0,     0,     0,   274,   275,   276,  1044,     0,
4506        1,   269,    97,   270,     0,   271,   272,     0,   277,   278,
4507        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4508        0,     0,   279,     0,     0,     2,   280,   281,   282,   283,
4509      284,   285,   286,   287,     0,     0,   288,     0,   289,     0,
4510        0,  1628,     0,     0,     0,  1629,   290,   291,     0,   292,
4511      293,   294,   295,     0,     0,     0,     0,     0,     0,     0,
4512        0,     0,   273,     0,     0,     0,     0,     0,   274,   275,
4513      276,  1044,     0,     1,   269,    97,   270,     0,   271,   272,
4514        0,   277,   278,     0,     0,     0,     0,     0,     0,     0,
4515        0,     0,     0,     0,     0,   279,     0,     0,     2,   280,
4516      281,   282,   283,   284,   285,   286,   287,     0,     0,   288,
4517        0,   289,     0,     0,  1046,     0,     0,     0,     0,   290,
4518      291,  1636,   292,   293,   294,   295,     0,     0,     0,     0,
4519        0,     0,     0,     0,     0,   273,     0,     0,     0,     0,
4520        0,   274,   275,   276,  1044,     0,     1,   269,    97,   270,
4521        0,   271,   272,     0,   277,   278,     0,     0,     0,     0,
4522        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4523        0,     2,   280,   281,   282,   283,   284,   285,   286,   287,
4524        0,     0,   288,     0,   289,     0,     0,  1628,     0,     0,
4525        0,  1638,   290,   291,     0,   292,   293,   294,   295,     0,
4526        0,     0,     0,     0,     0,     0,     0,     0,   273,     0,
4527        0,     0,     0,     0,   274,   275,   276,  1044,     0,     1,
4528      269,    97,   270,     0,   271,   272,     0,   277,   278,     0,
4529        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4530        0,   279,     0,     0,     2,   280,   281,   282,   283,   284,
4531      285,   286,   287,     0,     0,   288,     0,   289,     0,     0,
4532     1628,     0,     0,     0,  1650,   290,   291,     0,   292,   293,
4533      294,   295,     0,     0,     0,     0,     0,     0,     0,     0,
4534        0,   273,     0,     0,     0,     0,     0,   274,   275,   276,
4535     1044,     0,     1,   269,    97,   270,     0,   271,   272,     0,
4536      277,   278,     0,     0,     0,     0,     0,     0,     0,     0,
4537        0,     0,     0,     0,   279,     0,     0,     2,   280,   281,
4538      282,   283,   284,   285,   286,   287,     0,     0,   288,     0,
4539      289,     0,     0,  1628,     0,     0,     0,  1654,   290,   291,
4540        0,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4541        0,     0,     0,     0,   273,     0,     0,     0,     0,     0,
4542      274,   275,   276,  1044,     0,     1,   269,    97,   270,     0,
4543      271,   272,     0,   277,   278,     0,     0,     0,     0,     0,
4544        0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
4545        2,   280,   281,   282,   283,   284,   285,   286,   287,     0,
4546        0,   288,  1730,   289,     0,     0,  1046,     0,     0,     0,
4547        0,   290,   291,     0,   292,   293,   294,   295,     0,     0,
4548        0,     0,     0,     0,     0,     0,     0,   273,     0,     0,
4549        0,     0,     0,   274,   275,   276,   268,     0,     1,   269,
4550       97,   270,     0,   271,   272,     0,   277,   278,     0,     0,
4551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4552      279,     0,     0,     2,   280,   281,   282,   283,   284,   285,
4553      286,   287,     0,     0,   288,  1732,   289,     0,     0,  1046,
4554        0,     0,     0,     0,   290,   291,     0,   292,   293,   294,
4555      295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4556      273,     0,     0,     0,     0,     0,   274,   275,   276,  1044,
4557        0,     1,   269,    97,   270,     0,   271,   272,     0,   277,
4558      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4559        0,     0,     0,   279,     0,     0,     2,   280,   281,   282,
4560      283,   284,   285,   286,   287,     0,     0,   288,  1733,   289,
4561        0,     0,  1051,     0,     0,     0,     0,   290,   291,     0,
4562      292,   293,   294,   295,     0,     0,     0,     0,     0,     0,
4563        0,     0,     0,   273,     0,     0,     0,     0,     0,   274,
4564      275,   276,   268,     0,     1,   269,    97,   270,     0,   271,
4565      272,     0,   277,   278,     0,     0,     0,     0,     0,     0,
4566        0,     0,     0,     0,     0,     0,   279,     0,     0,     2,
4567      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4568      288,  1736,   289,     0,     0,  1046,     0,     0,     0,     0,
4569      290,   291,     0,   292,   293,   294,   295,     0,     0,     0,
4570        0,     0,     0,     0,     0,     0,   273,     0,     0,     0,
4571        0,     0,   274,   275,   276,  1044,     0,     1,   269,    97,
4572      270,     0,   271,   272,     0,   277,   278,     0,     0,     0,
4573        0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
4574        0,     0,     2,   280,   281,   282,   283,   284,   285,   286,
4575      287,     0,     0,   288,  1507,   289,  1508,     0,     0,     0,
4576        0,     0,     0,   290,   291,     0,   292,   293,   294,   295,
4577        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4578        0,     0,     0,     0,     0,   274,   275,   276,  1757,     0,
4579        1,   269,    97,   270,     0,   271,   272,     0,   277,   278,
4580        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4581        0,     0,   279,     0,     0,     2,   280,   281,   282,   283,
4582      284,   285,   286,   287,     0,     0,   288,     0,   289,  1754,
4583        0,  1046,     0,     0,     0,     0,   290,   291,     0,   292,
4584      293,   294,   295,     0,     0,     0,     0,     0,     0,     0,
4585        0,     0,   273,     0,     0,     0,     0,     0,   274,   275,
4586      276,  1044,     0,     1,   269,    97,   270,     0,   271,   272,
4587        0,   277,   278,     0,     0,     0,     0,     0,     0,     0,
4588        0,     0,     0,     0,     0,   279,     0,     0,     2,   280,
4589      281,   282,   283,   284,   285,   286,   287,     0,     0,   288,
4590     1758,   289,  1508,     0,     0,     0,     0,     0,     0,   290,
4591      291,     0,   292,   293,   294,   295,     0,     0,     0,     0,
4592        0,     0,     0,     0,     0,   273,     0,     0,     0,     0,
4593        0,   274,   275,   276,  1044,     0,     1,   269,    97,   270,
4594        0,   271,   272,     0,   277,   278,     0,     0,     0,     0,
4595        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4596        0,     2,   280,   281,   282,   283,   284,   285,   286,   287,
4597        0,     0,   288,     0,   289,     0,     0,  1046,     0,     0,
4598        0,     0,   290,   291,  1777,   292,   293,   294,   295,     0,
4599        0,     0,     0,     0,     0,     0,     0,     0,   273,     0,
4600        0,     0,     0,     0,   274,   275,   276,   268,     0,     1,
4601      269,    97,   270,     0,   271,   272,     0,   277,   278,     0,
4602        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4603        0,   279,     0,     0,     2,   280,   281,   282,   283,   284,
4604      285,   286,   287,     0,     0,   288,     0,   289,     0,     0,
4605     1046,     0,     0,     0,     0,   290,   291,  1781,   292,   293,
4606      294,   295,     0,     0,     0,     0,     0,     0,     0,     0,
4607        0,   273,     0,     0,     0,     0,     0,   274,   275,   276,
4608     1044,     0,     1,   269,    97,   270,     0,   271,   272,     0,
4609      277,   278,     0,     0,     0,     0,     0,     0,     0,     0,
4610        0,     0,     0,     0,   279,     0,     0,     2,   280,   281,
4611      282,   283,   284,   285,   286,   287,     0,     0,   288,  1731,
4612      289,     0,     0,  1051,     0,     0,     0,     0,   290,   291,
4613        0,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4614        0,     0,     0,     0,   273,     0,     0,     0,     0,     0,
4615      274,   275,   276,   268,     0,     1,   269,    97,   270,     0,
4616      271,   272,     0,   277,   278,     0,     0,     0,     0,     0,
4617        0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
4618        2,   280,   281,   282,   283,   284,   285,   286,   287,     0,
4619        0,   288,  1892,   289,     0,     0,  1046,     0,     0,     0,
4620        0,   290,   291,     0,   292,   293,   294,   295,     0,     0,
4621        0,     0,     0,     0,     0,     0,     0,   273,     0,     0,
4622        0,     0,     0,   274,   275,   276,  1044,     0,     1,   269,
4623       97,   270,     0,   271,   272,     0,   277,   278,     0,     0,
4624        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4625      279,     0,     0,     2,   280,   281,   282,   283,   284,   285,
4626      286,   287,     0,     0,   288,  1758,   289,  1508,     0,     0,
4627        0,     0,     0,     0,   290,   291,     0,   292,   293,   294,
4628      295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4629      273,     0,     0,     0,     0,     0,   274,   275,   276,  1044,
4630        0,     1,   269,    97,   270,     0,   271,   272,     0,   277,
4631      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4632        0,     0,     0,   279,     0,     0,     2,   280,   281,   282,
4633      283,   284,   285,   286,   287,     0,     0,   288,  1968,   289,
4634        0,     0,  1046,     0,     0,     0,     0,   290,   291,     0,
4635      292,   293,   294,   295,     0,     0,     0,     0,     0,     0,
4636        0,     0,     0,   273,     0,     0,     0,     0,     0,   274,
4637      275,   276,  1044,     0,     1,   269,    97,   270,     0,   271,
4638      272,     0,   277,   278,     0,     0,     0,     0,     0,     0,
4639        0,     0,     0,     0,     0,     0,   279,     0,     0,     2,
4640      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4641      288,  2000,   289,     0,     0,  1046,     0,     0,     0,     0,
4642      290,   291,     0,   292,   293,   294,   295,     0,     0,     0,
4643        0,     0,     0,     0,     0,     0,   273,     0,     0,     0,
4644        0,     0,   274,   275,   276,   268,     0,     1,   269,    97,
4645      270,     0,   271,   272,     0,   277,   278,     0,     0,     0,
4646        0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
4647        0,     0,     2,   280,   281,   282,   283,   284,   285,   286,
4648      287,     0,     0,   288,  2001,   289,     0,     0,  1046,     0,
4649        0,     0,     0,   290,   291,     0,   292,   293,   294,   295,
4650        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4651        0,     0,     0,     0,     0,   274,   275,   276,  1044,     0,
4652        1,   269,    97,   270,     0,   271,   272,     0,   277,   278,
4653        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4654        0,     0,   279,     0,     0,     2,   280,   281,   282,   283,
4655      284,   285,   286,   287,     0,     0,   288,     0,   289,     0,
4656        0,     0,  2028,   920,     0,     0,   290,   291,     0,   292,
4657      293,   294,   295,     0,     0,     0,     0,     0,     0,     0,
4658        0,     0,   273,     0,     0,     0,     0,     0,   274,   275,
4659      276,   268,     0,     1,   269,    97,   270,     0,   271,   272,
4660        0,   277,   278,     0,     0,     0,     0,     0,     0,     0,
4661        0,     0,     0,     0,     0,   279,     0,     0,     2,   280,
4662      281,   282,   283,   284,   285,   286,   287,     0,     0,   288,
4663     2029,   289,     0,     0,  1046,     0,     0,     0,     0,   290,
4664      291,     0,   292,   293,   294,   295,     0,     0,     0,     0,
4665        0,     0,     0,     0,     0,   273,     0,     0,     0,     0,
4666        0,   274,   275,   276,   268,     0,     1,   269,    97,   270,
4667        0,   271,   272,     0,   277,   278,     0,     0,     0,     0,
4668        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4669        0,     2,   280,   281,   282,   283,   284,   285,   286,   287,
4670        0,     0,   288,     0,   289,     0,     0,     0,     0,     0,
4671        0,     0,   290,   291,   493,   292,   293,   294,   295,     0,
4672        0,     0,     0,     0,     0,     0,     0,     0,   273,     0,
4673        0,     0,     0,     0,   274,   275,   276,   919,     0,     1,
4674      269,    97,   270,     0,   271,   272,     0,   277,   278,     0,
4675        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4676        0,   279,     0,     0,     2,   280,   281,   282,   283,   284,
4677      285,   286,   287,     0,     0,   288,     0,   289,     0,     0,
4678        0,     0,   672,     0,     0,   290,   291,     0,   292,   293,
4679      294,   295,     0,     0,     0,     0,     0,     0,     0,     0,
4680        0,   273,     0,     0,     0,     0,     0,   274,   275,   276,
4681      268,     0,     1,   269,    97,   270,     0,   271,   272,     0,
4682      277,   278,     0,     0,     0,     0,     0,     0,     0,     0,
4683        0,     0,     0,     0,   279,     0,     0,     2,   280,   281,
4684      282,   283,   284,   285,   286,   287,     0,     0,   288,     0,
4685      289,     0,     0,     0,     0,   920,     0,     0,   290,   291,
4686        0,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4687        0,     0,     0,     0,   273,     0,     0,     0,     0,     0,
4688      274,   275,   276,   268,     0,     1,   269,    97,   270,     0,
4689      271,   272,     0,   277,   278,     0,     0,     0,     0,     0,
4690        0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
4691        2,   280,   281,   282,   283,   284,   285,   286,   287,     0,
4692        0,   288,     0,   289,     0,     0,     0,     0,     0,     0,
4693        0,   290,   291,   956,   292,   293,   294,   295,     0,     0,
4694        0,     0,     0,     0,     0,     0,     0,   273,     0,     0,
4695        0,     0,     0,   274,   275,   276,   268,     0,     1,   269,
4696       97,   270,     0,   271,   272,     0,   277,   278,     0,     0,
4697        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4698      279,     0,     0,     2,   280,   281,   282,   283,   284,   285,
4699      286,   287,     0,     0,   288,     0,   289,     0,     0,     0,
4700        0,     0,     0,   998,   290,   291,     0,   292,   293,   294,
4701      295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4702      273,     0,     0,     0,     0,     0,   274,   275,   276,  1198,
4703        0,     1,   269,    97,   270,     0,   271,   272,     0,   277,
4704      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4705        0,     0,     0,   279,     0,     0,     2,   280,   281,   282,
4706      283,   284,   285,   286,   287,     0,     0,   288,   661,   289,
4707        0,     0,     0,     0,     0,     0,     0,   290,   291,     0,
4708      292,   293,   294,   295,     0,     0,     0,     0,     0,     0,
4709        0,     0,     0,   273,     0,     0,     0,     0,     0,   274,
4710      275,   276,  1203,     0,     1,   269,    97,   270,     0,   271,
4711      272,     0,   277,   278,     0,     0,     0,     0,     0,     0,
4712        0,     0,     0,     0,     0,     0,   279,     0,     0,     2,
4713      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4714      288,     0,   289,     0,     0,     0,     0,   672,     0,     0,
4715      290,   291,     0,   292,   293,   294,   295,     0,     0,     0,
4716        0,     0,     0,     0,     0,     0,   273,     0,     0,     0,
4717        0,     0,   274,   275,   276,  1269,     0,     1,   269,    97,
4718      270,     0,   271,   272,     0,   277,   278,     0,     0,     0,
4719        0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
4720        0,     0,     2,   280,   281,   282,   283,   284,   285,   286,
4721      287,     0,     0,   288,     0,   289,     0,     0,     0,     0,
4722      672,     0,     0,   290,   291,     0,   292,   293,   294,   295,
4723        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4724        0,     0,     0,     0,     0,   274,   275,   276,  1274,     0,
4725        1,   269,    97,   270,     0,   271,   272,     0,   277,   278,
4726        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4727        0,     0,   279,     0,     0,     2,   280,   281,   282,   283,
4728      284,   285,   286,   287,     0,     0,   288,     0,   289,     0,
4729        0,     0,     0,   672,     0,     0,   290,   291,     0,   292,
4730      293,   294,   295,     0,     0,     0,     0,     0,     0,     0,
4731        0,     0,   273,     0,     0,     0,     0,     0,   274,   275,
4732      276,  1370,     0,     1,   269,    97,   270,     0,   271,   272,
4733        0,   277,   278,     0,     0,     0,     0,     0,     0,     0,
4734        0,     0,     0,     0,     0,   279,     0,     0,     2,   280,
4735      281,   282,   283,   284,   285,   286,   287,     0,     0,   288,
4736        0,   289,     0,     0,     0,     0,   672,     0,     0,   290,
4737      291,     0,   292,   293,   294,   295,     0,     0,     0,     0,
4738        0,     0,     0,     0,     0,   273,     0,     0,     0,     0,
4739        0,   274,   275,   276,   268,     0,     1,   269,    97,   270,
4740        0,   271,   272,     0,   277,   278,     0,     0,     0,     0,
4741        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4742        0,     2,   280,   281,   282,   283,   284,   285,   286,   287,
4743        0,     0,   288,     0,   289,     0,     0,     0,     0,   672,
4744        0,     0,   290,   291,     0,   292,   293,   294,   295,     0,
4745        0,     0,     0,     0,     0,     0,     0,     0,   273,     0,
4746        0,     0,     0,     0,   274,   275,   276,   268,     0,     1,
4747      269,    97,   270,     0,   271,   272,     0,   277,   278,     0,
4748        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4749        0,   279,     0,     0,     2,   280,   281,   282,   283,   284,
4750      285,   286,   287,     0,     0,   288,     0,   289,     0,     0,
4751        0,     0,   920,     0,     0,   290,   291,     0,   292,   293,
4752      294,   295,     0,     0,     0,     0,     0,     0,     0,     0,
4753        0,   273,     0,     0,     0,     0,     0,   274,   275,   276,
4754     1489,     0,     1,   269,    97,   270,     0,   271,   272,     0,
4755      277,   278,     0,     0,     0,     0,     0,     0,     0,     0,
4756        0,     0,     0,     0,   279,     0,     0,     2,   280,   281,
4757      282,   283,   284,   285,   286,   287,     0,     0,   288,     0,
4758      289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
4759     1462,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4760        0,     0,     0,     0,   273,     0,     0,     0,     0,     0,
4761      274,   275,   276,   268,     0,     1,   269,    97,   270,     0,
4762      271,   272,     0,   277,   278,     0,     0,     0,     0,     0,
4763        0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
4764        2,   280,   281,   282,   283,   284,   285,   286,   287,     0,
4765        0,   288,  1490,   289,     0,     0,     0,     0,     0,     0,
4766        0,   290,   291,     0,   292,   293,   294,   295,     0,     0,
4767        0,     0,     0,     0,     0,     0,     0,   273,     0,     0,
4768        0,     0,     0,   274,   275,   276,  1526,     0,     1,   269,
4769       97,   270,     0,   271,   272,     0,   277,   278,     0,     0,
4770        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4771      279,     0,     0,     2,   280,   281,   282,   283,   284,   285,
4772      286,   287,     0,     0,   288,     0,   289,     0,     0,     0,
4773        0,     0,     0,  1493,   290,   291,     0,   292,   293,   294,
4774      295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4775      273,     0,     0,     0,     0,     0,   274,   275,   276,  1535,
4776        0,     1,   269,    97,   270,     0,   271,   272,     0,   277,
4777      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4778        0,     0,     0,   279,     0,     0,     2,   280,   281,   282,
4779      283,   284,   285,   286,   287,     0,     0,   288,     0,   289,
4780        0,     0,     0,     0,   672,     0,     0,   290,   291,     0,
4781      292,   293,   294,   295,     0,     0,     0,     0,     0,     0,
4782        0,     0,     0,   273,     0,     0,     0,     0,     0,   274,
4783      275,   276,  1700,     0,     1,   269,    97,   270,     0,   271,
4784      272,     0,   277,   278,     0,     0,     0,     0,     0,     0,
4785        0,     0,     0,     0,     0,     0,   279,     0,     0,     2,
4786      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4787      288,     0,   289,     0,     0,     0,     0,   672,     0,     0,
4788      290,   291,     0,   292,   293,   294,   295,     0,     0,     0,
4789        0,     0,     0,     0,     0,     0,   273,     0,     0,     0,
4790        0,     0,   274,   275,   276,  1703,     0,     1,   269,    97,
4791      270,     0,   271,   272,     0,   277,   278,     0,     0,     0,
4792        0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
4793        0,     0,     2,   280,   281,   282,   283,   284,   285,   286,
4794      287,     0,     0,   288,     0,   289,     0,     0,     0,     0,
4795      672,     0,     0,   290,   291,     0,   292,   293,   294,   295,
4796        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4797        0,     0,     0,     0,     0,   274,   275,   276,  1707,     0,
4798        1,   269,    97,   270,     0,   271,   272,     0,   277,   278,
4799        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4800        0,     0,   279,     0,     0,     2,   280,   281,   282,   283,
4801      284,   285,   286,   287,     0,     0,   288,     0,   289,     0,
4802        0,     0,     0,   672,     0,     0,   290,   291,     0,   292,
4803      293,   294,   295,     0,     0,     0,     0,     0,     0,     0,
4804        0,     0,   273,     0,     0,     0,     0,     0,   274,   275,
4805      276,   268,     0,     1,   269,    97,   270,     0,   271,   272,
4806        0,   277,   278,     0,     0,     0,     0,     0,     0,     0,
4807        0,     0,     0,     0,     0,   279,     0,     0,     2,   280,
4808      281,   282,   283,   284,   285,   286,   287,     0,     0,   288,
4809        0,   289,     0,     0,     0,     0,   672,     0,     0,   290,
4810      291,     0,   292,   293,   294,   295,     0,     0,     0,     0,
4811        0,     0,     0,     0,     0,   273,     0,     0,     0,     0,
4812        0,   274,   275,   276,   268,     0,     1,   269,    97,   270,
4813        0,   271,   272,     0,   277,   278,     0,     0,     0,     0,
4814        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4815        0,     2,   280,   281,   282,   283,   284,   285,   286,   287,
4816        0,     0,   288,  1744,   289,     0,     0,     0,     0,     0,
4817        0,     0,   290,   291,     0,   292,   293,   294,   295,     0,
4818        0,     0,     0,     0,     0,     0,     0,     0,   273,     0,
4819        0,     0,     0,     0,   274,   275,   276,  1532,     0,     1,
4820      269,    97,   270,     0,   271,   272,     0,   277,   278,     0,
4821        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4822        0,   279,     0,     0,     2,   280,   281,   282,   283,   284,
4823      285,   286,   287,     0,     0,  1802,     0,   289,     0,     0,
4824        0,     0,  1803,     0,     0,   290,   291,     0,   292,   293,
4825      294,   295,     0,     0,     0,     0,     0,     0,     0,     0,
4826        0,   273,     0,     0,     0,     0,     0,   274,   275,   276,
4827     1538,     0,     1,   269,    97,   270,     0,   271,   272,     0,
4828      277,   278,     0,     0,     0,     0,     0,     0,     0,     0,
4829        0,     0,     0,     0,   279,     0,     0,     2,   280,   281,
4830      282,   283,   284,   285,   286,   287,     0,     0,   288,     0,
4831      289,     0,     0,     0,     0,   672,     0,     0,   290,   291,
4832        0,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4833        0,     0,     0,     0,   273,     0,     0,     0,     0,     0,
4834      274,   275,   276,  1901,     0,     1,   269,    97,   270,     0,
4835      271,   272,     0,   277,   278,     0,     0,     0,     0,     0,
4836        0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
4837        2,   280,   281,   282,   283,   284,   285,   286,   287,     0,
4838        0,   288,     0,   289,     0,     0,     0,     0,   672,     0,
4839        0,   290,   291,     0,   292,   293,   294,   295,     0,     0,
4840        0,     0,     0,     0,     0,     0,     0,   273,     0,     0,
4841        0,     0,     0,   274,   275,   276,   268,     0,     1,   269,
4842       97,   270,     0,   271,   272,     0,   277,   278,     0,     0,
4843        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4844      279,     0,     0,     2,   280,   281,   282,   283,   284,   285,
4845      286,   287,     0,     0,   288,  1902,   289,     0,     0,     0,
4846        0,     0,     0,     0,   290,   291,     0,   292,   293,   294,
4847      295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4848      273,     0,     0,     0,     0,     0,   274,   275,   276,   268,
4849        0,     1,   269,    97,   270,     0,   271,   272,     0,   277,
4850      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4851        0,     0,     0,   279,     0,     0,     2,   280,   281,   282,
4852      283,   284,   285,   286,   287,     0,     0,   288,  1959,   289,
4853        0,     0,     0,     0,     0,     0,     0,   290,   291,     0,
4854      292,   293,   294,   295,     0,     0,     0,     0,     0,     0,
4855        0,     0,     0,   273,     0,     0,     0,     0,     0,   274,
4856      275,   276,   268,     0,     1,   269,    97,   270,     0,   271,
4857      272,     0,   277,   278,     0,     0,     0,     0,     0,     0,
4858        0,     0,     0,     0,     0,     0,   279,     0,     0,     2,
4859      280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
4860      288,     0,   289,     0,     0,     0,     0,  1803,     0,     0,
4861      290,   291,     0,   292,   293,   294,   295,     0,     0,     0,
4862        0,     0,     0,     0,     0,     0,   273,     0,     0,     0,
4863        0,     0,   274,   275,   276,   628,     0,     1,   269,    97,
4864      270,     0,   271,   272,     0,   277,   278,     0,     0,     0,
4865        0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
4866        0,     0,     2,   280,   281,   282,   283,   284,   285,   286,
4867      287,     0,     0,   288,     0,   289,     0,     0,     0,     0,
4868        0,     0,     0,   290,   291,     0,   292,   293,   294,   295,
4869        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4870        0,     0,     0,     0,     0,   274,   275,   276,   268,     0,
4871        1,   269,    97,   270,     0,   271,   272,     0,   277,   278,
4872        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4873        0,     0,   279,     0,     0,     2,   280,   281,   282,   283,
4874      284,   285,   286,   287,     0,     0,   629,     0,   289,     0,
4875        0,     0,     0,     0,     0,     0,   290,   291,     0,   292,
4876      293,   294,   295,     0,     0,     0,     0,     0,     0,     0,
4877        0,     0,   273,     0,     0,     0,     0,     0,   274,   275,
4878      276,  1182,     0,     1,   269,    97,   270,     0,   271,   272,
4879        0,   277,   278,     0,     0,     0,     0,     0,     0,     0,
4880        0,     0,     0,     0,     0,   279,     0,     0,     2,   280,
4881      281,   282,   283,   284,   285,   286,   287,     0,     0,   638,
4882        0,   289,     0,     0,     0,     0,     0,     0,     0,   290,
4883      291,     0,   292,   293,   294,   295,     0,     0,     0,     0,
4884        0,     0,     0,     0,     0,   273,     0,     0,     0,     0,
4885        0,   274,   275,   276,  1185,     0,     1,   269,    97,   270,
4886        0,   271,   272,     0,   277,   278,     0,     0,     0,     0,
4887        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
4888        0,     2,   280,   281,   282,   283,   284,   285,   286,   287,
4889        0,     0,   288,     0,   289,     0,     0,     0,     0,     0,
4890        0,     0,   290,   291,     0,   292,   293,   294,   295,     0,
4891        0,     0,     0,     0,     0,     0,     0,     0,   273,     0,
4892        0,     0,     0,     0,   274,   275,   276,  1251,     0,     1,
4893      269,    97,   270,     0,   271,   272,     0,   277,   278,     0,
4894        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4895        0,   279,     0,     0,     2,   280,   281,   282,   283,   284,
4896      285,   286,   287,     0,     0,   288,     0,   289,     0,     0,
4897        0,     0,     0,     0,     0,   290,   291,     0,   292,   293,
4898      294,   295,     0,     0,     0,     0,     0,     0,     0,     0,
4899        0,   273,     0,     0,     0,     0,     0,   274,   275,   276,
4900     1254,     0,     1,   269,    97,   270,     0,   271,   272,     0,
4901      277,   278,     0,     0,     0,     0,     0,     0,     0,     0,
4902        0,     0,     0,     0,   279,     0,     0,     2,   280,   281,
4903      282,   283,   284,   285,   286,   287,     0,     0,   288,     0,
4904      289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
4905        0,   292,   293,   294,   295,     0,     0,     0,     0,     0,
4906        0,     0,     0,     0,   273,     0,     0,     0,     0,     0,
4907      274,   275,   276,  1532,     0,     1,   269,    97,   270,     0,
4908      271,   272,     0,   277,   278,     0,     0,     0,     0,     0,
4909        0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
4910        2,   280,   281,   282,   283,   284,   285,   286,   287,     0,
4911        0,   288,     0,   289,     0,     0,     0,     0,     0,     0,
4912        0,   290,   291,     0,   292,   293,   294,   295,     0,     0,
4913        0,     0,     0,     0,     0,     0,     0,   273,     0,     0,
4914        0,     0,     0,   274,   275,   276,  1538,     0,     1,   269,
4915       97,   270,     0,   271,   272,     0,   277,   278,     0,     0,
4916        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4917      279,     0,     0,     2,   280,   281,   282,   283,   284,   285,
4918      286,   287,     0,     0,   288,     0,   289,     0,     0,     0,
4919        0,     0,     0,     0,   290,   291,     0,   292,   293,   294,
4920      295,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4921      273,     0,     0,     0,     0,     0,   274,   275,   276,     0,
4922        0,     0,     0,     0,     0,     0,     0,     0,     0,   277,
4923      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4924        0,     0,     0,   279,     0,     0,     0,   280,   281,   282,
4925      283,   284,   285,   286,   287,     0,     0,   288,     0,   289,
4926     -257,   834,     0,     1,   269,    97,     0,   290,   291,     0,
4927      292,   293,   294,   295,     0,     0,     0,     0,     0,     0,
4928        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
4929      173,   174,   175,   176,     8,     9,    10,    11,    12,    13,
4930       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
4931       24,     0,     0,  -257,     0,     0,     0,     0,     0,     0,
4932        0,     0,     0,     0,     0,   273,    27,     0,   376,     0,
4933        0,   274,   275,     0,    28,    29,     0,     0,   377,    32,
4934      378,   379,    35,    36,     0,   380,    38,    39,   381,     0,
4935        0,   382,   383,   384,   385,     0,   386,     0,   387,   388,
4936       40,     0,   280,   281,   282,   283,   284,   285,   286,    43,
4937        0,     0,   389,     0,   390,   391,  -255,   837,  -257,     1,
4938      269,    97,   290,   291,     0,     0,     0,     0,     0,     0,
4939        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4940        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
4941        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
4942       18,    19,    20,    21,    22,    23,    24,     0,     0,  -255,
4943        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4944        0,   273,    27,     0,   376,     0,     0,   274,   275,     0,
4945       28,    29,     0,     0,   377,    32,   378,   379,    35,    36,
4946        0,   380,    38,    39,   381,     0,     0,   382,   383,   384,
4947      385,     0,   386,     0,   387,   388,    40,     0,   280,   281,
4948      282,   283,   284,   285,   286,    43,     0,     0,   389,     0,
4949      390,   391,  -258,   834,  -255,     1,   269,    97,   290,   291,
4950        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4951        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4952        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
4953       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
4954       22,    23,    24,     0,     0,  -258,     0,     0,     0,     0,
4955        0,     0,     0,     0,     0,     0,     0,   273,    27,     0,
4956      376,     0,     0,   274,   275,     0,    28,    29,     0,     0,
4957      377,    32,   378,   379,    35,    36,     0,   380,    38,    39,
4958      381,     0,     0,   382,   383,   384,   385,     0,   386,     0,
4959      387,   388,    40,     0,   280,   281,   282,   283,   284,   285,
4960      286,    43,     0,     0,   389,     0,   390,   391,  -256,   837,
4961     -258,     1,   269,    97,   290,   291,     0,     0,     0,     0,
4962        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4963        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
4964      175,   176,     8,     9,    10,    11,    12,    13,    14,    15,
4965       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
4966        0,  -256,     0,     0,     0,     0,     0,     0,     0,     0,
4967        0,     0,     0,   273,    27,     0,   376,     0,     0,   274,
4968      275,     0,    28,    29,     0,     0,   377,    32,   378,   379,
4969       35,    36,     0,   380,    38,    39,   381,     0,     0,   382,
4970      383,   384,   385,     0,   386,     0,   387,   388,    40,     0,
4971      280,   281,   282,   283,   284,   285,   286,    43,     0,     0,
4972      389,     0,   390,   391,     0,   375,  -256,     1,   269,    97,
4973      290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
4974        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4975        0,     0,     2,   172,   173,   174,   175,   176,     8,     9,
4976       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
4977       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
4978        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
4979       27,     0,   376,     0,     0,   274,   275,     0,    28,    29,
4980        0,     0,   377,    32,   378,   379,    35,    36,     0,   380,
4981       38,    39,   381,     0,     0,   382,   383,   384,   385,     0,
4982      386,     0,   387,   388,    40,     0,   280,   281,   282,   283,
4983      284,   285,   286,    43,     0,     0,   389,     0,   390,   391,
4984        0,   443,   392,     1,   269,    97,   290,   291,     0,     0,
4985        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4986        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
4987      173,   174,   175,   176,     8,     9,    10,    11,    12,    13,
4988       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
4989       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4990        0,     0,     0,     0,     0,   273,    27,     0,   376,     0,
4991        0,   274,   275,     0,    28,    29,     0,     0,   377,    32,
4992      378,   379,    35,    36,     0,   380,    38,    39,   381,     0,
4993        0,   382,   383,   384,   385,     0,   386,     0,   387,   388,
4994       40,     0,   280,   281,   282,   283,   284,   285,   286,    43,
4995        0,     0,   389,     0,   390,   391,     0,   465,   444,     1,
4996      269,    97,   290,   291,     0,     0,     0,     0,     0,     0,
4997        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
4998        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
4999        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
5000       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
5001        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5002        0,   273,    27,     0,   376,     0,     0,   274,   275,     0,
5003       28,    29,     0,     0,   377,    32,   378,   379,    35,    36,
5004        0,   380,    38,    39,   381,     0,     0,   382,   383,   384,
5005      385,     0,   386,     0,   387,   388,    40,     0,   280,   281,
5006      282,   283,   284,   285,   286,    43,     0,     0,   389,     0,
5007      390,   391,     0,   470,   466,     1,   269,    97,   290,   291,
5008        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5009        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5010        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
5011       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
5012       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5013        0,     0,     0,     0,     0,     0,     0,   273,    27,     0,
5014      376,     0,     0,   274,   275,     0,    28,    29,     0,     0,
5015      377,    32,   378,   379,    35,    36,     0,   380,    38,    39,
5016      381,     0,     0,   382,   383,   384,   385,     0,   386,     0,
5017      387,   388,    40,     0,   280,   281,   282,   283,   284,   285,
5018      286,    43,     0,     0,   389,     0,   390,   391,     0,   474,
5019      471,     1,   269,    97,   290,   291,     0,     0,     0,     0,
5020        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5021        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
5022      175,   176,     8,     9,    10,    11,    12,    13,    14,    15,
5023       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5024        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5025        0,     0,     0,   273,    27,     0,   376,     0,     0,   274,
5026      275,     0,    28,    29,     0,     0,   377,    32,   378,   379,
5027       35,    36,     0,   380,    38,    39,   381,     0,     0,   382,
5028      383,   384,   385,     0,   386,     0,   387,   388,    40,     0,
5029      280,   281,   282,   283,   284,   285,   286,    43,     0,     0,
5030      389,     0,   390,   391,     0,   834,   475,     1,   269,    97,
5031      290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
5032        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5033        0,     0,     2,   172,   173,   174,   175,   176,     8,     9,
5034       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
5035       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
5036        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
5037       27,     0,   376,     0,     0,   274,   275,     0,    28,    29,
5038        0,     0,   377,    32,   378,   379,    35,    36,     0,   380,
5039       38,    39,   381,     0,     0,   382,   383,   384,   385,     0,
5040      386,     0,   387,   388,    40,     0,   280,   281,   282,   283,
5041      284,   285,   286,    43,     0,     0,   389,     0,   390,   391,
5042        0,   837,  -776,     1,   269,    97,   290,   291,     0,     0,
5043        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5044        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
5045      173,   174,   175,   176,     8,     9,    10,    11,    12,    13,
5046       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
5047       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5048        0,     0,     0,     0,     0,   273,    27,     0,   376,     0,
5049        0,   274,   275,     0,    28,    29,     0,     0,   377,    32,
5050      378,   379,    35,    36,     0,   380,    38,    39,   381,     0,
5051        0,   382,   383,   384,   385,     0,   386,     0,   387,   388,
5052       40,     0,   280,   281,   282,   283,   284,   285,   286,    43,
5053        0,     0,   389,     0,   390,   391,     0,   834,  -777,     1,
5054      269,    97,   290,   291,     0,     0,     0,     0,     0,     0,
5055        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5056        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
5057        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
5058       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
5059        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5060        0,   273,    27,     0,   376,     0,     0,   274,   275,     0,
5061       28,    29,     0,     0,   377,    32,   378,   379,    35,    36,
5062        0,   380,    38,    39,   381,     0,     0,   382,   383,   384,
5063      385,     0,   386,     0,   387,   388,    40,     0,   280,   281,
5064      282,   283,   284,   285,   286,    43,     0,     0,   389,     0,
5065      390,   391,     0,   837,  -773,     1,   269,    97,   290,   291,
5066        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5067        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5068        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
5069       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
5070       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5071        0,     0,     0,     0,     0,     0,     0,   273,    27,     0,
5072      376,     0,     0,   274,   275,     0,    28,    29,     0,     0,
5073      377,    32,   378,   379,    35,    36,     0,   380,    38,    39,
5074      381,     0,     0,   382,   383,   384,   385,     0,   386,     0,
5075      387,   388,    40,     0,   280,   281,   282,   283,   284,   285,
5076      286,    43,     0,     0,   389,     0,   390,   391,     0,   834,
5077     -774,     1,   269,    97,   290,   291,     0,     0,     0,     0,
5078        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5079        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
5080      175,   176,     8,     9,    10,    11,    12,    13,    14,    15,
5081       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5082        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5083        0,     0,     0,   273,    27,     0,   376,     0,     0,   274,
5084      275,     0,    28,    29,     0,     0,   377,    32,   378,   379,
5085       35,    36,     0,   380,    38,    39,   381,     0,     0,   382,
5086      383,   384,   385,     0,   386,     0,   387,   388,    40,     0,
5087      280,   281,   282,   283,   284,   285,   286,    43,     0,     0,
5088      389,     0,   390,   391,     0,   837,  -779,     1,   269,    97,
5089      290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
5090        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5091        0,     0,     2,   172,   173,   174,   175,   176,     8,     9,
5092       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
5093       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
5094        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
5095       27,     0,   376,     0,     0,   274,   275,     0,    28,    29,
5096        0,     0,   377,    32,   378,   379,    35,    36,     0,   380,
5097       38,    39,   381,     0,     0,   382,   383,   384,   385,     0,
5098      386,     0,   387,   388,    40,     0,   280,   281,   282,   283,
5099      284,   285,   286,    43,     0,     0,   389,     0,   390,   391,
5100        0,   941,  -780,     1,   269,    97,   290,   291,     0,     0,
5101        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5102        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
5103      173,   174,   175,   176,     8,     9,    10,    11,    12,    13,
5104       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
5105       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5106        0,     0,     0,     0,     0,   273,    27,     0,   376,     0,
5107        0,   274,   275,     0,    28,    29,     0,     0,   377,    32,
5108      378,   379,    35,    36,     0,   380,    38,    39,   381,     0,
5109        0,   382,   383,   384,   385,     0,   386,     0,   387,   388,
5110       40,     0,   280,   281,   282,   283,   284,   285,   286,    43,
5111        0,     0,   389,     0,   390,   391,     0,   945,   942,     1,
5112      269,    97,   290,   291,     0,     0,     0,     0,     0,     0,
5113        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5114        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
5115        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
5116       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
5117        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5118        0,   273,    27,     0,   376,     0,     0,   274,   275,     0,
5119       28,    29,     0,     0,   377,    32,   378,   379,    35,    36,
5120        0,   380,    38,    39,   381,     0,     0,   382,   383,   384,
5121      385,     0,   386,     0,   387,   388,    40,     0,   280,   281,
5122      282,   283,   284,   285,   286,    43,     0,     0,   389,     0,
5123      390,   391,     0,   834,   946,     1,   269,    97,   290,   291,
5124        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5125        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5126        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
5127       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
5128       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5129        0,     0,     0,     0,     0,     0,     0,   273,    27,     0,
5130      376,     0,     0,   274,   275,     0,    28,    29,     0,     0,
5131      377,    32,   378,   379,    35,    36,     0,   380,    38,    39,
5132      381,     0,     0,   382,   383,   384,   385,     0,   386,     0,
5133      387,   388,    40,     0,   280,   281,   282,   283,   284,   285,
5134      286,    43,     0,     0,   389,     0,   390,   391,     0,   837,
5135     -759,     1,   269,    97,   290,   291,     0,     0,     0,     0,
5136        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5137        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
5138      175,   176,     8,     9,    10,    11,    12,    13,    14,    15,
5139       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5140        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5141        0,     0,     0,   273,    27,     0,   376,     0,     0,   274,
5142      275,     0,    28,    29,     0,     0,   377,    32,   378,   379,
5143       35,    36,     0,   380,    38,    39,   381,     0,     0,   382,
5144      383,   384,   385,     0,   386,     0,   387,   388,    40,     0,
5145      280,   281,   282,   283,   284,   285,   286,    43,     0,     0,
5146      389,     0,   390,   391,     0,   834,  -760,     1,   269,    97,
5147      290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
5148        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5149        0,     0,     2,   172,   173,   174,   175,   176,     8,     9,
5150       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
5151       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
5152        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
5153       27,     0,   376,     0,     0,   274,   275,     0,    28,    29,
5154        0,     0,   377,    32,   378,   379,    35,    36,     0,   380,
5155       38,    39,   381,     0,     0,   382,   383,   384,   385,     0,
5156      386,     0,   387,   388,    40,     0,   280,   281,   282,   283,
5157      284,   285,   286,    43,     0,     0,   389,     0,   390,   391,
5158        0,   837,  -762,     1,   269,    97,   290,   291,     0,     0,
5159        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5160        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
5161      173,   174,   175,   176,     8,     9,    10,    11,    12,    13,
5162       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
5163       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5164        0,     0,     0,     0,     0,   273,    27,     0,   376,     0,
5165        0,   274,   275,     0,    28,    29,     0,     0,   377,    32,
5166      378,   379,    35,    36,     0,   380,    38,    39,   381,     0,
5167        0,   382,   383,   384,   385,     0,   386,     0,   387,   388,
5168       40,     0,   280,   281,   282,   283,   284,   285,   286,    43,
5169        0,     0,   389,     0,   390,   391,     0,   834,  -763,     1,
5170      269,    97,   290,   291,     0,     0,     0,     0,     0,     0,
5171        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5172        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
5173        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
5174       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
5175        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5176        0,   273,    27,     0,   376,     0,     0,   274,   275,     0,
5177       28,    29,     0,     0,   377,    32,   378,   379,    35,    36,
5178        0,   380,    38,    39,   381,     0,     0,   382,   383,   384,
5179      385,     0,   386,     0,   387,   388,    40,     0,   280,   281,
5180      282,   283,   284,   285,   286,    43,     0,     0,   389,     0,
5181      390,   391,     0,   837,  -687,     1,   269,    97,   290,   291,
5182        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5183        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5184        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
5185       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
5186       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5187        0,     0,     0,     0,     0,     0,     0,   273,    27,     0,
5188      376,     0,     0,   274,   275,     0,    28,    29,     0,     0,
5189      377,    32,   378,   379,    35,    36,     0,   380,    38,    39,
5190      381,     0,     0,   382,   383,   384,   385,     0,   386,     0,
5191      387,   388,    40,     0,   280,   281,   282,   283,   284,   285,
5192      286,    43,     0,     0,   389,     0,   390,   391,     0,   834,
5193     -688,     1,   269,    97,   290,   291,     0,     0,     0,     0,
5194        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5195        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
5196      175,   176,     8,     9,    10,    11,    12,    13,    14,    15,
5197       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5198        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5199        0,     0,     0,   273,    27,     0,   376,     0,     0,   274,
5200      275,     0,    28,    29,     0,     0,   377,    32,   378,   379,
5201       35,    36,     0,   380,    38,    39,   381,     0,     0,   382,
5202      383,   384,   385,     0,   386,     0,   387,   388,    40,     0,
5203      280,   281,   282,   283,   284,   285,   286,    43,     0,     0,
5204      389,     0,   390,   391,     0,   837,  -680,     1,   269,    97,
5205      290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
5206        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5207        0,     0,     2,   172,   173,   174,   175,   176,     8,     9,
5208       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
5209       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
5210        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
5211       27,     0,   376,     0,     0,   274,   275,     0,    28,    29,
5212        0,     0,   377,    32,   378,   379,    35,    36,     0,   380,
5213       38,    39,   381,     0,     0,   382,   383,   384,   385,     0,
5214      386,     0,   387,   388,    40,     0,   280,   281,   282,   283,
5215      284,   285,   286,    43,     0,     0,   389,     0,   390,   391,
5216        0,   834,  -681,     1,   269,    97,   290,   291,     0,     0,
5217        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5218        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
5219      173,   174,   175,   176,     8,     9,    10,    11,    12,    13,
5220       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
5221       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5222        0,     0,     0,     0,     0,   273,    27,     0,   376,     0,
5223        0,   274,   275,     0,    28,    29,     0,     0,   377,    32,
5224      378,   379,    35,    36,     0,   380,    38,    39,   381,     0,
5225        0,   382,   383,   384,   385,     0,   386,     0,   387,   388,
5226       40,     0,   280,   281,   282,   283,   284,   285,   286,    43,
5227        0,     0,   389,     0,   390,   391,     0,   837,  -676,     1,
5228      269,    97,   290,   291,     0,     0,     0,     0,     0,     0,
5229        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5230        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
5231        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
5232       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
5233        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5234        0,   273,    27,     0,   376,     0,     0,   274,   275,     0,
5235       28,    29,     0,     0,   377,    32,   378,   379,    35,    36,
5236        0,   380,    38,    39,   381,     0,     0,   382,   383,   384,
5237      385,     0,   386,     0,   387,   388,    40,     0,   280,   281,
5238      282,   283,   284,   285,   286,    43,     0,     0,   389,     0,
5239      390,   391,     0,   834,  -677,     1,   269,    97,   290,   291,
5240        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5241        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5242        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
5243       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
5244       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5245        0,     0,     0,     0,     0,     0,     0,   273,    27,     0,
5246      376,     0,     0,   274,   275,     0,    28,    29,     0,     0,
5247      377,    32,   378,   379,    35,    36,     0,   380,    38,    39,
5248      381,     0,     0,   382,   383,   384,   385,     0,   386,     0,
5249      387,   388,    40,     0,   280,   281,   282,   283,   284,   285,
5250      286,    43,     0,     0,   389,     0,   390,   391,     0,   837,
5251     -666,     1,   269,    97,   290,   291,     0,     0,     0,     0,
5252        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5253        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
5254      175,   176,     8,     9,    10,    11,    12,    13,    14,    15,
5255       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5256        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5257        0,     0,     0,   273,    27,     0,   376,     0,     0,   274,
5258      275,     0,    28,    29,     0,     0,   377,    32,   378,   379,
5259       35,    36,     0,   380,    38,    39,   381,     0,     0,   382,
5260      383,   384,   385,     0,   386,     0,   387,   388,    40,     0,
5261      280,   281,   282,   283,   284,   285,   286,    43,     0,     0,
5262      389,     0,   390,   391,     0,   834,  -667,     1,   269,    97,
5263      290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
5264        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5265        0,     0,     2,   172,   173,   174,   175,   176,     8,     9,
5266       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
5267       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
5268        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
5269       27,     0,   376,     0,     0,   274,   275,     0,    28,    29,
5270        0,     0,   377,    32,   378,   379,    35,    36,     0,   380,
5271       38,    39,   381,     0,     0,   382,   383,   384,   385,     0,
5272      386,     0,   387,   388,    40,     0,   280,   281,   282,   283,
5273      284,   285,   286,    43,     0,     0,   389,     0,   390,   391,
5274        0,   837,  -661,     1,   269,    97,   290,   291,     0,     0,
5275        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5276        0,     0,     0,     0,     0,     0,     0,     0,     2,   172,
5277      173,   174,   175,   176,     8,     9,    10,    11,    12,    13,
5278       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
5279       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5280        0,     0,     0,     0,     0,   273,    27,     0,   376,     0,
5281        0,   274,   275,     0,    28,    29,     0,     0,   377,    32,
5282      378,   379,    35,    36,     0,   380,    38,    39,   381,     0,
5283        0,   382,   383,   384,   385,     0,   386,     0,   387,   388,
5284       40,     0,   280,   281,   282,   283,   284,   285,   286,    43,
5285        0,     0,   389,     0,   390,   391,     0,   834,  -662,     1,
5286      269,    97,   290,   291,     0,     0,     0,     0,     0,     0,
5287        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5288        0,     0,     0,     0,     2,   172,   173,   174,   175,   176,
5289        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
5290       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
5291        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5292        0,   273,    27,     0,   376,     0,     0,   274,   275,     0,
5293       28,    29,     0,     0,   377,    32,   378,   379,    35,    36,
5294        0,   380,    38,    39,   381,     0,     0,   382,   383,   384,
5295      385,     0,   386,     0,   387,   388,    40,     0,   280,   281,
5296      282,   283,   284,   285,   286,    43,     0,     0,   389,     0,
5297      390,   391,     0,   837,  -678,     1,   269,    97,   290,   291,
5298        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5299        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5300        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
5301       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
5302       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5303        0,     0,     0,     0,     0,     0,     0,   273,    27,     0,
5304      376,     0,     0,   274,   275,     0,    28,    29,     0,     0,
5305      377,    32,   378,   379,    35,    36,     0,   380,    38,    39,
5306      381,     0,     0,   382,   383,   384,   385,     0,   386,     0,
5307      387,   388,    40,     0,   280,   281,   282,   283,   284,   285,
5308      286,    43,     0,     0,   389,     0,   390,   391,     0,   268,
5309     -679,     1,   269,    97,   290,   291,     0,     0,     0,     0,
5310        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5311        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
5312      175,   176,     8,     9,    10,    11,    12,    13,    14,    15,
5313       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5314        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5315        0,     0,     0,   273,    27,     0,   376,     0,     0,   274,
5316      275,     0,    28,    29,     0,     0,   377,    32,   378,   379,
5317       35,    36,     0,   380,    38,    39,   381,     0,     0,   382,
5318      383,   384,   385,     0,   386,     0,   387,   388,    40,     0,
5319      280,   281,   282,   283,   284,   285,   286,    43,     0,     0,
5320      389,     0,   390,   391,   375,     0,     1,   269,    97,     0,
5321      290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
5322        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5323        0,     2,   172,   173,   174,   175,   176,     8,     9,    10,
5324       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
5325       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
5326        0,     0,     0,     0,     0,     0,     0,     0,   273,    27,
5327        0,   376,     0,     0,   274,   275,     0,    28,    29,     0,
5328        0,   377,    32,   378,   379,    35,    36,     0,   380,    38,
5329       39,   381,     0,     0,   382,   383,   384,   385,     0,   386,
5330        0,   387,   388,    40,     0,   280,   281,   282,   283,   284,
5331      285,   286,    43,     0,     0,   389,     0,   390,   391,   443,
5332        0,     1,   269,    97,     0,   290,   291,     0,     0,     0,
5333        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5334        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
5335      175,   176,     8,     9,    10,    11,    12,    13,    14,    15,
5336       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5337        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5338        0,     0,     0,   273,    27,     0,   376,     0,     0,   274,
5339      275,     0,    28,    29,     0,     0,   377,    32,   378,   379,
5340       35,    36,     0,   380,    38,    39,   381,     0,     0,   382,
5341      383,   384,   385,     0,   386,     0,   387,   388,    40,     0,
5342      280,   281,   282,   283,   284,   285,   286,    43,     0,   171,
5343      389,     1,   390,   391,     0,     0,     0,     0,     0,     0,
5344      290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
5345        0,     0,     0,     0,     0,     0,     2,   172,   173,   174,
5346      175,   176,     8,     9,    10,    11,    12,    13,    14,    15,
5347       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5348        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5349        0,     0,     0,   177,    27,     0,     0,     0,     0,     0,
5350        0,     0,    28,    29,     0,     0,     0,    32,     0,     0,
5351       35,    36,     0,    37,    38,    39,     0,     0,     0,     0,
5352        0,     0,     0, -1187,     0,     0,     0,     0,    40,     0,
5353        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
5354      774,   949,     0,     0,     0,     0,     0,     0,     0,     0,
5355        0,   508, -1187, -1187, -1187, -1187, -1187, -1187, -1187, -1187,
5356    -1187, -1187, -1187, -1187, -1187, -1187, -1187, -1187, -1187, -1187,
5357    -1187, -1187, -1187, -1187,     0, -1187, -1187, -1187, -1187, -1187,
5358    -1187, -1187, -1187, -1187, -1187, -1187,     0,     0,     0, -1187,
5359        0, -1187,     0,     0,     0,     0,     0, -1187, -1187,     0,
5360        0, -1187, -1187, -1187, -1187, -1187, -1187,     0,     0, -1187,
5361    -1187, -1187, -1187, -1187, -1187, -1187, -1187, -1187, -1170, -1187,
5362        0,     0, -1187, -1187,     0,     0,     0,     0,     0,     0,
5363        0,     0,     0,     0,     0,     0,     0,     0, -1187,     0,
5364        0, -1187, -1187,     0, -1187,     0,     0, -1170, -1170, -1170,
5365    -1170, -1170, -1170, -1170, -1170, -1170, -1170, -1170, -1170, -1170,
5366    -1170, -1170, -1170, -1170, -1170, -1170, -1170, -1170, -1170,     0,
5367    -1170, -1170, -1170, -1170, -1170, -1170, -1170, -1170, -1170, -1170,
5368    -1170,     0,     0,     0, -1170,     0, -1170,     0,     0,     0,
5369        0,     0, -1170, -1170,     0,     0, -1170, -1170, -1170, -1170,
5370    -1170, -1170,     0,     0, -1170, -1170, -1170, -1170, -1170, -1170,
5371    -1170, -1170, -1170, -1172, -1170,     0,     0, -1170, -1170,     0,
5372        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5373        0,     0,     0, -1170,     0,     0, -1170, -1170,     0, -1170,
5374        0,     0, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172,
5375    -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172,
5376    -1172, -1172, -1172, -1172,     0, -1172, -1172, -1172, -1172, -1172,
5377    -1172, -1172, -1172, -1172, -1172, -1172,     0,     0,     0, -1172,
5378        0, -1172,     0,     0,     0,     0,     0, -1172, -1172,     0,
5379        0, -1172, -1172, -1172, -1172, -1172, -1172,     0,     0, -1172,
5380    -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1169, -1172,
5381        0,     0, -1172, -1172,     0,     0,     0,     0,     0,     0,
5382        0,     0,     0,     0,     0,     0,     0,     0, -1172,     0,
5383        0, -1172, -1172,     0, -1172,     0,     0, -1169, -1169, -1169,
5384    -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169,
5385    -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169,     0,
5386    -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169,
5387    -1169,     0,     0,     0, -1169,     0, -1169,     0,     0,     0,
5388        0,     0, -1169, -1169,     0,     0, -1169, -1169, -1169, -1169,
5389    -1169, -1169,     0,     0, -1169, -1169, -1169, -1169, -1169, -1169,
5390    -1169, -1169, -1169, -1171, -1169,     0,     0, -1169, -1169,     0,
5391        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5392        0,     0,     0,     0,     0,     0, -1169, -1169,     0, -1169,
5393        0,     0, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171,
5394    -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171,
5395    -1171, -1171, -1171, -1171,     0, -1171, -1171, -1171, -1171, -1171,
5396    -1171, -1171, -1171, -1171, -1171, -1171,     0,     0,     0, -1171,
5397        0, -1171,     0,     0,     0,     0,     0, -1171, -1171,     0,
5398        0, -1171, -1171, -1171, -1171, -1171, -1171,     0,     0, -1171,
5399    -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171,     0, -1171,
5400        1,     0, -1171, -1171,     0,     0,     0,     0,     0,     0,
5401        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5402        0, -1171, -1171,     0, -1171,     2,   172,   173,   174,   175,
5403      176,   204,   205,   206,   207,   208,   209,   210,   211,   212,
5404      213,    18,    19,   214,   215,    22,    23,    24,     0,     0,
5405        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5406        0,     0,     0,   216,     0,     0,     0,     0,     0,     0,
5407        0,    28,    29,     0,     0,     0,    32,     0,     0,     0,
5408        0,     0,   217,    38,   218,     0,     0,     0,     0,     0,
5409        0,     0,     0,     0,     0,     0,     1,   219,     0,     0,
5410        0,     0,     0,     0,     0,     0,    43,     0,     0,   774,
5411        0,     0,     0,     0,     0,     0,  1354,     0,     0,     0,
5412      508,     2,   172,   173,   174,   175,   176,   204,   205,   206,
5413      207,   208,   209,   210,   211,   212,   213,    18,    19,   214,
5414      215,    22,    23,    24,     0,     0,     0,     0,     0,     0,
5415        0,     0,     0,     0,     0,     0,     0,     0,     0,   216,
5416        0,     0,     0,     0,     0,     0,     0,    28,    29,     0,
5417        0,     0,    32,     0,     0,     0,     0,     0,   217,    38,
5418      218,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5419        0,     0,     1,   219,     0,     0,     0,     0,     0,     0,
5420        0,     0,    43,     0,     0,  1107,     0,     0,     0,     0,
5421        0,     0,     0,     0,     0,     0,  1108,     2,   172,   173,
5422      174,   175,   176,   204,   205,   206,   207,   208,   209,   210,
5423      211,   212,   213,    18,    19,   214,   215,    22,    23,    24,
5424        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5425        0,     0,     0,     0,     0,   216,     0,     0,     0,     0,
5426        0,     0,     0,    28,    29,     0,     0,     0,    32,     0,
5427        0,     0,     0,     0,   217,    38,   218,     0,     0,     0,
5428        0,     0,     0,     0,     0,     0,     0,     0,     1,   219,
5429        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
5430        0,  1107,     0,     0,     0,     0,     0,     0,     0,     0,
5431        0,     0,  1130,     2,   172,   173,   174,   175,   176,   204,
5432      205,   206,   207,   208,   209,   210,   211,   212,   213,    18,
5433       19,   214,   215,    22,    23,    24,     0,     0,     0,     0,
5434        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5435        0,   216,     0,     0,     0,     0,     0,     0,     0,    28,
5436       29,     0,     0,     0,    32,     0,     0,     0,     0,     0,
5437      217,    38,   218,     0,     0,     0,     0,     0,     0,     0,
5438        0,     0,     0,     0,     1,   219,     0,     0,     0,     0,
5439        0,     0,     0,     0,    43,     0,     0,  1107,     0,     0,
5440        0,     0,     0,     0,     0,     0,     0,     0,  1591,     2,
5441      172,   173,   174,   175,   176,   204,   205,   206,   207,   208,
5442      209,   210,   211,   212,   213,    18,    19,   214,   215,    22,
5443       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
5444        0,     0,     0,     0,     0,     0,     0,   216,     0,     0,
5445        0,     0,     0,     0,     0,    28,    29,     0,     0,     0,
5446       32,     0,     0,     0,     0,     0,   217,    38,   218,     0,
5447        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5448        1,   219,     0,     0,     0,     0,     0,     0,     0,     0,
5449       43,     0,     0,  1107,     0,     0,     0,     0,     0,     0,
5450        0,     0,     0,     0,  1606,     2,     3,     4,   239,     6,
5451        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
5452       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
5453        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5454        0,     0,    26,    27,     0,     0,     0,     0,     0,     0,
5455        0,    28,    29,   240,    31,     0,    32,     0,     0,    35,
5456       36,     0,    37,    38,    39,     0,     0,     0,     0,     0,
5457        0,     0,     0,     0,     1,     0,     0,    40,     0,     0,
5458        0,     0,    42,     0,     0,     0,    43,     0,     0,    44,
5459        0,     0,     0,     0,     0,     0,     0,     0,   241,     2,
5460      172,   173,   174,   175,   176,     8,     9,    10,    11,    12,
5461       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
5462       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
5463        0,     0,     0,     0,     0,     0,     0,    27,     0,   376,
5464        0,     0,     0,     0,     0,    28,    29,     0,     0,   377,
5465       32,     0,     0,    35,    36,     0,    37,    38,    39,     0,
5466        0,     0,     0,     0,     0,     0,     0,     0,     1,     0,
5467        0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
5468       43,     0,     0,   862,     0,   390,     0,     0,     0,     0,
5469        0,     0,   863,     2,   172,   173,   174,   175,   176,     8,
5470        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
5471       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
5472        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5473        0,    27,     0,     0,     0,     0,     0,     0,     0,    28,
5474       29,     0,     0,     0,    32,     0,     0,    35,    36,     0,
5475       37,    38,    39,     0,     0,     0,     0,     0,     0,     0,
5476        0,     0,     1,     0,     0,    40,     0,     0,     0,     0,
5477        0,     0,     0,     0,    43,     0,     0,   842,     0,     0,
5478      843,     0,     0,     0,     0,     0,   844,     2,   172,   173,
5479      174,   175,   176,     8,     9,    10,    11,    12,    13,    14,
5480       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
5481        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5482        0,     0,     0,     0,     0,    27,     0,     0,     0,     0,
5483        0,     0,     0,    28,    29,     0,     0,     0,    32,     0,
5484        0,    35,    36,     0,    37,    38,    39,     0,     0,     0,
5485        0,     0,     0,     0,     0,     0,     1,     0,     0,    40,
5486        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
5487        0,   842,     0,     0,  1394,     0,     0,     0,     0,     0,
5488      844,     2,   172,   173,   174,   175,   176,     8,     9,    10,
5489       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
5490       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
5491        0,     0,     0,     0,     0,     0,     0,     0,     0,    27,
5492        0,     0,     0,     0,     0,     0,     0,    28,    29,     0,
5493        0,     0,    32,     0,     0,    35,    36,     0,    37,    38,
5494       39,     0,     0,     0,     0,     0,     0,     0,   555,     0,
5495        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
5496        0,     0,    43,     0,     0,    44,     0,     0,     0,     0,
5497        0,     0,     0,     0,   844,     2,   172,   173,   174,   175,
5498      176,   204,   205,   206,   207,   208,   209,   210,   211,   212,
5499      213,    18,    19,   214,   215,    22,    23,    24,     0,     0,
5500        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5501        0,     0,     0,   216,     0,     0,     0,     0,     0,     0,
5502        0,    28,    29,     0,     0,     0,    32,     0,     0,     0,
5503        0,     0,   217,    38,   218,     0,     0,     0,     0,     0,
5504     1418,     0,     0,     0,     0,     0,     0,   219,     0,     0,
5505        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5506        0,     0,     0,     0,     0,     0,   220,   -65,   -65,   -65,
5507      -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,
5508      -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,
5509        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5510        0,     0,     0,     0,     0,   -65,     0,     0,     0,     0,
5511        0,     0,     0,   -65,   -65,     0,     0,     0,   -65,     0,
5512        0,     0,     0,     0,   -65,   -65,   -65,     0,     0,     0,
5513        0,  1616,     0,     0,     0,     0,     0,     0,     0,   -65,
5514        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5515        0,     0,     0,     0,  1419,     0,  1420,   -65,     2,   172,
5516      173,   174,   175,   176,   204,   205,   206,   207,   208,   209,
5517      210,   211,   212,   213,    18,    19,   214,   215,    22,    23,
5518       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5519        0,     0,     0,     0,     0,     0,   216,     0,     0,     0,
5520        0,     0,     0,     0,    28,    29,     0,     0,     0,    32,
5521        0,     0,     0,     0,     0,   217,    38,   218,     0,     0,
5522        0,     0,  1620,     0,     0,     0,     0,     0,     0,     0,
5523      219,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5524        0,     0,     0,     0,     0,     0,     0,     0,  -110,     2,
5525      172,   173,   174,   175,   176,   204,   205,   206,   207,   208,
5526      209,   210,   211,   212,   213,    18,    19,   214,   215,    22,
5527       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
5528        0,     0,     0,     0,     0,     0,     0,   216,     0,     0,
5529        0,     0,     0,     0,     0,    28,    29,     0,     0,     0,
5530       32,     0,     0,     0,     0,     0,   217,    38,   218,     0,
5531        0,     0,     0,  1621,     0,     0,     0,     0,     0,     0,
5532        0,   219,     0,     0,     0,     0,     0,     0,     0,     0,
5533        0,     0,     0,     0,     0,     0,     0,     0,     0,   -94,
5534        2,   172,   173,   174,   175,   176,   204,   205,   206,   207,
5535      208,   209,   210,   211,   212,   213,    18,    19,   214,   215,
5536       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5537        0,     0,     0,     0,     0,     0,     0,     0,   216,     0,
5538        0,     0,     0,     0,     0,     0,    28,    29,     0,     0,
5539        0,    32,     0,     0,     0,     0,     0,   217,    38,   218,
5540        0,     0,     0,     0,  1725,     0,     0,     0,     0,     0,
5541        0,     0,   219,     0,     0,     0,     0,     0,     0,     0,
5542        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5543      -95,     2,   172,   173,   174,   175,   176,   204,   205,   206,
5544      207,   208,   209,   210,   211,   212,   213,    18,    19,   214,
5545      215,    22,    23,    24,     0,     0,     0,     0,     0,     0,
5546        0,     0,     0,     0,     0,     0,     0,     0,     0,   216,
5547        0,     0,     0,     0,     0,     0,     0,    28,    29,     0,
5548        0,     0,    32,     0,     0,     0,     0,     0,   217,    38,
5549      218,     0,     0,     0,     0,  1867,     0,     0,     0,     0,
5550        0,     0,     0,   219,     0,     0,     0,     0,     0,     0,
5551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5552        0,   -79,     2,   172,   173,   174,   175,   176,   204,   205,
5553      206,   207,   208,   209,   210,   211,   212,   213,    18,    19,
5554      214,   215,    22,    23,    24,     0,     0,     0,     0,     0,
5555        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5556      216,     0,     0,     0,     0,     0,     0,     0,    28,    29,
5557        0,     0,     0,    32,     0,     0,     0,     0,     0,   217,
5558       38,   218,     0,     0,     0, -1250,   258,     0,     1,     0,
5559        0,     0,     0,     0,   219,     0,     0,     0,     0,     0,
5560        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5561        0,     0,   -86,     2,     3,     4,     5,     6,     7,     8,
5562        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
5563       19,    20,    21,    22,    23,    24,     0,     0,    25,     0,
5564        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5565       26,    27,     0,     0,     0,     0,     0,     0,     0,    28,
5566       29,    30,    31,     0,    32,    33,    34,    35,    36,     0,
5567       37,    38,    39,     0,     0,     0,     1,     0,     0,     0,
5568        0,     0,     0,     0,     0,    40,    41,     0,     0,     0,
5569       42,     0,     0,     0,    43,     0,     0,    44,     0,     0,
5570       45,     2,   172,   173,   174,   175,   176,     8,     9,    10,
5571       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
5572       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
5573        0,     0,     0,     0,     0,     0,     0,     0,     0,    27,
5574        0,     0,     0,     0,     0,     0,     0,    28,    29,     0,
5575        0,     0,    32,     0,     0,    35,    36,     0,    37,    38,
5576       39,     0,     0,     0,     0,     0,     0,     1,     0,     0,
5577        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
5578      758,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5579        0,  1308,     2,   172,   173,   174,   175,   176,     8,     9,
5580       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
5581       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
5582        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5583       27,     0,     0,     0,     0,     0,     0,     0,    28,    29,
5584        0,     0,     0,    32,     0,     0,    35,    36,     0,    37,
5585       38,    39,     0,     0,     0,     0,     0,     0,     1,     0,
5586        0,     0,     0,     0,    40,     0,     0,     0,     0,     0,
5587        0,   758,     0,     0,     0,     0,     0,     0,     0,     0,
5588        0,     0,  1648,     2,   172,   173,   174,   175,   176,     8,
5589        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
5590       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
5591        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5592        0,    27,     0,     0,     0,     0,     0,     0,     0,    28,
5593       29,     0,     0,     0,    32,     0,     0,    35,    36,     0,
5594       37,    38,    39,     0,     0,     0,     0,   147,     0,     1,
5595        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
5596        0,     0,   758,     0,     0,     0,     0,     0,     0,     0,
5597        0,     0,     0,  1649,     2,     3,     4,   148,     6,     7,
5598        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
5599       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
5600        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5601        0,    26,    27,     0,     0,     0,     0,     0,     0,     0,
5602       28,    29,     0,     0,     0,    32,     0,     0,    35,    36,
5603        0,    37,    38,    39,     0,   147,     0,     1,     0,     0,
5604        0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
5605        0,     0,     0,     0,     0,    43,     0,     0,    44,     0,
5606        0,   149,     2,     3,     4,   148,     6,     7,     8,     9,
5607       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
5608       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
5609        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5610       27,     0,     0,     0,     0,     0,     0,     0,    28,    29,
5611        0,     0,     0,    32,     0,     0,    35,    36,     0,    37,
5612       38,    39,     0,   542,     0,     1,     0,     0,     0,     0,
5613        0,     0,     0,     0,    40,     0,     0,     0,     0,     0,
5614        0,     0,     0,    43,     0,     0,    44,     0,     0,   149,
5615        2,   172,   173,   174,   175,   176,   204,   205,   206,   207,
5616      208,   209,   210,   211,   212,   213,    18,    19,   214,   215,
5617       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5618        0,     0,     0,     0,     0,     0,     0,     0,   216,     0,
5619        0,     0,     0,     0,     0,     0,    28,    29,     0,     0,
5620        0,    32,     0,     0,     0,     0,     0,   217,    38,   218,
5621        0,  -918,     0,  -918,     0,     0,     0,     0,     0,     0,
5622        0,     0,   219,     0,     0,     0,     0,     0,     0,     0,
5623        0,    43,     0,     0,    44,     0,     0,   543,  -918,  -918,
5624     -918,  -918,  -918,  -918,  -918,  -918,  -918,  -918,  -918,  -918,
5625     -918,  -918,  -918,  -918,  -918,  -918,  -918,  -918,  -918,  -918,
5626     -918,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5627        0,     0,     0,     0,     0,     0,  -918,     0,     0,     0,
5628        0,     0,     0,     0,  -918,  -918,     0,     0,     0,  -918,
5629        0,     0,     0,     0,     0,  -918,  -918,  -918,     0,     0,
5630        0,     1,     0,     0,     0,     0,     0,     0,     0,     0,
5631     -918,     0,     0,     0,     0,     0,     0,     0,     0,  -918,
5632        0,     0,  -918,     0,     0,  -918,     2,     3,     4,     5,
5633        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
5634       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5635        0,    25,     0,     0,     0,     0,     0,     0,     0,     0,
5636        0,     0,     0,    26,    27,     0,     0,     0,     0,     0,
5637        0,     0,    28,    29,    30,    31,     0,    32,    33,    34,
5638       35,    36,     0,    37,    38,    39, -1251,   250,     0,     1,
5639        0,     0,     0,     0,     0,     0,     0,     0,    40,    41,
5640        0,     0,     0,    42,     0,     0,     0,    43,     0,     0,
5641       44,     0,     0,    45,     2,     3,     4,   148,     6,     7,
5642        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
5643       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
5644        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5645        0,    26,    27,     0,     0,     0,     0,     0,     0,     0,
5646       28,    29,     0,     0,     0,    32,    33,    34,    35,    36,
5647        0,    37,    38,    39,   171,     0,     1,     0,     0,     0,
5648        0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
5649        0,     0,     0,     0,     0,    43,     0,     0,    44,     0,
5650        0,     2,   172,   173,   174,   175,   176,     8,     9,    10,
5651       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
5652       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
5653        0,     0,     0,     0,     0,     0,     0,     0,   177,    27,
5654        0,     0,     0,     0,     0,     0,     0,    28,    29,     0,
5655        0,     0,    32,     0,     0,    35,    36,     0,    37,    38,
5656       39,   171,     0,     1,     0,     0,     0,     0,     0,     0,
5657        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
5658        0,     0,    43,     0,     0,  1107,  1578,     0,     2,   172,
5659      173,   174,   175,   176,     8,     9,    10,    11,    12,    13,
5660       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
5661       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5662        0,     0,     0,     0,     0,   177,    27,     0,     0,     0,
5663        0,     0,     0,     0,    28,    29,     0,     0,     0,    32,
5664        0,     0,    35,    36,     0,    37,    38,    39,   854,     0,
5665        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5666       40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5667        0,     0,     0,   178,     0,     2,   172,   173,   174,   175,
5668      176,     8,     9,    10,    11,    12,    13,    14,    15,    16,
5669       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
5670        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5671        0,     0,   177,    27,     0,     0,     0,     0,     0,     0,
5672        0,    28,    29,     0,     0,     0,    32,     0,     0,    35,
5673       36,     0,    37,    38,    39,   171,     0,     1,     0,     0,
5674        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
5675        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5676      178,     0,     2,   172,   173,   174,   175,   176,     8,     9,
5677       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
5678       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
5679        0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
5680       27,     0,     0,     0,     0,     0,     0,     0,    28,    29,
5681        0,     0,     0,    32,     0,     0,    35,    36,     0,    37,
5682       38,    39,   171,     0,     1,     0,     0,     0,     0,     0,
5683        0,     0,     0,     0,    40,     0,     0,     0,     0,     0,
5684        0,     0,     0,     0,     0,     0,     0,  1459,     0,     2,
5685      172,   173,   174,   175,   176,     8,     9,    10,    11,    12,
5686       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
5687       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
5688        0,     0,     0,     0,     0,     0,   177,    27,     0,     0,
5689        0,     0,     0,     0,     0,    28,    29,     0,     0,     0,
5690       32,     0,     0,    35,    36,     0,    37,    38,    39,   147,
5691        0,     1,     0,     0,     0,     0,     0,     0,     0,     0,
5692        0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
5693        0,     0,     0,     0,  1792,     0,     2,     3,     4,   148,
5694        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
5695       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
5696        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5697        0,     0,     0,    26,    27,     0,     0,     0,     0,     0,
5698        0,     0,    28,    29,     0,     0,     0,    32,     0,     0,
5699       35,    36,     0,    37,    38,    39,   147,     0,     1,     0,
5700        0,     0,     0,     0,     0,     0,     0,     0,    40,     0,
5701        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
5702       44,     0,     0,     2,     3,     4,   148,     6,     7,     8,
5703        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
5704       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
5705        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5706        0,    27,     0,     0,     0,     0,     0,     0,     0,    28,
5707       29,     0,     0,     0,    32,     0,     0,    35,    36,     0,
5708       37,    38,    39,   798,     0,     1,     0,     0,     0,     0,
5709        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
5710        0,     0,     0,     0,    43,     0,     0,    44,     0,     0,
5711        2,   172,   173,   174,   175,   176,   204,   205,   206,   207,
5712      208,   209,   210,   211,   212,   213,    18,    19,   214,   215,
5713       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5714        0,     0,     0,     0,     0,     0,     0,     0,   216,     0,
5715        0,     0,     0,     0,     0,     0,    28,    29,     0,     0,
5716        0,    32,     0,     0,     0,     0,     0,   217,    38,   218,
5717        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5718        0,     0,   219,     0,     0,     0,     0,     0,     0,     0,
5719        0,     0,     0,     0,   799,     2,     3,     4,   148,     6,
5720        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
5721       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
5722        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5723        0,     0,    26,    27,     0,     0,     0,     0,     0,     0,
5724        0,    28,    29,     0,     0,     0,    32,     0,     0,    35,
5725       36,     0,    37,    38,    39,     1,     0,     0,     0,     0,
5726        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
5727        0,     0,     0,     0,     0,     0,    43,     0,     0,    44,
5728        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
5729       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
5730       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5731        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
5732        0,     0,     0,     0,     0,     0,    28,    29,     0,     0,
5733        0,    32,     0,     0,    35,    36,     0,    37,    38,    39,
5734        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5735        0,     0,    40,     0,     0,     0,     0,     0,     0,     0,
5736        0,    43,     0,     0,    44,     2,   172,   173,   174,   175,
5737      176,     8,     9,    10,    11,    12,    13,    14,    15,    16,
5738       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
5739        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5740        0,     0,     0,    27,     0,     0,     0,     0,     0,     0,
5741        0,    28,    29,     0,     0,     0,    32,     0,     0,    35,
5742       36,     0,    37,    38,    39,     1,     0,     0,     0,     0,
5743        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
5744        0,     0,     0,     0,     0,     0,     0,     0,     0,   653,
5745        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
5746       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
5747       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5748        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
5749        0,     0,     0,     0,     0,     0,    28,    29,     0,     0,
5750        0,    32,     0,     0,    35,    36,     0,    37,    38,    39,
5751        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5752        0,     0,    40,     0,     0,     0,     0,     0,     0,     0,
5753        0,     0,     0,     0,  1358,     2,   172,   173,   174,   175,
5754      176,   204,   205,   206,   207,   208,   209,   210,   211,   212,
5755      213,    18,    19,   214,   215,    22,    23,    24,     0,     0,
5756        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5757        0,     0,     0,   216,     0,     0,     0,     0,     0,     0,
5758        0,    28,    29,     0,     0,     0,    32,     0,     0,     0,
5759        0,     0,   217,    38,   218,     1,     0,     0,     0,     0,
5760        0,     0,     0,     0,     0,     0,     0,   219,     0,     0,
5761        0,     0,     0,     0,     0,     0,    43,     0,     0,    44,
5762        2,   172,   173,   174,   175,   176,     8,     9,    10,    11,
5763       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
5764       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5765        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
5766        0,     0,     0,     0,     0,     0,    28,    29,     0,     0,
5767        0,    32,     0,     0,    35,    36,     0,    37,    38,    39,
5768      969,     0,     1,     0,     0,     0,     0,     0,     0,     0,
5769        0,     0,    40,     0,     0,     0,     0,     0,     0,   758,
5770        0,     0,     0,     0,     0,     0,     0,     2,   172,   173,
5771      174,   175,   176,     8,     9,    10,    11,    12,    13,    14,
5772       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
5773      970,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5774        0,     0,     0,     0,   177,    27,     0,     0,     0,     0,
5775        0,     0,     0,    28,    29,   975,     0,     1,    32,     0,
5776        0,    35,    36,     0,    37,    38,    39,     0,     0,     0,
5777        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
5778        0,     0,     2,   172,   173,   174,   175,   176,     8,     9,
5779       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
5780       20,    21,    22,    23,    24,   976,     0,     0,     0,     0,
5781        0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
5782       27,     0,     0,     0,     0,     0,     0,     0,    28,    29,
5783      981,     0,     1,    32,     0,     0,    35,    36,     0,    37,
5784       38,    39,     0,     0,     0,     0,     0,     0,     0,     0,
5785        0,     0,     0,     0,    40,     0,     0,     2,   172,   173,
5786      174,   175,   176,     8,     9,    10,    11,    12,    13,    14,
5787       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
5788      982,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5789        0,     0,     0,     0,   177,    27,     0,     0,     0,     0,
5790        0,     0,     0,    28,    29,   783,     0,     1,    32,     0,
5791        0,    35,    36,     0,    37,    38,    39,     0,     0,     0,
5792        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
5793        0,     0,     2,   172,   173,   174,   175,   176,   204,   205,
5794      206,   207,   208,   209,   210,   211,   212,   213,    18,    19,
5795      214,   215,    22,    23,    24,     0,     0,     0,     0,     0,
5796        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5797      216,     0,     0,     0,     0,     0,     0,     0,    28,    29,
5798        1,     0,     0,    32,     0,     0,     0,     0,     0,   217,
5799       38,   218,     0,     0,     0,     0,     0,     0,     0,     0,
5800        0,     0,     0,     0,   219,     2,   172,   173,   174,   175,
5801      176,     8,     9,    10,    11,    12,    13,    14,    15,    16,
5802       17,    18,    19,    20,    21,    22,    23,    24,   934,     0,
5803        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5804        0,     0,   177,    27,     0,     0,     0,     0,     0,     0,
5805        0,    28,    29,     1,     0,     0,    32,     0,     0,    35,
5806       36,     0,    37,    38,    39,     0,     0,     0,     0,     0,
5807        0,     0,     0,     0,     0,     0,     0,    40,     2,   172,
5808      173,   174,   175,   176,     8,     9,    10,    11,    12,    13,
5809       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
5810       24,   987,     0,     0,     0,     0,     0,     0,     0,     0,
5811        0,     0,     0,     0,     0,   177,    27,     0,     0,     0,
5812        0,     0,     0,     0,    28,    29,     1,     0,     0,    32,
5813        0,     0,    35,    36,     0,    37,    38,    39,     0,     0,
5814        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5815       40,     2,   172,   173,   174,   175,   176,     8,     9,    10,
5816       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
5817       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
5818        0,     0,     0,     0,     0,     0,     0,     0,   177,    27,
5819        0,     0,     0,     0,     0,     0,     0,    28,    29,     1,
5820        0,     0,    32,     0,     0,    35,    36,     0,    37,    38,
5821       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5822        0,     0,     0,    40,     2,   172,   173,   174,   175,   176,
5823      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
5824       18,    19,   214,   215,    22,    23,    24,     0,     0,     0,
5825        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5826        0,     0,   216,     0,     0,     0,     0,     0,     0,     0,
5827       28,    29,     1,     0,     0,    32,   432,   433,     0,     0,
5828        0,   217,    38,   218,     0,     0,     0,     0,     0,     0,
5829        0,     0,     0,     0,     0,     0,   219,     2,   172,   173,
5830      174,   175,   176,     8,     9,    10,    11,    12,    13,    14,
5831       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
5832        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5833        0,     0,     0,     0,     0,    27,     0,     0,     0,     0,
5834        0,     0,     0,    28,    29,     1,     0,     0,    32,     0,
5835        0,    35,    36,     0,    37,    38,    39,     0,     0,     0,
5836        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
5837        2,   172,   173,   174,   175,   176,   204,   205,   206,   207,
5838      208,   209,   210,   211,   212,   213,    18,    19,   214,   215,
5839       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5840        0,     0,     0,     0,     0,     0,     0,   457,   216,     0,
5841        0,     0,     0,     0,     0,     0,    28,    29,     1,     0,
5842        0,    32,     0,     0,     0,     0,     0,   217,    38,   218,
5843        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5844        0,     0,   219,     2,   172,   173,   174,   175,   176,   204,
5845      205,   206,   207,   208,   209,   210,   211,   212,   213,    18,
5846       19,   214,   215,    22,    23,    24,     0,     0,     0,     0,
5847        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5848        0,   216,     0,     0,     0,     0,     0,     0,     0,    28,
5849       29,     0,     0,     0,    32,     0,     0,     0,     0,     0,
5850      217,    38,   218,     0,     0,     0,     0,     0,     0,     0,
5851        0,     0,     0,     0,     0,   219,     2,   172,   173,   174,
5852      175,   176,   204,   205,   206,   207,   208,   209,   210,   211,
5853      212,   213,    18,    19,   214,   215,    22,    23,    24,     0,
5854        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5855        0,     0,     0,     0,   216,     0,     0,     0,     0,     0,
5856        0,     0,    28,    29,     0,     0,     0,    32,     0,     0,
5857        0,     0,     0,   217,    38,   218,     0,     0,     0,     0,
5858        0,     0,     0,     0,     0,     0,     0,     0,   219,     0,
5859        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
5860      774,  1575,     0,     0,     0,     0,     0,     0,     0,     0,
5861        0,   508,     2,   172,   173,   174,   175,   176,   204,   205,
5862      206,   207,   208,   209,   210,   211,   212,   213,    18,    19,
5863      214,   215,    22,    23,    24,     0,     0,     0,     0,     0,
5864        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5865      216,     0,     0,     0,     0,     0,     0,     0,    28,    29,
5866        0,     0,     0,    32,     0,     0,     0,     0,     0,   217,
5867       38,   218,     0,     0,     0,     0,     0,     0,     0,     0,
5868        0,     0,     0,     0,   219,     0,     0,     0,     0,     0,
5869        0,     0,     0,    43,     0,     0,   774,     0,     0,     0,
5870        0,     0,     0,     0,     0,     0,     0,   508,     2,   172,
5871      173,   174,   175,   176,   204,   205,   206,   207,   208,   209,
5872      210,   211,   212,   213,    18,    19,   214,   215,    22,    23,
5873       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5874        0,     0,     0,     0,     0,     0,   216,     0,     0,     0,
5875        0,     0,     0,     0,    28,    29,     0,     0,     0,    32,
5876        0,     0,     0,     0,     0,   217,    38,   218,     0,     0,
5877        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5878      219,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5879        0,     0,     0,     0,     0,     0,     0,     0,     0,   220,
5880        2,   172,   173,   174,   175,   176,   204,   205,   206,   207,
5881      208,   209,   210,   211,   212,   213,    18,    19,   214,   215,
5882       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
5883        0,     0,     0,     0,     0,     0,     0,     0,   216,     0,
5884        0,     0,     0,     0,     0,     0,    28,    29,     0,     0,
5885        0,    32,     0,     0,     0,     0,     0,   217,    38,   218,
5886        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5887        0,     0,   219,     0,     0,     0,     0,     0,     0,     0,
5888        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5889     1429,     2,   172,   173,   174,   175,   176,   204,   205,   206,
5890      207,   208,   209,   210,   211,   212,   213,    18,    19,   214,
5891      215,    22,    23,    24,     0,     0,     0,     0,     0,     0,
5892        0,     0,     0,     0,     0,     0,     0,     0,     0,   216,
5893        0,     0,     0,     0,     0,     0,     0,    28,    29,     0,
5894        0,     0,    32,     0,     0,     0,     0,     0,   217,    38,
5895      218,     0,     0,     0,     0,     0,     0,     0,     0,     0,
5896        0,     0,     0,   219
5897 };
5898
5899 static const short int yycheck[] =
5900 {
5901        0,    83,   652,   127,   507,   841,   507,   577,   873,   517,
5902       75,   519,   484,   139,    75,    75,   140,    76,   142,   841,
5903      144,   767,    78,    91,   767,   771,   484,   136,   771,   732,
5904       30,    31,    51,   117,   763,     1,   906,   907,   908,     1,
5905       75,    41,   763,   907,    44,  1500,    91,    78,   236,    84,
5906      906,    51,   908,   127,    84,   163,    56,  1512,    58,    75,
5907       76,   767,  1115,     1,  1117,   771,   140,   906,   142,   908,
5908      144,     1,   686,    84,    74,    75,    76,   161,    78,    56,
5909       80,   163,    82,   306,    84,   104,     3,   305,   654,    84,
5910        5,    91,    92,   139,   291,    95,    91,    17,     3,    30,
5911        5,   319,     3,   484,   104,   323,   370,   107,     5,    51,
5912        3,    42,   427,   428,    69,    70,   116,   117,   732,   119,
5913        3,   306,     5,   123,   124,   125,    17,   127,   236,   672,
5914      377,   131,    74,   133,     3,   678,   136,   137,   681,   139,
5915      140,   141,   142,     1,   144,   721,     5,   255,   672,    75,
5916      893,   170,   234,   153,   678,   121,   118,   681,    84,     1,
5917      160,   161,     3,   118,     1,    91,     3,    98,    99,   110,
5918      170,   102,   231,   749,   112,   191,   153,   424,   119,   244,
5919      180,     1,   182,   244,   244,   115,   254,     3,   256,   131,
5920      190,   191,   109,   254,   254,   112,   112,   499,     3,     5,
5921        5,   201,     1,   203,     3,   120,   123,   499,   113,   254,
5922        1,   256,   113,   133,   311,   231,   121,   170,     1,   254,
5923      117,   256,   524,   793,     1,   527,   256,   529,   244,   531,
5924      113,   231,   524,   599,   600,   527,   236,   529,   121,   531,
5925      240,  1106,   133,   507,   244,   256,   372,   373,   190,     1,
5926      119,   906,    17,   908,   254,     3,   256,   115,    74,   117,
5927      118,   256,     1,    79,     3,     3,   350,   775,   776,     1,
5928       86,   774,     0,   774,   274,   116,   118,   254,  1148,  1149,
5929      280,   118,     1,     3,  1148,  1155,  1156,     1,   288,  1159,
5930     1160,  1155,    17,  1149,  1749,  1159,   112,     1,   118,     3,
5931     1156,     1,   112,     1,  1160,   686,     1,   123,   113,   240,
5932     1149,   117,   394,   395,   396,   397,   121,  1156,   906,   118,
5933      908,  1160,   275,    79,   115,     3,   117,   373,   281,     3,
5934      256,     1,   115,   115,   117,   118,   234,   235,     1,     1,
5935      797,   118,   342,   343,   234,   235,     3,    75,     1,     1,
5936      350,   732,   352,   117,     3,     1,    84,     3,     0,   290,
5937      124,   109,   110,    91,    92,   121,   118,   585,   133,   425,
5938      588,   119,   372,   373,     3,     3,   376,   377,   116,   118,
5939      504,     3,   506,   383,     5,   117,   386,   387,   388,   389,
5940      390,   500,  1095,   113,   425,  1984,   480,   117,  1101,   118,
5941       28,   121,   112,   485,   118,   669,    28,   112,   133,   597,
5942      598,   599,   600,   123,   118,   872,    73,   115,   118,   419,
5943      420,   421,   110,   118,   424,   425,     3,   427,   428,   118,
5944      504,   431,   506,    75,   112,   519,   436,   118,     3,   113,
5945      440,   441,    84,   117,    90,   445,   446,   121,   118,    91,
5946       92,  2040,   995,   119,   962,   118,   118,   457,   458,     1,
5947      963,   118,   963,   191,   113,   118,   118,   467,   468,     1,
5948     1335,   995,   472,   473,   490,   491,   476,   477,     1,   118,
5949      480,  1095,   482,   706,   707,   708,   115,  1101,   117,   508,
5950      490,   491,   113,   509,  1149,   495,    73,   119,   440,   499,
5951      500,  1156,     5,   700,   504,  1160,   506,   507,   508,   509,
5952      774,   511,   620,   736,   737,   738,   244,   517,   537,   519,
5953        1,   706,   707,   708,   524,   789,   254,   527,   256,   529,
5954      727,   531,  1397,  1586,   849,   850,   800,   537,   735,   920,
5955       77,  1107,    74,   790,   859,     1,   861,    79,   113,     3,
5956      550,   736,   737,   738,    86,   508,   624,     0,   755,  1125,
5957      288,  1149,   311,   624,   624,     5,  1132,   567,  1156,   569,
5958      652,   113,  1160,     3,     5,   117,     3,   577,     5,   624,
5959      112,   113,  1311,  1312,   121,   117,  1332,   485,     3,  1332,
5960     1311,  1312,   115,   109,   117,   485,   112,   597,   598,   599,
5961      600,    28,   244,  1439,  1107,     3,  1107,  1477,  1478,   562,
5962      113,     5,   254,  1477,   256,   615,   616,  1439,   715,   716,
5963        3,   718,  1478,   116,   624,   872,  1332,   112,     3,   629,
5964      109,     3,   998,   112,     3,  1001,   117,   110,   123,  1478,
5965        1,   767,   115,   643,   123,   771,   743,   744,   745,   746,
5966      650,   651,   652,   653,   654,   655,   112,   113,     3,   113,
5967     1041,   117,  1408,     3,  1410,  1046,   968,   914,  1049,   669,
5968     1051,   115,   974,  1039,   616,   115,   968,     3,   980,   117,
5969      110,   612,   613,   683,   986,   115,   118,   687,  1054,  1055,
5970     1056,  1057,   119,    65,   986,   109,   424,     3,   117,   597,
5971      598,   599,   600,    83,   119,     3,  1412,   597,   598,   599,
5972      600,   109,   110,     1,  1095,   129,   130,     3,   112,  1584,
5973     1101,   119,    28,   621,     1,  1590,   657,   658,   659,   729,
5974       28,   621,     3,   733,    74,   377,   119,   109,   110,    79,
5975      109,   110,   824,   825,   119,   827,    86,   119,   830,   831,
5976      119,   112,   113,   110,   880,   881,   117,    28,   758,   759,
5977      760,   885,   119,   763,   764,   765,   892,   767,   113,   109,
5978      770,   771,   112,     3,   774,     5,   119,   886,   778,   779,
5979      723,   121,   424,   163,   110,   111,    74,    73,   788,   789,
5980      790,    79,     1,   793,     3,  1660,   103,   797,    86,   799,
5981      800,    31,   802,     1,   804,   118,  1676,  1677,   751,   722,
5982      998,   885,  1676,  1001,   112,   897,   724,   113,     7,     8,
5983        9,  1677,  1330,  1478,  1088,   725,     3,   115,   116,   117,
5984      939,   940,   118,  1376,   880,   881,   113,   750,  1677,   855,
5985      117,  1105,   842,   112,   752,   845,   788,     3,   119,   849,
5986      850,  1039,  1376,   753,   234,   855,   236,   113,   111,   859,
5987        1,   861,   862,   170,   117,    74,  1054,  1055,  1056,  1057,
5988       79,   871,   872,   873,     3,   255,   754,    86,   962,   116,
5989      880,   881,   236,   883,   121,   885,   886,     7,     8,     9,
5990     1478,   844,   892,   893,   772,   773,   624,   828,   112,    28,
5991      109,   629,     3,   112,     1,   112,   115,     3,   117,   118,
5992        7,     8,     9,   118,   914,   113,   123,     3,     3,   117,
5993        5,   116,  1145,   112,   652,    11,     3,    28,     1,   882,
5994        3,   120,   109,   110,   123,  1800,     7,     8,     9,   939,
5995      940,   669,   721,   943,   944,   964,    31,   947,   948,  1073,
5996      950,    28,   116,   109,   110,  1152,   112,   121,  1608,   111,
5997     1145,  1531,   962,   963,   964,   117,   715,   716,   968,   718,
5998      749,   971,   113,  1445,   974,   111,   117,   977,   709,   710,
5999      980,   117,   624,   983,   291,    11,   986,  1445,   988,   119,
6000      119,   121,   112,   993,   743,   744,   745,   746,   998,  1073,
6001      120,  1001,   115,   123,     3,     1,   119,    77,   739,   740,
6002     1010,   964,  1012,   109,   394,   112,   112,   397,   119,   116,
6003      722,  1021,  1677,   120,   112,   111,   123,   119,   508,  1865,
6004      116,   117,   760,   119,  1034,   112,   109,   110,   112,  1039,
6005     1040,     7,     8,     9,   117,   111,  1763,    11,   750,   120,
6006      109,   117,   123,  1006,  1054,  1055,  1056,  1057,     3,   115,
6007     1079,   112,   790,   119,  1445,  1380,     3,  1382,   112,   797,
6008      129,   130,  1072,  1073,   802,    74,   804,   112,    74,  1079,
6009       79,  1081,   562,    79,  1587,   111,  1587,    86,  1088,  1677,
6010       86,   117,  1092,   119,   112,     1,  1096,   111,  1098,  1030,
6011       12,    13,  1102,   117,   112,   485,  1106,  1107,    11,   112,
6012        7,     8,     9,   112,   119,  1481,  1482,   132,   723,   115,
6013      116,   117,     7,     8,     9,  1125,  1492,   855,  1600,    74,
6014     1876,  1877,  1132,    74,    79,   724,   115,    74,    79,  1139,
6015      119,    86,    79,   125,   872,    86,   751,   111,   790,    86,
6016      131,     3,  1802,   117,   120,  1108,  1054,  1055,  1056,  1057,
6017        7,     8,     9,   752,  1054,  1055,  1056,  1057,    74,     3,
6018      113,   478,   109,    79,   119,   725,  1074,  1130,   119,    16,
6019       86,   118,   113,     3,  1074,     5,   117,   113,    12,    13,
6020      121,   117,   125,  1910,     3,  1912,   111,  1767,   110,   111,
6021       74,   508,   117,   753,  1468,    79,  1332,   754,   111,   115,
6022      116,   117,    86,   116,   117,  1146,   119,   597,   598,   599,
6023      600,   118,    74,   120,   113,   772,   773,    79,   117,   536,
6024      872,    65,    44,    45,    86,   120,   131,     3,  1710,     3,
6025      620,   621,  1623,   597,   598,   599,   600,  1628,   711,   712,
6026     1631,   132,  1710,   111,  1635,   562,  1973,   109,  1975,   117,
6027     1977,    16,    74,    75,   113,    74,   118,    79,   115,   116,
6028       79,   119,   914,   120,    86,   109,   110,    86,   741,   742,
6029      126,   127,  1408,  1409,  1410,  1411,   110,   111,   113,   109,
6030      110,   119,   117,  1481,  1482,    44,    45,   109,  2015,  2016,
6031      109,  2018,  1302,  1303,  1492,   116,  1306,  1307,    74,   118,
6032       74,  1311,  1312,    79,   112,    79,    74,  2034,   111,   113,
6033       86,    79,    86,   117,   117,    74,    75,   121,    86,  1710,
6034       79,   110,  1332,  2050,   119,  1335,   121,    86,   709,   710,
6035      119,  1341,   121,   109,  1344,   109,   112,   113,   112,   656,
6036     1350,  1351,   119,   660,   121,   113,  1356,  1357,   711,   712,
6037     1088,   111,   119,   112,   844,   672,   111,   117,   739,   740,
6038     1736,   678,   117,   113,   681,   113,  1307,   117,  1378,   117,
6039     1380,   121,  1382,   121,   111,  1385,   111,   113,   741,   742,
6040      117,   117,   117,   700,  1775,    69,    70,  1397,     1,  1780,
6041        3,   111,   882,  1403,  1404,    10,    11,   117,  1408,  1409,
6042     1410,  1411,     1,   124,     3,  1541,   127,    91,  1988,   115,
6043      727,    95,  1803,    97,    88,    89,    90,   115,   735,   140,
6044     1383,   142,   117,   144,    18,    19,    20,    21,    22,    23,
6045       24,    25,    26,    27,   118,   719,   720,   113,   755,   719,
6046      720,   117,  1468,  1650,  1651,  1652,  1653,  1654,  1655,  1656,
6047     1657,  1933,   113,   113,   110,   113,   117,   117,  1468,   117,
6048      119,    74,   121,   747,   748,  1933,    79,   747,   748,    14,
6049       15,  1481,  1482,    86,   964,   126,   127,   113,    44,    45,
6050     1490,   117,  1492,  1493,   113,   113,  1496,   113,   117,   117,
6051     1500,   117,   110,   115,  1504,   117,   109,  1507,   119,   112,
6052      121,   115,   115,   117,   117,   118,   115,   897,    74,    75,
6053     1992,  1993,   110,    79,   137,     1,  1006,     3,   141,   116,
6054       86,  1531,   116,   119,   841,  1993,  1902,   844,  1904,   117,
6055      115,  1541,   117,   119,     1,   121,     3,   119,  1736,   121,
6056      124,     1,  1933,     3,   124,     1,   112,     3,     1,   270,
6057        3,   115,   115,   117,   117,    10,    11,  1691,   119,  1693,
6058      121,     1,  1503,     3,     1,   882,     3,     1,     1,     3,
6059        3,   115,  1664,   117,  1584,    14,    15,  1587,  1519,   119,
6060     1590,  1715,   115,  1717,   117,   115,   124,   117,   119,   906,
6061      121,   908,  1968,  1420,   119,  1422,   117,  1420,  1608,  1422,
6062     1610,  1611,  1993,   117,   822,   823,   117,  1691,   998,  1693,
6063      117,  1001,   822,   823,   490,   491,   490,   491,  1108,   597,
6064      598,   118,   597,   598,   119,   115,  1589,   121,  1591,    91,
6065       92,  1715,   112,  1717,   998,  1645,   112,  1001,   764,   765,
6066     1130,   112,  1605,  1606,   112,   115,   115,   964,   112,  1039,
6067     1660,   116,   115,   119,   115,   113,   115,  1667,  1865,  1669,
6068      110,   115,   119,   115,  1054,  1055,  1056,  1057,   110,  1679,
6069        0,   118,   115,   119,   115,  1039,   124,   121,   995,   115,
6070      118,  1691,   110,  1693,  1074,   115,   118,   118,   113,  1006,
6071     1054,  1055,  1056,  1057,   113,   113,   113,   124,   419,   420,
6072      124,   113,    56,   112,  1902,  1715,  1904,  1717,   121,   112,
6073      431,   121,   112,   115,   115,  1032,  1033,   115,   112,   110,
6074     1730,  1731,  1732,  1733,   445,   446,  1736,   110,   115,   113,
6075     1468,  1741,  1742,   113,  1744,   113,  1746,   110,   112,  1873,
6076     1876,  1877,   112,   110,   123,    75,   467,   468,  1758,   113,
6077      113,   472,   473,   113,    84,   476,   477,  1767,   123,  1992,
6078     1770,    91,    92,   118,   117,   117,   113,   123,    56,   110,
6079     1968,   121,   121,   121,   113,   121,   121,   121,   121,   121,
6080      113,   113,    11,   504,   115,   506,   113,   113,   124,  1873,
6081     1800,  1108,  1802,     0,   112,   125,   124,  1992,   113,   124,
6082      121,   121,   112,   112,   123,   113,   113,   137,   113,   113,
6083      113,   141,   113,  1130,   113,    64,    64,   112,   124,   115,
6084     1761,   123,  1763,   116,   124,   119,   124,   124,   119,   121,
6085      115,   121,  1149,   116,    41,  1152,   116,   115,  1801,  1156,
6086      119,   113,   113,  1160,    51,  2023,   119,   124,  1811,   124,
6087      124,    58,   113,   113,   124,   124,   124,   124,   124,   113,
6088      113,  1871,  1872,  1873,  1874,  1875,  1876,  1877,    75,   115,
6089     1608,    78,  1882,  1883,  1884,  1885,    83,    84,   113,   124,
6090      124,   113,  1892,   124,    91,    92,   124,   115,   115,  1981,
6091     1982,   115,  1902,  1383,  1904,   115,   113,   104,   892,   115,
6092      107,   115,   115,  1913,  1914,  1868,  1869,   115,   431,   115,
6093      115,   115,   119,   115,   244,   115,   115,   124,   125,   431,
6094      127,   431,   431,   431,   254,   770,   256,   883,   655,  1378,
6095      137,   914,   139,   140,   141,   142,   270,   144,   254,   388,
6096     1950,  1951,   254,   280,   853,  1955,  1956,  1803,   425,  1959,
6097      231,  1961,  1972,   270,  1964,    91,   163,   270,  1968,    84,
6098      236,    84,    92,   170,    84,    -1,  1645,    -1,    -1,  1910,
6099       -1,  1912,  1982,    -1,  1984,   182,    -1,    -1,  1988,    -1,
6100      125,    -1,    -1,   306,   191,    -1,    -1,    -1,    -1,    -1,
6101       -1,  2001,   137,    -1,    -1,    -1,   141,    -1,    -1,    -1,
6102       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6103       -1,    -1,    -1,  2023,  2024,    -1,    -1,    -1,    -1,  2029,
6104       -1,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,   236,
6105     2040,  1972,  1973,    -1,  1975,    -1,  1977,   244,    -1,    -1,
6106     1430,    -1,    -1,    -1,    -1,    -1,   376,   254,   255,   256,
6107       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   388,  1376,
6108       -1,    -1,    -1,    -1,  1802,    -1,  1383,   274,    -1,    -1,
6109       -1,    -1,    -1,   280,  2015,  2016,    -1,  2018,    -1,    -1,
6110       -1,   288,    -1,    -1,    -1,    -1,   231,    -1,    -1,    -1,
6111       -1,  1481,  1482,  2034,    -1,    -1,    -1,   419,   420,  1589,
6112       -1,  1591,  1492,  1420,    -1,  1422,    -1,    -1,    -1,  2050,
6113       -1,   441,    -1,    -1,    -1,  1605,  1606,  1481,  1482,    -1,
6114       -1,    -1,  1439,   445,   446,    -1,    -1,    -1,  1492,   274,
6115       -1,    -1,    -1,    -1,    -1,   280,   343,    -1,    -1,    -1,
6116       -1,    -1,    -1,    -1,    -1,   467,   468,    -1,    -1,    -1,
6117      472,   473,    -1,    -1,   476,   477,    -1,    -1,    -1,    -1,
6118       -1,  1478,    -1,   370,   885,   372,   373,    -1,    -1,   376,
6119      377,    -1,    -1,    -1,    -1,    -1,   383,    -1,    -1,    -1,
6120      387,   388,    -1,   390,    -1,    -1,    -1,    -1,   419,   420,
6121       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6122       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6123       -1,    -1,   419,   420,   445,   446,    -1,   424,   425,    -1,
6124       -1,    -1,   943,   944,   431,   370,   947,   948,    -1,   436,
6125       -1,   376,    -1,    -1,   441,    -1,   467,   468,   445,   446,
6126       -1,   472,   473,   388,    -1,   476,   477,    -1,    -1,   572,
6127       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6128      467,   468,    -1,    -1,    -1,   472,   473,    -1,    -1,   476,
6129      477,   478,  1589,    -1,  1591,    -1,    -1,    -1,   485,    -1,
6130       -1,    -1,    -1,  1600,    -1,    -1,    -1,    -1,  1605,  1606,
6131      124,    -1,   499,   127,   624,  1612,   441,   504,    -1,   506,
6132      507,   508,    -1,    -1,    -1,    -1,   140,    -1,   142,    -1,
6133      144,  1801,    -1,    -1,    -1,    -1,    -1,   524,    -1,    -1,
6134      527,  1811,   529,    -1,   531,    -1,    -1,    -1,    -1,    -1,
6135      537,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6136       -1,    -1,    -1,    -1,    -1,    -1,  1736,    -1,    -1,    -1,
6137       -1,  1072,  1073,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6138     1677,    -1,    -1,   686,    -1,    -1,    -1,    -1,    -1,    -1,
6139       -1,    -1,  1736,    -1,    -1,    -1,    -1,    -1,  1868,  1869,
6140       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6141      597,   598,   599,   600,    -1,    -1,   719,   720,   721,   722,
6142      723,    -1,    -1,   726,    -1,    -1,    -1,    -1,    -1,   732,
6143       -1,    -1,    -1,   620,   621,    -1,    -1,   624,    -1,    -1,
6144       -1,    -1,   629,    -1,   747,   748,   749,   750,   751,    -1,
6145       -1,   754,    -1,    -1,    -1,    -1,   643,    -1,    -1,    -1,
6146       -1,    -1,    -1,   650,   651,   652,    -1,   654,   655,   772,
6147      773,  1768,  1769,    -1,    -1,    -1,    -1,    -1,    -1,   789,
6148       -1,    -1,   669,    -1,    -1,   672,    -1,    -1,    -1,    -1,
6149      800,   678,    -1,    -1,   681,    -1,    -1,    -1,    -1,    -1,
6150       -1,    -1,    -1,    -1,  1801,    -1,    -1,    -1,    -1,   119,
6151       -1,    -1,    -1,    -1,  1811,    -1,    -1,    -1,    -1,    -1,
6152       -1,    -1,    -1,    -1,    -1,   650,   651,    -1,    -1,   654,
6153      655,    -1,  1902,    -1,  1904,    -1,    -1,    -1,    -1,    -1,
6154       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6155       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1902,    -1,
6156     1904,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6157       -1,  1868,  1869,   760,    -1,    -1,   763,   764,   765,    -1,
6158      767,    -1,    -1,   770,   771,    -1,    -1,   774,    -1,    -1,
6159       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1968,    -1,
6160       -1,    -1,   789,   790,    -1,   419,   420,    -1,    -1,    -1,
6161      797,    -1,    78,   800,    -1,   802,    -1,   804,    -1,    -1,
6162       -1,    -1,    -1,    -1,  1968,    -1,    -1,    -1,    -1,    -1,
6163       -1,   445,   446,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6164       -1,   943,   944,    -1,    -1,   947,   948,    -1,    -1,    -1,
6165       -1,    -1,    -1,   467,   468,    -1,   266,    -1,   472,   473,
6166       -1,    -1,   476,   477,   789,   275,    -1,    -1,   855,    -1,
6167       -1,   281,    -1,    -1,    -1,   800,    -1,  1974,    -1,    -1,
6168       -1,    -1,    -1,    -1,    -1,   872,   873,    -1,     0,    -1,
6169      504,    -1,   506,   880,   881,  1992,    -1,    -1,   885,     0,
6170       -1,    -1,  1403,  1404,    -1,   892,    -1,    -1,     7,    -1,
6171     1013,    10,    11,    12,    13,    14,    15,    16,    17,   906,
6172      907,   908,    -1,    -1,    -1,    -1,    -1,   914,    -1,    -1,
6173       -1,    -1,   943,   944,    -1,    -1,   947,   948,  1041,    -1,
6174       -1,    -1,    -1,    -1,    -1,    -1,  1049,    -1,    -1,    -1,
6175       -1,    -1,    -1,    -1,    -1,   124,   943,   944,   127,    -1,
6176      947,   948,   372,    75,    -1,    -1,     0,    -1,    -1,    -1,
6177       -1,   140,    84,   142,    75,   144,   963,   964,    -1,    91,
6178       92,   968,    -1,    84,    -1,    -1,    -1,   974,    -1,   914,
6179       91,    92,  1095,   980,    -1,    -1,    -1,    -1,  1101,   986,
6180       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   995,    -1,
6181       44,   110,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6182       -1,   120,    -1,    -1,   125,    -1,    -1,    -1,    -1,    -1,
6183      129,   130,   131,   132,   133,    -1,   137,    -1,    -1,    -1,
6184      141,    75,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
6185       84,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    -1,
6186       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1054,  1055,  1056,
6187     1057,    -1,    -1,    -1,    -1,    -1,    -1,   343,    -1,   191,
6188       -1,    -1,    -1,   117,   118,  1072,  1073,  1074,    -1,    -1,
6189      124,    -1,  1079,   127,    -1,    -1,    -1,    -1,    -1,    -1,
6190       -1,  1088,    -1,    -1,    -1,    -1,   140,    -1,   142,    -1,
6191      144,   377,   103,    -1,    -1,    -1,    -1,    -1,  1105,  1106,
6192     1107,   387,    -1,    -1,   390,    -1,    -1,   161,   162,    -1,
6193       -1,    -1,   244,    -1,    -1,    -1,    -1,    -1,  1125,    -1,
6194       -1,    -1,   254,   244,   256,  1132,    -1,    -1,    -1,    -1,
6195       -1,    -1,    -1,   254,    -1,   256,    -1,   191,    -1,   425,
6196       -1,  1148,  1149,    -1,    -1,   431,    -1,    -1,  1155,  1156,
6197       -1,    -1,  1159,  1160,    -1,    -1,    -1,    -1,    -1,    -1,
6198     1105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6199     1691,    -1,  1693,    -1,    -1,    -1,    -1,   231,    -1,    -1,
6200     1125,    -1,    -1,    -1,    -1,    -1,    -1,  1132,   822,   823,
6201      244,    -1,    -1,    -1,  1715,   625,  1717,    -1,    -1,    -1,
6202      254,    -1,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6203       -1,    -1,    -1,   499,    -1,    -1,    -1,    -1,    -1,    -1,
6204       -1,   507,    -1,    -1,    -1,   236,    -1,    -1,    -1,    -1,
6205      419,   420,    -1,    -1,    -1,    -1,    -1,    -1,   524,    -1,
6206       -1,   527,   431,   529,    -1,   531,    -1,    -1,    -1,    -1,
6207       -1,   885,    -1,    -1,    -1,   376,   445,   446,    -1,    -1,
6208       -1,    -1,    -1,    -1,    -1,    -1,    -1,   388,    -1,    -1,
6209       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,   468,
6210      291,  1403,  1404,   472,   473,    -1,    -1,   476,   477,    -1,
6211       -1,    -1,   424,    -1,    -1,    -1,   350,    -1,    -1,    -1,
6212       -1,    -1,    -1,    -1,  1311,  1312,    -1,    -1,    -1,   943,
6213      944,    -1,    -1,   947,   948,   504,   370,   506,    -1,    -1,
6214      441,    -1,    -1,   377,    -1,  1332,    -1,    -1,  1335,    -1,
6215       -1,    -1,    -1,    -1,    -1,   389,    -1,   767,    -1,    -1,
6216      770,   771,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6217     1871,  1872,  1873,  1874,  1875,    -1,    -1,    -1,    -1,    -1,
6218       -1,  1882,  1883,  1884,  1885,   419,   420,    -1,    -1,  1376,
6219      424,    -1,  1403,  1404,   428,    -1,    -1,   431,    -1,    -1,
6220       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6221     1397,   445,   446,    -1,    -1,    -1,  1403,  1404,    -1,    -1,
6222       -1,  1408,  1409,  1410,  1411,    -1,    -1,    -1,    -1,    -1,
6223       -1,    -1,    -1,   467,   468,    -1,    -1,    -1,   472,   473,
6224       -1,    -1,   476,   477,    -1,    -1,   480,    -1,    -1,  1950,
6225     1951,    -1,    -1,    -1,    -1,    -1,   490,   491,  1072,  1073,
6226       -1,    -1,    -1,   873,    -1,    -1,    -1,    -1,    -1,    -1,
6227      504,    -1,   506,   507,    -1,   509,    -1,    -1,    -1,    -1,
6228        1,  1468,     3,     4,     5,   519,    -1,   521,    -1,    -1,
6229     1477,  1478,    -1,   484,    -1,    -1,    -1,   763,   764,   765,
6230       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,   774,    -1,
6231       -1,    -1,   624,    -1,    -1,    -1,    -1,   629,    -1,    -1,
6232     1623,    -1,    -1,   624,    -1,  1628,  1629,  1630,  1631,  1632,
6233     1633,    -1,  1635,    -1,    -1,  1638,  1639,  1640,  1641,    -1,
6234       -1,    -1,    -1,    -1,    65,   536,    -1,    -1,    -1,    -1,
6235       71,    72,    -1,    -1,  1541,    -1,    -1,    -1,    -1,    -1,
6236       -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,
6237       -1,    -1,    -1,    -1,    -1,    -1,   567,    98,    -1,    -1,
6238       -1,   102,   103,   104,   105,   106,   107,   108,    -1,    -1,
6239      624,   112,    -1,    -1,    -1,    -1,    -1,  1584,    -1,    -1,
6240     1587,   122,   123,  1590,    -1,    -1,   597,   598,   599,   600,
6241       -1,    -1,    -1,    -1,    -1,    -1,   650,    -1,    -1,    -1,
6242      654,  1608,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6243       -1,    -1,    -1,    -1,    -1,   669,    -1,    -1,    -1,    -1,
6244      124,    -1,    -1,   127,    -1,    -1,    -1,    -1,   760,    -1,
6245       -1,    -1,    -1,    -1,    -1,    -1,   140,    -1,   142,    -1,
6246      144,    -1,    -1,    -1,    -1,   656,    -1,    -1,    -1,   660,
6247       -1,    -1,  1775,  1660,    -1,    -1,    -1,  1780,   790,    -1,
6248       -1,    -1,    -1,    -1,    -1,   797,    -1,    -1,   789,  1676,
6249     1677,    -1,   804,    -1,    -1,   686,  1106,   963,    -1,   800,
6250       -1,    -1,   968,    -1,  1691,    -1,  1693,    -1,   974,   700,
6251       -1,    -1,    -1,    -1,   980,    -1,   885,    -1,    -1,    -1,
6252      986,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1715,    -1,
6253     1717,    -1,    -1,    -1,    -1,    -1,   727,    -1,    -1,    -1,
6254      774,   732,     0,   855,   735,    -1,    -1,    -1,    -1,    -1,
6255       -1,    -1,   236,    -1,    -1,   789,   790,    -1,    -1,    -1,
6256      872,    -1,    -1,   797,   755,    -1,   800,    -1,   802,  1871,
6257     1872,    -1,  1874,  1875,   943,   944,    -1,    -1,   947,   948,
6258     1882,  1883,  1884,  1885,    -1,    -1,    -1,    -1,    -1,  1403,
6259     1404,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6260       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   842,    -1,
6261       -1,    -1,    -1,  1800,    -1,  1802,   850,    75,    -1,    -1,
6262       -1,   855,    -1,    -1,    -1,    -1,    84,    -1,   862,    -1,
6263       -1,    -1,    -1,    91,    92,    -1,    -1,    -1,   872,    -1,
6264       -1,  1107,    -1,    -1,   119,    -1,    -1,    -1,  1950,  1951,
6265       -1,   885,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6266     1871,  1872,    -1,  1874,  1875,    -1,    -1,   125,    -1,    -1,
6267       -1,  1882,  1883,  1884,  1885,    -1,    -1,    -1,    -1,   137,
6268      914,    -1,    -1,   141,  1871,  1872,  1873,  1874,  1875,  1876,
6269     1877,    -1,    -1,    -1,    -1,  1882,  1883,  1884,  1885,    -1,
6270       -1,    -1,    -1,  1072,  1073,    -1,    -1,    -1,    -1,   943,
6271      944,    -1,    -1,   947,   948,    -1,    -1,    -1,    -1,    -1,
6272       -1,    -1,  1332,    -1,    -1,  1335,   960,    -1,   962,   920,
6273       -1,    -1,    -1,    -1,    -1,   419,   420,    -1,    -1,  1950,
6274     1951,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6275       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6276       -1,   445,   446,  1950,  1951,    -1,    -1,  1079,    -1,    -1,
6277       -1,    -1,    -1,    -1,    -1,    -1,  1088,    -1,    -1,    -1,
6278       -1,    -1,    -1,   467,   468,    -1,   244,  1397,   472,   473,
6279       -1,   266,   476,   477,   478,    -1,   254,    -1,   256,    -1,
6280      275,    -1,  1412,    -1,    -1,    -1,   281,   998,    -1,    -1,
6281     1001,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1010,
6282      504,    -1,   506,     7,     8,     9,    10,    11,    12,    13,
6283       14,    15,    16,    17,    -1,    -1,    -1,    -1,  1072,  1073,
6284       -1,  1032,  1033,    -1,    -1,  1311,  1312,    -1,  1039,    -1,
6285     1041,    -1,    -1,    -1,  1088,  1046,    -1,    -1,  1049,    -1,
6286     1051,    -1,    -1,  1054,  1055,  1056,  1057,    -1,    -1,    -1,
6287       -1,  1105,    -1,  1107,    -1,    -1,    -1,  1691,    -1,  1693,
6288       -1,    -1,    -1,   567,    -1,    -1,    -1,    -1,    -1,    -1,
6289       -1,  1125,    -1,    -1,    -1,    -1,    -1,   372,  1132,    -1,
6290       -1,  1715,    -1,  1717,  1095,    -1,    -1,    -1,    -1,    -1,
6291     1101,    -1,    -1,   597,   598,   599,   600,    -1,   376,    -1,
6292       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,    -1,    -1,
6293      388,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,
6294       -1,   125,   126,   127,    -1,   129,   130,   131,   132,   133,
6295       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6296       -1,  1152,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6297       -1,    -1,    -1,    -1,  1584,    -1,    -1,    -1,    -1,    -1,
6298     1590,    -1,    -1,   441,    -1,    -1,    -1,    -1,   672,    -1,
6299       -1,    -1,    -1,    -1,   678,    -1,    -1,   681,    -1,    -1,
6300       -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,
6301       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1629,
6302     1630,    -1,  1632,  1633,    -1,    -1,   119,    -1,  1638,  1639,
6303     1640,  1641,    -1,    -1,  1403,  1404,    -1,    -1,    -1,    -1,
6304     1650,  1651,  1652,  1653,  1654,  1655,  1656,  1657,    -1,    -1,
6305     1660,    -1,    -1,    -1,    -1,    -1,    -1,  1871,  1872,  1873,
6306     1874,  1875,    -1,    -1,    -1,    -1,    -1,    -1,  1882,  1883,
6307     1884,  1885,    -1,    -1,    -1,    -1,    -1,   170,    -1,    -1,
6308       -1,    -1,    -1,    -1,    -1,    -1,   163,    -1,    -1,    -1,
6309       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6310       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6311       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1351,    -1,    -1,
6312       -1,  1587,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6313       -1,    -1,    -1,    -1,    -1,    -1,  1950,  1951,   822,   823,
6314       -1,    -1,    -1,    -1,  1378,    -1,    -1,    -1,    -1,    -1,
6315      625,    -1,    -1,    -1,    -1,    -1,  1468,   234,   235,   236,
6316       -1,    -1,    -1,    -1,    -1,    -1,   624,    -1,    -1,  1403,
6317     1404,    -1,    -1,   266,    -1,    -1,    -1,    -1,   255,    -1,
6318       -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,   281,    -1,
6319     1800,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6320       -1,   885,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6321       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6322       -1,    -1,   906,    -1,   908,    -1,    -1,    -1,    -1,    -1,
6323       -1,    -1,    -1,    -1,  1468,    -1,    -1,    -1,    -1,    -1,
6324       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6325       -1,    -1,    -1,    -1,  1445,  1865,    -1,    -1,    -1,   943,
6326      944,    -1,    -1,   947,   948,    -1,    -1,    -1,    -1,    -1,
6327       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   372,
6328       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6329     1481,  1482,   767,    -1,    -1,   770,   771,    -1,    -1,  1490,
6330       -1,  1492,  1493,    -1,    -1,  1496,    -1,    -1,    -1,    -1,
6331       -1,   995,    -1,  1504,   998,    -1,  1507,  1001,    -1,    -1,
6332       -1,    -1,  1691,   103,  1693,    -1,  1010,    -1,    -1,    -1,
6333       -1,   789,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
6334       -1,    -1,   800,    -1,    -1,    -1,  1715,    -1,  1717,    -1,
6335       -1,    -1,    -1,    -1,    -1,  1039,    -1,    -1,    -1,    -1,
6336       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6337     1054,  1055,  1056,  1057,    -1,    -1,    -1,    -1,    -1,    -1,
6338       -1,    -1,    -1,    -1,    -1,   478,    -1,    -1,  1072,  1073,
6339      170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   873,    -1,
6340       -1,   478,    -1,    -1,    -1,    -1,    -1,    -1,   485,  1600,
6341       -1,    -1,    -1,    -1,    -1,   508,    -1,    -1,    -1,    -1,
6342       -1,  1612,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6343       -1,    -1,  1623,    -1,    -1,    -1,    -1,  1628,    -1,    -1,
6344     1631,    -1,    -1,    -1,  1635,    -1,    -1,    -1,    -1,    -1,
6345       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1691,    -1,  1693,
6346       -1,    -1,    -1,    -1,    -1,  1149,    -1,    -1,    -1,   562,
6347       -1,    -1,  1156,    -1,    -1,    -1,  1160,    -1,    -1,    -1,
6348       -1,  1715,    -1,  1717,    -1,    -1,   266,    -1,    -1,    -1,
6349     1724,   271,   272,    -1,    -1,   275,    -1,    -1,    -1,    -1,
6350       -1,   281,  1871,  1872,  1873,  1874,  1875,    -1,    -1,    -1,
6351       -1,   291,    -1,  1882,  1883,  1884,  1885,    -1,    -1,  1710,
6352      597,   598,   599,   600,    -1,    -1,   306,    -1,    -1,    -1,
6353       -1,   311,   625,    -1,    -1,    -1,    -1,    -1,    -1,  1730,
6354     1731,  1732,  1733,   620,   621,  1736,    -1,    -1,    -1,    -1,
6355     1741,  1742,    -1,  1744,    -1,  1746,    -1,    -1,    -1,    -1,
6356       -1,    -1,    -1,    -1,    -1,    -1,   643,  1758,    -1,    -1,
6357       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1768,  1769,   672,
6358       -1,  1950,  1951,     3,  1775,   678,    -1,    -1,   681,  1780,
6359       -1,    -1,   372,    -1,    -1,   672,    -1,    -1,    -1,    -1,
6360       -1,   678,    -1,    -1,   681,    -1,    -1,    -1,    28,    -1,
6361       -1,    -1,  1803,    -1,    34,    35,    36,    37,    38,    39,
6362       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
6363       50,  1106,    -1,    -1,    -1,    -1,    -1,  1871,  1872,  1873,
6364     1874,  1875,    -1,    -1,    -1,    -1,    66,    -1,  1882,  1883,
6365     1884,  1885,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
6366       -1,    -1,    82,    83,    -1,    85,    86,    87,    -1,    -1,
6367       -1,    -1,    -1,    -1,   767,    -1,    -1,   770,   771,    -1,
6368      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6369       -1,    -1,  1376,    -1,    -1,    -1,    -1,    -1,   478,    -1,
6370       -1,  1892,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6371       -1,  1902,    -1,  1904,    -1,    -1,  1950,  1951,    -1,  1403,
6372     1404,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   508,    -1,
6373       -1,    -1,    -1,    -1,    -1,    -1,  1420,    -1,  1422,    -1,
6374       -1,    -1,  1933,    -1,    -1,    -1,    -1,    -1,   841,    -1,
6375       -1,   844,    -1,    -1,    -1,    -1,   536,    -1,    -1,    -1,
6376       -1,    -1,    -1,    -1,  1955,  1956,    -1,    -1,  1959,    -1,
6377     1961,    -1,    -1,  1964,    -1,    -1,    -1,  1968,    -1,    -1,
6378      873,    -1,   562,  1974,    -1,    -1,    -1,    -1,    -1,   882,
6379       -1,    -1,    -1,    -1,  1478,    -1,    -1,  1481,  1482,    -1,
6380       -1,  1992,  1993,    -1,    -1,    -1,  1490,    -1,  1492,  1493,
6381     2001,    -1,  1496,   906,    -1,   908,    -1,    -1,    -1,    -1,
6382     1504,    -1,    -1,  1507,    -1,    -1,    -1,    -1,    -1,   906,
6383      907,   908,    -1,    -1,    -1,    -1,   103,    -1,  2029,    -1,
6384       -1,    -1,    -1,    -1,    -1,   625,    -1,    -1,    -1,   629,
6385       -1,    -1,   119,    -1,    -1,    -1,    -1,  1332,    -1,    -1,
6386     1335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6387       -1,   964,    -1,    -1,    -1,    -1,   656,    -1,    -1,    -1,
6388      660,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6389       -1,    -1,   672,    -1,    -1,    -1,    -1,    -1,   678,    -1,
6390       -1,   681,   995,   170,    -1,    -1,    -1,    -1,    -1,    -1,
6391       -1,    -1,    -1,  1006,    -1,    -1,    -1,    -1,   995,    -1,
6392      700,    -1,  1397,    -1,    -1,    -1,   706,   707,   708,   709,
6393      710,   711,   712,    -1,    -1,   715,   716,  1412,   718,   719,
6394      720,   721,   722,   723,   724,   725,    -1,   727,    -1,    -1,
6395       -1,    -1,    -1,    -1,    -1,   735,   736,   737,   738,   739,
6396      740,   741,   742,   743,   744,   745,   746,   747,   748,   749,
6397      750,   751,   752,   753,    -1,   755,    -1,  1054,  1055,  1056,
6398     1057,    -1,    -1,    -1,    -1,    -1,    -1,   767,    -1,    -1,
6399      770,   771,    -1,  1677,    -1,    -1,    -1,  1074,    -1,   266,
6400       -1,    -1,    -1,    -1,   271,   272,    -1,  1691,   275,  1693,
6401       -1,    -1,    -1,  1106,   281,  1108,    -1,    -1,    -1,    -1,
6402       -1,    -1,    -1,    -1,   291,    -1,    -1,    -1,    -1,    -1,
6403       -1,  1715,    -1,  1717,    -1,    -1,    -1,  1130,    -1,   306,
6404       -1,    -1,    -1,    -1,   311,    -1,  1730,  1731,  1732,  1733,
6405       -1,    -1,  1736,    -1,    -1,    -1,  1149,  1741,  1742,    -1,
6406     1744,   841,  1746,  1156,   844,    -1,    -1,  1160,    -1,    -1,
6407       -1,  1148,  1149,    -1,  1758,    -1,    -1,    -1,  1155,  1156,
6408       -1,    -1,  1159,  1160,    -1,    -1,    -1,    -1,    -1,    -1,
6409       -1,    -1,    -1,   873,    -1,    -1,    -1,    -1,    -1,    -1,
6410       -1,    -1,   882,    -1,    -1,   372,    -1,    -1,    -1,  1584,
6411       -1,    -1,    -1,    -1,    -1,  1590,    -1,    -1,    -1,    -1,
6412       -1,    -1,    -1,    -1,    -1,    -1,   906,    -1,   908,    -1,
6413       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6415       -1,    -1,    -1,    -1,  1629,  1630,    -1,  1632,  1633,    -1,
6416       -1,    -1,    -1,  1638,  1639,  1640,  1641,    -1,    -1,    -1,
6417       -1,    -1,    -1,    -1,    -1,  1650,  1651,  1652,  1653,  1654,
6418     1655,  1656,  1657,    -1,   964,  1660,    -1,  1871,  1872,  1873,
6419     1874,  1875,    -1,    -1,    -1,    -1,    -1,    -1,  1882,  1883,
6420     1884,  1885,    -1,    -1,    -1,    -1,    -1,    -1,  1892,    -1,
6421       -1,   478,    -1,    -1,    -1,   995,    -1,    -1,  1902,    -1,
6422     1904,    -1,    -1,    -1,    -1,    -1,  1006,    -1,    -1,    -1,
6423       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1332,
6424       -1,   508,  1335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6425       -1,    -1,  1032,  1033,    -1,    -1,    -1,    -1,    -1,    -1,
6426       -1,    -1,    -1,    -1,    -1,    -1,  1950,  1951,    -1,   536,
6427       -1,  1955,  1956,    -1,    -1,  1959,    -1,  1961,    -1,    -1,
6428     1964,    -1,    -1,  1376,  1968,    -1,    -1,    -1,    -1,    -1,
6429     1383,    -1,    -1,    -1,    -1,   562,    -1,    -1,    -1,  1376,
6430       -1,    -1,    -1,    -1,  1397,    -1,    -1,    -1,    -1,    -1,
6431       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2001,    -1,  1412,
6432       -1,    -1,    -1,    -1,    -1,  1800,  1106,  1420,  1108,  1422,
6433       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6434       -1,    -1,    -1,    -1,    -1,  2029,  1439,    -1,    -1,    -1,
6435     1130,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   625,    -1,
6436       -1,    -1,   629,    -1,    -1,  1145,    -1,    -1,    -1,  1149,
6437       -1,    -1,  1152,    -1,    -1,    -1,  1156,    -1,    -1,    -1,
6438     1160,    -1,    -1,    -1,    -1,  1478,    -1,    -1,    -1,   656,
6439     1865,    -1,    -1,   660,    -1,    -1,    -1,    -1,    -1,    -1,
6440     1477,  1478,    -1,    -1,    -1,   672,    -1,    -1,    -1,    -1,
6441       -1,   678,    -1,    -1,   681,    -1,    -1,    -1,    -1,    -1,
6442       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6443       -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,    -1,   706,
6444      707,   708,   709,   710,   711,   712,    -1,    -1,   715,   716,
6445       -1,   718,   719,   720,   721,   722,   723,   724,   725,    -1,
6446      727,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   735,   736,
6447      737,   738,   739,   740,   741,   742,   743,   744,   745,   746,
6448      747,   748,   749,   750,   751,   752,   753,    -1,   755,    -1,
6449       -1,  1584,    -1,    -1,    -1,    -1,  1589,  1590,  1591,    -1,
6450      767,    -1,    -1,   770,   771,    -1,    -1,    -1,    -1,    -1,
6451       -1,    -1,  1605,  1606,    -1,    -1,    -1,    -1,    -1,    -1,
6452       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6453       -1,    -1,    -1,    -1,    -1,    -1,  1629,  1630,    -1,  1632,
6454     1633,    -1,    -1,    -1,    -1,  1638,  1639,  1640,  1641,    -1,
6455       -1,    -1,  1332,    -1,    -1,  1335,    -1,  1650,  1651,  1652,
6456     1653,  1654,  1655,  1656,  1657,    -1,    -1,  1660,    -1,    -1,
6457       -1,    -1,    -1,    -1,   841,    -1,    -1,   844,    -1,    -1,
6458       -1,    -1,    -1,    -1,  1677,    -1,    -1,    -1,    -1,    -1,
6459       -1,    -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,  1676,
6460     1677,    -1,    -1,  1383,    -1,    -1,   873,    -1,    -1,    -1,
6461       -1,    -1,    -1,    -1,    -1,   882,    -1,  1397,    -1,    -1,
6462       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6463       -1,    -1,  1412,    -1,    -1,    -1,    -1,    -1,    -1,   906,
6464     1420,   908,  1422,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1439,
6466       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6467       -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
6468        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
6469       -1,    -1,    -1,    -1,    -1,    -1,    -1,   964,  1478,    -1,
6470       -1,    -1,    -1,    28,    -1,    -1,    -1,  1800,  1801,    -1,
6471       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1811,    -1,
6472       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   995,    -1,
6473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1006,
6474       65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,    74,
6475       -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    84,
6476       85,    86,    -1,    -1,    -1,  1032,  1033,    -1,    -1,    -1,
6477       -1,    -1,  1865,    98,    -1,  1868,  1869,   102,   103,   104,
6478      105,   106,   107,   108,   109,    -1,    -1,   112,   113,   114,
6479       -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,
6480      125,   126,   127,   128,  1584,    -1,    -1,    -1,    -1,  1589,
6481     1590,  1591,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6482     1600,    -1,    -1,    -1,    -1,  1605,  1606,    -1,    -1,    -1,
6483       -1,    -1,  1612,    -1,    -1,    -1,    -1,    -1,    -1,  1106,
6484       -1,  1108,    -1,     0,    -1,    -1,    -1,    -1,    -1,  1629,
6485     1630,    -1,  1632,  1633,    -1,    -1,    -1,    -1,  1638,  1639,
6486     1640,  1641,    -1,  1130,    -1,    -1,    -1,     3,    -1,    -1,
6487     1650,  1651,  1652,  1653,  1654,  1655,  1656,  1657,  1145,    -1,
6488     1660,    -1,  1149,    -1,    -1,  1152,    43,    -1,    -1,  1156,
6489       -1,    -1,    28,  1160,    -1,    -1,    -1,  1677,    34,    35,
6490       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
6491       46,    47,    48,    49,    50,    -1,    -1,    -1,    75,    -1,
6492       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
6493       66,    -1,    -1,    -1,    91,    92,    -1,    -1,    74,    75,
6494       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
6495       86,    87,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6496       -1,    -1,   119,    -1,   100,    -1,     0,    -1,   125,    -1,
6497       -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,    -1,
6498      137,    -1,   139,    -1,   141,    -1,    -1,   123,  1768,  1769,
6499       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6500       -1,    -1,    -1,    -1,    -1,    -1,   163,    -1,    -1,    -1,
6501       44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6502     1800,  1801,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6503       -1,  1811,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,
6504       -1,    75,    76,    -1,    -1,    -1,    80,    -1,    82,    -1,
6505       84,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    -1,
6506       -1,    -1,    -1,    -1,    -1,  1332,    -1,    -1,  1335,    -1,
6507       -1,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,   236,
6508       -1,    -1,   116,   117,    -1,  1865,    -1,   244,  1868,  1869,
6509       -1,    -1,    -1,    -1,    -1,    -1,    -1,   254,   255,   256,
6510       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1376,
6511       -1,    -1,    -1,    -1,    -1,    -1,  1383,   274,    -1,    -1,
6512       -1,    -1,    -1,   280,    -1,    -1,   160,   161,    -1,    -1,
6513     1397,   288,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6514       -1,    -1,    -1,    -1,    -1,  1412,    -1,    -1,    -1,    -1,
6515       -1,    -1,    -1,  1420,    -1,  1422,    -1,   191,    -1,    -1,
6516       -1,    -1,    -1,    -1,    -1,    -1,    -1,   201,    -1,   203,
6517       -1,    -1,  1439,    -1,     1,    -1,     3,     4,     5,     6,
6518       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6519       -1,    -1,    -1,    -1,  1974,    -1,    -1,   231,    -1,    -1,
6520       -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6521      244,  1478,  1992,   370,    -1,   372,   373,    -1,    -1,   376,
6522      254,    -1,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6523       -1,   388,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
6524       -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
6525       -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,    85,    -1,
6526       -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,
6527       -1,    98,    -1,    -1,    -1,   102,   103,   104,   105,   106,
6528      107,   108,   109,    -1,   441,   112,   113,   114,    -1,    -1,
6529      117,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
6530      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6531       -1,    -1,    -1,    -1,    -1,    -1,   350,  1584,   352,    -1,
6532       -1,   478,  1589,  1590,  1591,    -1,    -1,    -1,   485,    -1,
6533       -1,    -1,    -1,  1600,    -1,    -1,    -1,    -1,  1605,  1606,
6534       -1,    -1,    -1,    -1,    -1,  1612,    -1,    -1,    -1,    -1,
6535       -1,    -1,    -1,    -1,    -1,   389,    -1,    -1,    -1,    -1,
6536       -1,    -1,  1629,  1630,    -1,  1632,  1633,    -1,    -1,    -1,
6537       -1,  1638,  1639,  1640,  1641,    -1,    -1,    -1,    -1,    -1,
6538       -1,    -1,    -1,  1650,  1651,  1652,  1653,  1654,  1655,  1656,
6539     1657,    -1,    -1,  1660,    -1,    -1,    -1,    -1,    -1,    -1,
6540       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6541     1677,    -1,    -1,    -1,    -1,    -1,    -1,   574,    -1,    -1,
6542       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6543       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6544      597,   598,   599,   600,    -1,    -1,   480,    -1,   482,    -1,
6545       -1,    -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,
6546       -1,    -1,    -1,   620,   621,    -1,    -1,   624,    -1,    -1,
6547       -1,    -1,   629,   507,    -1,   509,    -1,    -1,    -1,    -1,
6548       -1,    -1,    -1,   517,    -1,   519,   643,    -1,    -1,    -1,
6549       -1,    -1,    -1,   650,   651,   652,    -1,   654,   655,    -1,
6550       -1,  1768,  1769,    -1,    -1,    -1,    -1,    -1,    -1,    83,
6551       -1,    -1,   669,    -1,    -1,   672,   550,    -1,    -1,    -1,
6552       -1,   678,    -1,    -1,   681,    -1,    -1,    -1,    -1,    -1,
6553       -1,    -1,    -1,  1800,  1801,    -1,    -1,    -1,    -1,    -1,
6554       -1,    -1,    -1,    -1,  1811,   119,    -1,    -1,    -1,    -1,
6555       -1,   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6556       -1,    -1,    -1,   137,    -1,   139,    -1,   141,    -1,    -1,
6557       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6558       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   163,
6559      624,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1865,    -1,
6560       -1,  1868,  1869,   760,    -1,    -1,    -1,    -1,    -1,    -1,
6561      767,    -1,    -1,   770,   771,    -1,    -1,   191,    -1,    -1,
6562       -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,
6563       -1,    -1,   789,   790,    -1,    -1,    -1,    -1,    -1,    -1,
6564      797,    -1,    -1,   800,   801,   802,    -1,   804,    -1,    -1,
6565       -1,    -1,    -1,    -1,    -1,    75,    76,   231,    -1,    -1,
6566      234,   235,   236,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6567       -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,
6568       -1,   255,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6569       -1,    -1,    -1,    -1,    -1,    -1,   116,   117,   855,    -1,
6570      274,    -1,    -1,    -1,    75,    76,   280,  1974,    -1,    80,
6571       -1,    82,    -1,    -1,    -1,   872,   873,    -1,    -1,    -1,
6572       -1,    -1,    -1,   880,   881,  1992,    -1,    -1,    -1,    -1,
6573       -1,    -1,    -1,    -1,    -1,   892,    -1,    -1,    -1,    -1,
6574      160,   161,    -1,    -1,    -1,   116,   117,    -1,    -1,   906,
6575      907,   908,    -1,    -1,    -1,    -1,    -1,   914,    -1,    -1,
6576       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   802,    -1,
6577       -1,   191,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   160,
6579      161,    -1,    -1,    -1,    -1,    -1,   370,    -1,   372,   373,
6580       -1,    -1,   376,    -1,    -1,    -1,    -1,    -1,   842,    -1,
6581       -1,   231,    -1,    -1,   388,    -1,    -1,    -1,    -1,    -1,
6582      191,   855,    -1,    -1,   244,    -1,    -1,    -1,   862,    -1,
6583      201,    -1,   203,    -1,    -1,    -1,    -1,    -1,   995,    -1,
6584       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6585      424,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1015,    -1,
6586      231,    -1,    -1,    -1,    -1,    -1,    -1,   441,    -1,    -1,
6587       -1,    -1,    -1,   244,    -1,    -1,    -1,    -1,    -1,    -1,
6588       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6589       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1054,  1055,  1056,
6590     1057,    -1,    -1,    -1,   478,    -1,    -1,    -1,    -1,    -1,
6591       -1,   485,    -1,    -1,    -1,    -1,    -1,  1074,    -1,    -1,
6592       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   962,    -1,
6593      350,  1088,   352,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6594       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1105,  1106,
6595       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6596       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1125,   389,
6597       -1,    -1,    -1,    -1,    -1,  1132,    -1,    -1,    -1,   350,
6598       -1,   352,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6599       -1,  1148,  1149,    -1,    -1,    -1,    -1,    -1,  1155,  1156,
6600       -1,    -1,  1159,  1160,   424,    -1,    -1,    -1,    -1,    -1,
6601       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   389,    -1,
6602       -1,    -1,    -1,   597,   598,   599,   600,    -1,    -1,    -1,
6603       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6604       -1,    -1,    -1,    -1,    -1,    -1,   620,   621,    -1,    -1,
6605       -1,    -1,    83,    -1,    -1,    -1,   427,   428,    -1,    -1,
6606      480,    -1,   482,    -1,    -1,    -1,    -1,    -1,    -1,   643,
6607      490,   491,    -1,    -1,    -1,    -1,   650,   651,    -1,    -1,
6608      654,   655,    -1,    -1,    -1,    -1,    -1,   507,   119,   509,
6609       -1,    -1,    -1,    -1,    -1,    -1,    -1,   517,   672,   519,
6610       -1,    -1,    -1,    -1,   678,    -1,    -1,   681,   139,   480,
6611       -1,   482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   490,
6612      491,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6613      550,    -1,   163,    -1,    -1,    -1,   507,    -1,   509,    -1,
6614       -1,    -1,    -1,    -1,    -1,    -1,   517,    -1,   519,    -1,
6615       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6616      191,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6617       -1,    -1,    -1,    -1,    -1,  1332,    -1,    -1,  1335,   550,
6618       -1,    -1,    -1,    -1,    -1,    -1,   760,    -1,    -1,    -1,
6619       -1,    -1,    -1,   767,    -1,    -1,   770,   771,    -1,    -1,
6620      231,    -1,    -1,   234,   235,   236,    -1,    -1,    83,    -1,
6621       -1,    -1,    -1,    -1,    -1,   789,   790,    -1,    -1,  1376,
6622       -1,    -1,    -1,   797,   255,    -1,   800,    -1,    -1,    -1,
6623      804,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6624     1397,    -1,    -1,   274,   119,    -1,    -1,    -1,    -1,   280,
6625       -1,  1408,  1409,  1410,  1411,    -1,    -1,   288,    -1,    -1,
6626       -1,    -1,    -1,    -1,   139,     1,    -1,     3,     4,     5,
6627        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
6628       -1,   855,    -1,    -1,    -1,    -1,    -1,    -1,   163,    -1,
6629       -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,   872,   873,
6630       -1,    -1,    -1,    -1,    -1,    -1,   880,   881,    -1,    -1,
6631       -1,  1468,    -1,    -1,    -1,    -1,   191,    -1,   892,    -1,
6632     1477,  1478,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
6633       -1,    -1,   906,   907,   908,    71,    72,    73,    -1,   370,
6634      914,   372,   373,    -1,    -1,    -1,    -1,    -1,    84,    85,
6635       -1,    -1,    -1,    -1,    -1,    -1,   231,    -1,    -1,   234,
6636      235,   236,    98,    -1,    -1,    -1,   102,   103,   104,   105,
6637      106,   107,   108,   109,    -1,    -1,   112,   797,   114,   115,
6638      255,   117,   802,    -1,  1541,    -1,   122,   123,    -1,   125,
6639      126,   127,   128,   424,    -1,    -1,    -1,    -1,    -1,   274,
6640       -1,    -1,    -1,    -1,    -1,   280,    -1,    -1,    -1,    -1,
6641       -1,    -1,    -1,   288,    -1,    -1,    -1,    -1,    -1,    -1,
6642       -1,   995,   842,    -1,    -1,    -1,    -1,  1584,    -1,   849,
6643      850,   802,    -1,  1590,  1468,   855,    -1,    -1,    -1,    -1,
6644       -1,    -1,   862,    -1,    -1,    -1,    -1,   478,    -1,    -1,
6645       -1,  1608,   872,    -1,   485,    -1,    -1,    -1,    -1,    -1,
6646       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6647       -1,   842,    -1,    -1,    -1,    -1,    -1,    -1,   849,   850,
6648     1054,  1055,  1056,  1057,   855,    -1,    -1,    -1,   859,    -1,
6649      861,   862,    -1,    -1,   914,   370,    -1,   372,   373,    -1,
6650     1074,    -1,    -1,  1660,    -1,    -1,    -1,    -1,    -1,    -1,
6651       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1676,
6652     1677,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6653       -1,  1105,  1106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6654       -1,    -1,   962,    -1,    -1,    -1,    -1,    -1,    -1,   424,
6655       -1,  1125,    -1,    -1,    -1,    -1,    -1,    -1,  1132,    -1,
6656       -1,    -1,    -1,    -1,    -1,    -1,   597,   598,   599,   600,
6657       -1,    -1,    -1,    -1,  1148,  1149,    -1,    -1,    -1,    -1,
6658       -1,  1155,  1156,    -1,    -1,  1159,  1160,    -1,    -1,   620,
6659      621,   962,    -1,    -1,    -1,    -1,    -1,    -1,   629,    -1,
6660       -1,    -1,    -1,   478,    -1,    -1,    -1,    -1,    -1,    -1,
6661      485,    -1,   643,    -1,    -1,    -1,    -1,    -1,    -1,   650,
6662      651,   652,    -1,   654,   655,    -1,    -1,    -1,    -1,     3,
6663       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   669,    -1,
6664       -1,   672,    -1,  1800,    -1,  1802,    -1,   678,    -1,    -1,
6665      681,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
6666       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
6667       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
6668       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6669       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6670       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
6671       -1,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,  1876,
6672     1877,    -1,   597,   598,   599,   600,   100,    -1,    -1,   760,
6673       -1,    -1,    -1,    -1,    -1,   109,   767,    -1,   112,   770,
6674      771,    -1,    -1,    -1,    -1,   620,   621,    -1,    -1,   123,
6675       -1,   125,    -1,    -1,   629,    -1,    -1,    -1,  1332,   790,
6676       -1,  1335,    -1,    -1,    -1,    -1,   797,    -1,   643,    -1,
6677       -1,   802,    -1,   804,    -1,   650,   651,   652,    -1,   654,
6678      655,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6679       -1,    -1,    -1,    -1,   669,    -1,    -1,   672,    -1,    -1,
6680       -1,    -1,  1376,   678,    -1,    -1,   681,    -1,    -1,    -1,
6681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6682       -1,    -1,    -1,  1397,   855,    -1,    -1,    -1,    -1,    -1,
6683       -1,    -1,    -1,    -1,  1408,  1409,  1410,  1411,    -1,    -1,
6684       -1,   872,   873,    -1,    -1,    -1,    -1,    -1,    -1,   880,
6685      881,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6686       -1,   892,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6687       -1,    -1,    -1,    -1,    -1,   906,   907,   908,    -1,    -1,
6688       -1,    -1,    -1,   914,    -1,   760,    -1,    -1,    -1,    -1,
6689       -1,    -1,   767,    -1,  1468,   770,   771,    -1,    83,    -1,
6690       -1,    -1,    -1,  1477,  1478,    -1,    -1,    -1,    -1,    -1,
6691       -1,    -1,    -1,    -1,    -1,   790,    -1,    -1,    -1,    -1,
6692       -1,    -1,   797,    -1,    -1,    -1,    -1,   802,    -1,   804,
6693     1350,  1351,    -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,
6694      125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6695       -1,    -1,   137,    -1,   139,    -1,   141,    -1,  1378,    -1,
6696     1380,    -1,  1382,    -1,   995,    -1,    -1,  1541,    -1,    -1,
6697       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   163,    -1,
6698      855,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6699       -1,    -1,    -1,    -1,    -1,    -1,    -1,   872,   873,    -1,
6700       -1,    -1,    -1,    -1,    -1,   880,   881,    -1,    -1,  1380,
6701     1584,  1382,    -1,    -1,    -1,    -1,  1590,   892,    -1,    -1,
6702       -1,    -1,    -1,  1054,  1055,  1056,  1057,    -1,    -1,    -1,
6703       -1,   906,   907,   908,    -1,    -1,    -1,    -1,    -1,   914,
6704       -1,    -1,    -1,  1074,    -1,    -1,   231,    -1,  1468,   234,
6705      235,   236,    -1,    -1,    -1,    -1,    -1,  1088,    -1,    -1,
6706       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6707      255,    -1,    -1,    -1,  1105,  1106,    -1,    -1,    -1,    -1,
6708       -1,    -1,    -1,    -1,    -1,    -1,  1660,    -1,    -1,   274,
6709       -1,    -1,    -1,    -1,  1125,   280,    -1,  1468,    -1,    -1,
6710       -1,  1132,  1676,  1677,    -1,    -1,    -1,    -1,    -1,    -1,
6711       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1148,  1149,    -1,
6712      995,    -1,    -1,    -1,  1155,  1156,     3,    -1,  1159,  1160,
6713       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6714       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6715       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
6716       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
6717       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,  1054,
6718     1055,  1056,  1057,    -1,    -1,   370,    -1,   372,   373,    66,
6719       -1,   376,    -1,    -1,    -1,    -1,    -1,    74,    75,  1074,
6720       -1,    -1,    79,   388,    -1,    -1,    -1,    -1,    85,    86,
6721       87,    -1,    -1,  1088,    -1,    -1,    -1,    -1,    -1,    -1,
6722       -1,    -1,    -1,   100,    -1,    -1,  1800,    -1,    -1,    -1,
6723     1105,  1106,   109,    -1,    -1,   112,    -1,    -1,    -1,    -1,
6724       -1,    -1,   119,    -1,    -1,    -1,   123,  1667,    -1,  1669,
6725     1125,    -1,    -1,    -1,    -1,    -1,   441,  1132,    -1,  1679,
6726       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6727       -1,    -1,    -1,  1148,  1149,    -1,    -1,    -1,    -1,    -1,
6728     1155,  1156,    -1,    -1,  1159,  1160,     1,    -1,     3,    -1,
6729       -1,    -1,    -1,   478,    -1,    -1,    -1,    -1,    -1,    -1,
6730      485,  1332,  1876,  1877,  1335,    -1,    -1,    -1,    -1,    -1,
6731       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
6732       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
6733       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
6734       -1,    -1,    -1,    -1,    -1,  1376,    83,    -1,    -1,    -1,
6735       65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
6736       75,    -1,    -1,    -1,    79,    -1,  1397,    82,    83,    -1,
6737       85,    86,    87,    -1,    -1,    -1,    -1,  1408,  1409,  1410,
6738     1411,    -1,   119,    -1,   291,   100,    -1,    -1,   125,    -1,
6739       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,   113,   306,
6740      137,    -1,   139,    -1,   141,    -1,    -1,    -1,   123,    -1,
6741       -1,    -1,   597,   598,   599,   600,    -1,    -1,    -1,    -1,
6742       -1,    -1,    -1,    -1,    -1,    -1,   163,    -1,    -1,    -1,
6743       -1,    -1,    -1,    -1,    -1,   620,   621,  1468,    -1,    -1,
6744       -1,    -1,    -1,    -1,    -1,    -1,  1477,  1478,    -1,    -1,
6745       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1332,   643,    -1,
6746     1335,    -1,    -1,    -1,    -1,   650,   651,    -1,    -1,   654,
6747      655,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6748       -1,    -1,    -1,    -1,    -1,    -1,    -1,   672,    -1,    -1,
6749       -1,    -1,    -1,   678,   231,    -1,   681,   234,   235,   236,
6750       -1,  1376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6751     1541,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   255,    -1,
6752       -1,    -1,  1397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6753       -1,    -1,    -1,  1408,  1409,  1410,  1411,   274,    -1,    -1,
6754       -1,    -1,    -1,   280,    -1,    -1,   236,    -1,    -1,    -1,
6755       -1,    -1,    -1,  1584,    -1,    -1,    -1,    -1,    -1,  1590,
6756       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6757       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1608,    -1,    -1,
6758       -1,    -1,   767,    -1,    -1,   770,   771,    -1,    -1,    -1,
6759       -1,    -1,    -1,  1468,    -1,    -1,    -1,    -1,   288,    -1,
6760       -1,    -1,  1477,  1478,   789,    -1,    -1,    -1,    -1,    -1,
6761       -1,    -1,    -1,    -1,    -1,   800,    -1,    -1,    -1,    -1,
6762       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1660,
6763       -1,    -1,    -1,   370,    -1,   372,   373,    -1,    -1,   376,
6764       -1,    -1,    -1,    -1,    -1,  1676,  1677,    -1,    -1,    -1,
6765       -1,   388,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6766       -1,    -1,    -1,    -1,    -1,   572,  1541,    -1,    -1,    -1,
6767       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6768       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   873,    -1,
6769       -1,    -1,    -1,    -1,    -1,   880,   881,    -1,    -1,   389,
6770       -1,    -1,    -1,    -1,   441,    -1,    -1,   892,    -1,  1584,
6771       -1,    -1,    -1,    -1,    -1,  1590,    -1,    -1,    -1,    -1,
6772       -1,   906,   907,   908,    -1,    -1,    -1,    -1,    -1,   914,
6773       -1,    -1,    -1,  1608,    -1,    -1,    -1,    -1,    -1,    -1,
6774       -1,   478,    -1,    -1,    -1,    -1,    -1,    -1,   485,    -1,
6775       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6776       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1800,
6777       -1,  1802,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   686,
6778       -1,    -1,    -1,    -1,    -1,  1660,    -1,    -1,    -1,    -1,
6779       -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,    -1,    -1,
6780       -1,  1676,  1677,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6781      995,    -1,   719,   720,   721,   722,   723,    -1,    -1,   726,
6782      727,    -1,    -1,    -1,    -1,   732,    -1,    -1,   735,    -1,
6783       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6784      747,   748,   749,   750,   751,  1876,  1877,   754,   755,    -1,
6785       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6786      597,   598,   599,   600,    -1,   772,   773,    -1,    -1,  1054,
6787     1055,  1056,  1057,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6788       -1,    -1,   572,   620,   621,    -1,    -1,    -1,    -1,  1074,
6789       -1,    -1,    -1,    -1,    -1,    -1,    -1,   587,    -1,    -1,
6790       -1,    -1,    -1,    -1,    -1,    -1,   643,   597,   598,   599,
6791      600,    -1,    -1,   650,   651,    -1,    -1,   654,   655,    -1,
6792     1105,  1106,    -1,    -1,    -1,  1800,    -1,  1802,    -1,    -1,
6793       -1,    -1,    -1,    -1,    -1,   672,    -1,    -1,    -1,    -1,
6794     1125,   678,    -1,    -1,   681,    -1,    -1,  1132,   638,    -1,
6795       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6796       -1,    -1,    -1,  1148,  1149,    -1,    -1,    -1,    -1,    -1,
6797     1155,  1156,    -1,   663,  1159,  1160,    -1,    -1,    -1,    -1,
6798       -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,
6799        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,   688,    -1,
6800       -1,  1876,  1877,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6801       28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   567,    -1,
6802       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6803      767,    -1,    -1,   770,   771,    -1,   726,    -1,    -1,    -1,
6804       -1,    -1,    -1,    -1,   734,    -1,    -1,    65,    -1,    -1,
6805      599,   600,   789,    71,    72,    73,    -1,    -1,    -1,    -1,
6806       -1,    -1,    -1,   800,   754,    -1,    84,    85,    -1,    -1,
6807       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6808       98,    -1,   772,   773,   102,   103,   104,   105,   106,   107,
6809      108,   109,    -1,    -1,   112,   113,   114,    -1,   288,   117,
6810       -1,    -1,    -1,   121,   122,   123,  1013,   125,   126,   127,
6811      128,    -1,   802,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6812       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6813       -1,    -1,    -1,    -1,  1041,    -1,   873,    -1,    -1,    -1,
6814       -1,    -1,  1049,   880,   881,    -1,    -1,  1332,    -1,     1,
6815     1335,     3,     4,     5,     6,   892,     8,     9,    -1,    -1,
6816       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   906,
6817      907,   908,    -1,    -1,    -1,    -1,    28,   914,    -1,    -1,
6818       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1095,    -1,
6819       -1,  1376,    -1,    -1,  1101,    -1,    -1,    -1,    -1,   389,
6820       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
6821       62,    -1,  1397,    65,    -1,    -1,    -1,    -1,    -1,    71,
6822       72,    73,    -1,  1408,  1409,  1410,  1411,    79,    -1,    -1,
6823       -1,    -1,    84,    85,    86,    -1,    88,    89,    90,    -1,
6824       -1,    -1,    -1,    -1,    -1,  1152,    98,    -1,    -1,    -1,
6825      102,   103,   104,   105,   106,   107,   108,   109,   995,    -1,
6826      112,   113,   114,   115,    -1,   117,    -1,   119,    -1,   121,
6827      122,   123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,
6828       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6829       -1,    -1,  1477,  1478,    -1,    -1,    -1,    -1,    -1,    -1,
6830       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   998,    -1,
6831       -1,  1001,  1002,  1003,    -1,  1005,    -1,  1054,  1055,  1056,
6832     1057,    -1,    -1,  1013,    -1,    -1,    -1,    -1,    -1,    -1,
6833       -1,  1021,    -1,    -1,    -1,    -1,    -1,  1074,  1028,    -1,
6834       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1039,
6835       -1,    -1,    -1,    -1,    -1,    -1,  1541,  1047,    -1,    -1,
6836       -1,    -1,  1052,    -1,  1054,  1055,  1056,  1057,  1105,  1106,
6837       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6838       -1,    -1,   572,    -1,    -1,    -1,    -1,    -1,  1125,    -1,
6839       -1,    -1,    -1,    -1,    -1,  1132,    -1,   587,    -1,  1584,
6840       -1,   591,    -1,    -1,    -1,  1590,    -1,  1097,    -1,    -1,
6841       -1,  1148,  1149,  1103,    -1,    -1,    -1,    -1,  1155,  1156,
6842       -1,    -1,  1159,  1160,    -1,    -1,    -1,    -1,    -1,    -1,
6843       -1,    -1,    -1,    -1,    -1,    -1,  1126,    -1,    -1,    -1,
6844       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   638,   998,
6845       -1,    -1,  1001,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6846       -1,  1010,   652,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6847       -1,    -1,    -1,   663,   664,  1660,    -1,    -1,    -1,    -1,
6848       -1,  1171,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6849     1039,  1676,  1677,    -1,    -1,    -1,    -1,    -1,   688,    -1,
6850       -1,    -1,    -1,    -1,    -1,  1054,  1055,  1056,  1057,    -1,
6851       -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
6852        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
6853       -1,    -1,    -1,    -1,    -1,    -1,   726,  1227,    -1,    -1,
6854       -1,    -1,    -1,    28,   734,    -1,    -1,    -1,    -1,    -1,
6855       -1,  1241,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6856       -1,    -1,    -1,    -1,   754,    -1,    -1,    -1,    -1,    -1,
6857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6858       65,    -1,   772,   773,    -1,    -1,    71,    72,    73,    -1,
6859       -1,    -1,    -1,    -1,    -1,  1332,    -1,    -1,  1335,    84,
6860       85,    -1,    -1,    -1,    -1,    -1,  1296,    -1,    -1,    -1,
6861       -1,    -1,   802,    98,    -1,  1800,    -1,   102,   103,   104,
6862      105,   106,   107,   108,   109,    -1,    -1,   112,   113,   114,
6863       -1,    -1,  1322,    -1,   119,    -1,  1326,   122,   123,  1376,
6864      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
6865       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6866     1397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6867       -1,  1408,  1409,  1410,  1411,    -1,    -1,    -1,    -1,    -1,
6868       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6869       -1,  1876,  1877,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6870       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6871       -1,    -1,    -1,    -1,    -1,    -1,  1623,    -1,    -1,    -1,
6872       -1,  1628,  1629,  1630,  1631,  1632,  1633,    -1,  1635,    -1,
6873       -1,  1638,  1639,  1640,  1641,    -1,    -1,    -1,    -1,    -1,
6874     1477,  1478,    -1,  1650,  1651,  1652,  1653,  1654,  1655,  1656,
6875     1657,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6876       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6877       -1,    -1,    -1,    -1,    -1,     0,    -1,    -1,    -1,    -1,
6878       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6879       -1,  1481,  1482,    -1,    -1,  1485,    -1,  1487,    -1,    -1,
6880       -1,  1491,  1492,    -1,  1541,    -1,    -1,  1497,  1498,    -1,
6881     1500,    -1,  1002,  1003,    -1,  1005,    -1,    -1,    43,    44,
6882     1510,    -1,  1512,  1013,    -1,    -1,    -1,  1017,    -1,    -1,
6883       -1,  1021,    -1,    -1,    -1,    -1,    -1,    -1,  1028,  1029,
6884       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1584,    -1,    -1,
6885       75,    76,    -1,  1590,    -1,    80,    -1,  1047,  1048,    84,
6886       -1,    -1,  1052,    -1,    -1,    -1,    91,    92,  1775,    -1,
6887       -1,    -1,  1562,  1780,    -1,    -1,    -1,    -1,    -1,    -1,
6888       -1,    -1,  1572,    -1,   109,    -1,    -1,    -1,    -1,    -1,
6889       -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6890       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1097,    -1,    -1,
6891       -1,    -1,    -1,  1103,    -1,    -1,    -1,    -1,    -1,    -1,
6892       -1,    -1,    -1,  1660,    -1,    -1,    -1,    -1,    -1,    -1,
6893       -1,    -1,  1481,  1482,    -1,   160,  1126,    -1,    -1,  1676,
6894     1677,  1490,    -1,  1492,  1493,    -1,    -1,  1496,    -1,    -1,
6895       -1,    -1,    -1,    -1,    -1,  1504,    -1,    -1,  1507,    -1,
6896       -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,    -1,    -1,
6897        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
6898       -1,  1171,  1172,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,
6900       -1,    -1,    -1,    -1,    -1,    -1,   231,    -1,    -1,    -1,
6901       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   244,
6902       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   254,
6903       -1,   256,    -1,    -1,    65,    -1,    -1,  1227,    -1,  1229,
6904       71,    72,    73,    -1,    -1,    -1,  1736,    -1,  1738,    -1,
6905       -1,  1241,  1242,    84,    85,  1745,    -1,    -1,    -1,  1749,
6906       -1,  1751,    -1,  1800,    -1,    -1,    -1,    98,    -1,    -1,
6907     1760,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
6908       -1,   112,   113,   114,    -1,    -1,   117,    -1,    -1,    -1,
6909       -1,   122,   123,   124,   125,   126,   127,   128,    -1,    -1,
6910       -1,    -1,    -1,    -1,    -1,    -1,  1296,    -1,  1298,    -1,
6911       -1,    -1,  1802,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6912       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6913       -1,    -1,  1322,    -1,  1324,    -1,  1326,    -1,  1328,  1876,
6914     1877,    -1,    -1,    -1,    -1,   370,    -1,     1,    -1,     3,
6915        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
6916       -1,    -1,    -1,    -1,   389,    -1,    -1,    -1,    -1,    -1,
6917       -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,
6918       -1,  1730,  1731,  1732,  1733,    -1,    -1,  1736,    -1,    -1,
6919       -1,    -1,  1741,  1742,    -1,  1744,    -1,  1746,    -1,   424,
6920       -1,    -1,   427,  1893,  1894,    -1,  1896,    -1,  1898,  1758,
6921       -1,    65,  1902,  1903,  1904,    -1,    -1,    71,    72,    73,
6922       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6923       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6924       -1,    -1,    -1,    -1,    98,    -1,    -1,    -1,   102,   103,
6925      104,   105,   106,   107,   108,   109,    -1,    -1,   112,   113,
6926      114,   115,    -1,   117,    -1,   490,   491,  1957,   122,   123,
6927     1960,   125,   126,   127,   128,    -1,    -1,    -1,  1968,    -1,
6928       -1,    -1,   507,    -1,   509,    -1,    -1,    -1,    -1,    -1,
6929       -1,    -1,   517,    -1,    -1,  1485,  1486,  1487,  1488,    -1,
6930       -1,  1491,  1492,    -1,    -1,    -1,    -1,  1497,  1498,    -1,
6931     1500,    -1,  1502,    -1,  2004,    -1,    -1,    -1,    -1,    -1,
6932     1510,  1511,  1512,    -1,    -1,   550,    -1,    -1,    -1,    -1,
6933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6934       -1,    -1,    -1,  1892,    -1,    -1,    -1,    -1,    -1,    -1,
6935       -1,    -1,    -1,  1902,    -1,  1904,    -1,    -1,    -1,    -1,
6936       -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,     8,
6937        9,    -1,  1562,  1563,    -1,    -1,    -1,    -1,    -1,    -1,
6938       -1,    -1,  1572,  1573,    -1,    -1,    -1,    -1,    -1,    28,
6939       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   624,
6940       -1,    -1,    -1,    -1,    -1,    -1,  1955,  1956,    -1,    -1,
6941     1959,    -1,  1961,    -1,    -1,  1964,    -1,    -1,    -1,  1968,
6942       -1,    -1,    -1,    -1,    -1,   650,    65,    -1,    -1,   654,
6943       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
6944       -1,    -1,    -1,    -1,   669,    84,    85,    -1,    -1,    -1,
6945       -1,    -1,  2001,    -1,    -1,    -1,    -1,    -1,    -1,    98,
6946       -1,    -1,    -1,   102,   103,   104,   105,   106,   107,   108,
6947      109,    -1,    -1,   112,   113,   114,    -1,    -1,   117,    -1,
6948     2029,    -1,   121,   122,   123,    -1,   125,   126,   127,   128,
6949       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6950       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6951       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6952       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6953       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
6954        3,     4,     5,     6,    -1,     8,     9,    -1,  1738,   774,
6955      775,    -1,    -1,  1743,    -1,  1745,  1746,    -1,  1748,  1749,
6956       -1,  1751,    -1,  1753,   789,    28,    -1,    -1,    -1,  1759,
6957     1760,    -1,   797,    -1,    -1,   800,   801,   802,    -1,    -1,
6958       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    52,
6959       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
6960       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,
6961       73,    -1,  1802,    -1,    -1,    -1,    79,   842,    -1,    -1,
6962       -1,    84,    85,    86,   849,    88,    89,    90,    -1,    -1,
6963      855,    -1,    -1,    -1,    -1,    98,    -1,   862,    -1,   102,
6964      103,   104,   105,   106,   107,   108,   109,   872,    -1,   112,
6965      113,   114,   115,    -1,   117,    -1,   119,    -1,   121,   122,
6966      123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
6967       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6968       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   914,
6969       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6970       -1,    -1,    -1,  1893,  1894,    -1,  1896,  1897,  1898,     1,
6971       -1,    -1,    -1,  1903,  1904,     7,     8,     9,    10,    11,
6972       12,    13,    14,    15,    16,    17,    -1,    -1,    -1,    -1,
6973       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
6974       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
6975       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
6976       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1957,  1958,    -1,
6977     1960,  1961,    -1,    -1,    66,  1965,    -1,    -1,    -1,    -1,
6978       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
6979       -1,    -1,    -1,    85,    86,    87,    -1,    -1,    -1,    -1,
6980       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
6981       -1,    -1,    -1,    -1,  2004,    -1,    -1,   109,   110,   111,
6982      112,    -1,    -1,   115,   116,   117,   118,    -1,   120,    -1,
6983       -1,   123,    -1,   125,   126,   127,    -1,   129,   130,   131,
6984      132,   133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6985       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6986       -1,    -1,    -1,  1088,    -1,    -1,    -1,    -1,    -1,    -1,
6987       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6988     1105,    -1,  1107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6989     1115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
6990     1125,    -1,    -1,    -1,    -1,     0,     1,  1132,     3,     4,
6991        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
6992       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
6993       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
6994       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
6995       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
6996       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
6997       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    74,
6998       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    84,
6999       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
7000       -1,    96,    -1,    98,    99,   100,    -1,   102,   103,   104,
7001      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
7002      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
7003      125,   126,   127,   128,   129,   130,   131,   132,   133,    -1,
7004       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7005       -1,    -1,    -1,    -1,    -1,    -1,     0,     1,    -1,     3,
7006        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
7007       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
7008       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
7009       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
7010       44,    45,    46,    47,    48,    49,    50,    -1,    52,    53,
7011       54,    55,    56,    57,    58,    59,    60,    61,    62,    -1,
7012       -1,    65,    66,    -1,    68,  1350,    -1,    71,    72,    73,
7013       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
7014       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
7015       94,    -1,    96,  1378,    98,    99,   100,    -1,   102,   103,
7016      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
7017      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
7018      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
7019       -1,    -1,     0,     1,    -1,     3,     4,     5,     6,     7,
7020        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
7021       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
7022       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
7023       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
7024       48,    49,    50,  1468,    52,    53,    54,    55,    56,    57,
7025       58,    59,    60,    61,    62,    -1,    -1,    65,    66,    -1,
7026       68,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
7027       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
7028       88,    89,    90,    91,    92,    93,    94,    -1,    96,    -1,
7029       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
7030      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
7031      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
7032      128,   129,   130,   131,   132,   133,    -1,    -1,    -1,    -1,
7033       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7034       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7035       -1,    -1,    -1,     0,     1,    -1,     3,     4,     5,     6,
7036        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
7037       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
7038       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
7039       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
7040       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
7041       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    66,
7042       -1,    68,    -1,    -1,    71,    72,    73,    74,    75,    -1,
7043       -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
7044       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
7045       -1,    98,    99,   100,  1679,   102,   103,   104,   105,   106,
7046      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
7047      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
7048      127,   128,   129,   130,   131,   132,   133,     0,     1,    -1,
7049        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
7050       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
7051       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
7052       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
7053       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
7054       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
7055       -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,
7056       73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
7057       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
7058       93,    94,    -1,    96,    -1,    98,    99,   100,    -1,   102,
7059      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
7060      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
7061      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
7062      133,     0,     1,    -1,     3,     4,     5,     6,     7,     8,
7063        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
7064       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
7065       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
7066       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
7067       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
7068       59,    60,    61,    62,    -1,    -1,    65,    66,    -1,    68,
7069       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    78,
7070       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
7071       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
7072       99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
7073      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
7074      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
7075      129,   130,   131,   132,   133,     0,     1,    -1,     3,     4,
7076        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
7077       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
7078       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
7079       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
7080       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
7081       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
7082       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    74,
7083       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    84,
7084       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
7085       -1,    96,    -1,    98,    99,   100,    -1,   102,   103,   104,
7086      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
7087      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
7088      125,   126,   127,   128,   129,   130,   131,   132,   133,     0,
7089        1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
7090       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
7091       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
7092       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
7093       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
7094       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
7095       61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,
7096       71,    72,    73,    74,    75,    -1,    -1,    78,    79,    80,
7097       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
7098       91,    92,    93,    94,    -1,    96,    -1,    98,    99,   100,
7099       -1,   102,   103,   104,   105,   106,   107,   108,   109,   110,
7100      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
7101      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
7102      131,   132,   133,     0,     1,    -1,     3,     4,     5,     6,
7103        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
7104       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
7105       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
7106       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
7107       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
7108       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    66,
7109       -1,    68,    -1,    -1,    71,    72,    73,    74,    75,    -1,
7110       -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
7111       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
7112       -1,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
7113      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
7114      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
7115      127,   128,   129,   130,   131,   132,   133,     0,     1,    -1,
7116        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
7117       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
7118       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
7119       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
7120       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
7121       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
7122       -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,
7123       73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
7124       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
7125       93,    94,    -1,    96,    -1,    98,    99,   100,    -1,   102,
7126      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
7127      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
7128      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
7129      133,     0,     1,    -1,     3,     4,     5,     6,     7,     8,
7130        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
7131       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
7132       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
7133       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
7134       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
7135       59,    60,    61,    62,    -1,    -1,    65,    66,    -1,    68,
7136       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    78,
7137       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
7138       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
7139       99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
7140      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
7141      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
7142      129,   130,   131,   132,   133,     0,     1,    -1,     3,     4,
7143        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
7144       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
7145       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
7146       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
7147       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
7148       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
7149       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    74,
7150       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    84,
7151       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
7152       -1,    96,    -1,    98,    99,   100,    -1,   102,   103,   104,
7153      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
7154      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
7155      125,   126,   127,   128,   129,   130,   131,   132,   133,     0,
7156        1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
7157       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
7158       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
7159       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
7160       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
7161       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
7162       61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,
7163       71,    72,    73,    74,    75,    -1,    -1,    78,    79,    80,
7164       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
7165       91,    92,    93,    94,    -1,    96,    -1,    98,    99,   100,
7166       -1,   102,   103,   104,   105,   106,   107,   108,   109,   110,
7167      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
7168      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
7169      131,   132,   133,     0,     1,    -1,     3,     4,     5,     6,
7170        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
7171       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
7172       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
7173       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
7174       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
7175       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    66,
7176       -1,    68,    -1,    -1,    71,    72,    73,    74,    75,    -1,
7177       -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
7178       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
7179       -1,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
7180      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
7181      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
7182      127,   128,   129,   130,   131,   132,   133,     0,     1,    -1,
7183        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
7184       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
7185       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
7186       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
7187       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
7188       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
7189       -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,
7190       73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
7191       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
7192       93,    94,    -1,    96,    -1,    98,    99,   100,    -1,   102,
7193      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
7194      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
7195      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
7196      133,     0,     1,    -1,     3,     4,     5,     6,     7,     8,
7197        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
7198       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
7199       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
7200       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
7201       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
7202       59,    60,    61,    62,    -1,    -1,    65,    66,    -1,    68,
7203       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    78,
7204       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
7205       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
7206       99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
7207      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
7208      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
7209      129,   130,   131,   132,   133,     0,     1,    -1,     3,     4,
7210        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
7211       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
7212       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
7213       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
7214       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
7215       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
7216       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    74,
7217       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    84,
7218       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
7219       -1,    96,    -1,    98,    99,   100,    -1,   102,   103,   104,
7220      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
7221      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
7222      125,   126,   127,   128,   129,   130,   131,   132,   133,     0,
7223        1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
7224       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
7225       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
7226       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
7227       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
7228       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
7229       61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,
7230       71,    72,    73,    74,    75,    -1,    -1,    78,    79,    80,
7231       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
7232       91,    92,    93,    94,    -1,    96,    -1,    98,    99,   100,
7233       -1,   102,   103,   104,   105,   106,   107,   108,   109,   110,
7234      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
7235      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
7236      131,   132,   133,     0,     1,    -1,     3,     4,     5,     6,
7237        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
7238       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
7239       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
7240       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
7241       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
7242       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    66,
7243       -1,    68,    -1,    -1,    71,    72,    73,    74,    75,    -1,
7244       -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
7245       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
7246       -1,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
7247      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
7248      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
7249      127,   128,   129,   130,   131,   132,   133,     0,     1,    -1,
7250        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
7251       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
7252       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
7253       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
7254       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
7255       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
7256       -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,
7257       73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
7258       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
7259       93,    94,    -1,    96,    -1,    98,    99,   100,    -1,   102,
7260      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
7261      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
7262      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
7263      133,     0,     1,    -1,     3,     4,     5,     6,     7,     8,
7264        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
7265       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
7266       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
7267       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
7268       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
7269       59,    60,    61,    62,    -1,    -1,    65,    66,    -1,    68,
7270       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    78,
7271       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
7272       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
7273       99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
7274      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
7275      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
7276      129,   130,   131,   132,   133,     0,     1,    -1,     3,     4,
7277        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
7278       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
7279       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
7280       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
7281       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
7282       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
7283       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    74,
7284       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    84,
7285       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
7286       -1,    96,    -1,    98,    99,   100,    -1,   102,   103,   104,
7287      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
7288      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
7289      125,   126,   127,   128,   129,   130,   131,   132,   133,     0,
7290        1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
7291       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
7292       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
7293       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
7294       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
7295       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
7296       61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,
7297       71,    72,    73,    74,    75,    -1,    -1,    78,    79,    80,
7298       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
7299       91,    92,    93,    94,    -1,    96,    -1,    98,    99,   100,
7300       -1,   102,   103,   104,   105,   106,   107,   108,   109,   110,
7301      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
7302      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
7303      131,   132,   133,     0,     1,    -1,     3,     4,     5,     6,
7304        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
7305       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
7306       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
7307       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
7308       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
7309       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    66,
7310       -1,    68,    -1,    -1,    71,    72,    73,    74,    75,    -1,
7311       -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
7312       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
7313       -1,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
7314      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
7315      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
7316      127,   128,   129,   130,   131,   132,   133,     0,     1,    -1,
7317        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
7318       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
7319       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
7320       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
7321       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
7322       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
7323       -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,
7324       73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
7325       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
7326       93,    94,    -1,    96,    -1,    98,    99,   100,    -1,   102,
7327      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
7328      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
7329      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
7330      133,     0,     1,    -1,     3,     4,     5,     6,     7,     8,
7331        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
7332       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
7333       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
7334       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
7335       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
7336       59,    60,    61,    62,    -1,    -1,    65,    66,    -1,    68,
7337       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    78,
7338       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
7339       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
7340       99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
7341      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
7342      119,   120,   121,   122,   123,    -1,   125,   126,   127,   128,
7343      129,   130,   131,   132,   133,     0,     1,    -1,     3,     4,
7344        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
7345       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7346       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
7347       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
7348       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
7349       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
7350       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    74,
7351       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    84,
7352       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
7353       -1,    96,    -1,    98,    99,   100,    -1,   102,   103,   104,
7354      105,   106,   107,   108,   109,    -1,    -1,   112,   113,   114,
7355      115,    -1,   117,   118,   119,   120,   121,   122,   123,    -1,
7356      125,   126,   127,   128,     0,     1,    -1,     3,     4,     5,
7357        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
7358       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7359       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
7360       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
7361       46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
7362       56,    57,    58,    59,    60,    61,    62,    -1,    -1,    65,
7363       66,    -1,    68,    -1,    -1,    71,    72,    73,    74,    75,
7364       -1,    -1,    78,    79,    80,    81,    82,    83,    84,    85,
7365       86,    87,    88,    89,    90,    91,    92,    93,    94,    -1,
7366       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
7367      106,   107,   108,   109,    -1,    -1,   112,   113,   114,   115,
7368       -1,   117,   118,   119,    -1,   121,   122,   123,    -1,   125,
7369      126,   127,   128,     0,     1,    -1,     3,     4,     5,     6,
7370       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7371       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7372       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
7373       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
7374       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
7375       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    66,
7376       -1,    68,    -1,    -1,    71,    72,    73,    74,    75,    -1,
7377       -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
7378       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
7379       -1,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
7380      107,   108,   109,    -1,    -1,   112,   113,   114,   115,    -1,
7381      117,   118,   119,    -1,   121,   122,   123,    -1,   125,   126,
7382      127,   128,     0,     1,    -1,     3,     4,     5,     6,    -1,
7383        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7384       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7385       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
7386       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
7387       48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
7388       58,    59,    60,    61,    62,    -1,    -1,    65,    66,    -1,
7389       68,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
7390       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
7391       88,    89,    90,    91,    92,    93,    94,    -1,    96,    -1,
7392       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
7393      108,   109,    -1,    -1,   112,   113,   114,   115,    -1,   117,
7394      118,   119,    -1,   121,   122,   123,    -1,   125,   126,   127,
7395      128,     0,     1,    -1,     3,     4,     5,     6,    -1,     8,
7396        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7397       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
7398       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
7399       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
7400       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
7401       59,    60,    61,    62,    -1,    -1,    65,    66,    -1,    68,
7402       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    78,
7403       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
7404       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
7405       99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
7406      109,    -1,    -1,   112,   113,   114,   115,    -1,   117,   118,
7407      119,    -1,   121,   122,   123,    -1,   125,   126,   127,   128,
7408        0,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
7409       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7410       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
7411       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
7412       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
7413       50,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
7414       60,    61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,
7415       -1,    71,    72,    73,    74,    75,    -1,    -1,    78,    79,
7416       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
7417       90,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
7418      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
7419       -1,    -1,   112,   113,   114,   115,    -1,   117,   118,   119,
7420       -1,   121,   122,   123,    -1,   125,   126,   127,   128,     0,
7421        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
7422       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7423       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
7424       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
7425       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
7426       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
7427       61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,
7428       71,    72,    73,    74,    75,    -1,    -1,    78,    79,    80,
7429       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
7430       91,    92,    93,    94,    -1,    96,    -1,    98,    99,   100,
7431       -1,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
7432       -1,   112,   113,   114,   115,    -1,   117,   118,   119,    -1,
7433      121,   122,   123,    -1,   125,   126,   127,   128,     0,     1,
7434       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
7435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7436       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
7437       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
7438       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
7439       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
7440       62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
7441       72,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
7442       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
7443       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
7444      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
7445      112,   113,   114,   115,    -1,   117,   118,   119,    -1,   121,
7446      122,   123,    -1,   125,   126,   127,   128,     0,     1,    -1,
7447        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
7448       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7449       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
7450       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
7451       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
7452       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
7453       -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,
7454       73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
7455       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
7456       93,    94,    -1,    96,    -1,    98,    99,   100,    -1,   102,
7457      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
7458      113,   114,   115,    -1,   117,   118,   119,    -1,   121,   122,
7459      123,    -1,   125,   126,   127,   128,     0,     1,    -1,     3,
7460        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
7461       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7462       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
7463       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
7464       44,    45,    46,    47,    48,    49,    50,    -1,    52,    53,
7465       54,    55,    56,    57,    58,    59,    60,    61,    62,    -1,
7466       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    73,
7467       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
7468       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
7469       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
7470      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
7471      114,   115,    -1,   117,   118,   119,    -1,   121,   122,   123,
7472       -1,   125,   126,   127,   128,     0,     1,    -1,     3,     4,
7473        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
7474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7475       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
7476       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
7477       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
7478       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
7479       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    74,
7480       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    84,
7481       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
7482       -1,    96,    -1,    98,    99,   100,    -1,   102,   103,   104,
7483      105,   106,   107,   108,   109,    -1,    -1,   112,    -1,   114,
7484      115,    -1,   117,   118,   119,    -1,   121,   122,   123,    -1,
7485      125,   126,   127,   128,     0,     1,    -1,     3,     4,     5,
7486        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
7487       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7488       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
7489       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
7490       46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
7491       56,    57,    58,    59,    60,    61,    62,    -1,    -1,    65,
7492       66,    -1,    68,    -1,    -1,    71,    72,    73,    74,    75,
7493       -1,    -1,    78,    79,    80,    81,    82,    83,    84,    85,
7494       86,    87,    88,    89,    90,    91,    92,    93,    94,    -1,
7495       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
7496      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
7497       -1,   117,   118,   119,    -1,   121,   122,   123,    -1,   125,
7498      126,   127,   128,     0,     1,    -1,     3,     4,     5,     6,
7499       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7500       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7501       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
7502       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
7503       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
7504       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    66,
7505       -1,    68,    -1,    -1,    71,    72,    73,    74,    75,    -1,
7506       -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
7507       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
7508       -1,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
7509      107,   108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,
7510      117,   118,   119,    -1,   121,   122,   123,    -1,   125,   126,
7511      127,   128,     0,     1,    -1,     3,     4,     5,     6,    -1,
7512        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7513       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7514       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
7515       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
7516       48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
7517       58,    59,    60,    61,    62,    -1,    -1,    65,    66,    -1,
7518       68,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
7519       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
7520       88,    89,    90,    91,    92,    93,    94,    -1,    96,    -1,
7521       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
7522      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,   117,
7523      118,   119,    -1,   121,   122,   123,    -1,   125,   126,   127,
7524      128,     0,     1,    -1,     3,     4,     5,     6,    -1,     8,
7525        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7526       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
7527       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
7528       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
7529       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
7530       59,    60,    61,    62,    -1,    -1,    65,    66,    -1,    68,
7531       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    78,
7532       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
7533       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
7534       99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
7535      109,    -1,    -1,   112,    -1,   114,   115,    -1,   117,   118,
7536      119,    -1,   121,   122,   123,    -1,   125,   126,   127,   128,
7537        0,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
7538       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7539       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
7540       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
7541       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
7542       50,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
7543       60,    61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,
7544       -1,    71,    72,    73,    74,    75,    -1,    -1,    78,    79,
7545       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
7546       90,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
7547      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
7548       -1,    -1,   112,    -1,   114,   115,    -1,   117,   118,   119,
7549       -1,   121,   122,   123,    -1,   125,   126,   127,   128,     0,
7550        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
7551       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7552       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
7553       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
7554       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
7555       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
7556       61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,
7557       71,    72,    73,    74,    75,    -1,    -1,    78,    79,    80,
7558       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
7559       91,    92,    93,    94,    -1,    96,    -1,    98,    99,   100,
7560       -1,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
7561       -1,   112,    -1,   114,   115,    -1,   117,   118,   119,    -1,
7562      121,   122,   123,    -1,   125,   126,   127,   128,     0,     1,
7563       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
7564       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7565       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
7566       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
7567       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
7568       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
7569       62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
7570       72,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
7571       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
7572       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
7573      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
7574      112,    -1,   114,   115,    -1,   117,   118,   119,    -1,   121,
7575      122,   123,    -1,   125,   126,   127,   128,     0,     1,    -1,
7576        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
7577       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7578       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
7579       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
7580       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
7581       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
7582       -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,
7583       73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
7584       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
7585       93,    94,    -1,    96,    -1,    98,    99,   100,    -1,   102,
7586      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
7587       -1,   114,   115,    -1,   117,   118,   119,    -1,   121,   122,
7588      123,    -1,   125,   126,   127,   128,     0,     1,    -1,     3,
7589        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
7590       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7591       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
7592       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
7593       44,    45,    46,    47,    48,    49,    50,    -1,    52,    53,
7594       54,    55,    56,    57,    58,    59,    60,    61,    62,    -1,
7595       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    73,
7596       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
7597       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
7598       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
7599      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
7600      114,   115,    -1,   117,   118,   119,    -1,   121,   122,   123,
7601       -1,   125,   126,   127,   128,     0,     1,    -1,     3,     4,
7602        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
7603       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7604       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
7605       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
7606       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
7607       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
7608       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    74,
7609       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    84,
7610       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
7611       -1,    96,    -1,    98,    99,   100,    -1,   102,   103,   104,
7612      105,   106,   107,   108,   109,    -1,    -1,   112,    -1,   114,
7613      115,    -1,   117,   118,   119,    -1,   121,   122,   123,    -1,
7614      125,   126,   127,   128,     0,     1,    -1,     3,     4,     5,
7615        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
7616       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7617       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
7618       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
7619       46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
7620       56,    57,    58,    59,    60,    61,    62,    -1,    -1,    65,
7621       66,    -1,    68,    -1,    -1,    71,    72,    73,    74,    75,
7622       -1,    -1,    78,    79,    80,    81,    82,    83,    84,    85,
7623       86,    87,    88,    89,    90,    91,    92,    93,    94,    -1,
7624       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
7625      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
7626       -1,   117,   118,   119,    -1,   121,   122,   123,    -1,   125,
7627      126,   127,   128,     0,     1,    -1,     3,     4,     5,     6,
7628       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7629       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7630       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
7631       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
7632       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
7633       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    66,
7634       -1,    68,    -1,    -1,    71,    72,    73,    74,    75,    -1,
7635       -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
7636       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
7637       -1,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
7638      107,   108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,
7639      117,   118,   119,    -1,   121,   122,   123,    -1,   125,   126,
7640      127,   128,     0,     1,    -1,     3,     4,     5,     6,    -1,
7641        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7642       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7643       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
7644       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
7645       48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
7646       58,    59,    60,    61,    62,    -1,    -1,    65,    66,    -1,
7647       68,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
7648       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
7649       88,    89,    90,    91,    92,    93,    94,    -1,    96,    -1,
7650       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
7651      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,   117,
7652      118,   119,    -1,   121,   122,   123,    -1,   125,   126,   127,
7653      128,     0,     1,    -1,     3,     4,     5,     6,    -1,     8,
7654        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7655       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
7656       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
7657       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
7658       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
7659       59,    60,    61,    62,    -1,    -1,    65,    66,    -1,    68,
7660       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    78,
7661       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
7662       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
7663       99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
7664      109,    -1,    -1,   112,    -1,   114,   115,    -1,   117,   118,
7665      119,    -1,   121,   122,   123,    -1,   125,   126,   127,   128,
7666        0,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
7667       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7668       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
7669       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
7670       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
7671       50,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
7672       60,    61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,
7673       -1,    71,    72,    73,    74,    75,    -1,    -1,    78,    79,
7674       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
7675       90,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
7676      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
7677       -1,    -1,   112,    -1,   114,   115,    -1,   117,   118,   119,
7678       -1,   121,   122,   123,    -1,   125,   126,   127,   128,     0,
7679        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
7680       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
7682       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
7683       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
7684       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
7685       61,    62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,
7686       71,    72,    73,    74,    75,    -1,    -1,    78,    79,    80,
7687       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
7688       91,    92,    93,    94,    -1,    96,    -1,    98,    99,   100,
7689       -1,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
7690       -1,   112,    -1,   114,   115,    -1,   117,   118,   119,    -1,
7691      121,   122,   123,    -1,   125,   126,   127,   128,     0,     1,
7692       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
7693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7694       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
7695       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
7696       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
7697       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
7698       62,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
7699       72,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
7700       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
7701       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
7702      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
7703      112,    -1,   114,   115,    -1,   117,   118,   119,    -1,   121,
7704      122,   123,    -1,   125,   126,   127,   128,     0,     1,    -1,
7705        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
7706       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7707       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
7708       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
7709       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
7710       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
7711       -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,
7712       73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
7713       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
7714       93,    94,    -1,    96,    -1,    98,    99,   100,    -1,   102,
7715      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
7716       -1,   114,   115,    -1,   117,   118,   119,    -1,   121,   122,
7717      123,    -1,   125,   126,   127,   128,     0,     1,    -1,     3,
7718        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
7719       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7720       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
7721       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
7722       44,    45,    46,    47,    48,    49,    50,    -1,    52,    53,
7723       54,    55,    56,    57,    58,    59,    60,    61,    62,    -1,
7724       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    73,
7725       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
7726       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
7727       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
7728      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
7729      114,   115,    -1,   117,   118,   119,    -1,   121,   122,   123,
7730       -1,   125,   126,   127,   128,     0,     1,    -1,     3,     4,
7731        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
7732       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7733       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
7734       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
7735       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
7736       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
7737       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    74,
7738       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    84,
7739       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
7740       -1,    96,    -1,    98,    99,   100,    -1,   102,   103,   104,
7741      105,   106,   107,   108,   109,    -1,    -1,   112,    -1,   114,
7742      115,    -1,   117,   118,   119,    -1,   121,   122,   123,    -1,
7743      125,   126,   127,   128,     0,     1,    -1,     3,     4,     5,
7744        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
7745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7746       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
7747       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
7748       46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
7749       56,    57,    58,    59,    60,    61,    62,    -1,    -1,    65,
7750       66,    -1,    68,    -1,    -1,    71,    72,    73,    74,    75,
7751       -1,    -1,    78,    79,    80,    81,    82,    83,    84,    85,
7752       86,    87,    88,    89,    90,    91,    92,    93,    94,    -1,
7753       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
7754      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
7755       -1,   117,   118,   119,    -1,   121,   122,   123,    -1,   125,
7756      126,   127,   128,     0,     1,    -1,     3,     4,     5,     6,
7757       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7758       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7759       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
7760       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
7761       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
7762       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    66,
7763       -1,    68,    -1,    -1,    71,    72,    73,    74,    75,    -1,
7764       -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
7765       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
7766       -1,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
7767      107,   108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,
7768      117,   118,   119,    -1,   121,   122,   123,    -1,   125,   126,
7769      127,   128,     0,     1,    -1,     3,     4,     5,     6,    -1,
7770        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7771       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7772       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
7773       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
7774       48,    49,    50,    -1,    -1,    53,    -1,    -1,    -1,    -1,
7775       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
7776       68,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
7777       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
7778       88,    -1,    -1,    91,    92,    93,    94,    -1,    96,    -1,
7779       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
7780      108,   109,    -1,    -1,   112,   113,   114,   115,    -1,   117,
7781      118,   119,    -1,    -1,   122,   123,    -1,   125,   126,   127,
7782      128,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
7783       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7784       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
7785       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
7786       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
7787       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7788       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
7789       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
7790       -1,    -1,    -1,    -1,    84,    85,    86,    87,    -1,    -1,
7791       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
7792      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
7793       -1,    -1,   112,    -1,   114,   115,    -1,   117,   118,   119,
7794       -1,    -1,   122,   123,    -1,   125,   126,   127,   128,     1,
7795       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
7796       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7797       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
7798       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
7799       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
7800       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7801       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    71,
7802       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
7803       -1,    -1,    84,    85,    86,    87,    -1,    -1,    -1,    -1,
7804       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,   100,    -1,
7805      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
7806      112,    -1,   114,   115,    -1,   117,   118,   119,    -1,    -1,
7807      122,   123,    -1,   125,   126,   127,   128,     1,    -1,     3,
7808        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
7809       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7810       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
7811       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
7812       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
7813       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7814       -1,    65,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
7815       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
7816       84,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
7817       -1,    -1,    -1,    -1,    98,    -1,   100,    -1,   102,   103,
7818      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
7819      114,   115,    -1,   117,   118,   119,    -1,    -1,   122,   123,
7820       -1,   125,   126,   127,   128,     1,    -1,     3,     4,     5,
7821        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
7822       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7823       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
7824       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
7825       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
7826       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
7827       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
7828       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    84,    85,
7829       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7830       -1,    -1,    98,    -1,   100,    -1,   102,   103,   104,   105,
7831      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
7832       -1,   117,   118,   119,    -1,    -1,   122,   123,    -1,   125,
7833      126,   127,   128,     1,    -1,     3,     4,     5,     6,    -1,
7834        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7835       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7836       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
7837       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
7838       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7839       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
7840       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
7841       -1,    79,    -1,    -1,    -1,    -1,    84,    85,    86,    87,
7842       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7843       98,    -1,   100,    -1,   102,   103,   104,   105,   106,   107,
7844      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,   117,
7845      118,   119,    -1,    -1,   122,   123,    -1,   125,   126,   127,
7846      128,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
7847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7848       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
7849       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
7850       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
7851       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7852       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
7853       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
7854       -1,    -1,    -1,    -1,    84,    85,    86,    87,    -1,    -1,
7855       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
7856      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
7857       -1,    -1,   112,    -1,   114,   115,    -1,   117,   118,   119,
7858       -1,    -1,   122,   123,    -1,   125,   126,   127,   128,     1,
7859       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
7860       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7861       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
7862       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
7863       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
7864       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7865       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    71,
7866       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
7867       -1,    -1,    84,    85,    86,    87,    -1,    -1,    -1,    -1,
7868       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,   100,    -1,
7869      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
7870      112,    -1,   114,   115,    -1,   117,   118,   119,    -1,    -1,
7871      122,   123,    -1,   125,   126,   127,   128,     1,    -1,     3,
7872        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
7873       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7874       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
7875       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
7876       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
7877       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7878       -1,    65,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
7879       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
7880       84,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
7881       -1,    -1,    -1,    -1,    98,    -1,   100,    -1,   102,   103,
7882      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
7883      114,   115,    -1,   117,   118,   119,    -1,    -1,   122,   123,
7884       -1,   125,   126,   127,   128,     1,    -1,     3,     4,     5,
7885        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
7886       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7887       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
7888       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
7889       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
7890       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
7891       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
7892       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    84,    85,
7893       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7894       -1,    -1,    98,    -1,   100,    -1,   102,   103,   104,   105,
7895      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
7896       -1,   117,   118,   119,    -1,    -1,   122,   123,    -1,   125,
7897      126,   127,   128,     1,    -1,     3,     4,     5,     6,    -1,
7898        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7900       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
7901       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
7902       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7903       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
7904       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
7905       -1,    79,    -1,    -1,    -1,    -1,    84,    85,    86,    87,
7906       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7907       98,    -1,   100,    -1,   102,   103,   104,   105,   106,   107,
7908      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,   117,
7909      118,   119,    -1,    -1,   122,   123,    -1,   125,   126,   127,
7910      128,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
7911       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7912       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
7913       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
7914       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
7915       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7916       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
7917       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
7918       -1,    -1,    -1,    -1,    84,    85,    86,    87,    -1,    -1,
7919       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
7920      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
7921       -1,    -1,   112,    -1,   114,   115,    -1,   117,   118,   119,
7922       -1,    -1,   122,   123,    -1,   125,   126,   127,   128,     1,
7923       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
7924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7925       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
7926       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
7927       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
7928       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7929       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    71,
7930       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
7931       -1,    -1,    84,    85,    86,    87,    -1,    -1,    -1,    -1,
7932       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,   100,    -1,
7933      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
7934      112,    -1,   114,   115,    -1,   117,   118,   119,    -1,    -1,
7935      122,   123,    -1,   125,   126,   127,   128,     1,    -1,     3,
7936        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
7937       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7938       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
7939       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
7940       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
7941       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7942       -1,    65,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
7943       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
7944       84,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
7945       -1,    -1,    -1,    -1,    98,    -1,   100,    -1,   102,   103,
7946      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
7947      114,   115,    -1,   117,   118,   119,    -1,    -1,   122,   123,
7948       -1,   125,   126,   127,   128,     1,    -1,     3,     4,     5,
7949        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
7950       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7951       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
7952       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
7953       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
7954       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
7955       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
7956       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    84,    85,
7957       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7958       -1,    -1,    98,    -1,   100,    -1,   102,   103,   104,   105,
7959      106,   107,   108,   109,    -1,    -1,   112,     1,   114,     3,
7960        4,     5,     6,    -1,     8,     9,   122,   123,    -1,   125,
7961      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7962       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
7963       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
7964       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
7965       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7966       -1,    65,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
7967       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
7968       84,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
7969       -1,    -1,    -1,    -1,    98,    -1,   100,    -1,   102,   103,
7970      104,   105,   106,   107,   108,   109,    -1,    -1,   112,     1,
7971      114,     3,     4,     5,     6,    -1,     8,     9,   122,   123,
7972       -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
7973       -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
7974       -1,    -1,    34,    35,    36,    37,    38,    39,    40,    41,
7975       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
7976       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7977       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    71,
7978       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
7979       82,    83,    84,    85,    86,    87,    -1,    -1,    -1,    -1,
7980       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,   100,    -1,
7981      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
7982      112,   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7983      122,   123,    -1,   125,   126,   127,   128,     1,    -1,     3,
7984        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
7985       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7986       -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,
7987       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
7988       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
7989       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7990       -1,    65,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
7991       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
7992       84,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
7993       -1,    -1,    -1,    -1,    98,    -1,   100,    -1,   102,   103,
7994      104,   105,   106,   107,   108,   109,    -1,    -1,   112,   113,
7995      114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
7996       -1,   125,   126,   127,   128,     1,    -1,     3,     4,     5,
7997        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
7998       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
7999       -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,    34,    35,
8000       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
8001       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
8002       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8003       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
8004       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    84,    85,
8005       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8006       -1,    -1,    98,    -1,   100,    -1,   102,   103,   104,   105,
8007      106,   107,   108,   109,    -1,    -1,   112,     1,   114,     3,
8008        4,     5,     6,   119,     8,     9,   122,   123,    -1,   125,
8009      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8010       -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,
8011       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
8012       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
8013       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8014       -1,    65,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
8015       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
8016       84,    85,    86,    87,     1,    -1,     3,     4,     5,     6,
8017       -1,     8,     9,    -1,    98,    -1,   100,    -1,   102,   103,
8018      104,   105,   106,   107,   108,   109,    -1,    -1,   112,   113,
8019      114,    28,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
8020       -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
8021       -1,    -1,    -1,    -1,    -1,    52,    53,    54,    55,    56,
8022       57,    58,    59,    60,    61,    62,    -1,    -1,    65,    -1,
8023       -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
8024       -1,    -1,    79,    -1,    -1,    -1,    -1,    84,    85,    86,
8025       -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,    -1,
8026       -1,    98,    -1,    -1,    -1,   102,   103,   104,   105,   106,
8027      107,   108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,
8028       -1,    -1,   119,    -1,   121,   122,   123,    -1,   125,   126,
8029      127,   128,     1,    -1,     3,     4,     5,     6,    -1,     8,
8030        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8031       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
8032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8033       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8034       -1,    -1,    -1,    52,    53,    54,    55,    56,    57,    58,
8035       59,    60,    61,    62,    -1,    -1,    65,    -1,    -1,    -1,
8036       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
8037       79,    -1,    -1,    -1,    -1,    84,    85,    86,    -1,    88,
8038       89,    90,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
8039       -1,    -1,    -1,   102,   103,   104,   105,   106,   107,   108,
8040      109,    -1,    -1,   112,    -1,   114,   115,    -1,    -1,    -1,
8041      119,    -1,   121,   122,   123,    -1,   125,   126,   127,   128,
8042        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
8043       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8044       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,
8045       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8046       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8047       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
8048       61,    62,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
8049       71,    72,    73,    -1,    -1,    -1,    -1,    -1,    79,    -1,
8050       -1,    -1,    -1,    84,    85,    86,    -1,    88,    89,    90,
8051       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
8052       -1,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
8053       -1,   112,    -1,   114,   115,    -1,    -1,    -1,   119,    -1,
8054      121,   122,   123,    -1,   125,   126,   127,   128,     1,    -1,
8055        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
8056       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8057       -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,
8058       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8059       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8060       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8061       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,
8062       73,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
8063       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8064       -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,
8065      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
8066      113,   114,    -1,    -1,   117,    -1,    -1,    -1,   121,   122,
8067      123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
8068       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
8069       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
8070       -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,
8071       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
8072       -1,    28,   102,   103,   104,   105,   106,   107,   108,   109,
8073       -1,    -1,   112,   113,   114,    -1,    -1,   117,    -1,    -1,
8074       -1,   121,   122,   123,    -1,   125,   126,   127,   128,    -1,
8075       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
8076       -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,
8077        4,     5,     6,    -1,     8,     9,    -1,    84,    85,    -1,
8078       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8079       -1,    98,    -1,    -1,    28,   102,   103,   104,   105,   106,
8080      107,   108,   109,    -1,    -1,   112,   113,   114,   115,    -1,
8081      117,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,   126,
8082      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8083       -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,
8084        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
8085       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8086       -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,
8087      104,   105,   106,   107,   108,   109,    -1,    -1,   112,   113,
8088      114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,   123,
8089      124,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
8090       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
8091       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
8092        8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
8093       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
8094       28,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
8095       -1,   112,   113,   114,    -1,    -1,   117,    -1,    -1,    -1,
8096       -1,   122,   123,   124,   125,   126,   127,   128,    -1,    -1,
8097       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
8098       -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,     4,
8099        5,     6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,
8100       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8101       98,    -1,    -1,    28,   102,   103,   104,   105,   106,   107,
8102      108,   109,    -1,    -1,   112,   113,   114,   115,    -1,   117,
8103       -1,    -1,    -1,    -1,   122,   123,    -1,   125,   126,   127,
8104      128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8105       65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,
8106       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    84,
8107       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8108       -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,
8109      105,   106,   107,   108,   109,    -1,    -1,   112,   113,   114,
8110      115,    -1,   117,    -1,    -1,    -1,    -1,   122,   123,    -1,
8111      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
8112       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,
8113       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
8114        9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
8115       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,
8116      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8117      112,   113,   114,   115,    -1,   117,    -1,    -1,    -1,    -1,
8118      122,   123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,
8119       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
8120       -1,    -1,    71,    72,    73,     1,    -1,     3,     4,     5,
8121        6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,
8122       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
8123       -1,    -1,    28,   102,   103,   104,   105,   106,   107,   108,
8124      109,    -1,    -1,   112,    -1,   114,    -1,    -1,   117,   118,
8125      119,    -1,    -1,   122,   123,    -1,   125,   126,   127,   128,
8126       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8127       -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,
8128        3,     4,     5,     6,    -1,     8,     9,    -1,    84,    85,
8129       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8130       -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,   105,
8131      106,   107,   108,   109,    -1,    -1,   112,   113,   114,   115,
8132       -1,   117,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,
8133      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8134       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,
8135       73,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
8136       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8137       -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,
8138      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
8139      113,   114,    -1,    -1,    -1,    -1,   119,    -1,    -1,   122,
8140      123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
8141       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
8142       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
8143       -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,
8144       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
8145       -1,    28,   102,   103,   104,   105,   106,   107,   108,   109,
8146       -1,    -1,   112,    -1,   114,   115,    -1,    -1,    -1,   119,
8147       -1,    -1,   122,   123,    -1,   125,   126,   127,   128,    -1,
8148       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
8149       -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,
8150        4,     5,     6,    -1,     8,     9,    -1,    84,    85,    -1,
8151       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8152       -1,    98,    -1,    -1,    28,   102,   103,   104,   105,   106,
8153      107,   108,   109,    -1,    -1,   112,   113,   114,    -1,    -1,
8154      117,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,   126,
8155      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8156       -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,
8157        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
8158       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8159       -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,
8160      104,   105,   106,   107,   108,   109,    -1,    -1,   112,   113,
8161      114,   115,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
8162       -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
8163       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
8164       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
8165        8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
8166       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
8167       28,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
8168       -1,   112,    -1,   114,   115,    -1,   117,    -1,    -1,    -1,
8169       -1,   122,   123,    -1,   125,   126,   127,   128,    -1,    -1,
8170       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
8171       -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,     4,
8172        5,     6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,
8173       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8174       98,    -1,    -1,    28,   102,   103,   104,   105,   106,   107,
8175      108,   109,    -1,    -1,   112,   113,   114,    -1,    -1,    -1,
8176       -1,   119,    -1,    -1,   122,   123,    -1,   125,   126,   127,
8177      128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8178       65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,
8179       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    84,
8180       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8181       -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,
8182      105,   106,   107,   108,   109,    -1,    -1,   112,   113,   114,
8183       -1,    -1,    -1,    -1,   119,    -1,    -1,   122,   123,    -1,
8184      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
8185       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,
8186       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
8187        9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
8188       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,
8189      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8190      112,   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,
8191      122,   123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,
8192       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
8193       -1,    -1,    71,    72,    73,     1,    -1,     3,     4,     5,
8194        6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,
8195       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
8196       -1,    -1,    28,   102,   103,   104,   105,   106,   107,   108,
8197      109,    -1,    -1,   112,    -1,   114,    -1,    -1,   117,    -1,
8198       -1,    -1,    -1,   122,   123,   124,   125,   126,   127,   128,
8199       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8200       -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,
8201        3,     4,     5,     6,    -1,     8,     9,    -1,    84,    85,
8202       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8203       -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,   105,
8204      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,
8205       -1,   117,    -1,    -1,    -1,   121,   122,   123,    -1,   125,
8206      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8207       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,
8208       73,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
8209       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8210       -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,
8211      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
8212       -1,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
8213      123,   124,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
8214       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
8215       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
8216       -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,
8217       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
8218       -1,    28,   102,   103,   104,   105,   106,   107,   108,   109,
8219       -1,    -1,   112,    -1,   114,    -1,    -1,   117,    -1,    -1,
8220       -1,   121,   122,   123,    -1,   125,   126,   127,   128,    -1,
8221       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
8222       -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,
8223        4,     5,     6,    -1,     8,     9,    -1,    84,    85,    -1,
8224       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8225       -1,    98,    -1,    -1,    28,   102,   103,   104,   105,   106,
8226      107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,
8227      117,    -1,    -1,    -1,   121,   122,   123,    -1,   125,   126,
8228      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8229       -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,
8230        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
8231       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8232       -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,
8233      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8234      114,    -1,    -1,   117,    -1,    -1,    -1,   121,   122,   123,
8235       -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
8236       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
8237       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
8238        8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
8239       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
8240       28,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
8241       -1,   112,   113,   114,    -1,    -1,   117,    -1,    -1,    -1,
8242       -1,   122,   123,    -1,   125,   126,   127,   128,    -1,    -1,
8243       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
8244       -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,     4,
8245        5,     6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,
8246       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8247       98,    -1,    -1,    28,   102,   103,   104,   105,   106,   107,
8248      108,   109,    -1,    -1,   112,   113,   114,    -1,    -1,   117,
8249       -1,    -1,    -1,    -1,   122,   123,    -1,   125,   126,   127,
8250      128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8251       65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,
8252       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    84,
8253       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8254       -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,
8255      105,   106,   107,   108,   109,    -1,    -1,   112,   113,   114,
8256       -1,    -1,   117,    -1,    -1,    -1,    -1,   122,   123,    -1,
8257      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
8258       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,
8259       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
8260        9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
8261       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,
8262      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8263      112,   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,
8264      122,   123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,
8265       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
8266       -1,    -1,    71,    72,    73,     1,    -1,     3,     4,     5,
8267        6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,
8268       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
8269       -1,    -1,    28,   102,   103,   104,   105,   106,   107,   108,
8270      109,    -1,    -1,   112,   113,   114,   115,    -1,    -1,    -1,
8271       -1,    -1,    -1,   122,   123,    -1,   125,   126,   127,   128,
8272       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8273       -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,
8274        3,     4,     5,     6,    -1,     8,     9,    -1,    84,    85,
8275       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8276       -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,   105,
8277      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
8278       -1,   117,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,
8279      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8280       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,
8281       73,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
8282       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8283       -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,
8284      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
8285      113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,   122,
8286      123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
8287       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
8288       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
8289       -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,
8290       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
8291       -1,    28,   102,   103,   104,   105,   106,   107,   108,   109,
8292       -1,    -1,   112,    -1,   114,    -1,    -1,   117,    -1,    -1,
8293       -1,    -1,   122,   123,   124,   125,   126,   127,   128,    -1,
8294       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
8295       -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,
8296        4,     5,     6,    -1,     8,     9,    -1,    84,    85,    -1,
8297       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8298       -1,    98,    -1,    -1,    28,   102,   103,   104,   105,   106,
8299      107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,
8300      117,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
8301      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8302       -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,
8303        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
8304       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8305       -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,
8306      104,   105,   106,   107,   108,   109,    -1,    -1,   112,   113,
8307      114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,   123,
8308       -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
8309       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
8310       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
8311        8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
8312       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
8313       28,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
8314       -1,   112,   113,   114,    -1,    -1,   117,    -1,    -1,    -1,
8315       -1,   122,   123,    -1,   125,   126,   127,   128,    -1,    -1,
8316       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
8317       -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,     4,
8318        5,     6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,
8319       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8320       98,    -1,    -1,    28,   102,   103,   104,   105,   106,   107,
8321      108,   109,    -1,    -1,   112,   113,   114,   115,    -1,    -1,
8322       -1,    -1,    -1,    -1,   122,   123,    -1,   125,   126,   127,
8323      128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8324       65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,
8325       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    84,
8326       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8327       -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,
8328      105,   106,   107,   108,   109,    -1,    -1,   112,   113,   114,
8329       -1,    -1,   117,    -1,    -1,    -1,    -1,   122,   123,    -1,
8330      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
8331       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,
8332       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
8333        9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
8334       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,
8335      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8336      112,   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,
8337      122,   123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,
8338       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
8339       -1,    -1,    71,    72,    73,     1,    -1,     3,     4,     5,
8340        6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,
8341       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
8342       -1,    -1,    28,   102,   103,   104,   105,   106,   107,   108,
8343      109,    -1,    -1,   112,   113,   114,    -1,    -1,   117,    -1,
8344       -1,    -1,    -1,   122,   123,    -1,   125,   126,   127,   128,
8345       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8346       -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,
8347        3,     4,     5,     6,    -1,     8,     9,    -1,    84,    85,
8348       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8349       -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,   105,
8350      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,
8351       -1,    -1,   118,   119,    -1,    -1,   122,   123,    -1,   125,
8352      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8353       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,
8354       73,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
8355       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8356       -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,
8357      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
8358      113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
8359      123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
8360       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
8361       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
8362       -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,
8363       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
8364       -1,    28,   102,   103,   104,   105,   106,   107,   108,   109,
8365       -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,    -1,
8366       -1,    -1,   122,   123,   124,   125,   126,   127,   128,    -1,
8367       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
8368       -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,
8369        4,     5,     6,    -1,     8,     9,    -1,    84,    85,    -1,
8370       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8371       -1,    98,    -1,    -1,    28,   102,   103,   104,   105,   106,
8372      107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,
8373       -1,    -1,   119,    -1,    -1,   122,   123,    -1,   125,   126,
8374      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8375       -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,
8376        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
8377       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8378       -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,
8379      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8380      114,    -1,    -1,    -1,    -1,   119,    -1,    -1,   122,   123,
8381       -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
8382       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
8383       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
8384        8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
8385       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
8386       28,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
8387       -1,   112,    -1,   114,    -1,    -1,    -1,    -1,    -1,    -1,
8388       -1,   122,   123,   124,   125,   126,   127,   128,    -1,    -1,
8389       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
8390       -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,     4,
8391        5,     6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,
8392       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8393       98,    -1,    -1,    28,   102,   103,   104,   105,   106,   107,
8394      108,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,
8395       -1,    -1,    -1,   121,   122,   123,    -1,   125,   126,   127,
8396      128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8397       65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,
8398       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    84,
8399       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8400       -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,
8401      105,   106,   107,   108,   109,    -1,    -1,   112,   113,   114,
8402       -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,
8403      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
8404       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,
8405       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
8406        9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
8407       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,
8408      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8409      112,    -1,   114,    -1,    -1,    -1,    -1,   119,    -1,    -1,
8410      122,   123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,
8411       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
8412       -1,    -1,    71,    72,    73,     1,    -1,     3,     4,     5,
8413        6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,
8414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
8415       -1,    -1,    28,   102,   103,   104,   105,   106,   107,   108,
8416      109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,
8417      119,    -1,    -1,   122,   123,    -1,   125,   126,   127,   128,
8418       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8419       -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,
8420        3,     4,     5,     6,    -1,     8,     9,    -1,    84,    85,
8421       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8422       -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,   105,
8423      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,
8424       -1,    -1,    -1,   119,    -1,    -1,   122,   123,    -1,   125,
8425      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8426       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,
8427       73,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
8428       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8429       -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,
8430      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
8431       -1,   114,    -1,    -1,    -1,    -1,   119,    -1,    -1,   122,
8432      123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
8433       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
8434       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
8435       -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,
8436       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
8437       -1,    28,   102,   103,   104,   105,   106,   107,   108,   109,
8438       -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,   119,
8439       -1,    -1,   122,   123,    -1,   125,   126,   127,   128,    -1,
8440       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
8441       -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,
8442        4,     5,     6,    -1,     8,     9,    -1,    84,    85,    -1,
8443       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8444       -1,    98,    -1,    -1,    28,   102,   103,   104,   105,   106,
8445      107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,
8446       -1,    -1,   119,    -1,    -1,   122,   123,    -1,   125,   126,
8447      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8448       -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,
8449        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
8450       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8451       -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,
8452      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8453      114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
8454      124,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
8455       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
8456       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
8457        8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
8458       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
8459       28,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
8460       -1,   112,   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,
8461       -1,   122,   123,    -1,   125,   126,   127,   128,    -1,    -1,
8462       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
8463       -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,     4,
8464        5,     6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,
8465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8466       98,    -1,    -1,    28,   102,   103,   104,   105,   106,   107,
8467      108,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,
8468       -1,    -1,    -1,   121,   122,   123,    -1,   125,   126,   127,
8469      128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8470       65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,
8471       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    84,
8472       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8473       -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,
8474      105,   106,   107,   108,   109,    -1,    -1,   112,    -1,   114,
8475       -1,    -1,    -1,    -1,   119,    -1,    -1,   122,   123,    -1,
8476      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
8477       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,
8478       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
8479        9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
8480       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,
8481      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8482      112,    -1,   114,    -1,    -1,    -1,    -1,   119,    -1,    -1,
8483      122,   123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,
8484       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
8485       -1,    -1,    71,    72,    73,     1,    -1,     3,     4,     5,
8486        6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,
8487       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
8488       -1,    -1,    28,   102,   103,   104,   105,   106,   107,   108,
8489      109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,
8490      119,    -1,    -1,   122,   123,    -1,   125,   126,   127,   128,
8491       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8492       -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,
8493        3,     4,     5,     6,    -1,     8,     9,    -1,    84,    85,
8494       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8495       -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,   105,
8496      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,
8497       -1,    -1,    -1,   119,    -1,    -1,   122,   123,    -1,   125,
8498      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8499       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,
8500       73,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
8501       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8502       -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,
8503      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
8504       -1,   114,    -1,    -1,    -1,    -1,   119,    -1,    -1,   122,
8505      123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
8506       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
8507       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
8508       -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,
8509       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
8510       -1,    28,   102,   103,   104,   105,   106,   107,   108,   109,
8511       -1,    -1,   112,   113,   114,    -1,    -1,    -1,    -1,    -1,
8512       -1,    -1,   122,   123,    -1,   125,   126,   127,   128,    -1,
8513       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
8514       -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,
8515        4,     5,     6,    -1,     8,     9,    -1,    84,    85,    -1,
8516       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8517       -1,    98,    -1,    -1,    28,   102,   103,   104,   105,   106,
8518      107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,
8519       -1,    -1,   119,    -1,    -1,   122,   123,    -1,   125,   126,
8520      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8521       -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,
8522        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
8523       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8524       -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,
8525      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8526      114,    -1,    -1,    -1,    -1,   119,    -1,    -1,   122,   123,
8527       -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
8528       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
8529       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
8530        8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
8531       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
8532       28,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
8533       -1,   112,    -1,   114,    -1,    -1,    -1,    -1,   119,    -1,
8534       -1,   122,   123,    -1,   125,   126,   127,   128,    -1,    -1,
8535       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
8536       -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,     4,
8537        5,     6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,
8538       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8539       98,    -1,    -1,    28,   102,   103,   104,   105,   106,   107,
8540      108,   109,    -1,    -1,   112,   113,   114,    -1,    -1,    -1,
8541       -1,    -1,    -1,    -1,   122,   123,    -1,   125,   126,   127,
8542      128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8543       65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,
8544       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    84,
8545       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8546       -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,
8547      105,   106,   107,   108,   109,    -1,    -1,   112,   113,   114,
8548       -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,
8549      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
8550       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,
8551       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
8552        9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
8553       -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,
8554      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8555      112,    -1,   114,    -1,    -1,    -1,    -1,   119,    -1,    -1,
8556      122,   123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,
8557       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
8558       -1,    -1,    71,    72,    73,     1,    -1,     3,     4,     5,
8559        6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,
8560       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
8561       -1,    -1,    28,   102,   103,   104,   105,   106,   107,   108,
8562      109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,
8563       -1,    -1,    -1,   122,   123,    -1,   125,   126,   127,   128,
8564       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8565       -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,
8566        3,     4,     5,     6,    -1,     8,     9,    -1,    84,    85,
8567       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8568       -1,    -1,    98,    -1,    -1,    28,   102,   103,   104,   105,
8569      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,
8570       -1,    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,
8571      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8572       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,
8573       73,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
8574       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8575       -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,
8576      103,   104,   105,   106,   107,   108,   109,    -1,    -1,   112,
8577       -1,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
8578      123,    -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
8579       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
8580       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
8581       -1,     8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,
8582       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,
8583       -1,    28,   102,   103,   104,   105,   106,   107,   108,   109,
8584       -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,    -1,
8585       -1,    -1,   122,   123,    -1,   125,   126,   127,   128,    -1,
8586       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
8587       -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,
8588        4,     5,     6,    -1,     8,     9,    -1,    84,    85,    -1,
8589       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8590       -1,    98,    -1,    -1,    28,   102,   103,   104,   105,   106,
8591      107,   108,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,
8592       -1,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,   126,
8593      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8594       -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,
8595        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
8596       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8597       -1,    -1,    -1,    -1,    98,    -1,    -1,    28,   102,   103,
8598      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8599      114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
8600       -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
8601       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
8602       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
8603        8,     9,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
8604       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
8605       28,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
8606       -1,   112,    -1,   114,    -1,    -1,    -1,    -1,    -1,    -1,
8607       -1,   122,   123,    -1,   125,   126,   127,   128,    -1,    -1,
8608       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
8609       -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,     4,
8610        5,     6,    -1,     8,     9,    -1,    84,    85,    -1,    -1,
8611       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8612       98,    -1,    -1,    28,   102,   103,   104,   105,   106,   107,
8613      108,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,
8614       -1,    -1,    -1,    -1,   122,   123,    -1,   125,   126,   127,
8615      128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8616       65,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,
8617       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,
8618       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8619       -1,    -1,    -1,    98,    -1,    -1,    -1,   102,   103,   104,
8620      105,   106,   107,   108,   109,    -1,    -1,   112,    -1,   114,
8621        0,     1,    -1,     3,     4,     5,    -1,   122,   123,    -1,
8622      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
8623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
8624       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
8625       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
8626       50,    -1,    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,
8627       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
8628       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
8629       80,    81,    82,    83,    -1,    85,    86,    87,    88,    -1,
8630       -1,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
8631      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
8632       -1,    -1,   112,    -1,   114,   115,     0,     1,   118,     3,
8633        4,     5,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
8634       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8635       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
8636       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
8637       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    53,
8638       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8639       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
8640       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
8641       -1,    85,    86,    87,    88,    -1,    -1,    91,    92,    93,
8642       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
8643      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8644      114,   115,     0,     1,   118,     3,     4,     5,   122,   123,
8645       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8646       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8647       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
8648       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
8649       48,    49,    50,    -1,    -1,    53,    -1,    -1,    -1,    -1,
8650       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
8651       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
8652       78,    79,    80,    81,    82,    83,    -1,    85,    86,    87,
8653       88,    -1,    -1,    91,    92,    93,    94,    -1,    96,    -1,
8654       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
8655      108,   109,    -1,    -1,   112,    -1,   114,   115,     0,     1,
8656      118,     3,     4,     5,   122,   123,    -1,    -1,    -1,    -1,
8657       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8658       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
8659       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
8660       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
8661       -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8662       -1,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
8663       72,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
8664       82,    83,    -1,    85,    86,    87,    88,    -1,    -1,    91,
8665       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
8666      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8667      112,    -1,   114,   115,    -1,     1,   118,     3,     4,     5,
8668      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8669       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8670       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
8671       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
8672       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
8673       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8674       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
8675       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
8676       86,    87,    88,    -1,    -1,    91,    92,    93,    94,    -1,
8677       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
8678      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
8679       -1,     1,   118,     3,     4,     5,   122,   123,    -1,    -1,
8680       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
8682       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
8683       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
8684       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8685       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
8686       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
8687       80,    81,    82,    83,    -1,    85,    86,    87,    88,    -1,
8688       -1,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
8689      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
8690       -1,    -1,   112,    -1,   114,   115,    -1,     1,   118,     3,
8691        4,     5,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
8692       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8693       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
8694       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
8695       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
8696       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8697       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
8698       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
8699       -1,    85,    86,    87,    88,    -1,    -1,    91,    92,    93,
8700       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
8701      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8702      114,   115,    -1,     1,   118,     3,     4,     5,   122,   123,
8703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8704       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8705       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
8706       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
8707       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8708       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
8709       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
8710       78,    79,    80,    81,    82,    83,    -1,    85,    86,    87,
8711       88,    -1,    -1,    91,    92,    93,    94,    -1,    96,    -1,
8712       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
8713      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,     1,
8714      118,     3,     4,     5,   122,   123,    -1,    -1,    -1,    -1,
8715       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8716       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
8717       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
8718       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
8719       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8720       -1,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
8721       72,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
8722       82,    83,    -1,    85,    86,    87,    88,    -1,    -1,    91,
8723       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
8724      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8725      112,    -1,   114,   115,    -1,     1,   118,     3,     4,     5,
8726      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8727       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8728       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
8729       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
8730       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
8731       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8732       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
8733       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
8734       86,    87,    88,    -1,    -1,    91,    92,    93,    94,    -1,
8735       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
8736      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
8737       -1,     1,   118,     3,     4,     5,   122,   123,    -1,    -1,
8738       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8739       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
8740       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
8741       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
8742       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8743       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
8744       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
8745       80,    81,    82,    83,    -1,    85,    86,    87,    88,    -1,
8746       -1,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
8747      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
8748       -1,    -1,   112,    -1,   114,   115,    -1,     1,   118,     3,
8749        4,     5,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
8750       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8751       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
8752       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
8753       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
8754       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8755       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
8756       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
8757       -1,    85,    86,    87,    88,    -1,    -1,    91,    92,    93,
8758       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
8759      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8760      114,   115,    -1,     1,   118,     3,     4,     5,   122,   123,
8761       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8762       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8763       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
8764       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
8765       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8766       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
8767       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
8768       78,    79,    80,    81,    82,    83,    -1,    85,    86,    87,
8769       88,    -1,    -1,    91,    92,    93,    94,    -1,    96,    -1,
8770       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
8771      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,     1,
8772      118,     3,     4,     5,   122,   123,    -1,    -1,    -1,    -1,
8773       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8774       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
8775       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
8776       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
8777       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8778       -1,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
8779       72,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
8780       82,    83,    -1,    85,    86,    87,    88,    -1,    -1,    91,
8781       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
8782      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8783      112,    -1,   114,   115,    -1,     1,   118,     3,     4,     5,
8784      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8785       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8786       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
8787       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
8788       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
8789       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8790       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
8791       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
8792       86,    87,    88,    -1,    -1,    91,    92,    93,    94,    -1,
8793       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
8794      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
8795       -1,     1,   118,     3,     4,     5,   122,   123,    -1,    -1,
8796       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8797       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
8798       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
8799       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
8800       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8801       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
8802       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
8803       80,    81,    82,    83,    -1,    85,    86,    87,    88,    -1,
8804       -1,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
8805      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
8806       -1,    -1,   112,    -1,   114,   115,    -1,     1,   118,     3,
8807        4,     5,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
8808       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8809       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
8810       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
8811       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
8812       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8813       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
8814       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
8815       -1,    85,    86,    87,    88,    -1,    -1,    91,    92,    93,
8816       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
8817      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8818      114,   115,    -1,     1,   118,     3,     4,     5,   122,   123,
8819       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8820       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8821       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
8822       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
8823       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8824       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
8825       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
8826       78,    79,    80,    81,    82,    83,    -1,    85,    86,    87,
8827       88,    -1,    -1,    91,    92,    93,    94,    -1,    96,    -1,
8828       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
8829      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,     1,
8830      118,     3,     4,     5,   122,   123,    -1,    -1,    -1,    -1,
8831       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8832       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
8833       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
8834       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
8835       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8836       -1,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
8837       72,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
8838       82,    83,    -1,    85,    86,    87,    88,    -1,    -1,    91,
8839       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
8840      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8841      112,    -1,   114,   115,    -1,     1,   118,     3,     4,     5,
8842      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8843       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8844       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
8845       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
8846       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
8847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8848       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
8849       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
8850       86,    87,    88,    -1,    -1,    91,    92,    93,    94,    -1,
8851       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
8852      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
8853       -1,     1,   118,     3,     4,     5,   122,   123,    -1,    -1,
8854       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8855       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
8856       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
8857       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
8858       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8859       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
8860       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
8861       80,    81,    82,    83,    -1,    85,    86,    87,    88,    -1,
8862       -1,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
8863      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
8864       -1,    -1,   112,    -1,   114,   115,    -1,     1,   118,     3,
8865        4,     5,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
8866       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8867       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
8868       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
8869       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
8870       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8871       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
8872       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
8873       -1,    85,    86,    87,    88,    -1,    -1,    91,    92,    93,
8874       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
8875      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8876      114,   115,    -1,     1,   118,     3,     4,     5,   122,   123,
8877       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8878       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8879       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
8880       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
8881       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8882       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
8883       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
8884       78,    79,    80,    81,    82,    83,    -1,    85,    86,    87,
8885       88,    -1,    -1,    91,    92,    93,    94,    -1,    96,    -1,
8886       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
8887      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,     1,
8888      118,     3,     4,     5,   122,   123,    -1,    -1,    -1,    -1,
8889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8890       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
8891       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
8892       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
8893       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8894       -1,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
8895       72,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
8896       82,    83,    -1,    85,    86,    87,    88,    -1,    -1,    91,
8897       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
8898      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8899      112,    -1,   114,   115,    -1,     1,   118,     3,     4,     5,
8900      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8901       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8902       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
8903       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
8904       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
8905       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8906       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
8907       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
8908       86,    87,    88,    -1,    -1,    91,    92,    93,    94,    -1,
8909       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
8910      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
8911       -1,     1,   118,     3,     4,     5,   122,   123,    -1,    -1,
8912       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8913       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
8914       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
8915       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
8916       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8917       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
8918       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
8919       80,    81,    82,    83,    -1,    85,    86,    87,    88,    -1,
8920       -1,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
8921      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
8922       -1,    -1,   112,    -1,   114,   115,    -1,     1,   118,     3,
8923        4,     5,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
8924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8925       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
8926       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
8927       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
8928       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8929       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
8930       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
8931       -1,    85,    86,    87,    88,    -1,    -1,    91,    92,    93,
8932       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
8933      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8934      114,   115,    -1,     1,   118,     3,     4,     5,   122,   123,
8935       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8936       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8937       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
8938       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
8939       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8940       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
8941       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
8942       78,    79,    80,    81,    82,    83,    -1,    85,    86,    87,
8943       88,    -1,    -1,    91,    92,    93,    94,    -1,    96,    -1,
8944       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
8945      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,     1,
8946      118,     3,     4,     5,   122,   123,    -1,    -1,    -1,    -1,
8947       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8948       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
8949       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
8950       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
8951       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8952       -1,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
8953       72,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
8954       82,    83,    -1,    85,    86,    87,    88,    -1,    -1,    91,
8955       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
8956      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
8957      112,    -1,   114,   115,    -1,     1,   118,     3,     4,     5,
8958      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8959       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8960       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
8961       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
8962       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
8963       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
8964       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
8965       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
8966       86,    87,    88,    -1,    -1,    91,    92,    93,    94,    -1,
8967       96,    -1,    98,    99,   100,    -1,   102,   103,   104,   105,
8968      106,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,
8969       -1,     1,   118,     3,     4,     5,   122,   123,    -1,    -1,
8970       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8971       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
8972       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
8973       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
8974       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8975       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
8976       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
8977       80,    81,    82,    83,    -1,    85,    86,    87,    88,    -1,
8978       -1,    91,    92,    93,    94,    -1,    96,    -1,    98,    99,
8979      100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
8980       -1,    -1,   112,    -1,   114,   115,    -1,     1,   118,     3,
8981        4,     5,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
8982       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8983       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
8984       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
8985       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
8986       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8987       -1,    65,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
8988       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
8989       -1,    85,    86,    87,    88,    -1,    -1,    91,    92,    93,
8990       94,    -1,    96,    -1,    98,    99,   100,    -1,   102,   103,
8991      104,   105,   106,   107,   108,   109,    -1,    -1,   112,    -1,
8992      114,   115,    -1,     1,   118,     3,     4,     5,   122,   123,
8993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8994       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8995       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
8996       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
8997       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
8998       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
8999       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
9000       78,    79,    80,    81,    82,    83,    -1,    85,    86,    87,
9001       88,    -1,    -1,    91,    92,    93,    94,    -1,    96,    -1,
9002       98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
9003      108,   109,    -1,    -1,   112,    -1,   114,   115,    -1,     1,
9004      118,     3,     4,     5,   122,   123,    -1,    -1,    -1,    -1,
9005       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9006       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
9007       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
9008       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
9009       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9010       -1,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
9011       72,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
9012       82,    83,    -1,    85,    86,    87,    88,    -1,    -1,    91,
9013       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
9014      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
9015      112,    -1,   114,   115,     1,    -1,     3,     4,     5,    -1,
9016      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9017       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9018       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
9019       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9020       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
9021       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
9022       -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,
9023       -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
9024       87,    88,    -1,    -1,    91,    92,    93,    94,    -1,    96,
9025       -1,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
9026      107,   108,   109,    -1,    -1,   112,    -1,   114,   115,     1,
9027       -1,     3,     4,     5,    -1,   122,   123,    -1,    -1,    -1,
9028       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9029       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
9030       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
9031       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
9032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9033       -1,    -1,    -1,    65,    66,    -1,    68,    -1,    -1,    71,
9034       72,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
9035       82,    83,    -1,    85,    86,    87,    88,    -1,    -1,    91,
9036       92,    93,    94,    -1,    96,    -1,    98,    99,   100,    -1,
9037      102,   103,   104,   105,   106,   107,   108,   109,    -1,     1,
9038      112,     3,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
9039      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9040       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
9041       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
9042       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
9043       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9044       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,
9045       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
9046       82,    83,    -1,    85,    86,    87,    -1,    -1,    -1,    -1,
9047       -1,    -1,    -1,     0,    -1,    -1,    -1,    -1,   100,    -1,
9048       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
9049      112,   113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9050       -1,   123,    29,    30,    31,    32,    33,    34,    35,    36,
9051       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9052       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
9053       57,    58,    59,    60,    61,    62,    -1,    -1,    -1,    66,
9054       -1,    68,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
9055       -1,    78,    79,    80,    81,    82,    83,    -1,    -1,    86,
9056       87,    88,    89,    90,    91,    92,    93,    94,     0,    96,
9057       -1,    -1,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,
9058       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,
9059       -1,   118,   119,    -1,   121,    -1,    -1,    29,    30,    31,
9060       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
9061       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
9062       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
9063       62,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,
9064       -1,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
9065       82,    83,    -1,    -1,    86,    87,    88,    89,    90,    91,
9066       92,    93,    94,     0,    96,    -1,    -1,    99,   100,    -1,
9067       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9068       -1,    -1,    -1,   115,    -1,    -1,   118,   119,    -1,   121,
9069       -1,    -1,    29,    30,    31,    32,    33,    34,    35,    36,
9070       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9071       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
9072       57,    58,    59,    60,    61,    62,    -1,    -1,    -1,    66,
9073       -1,    68,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
9074       -1,    78,    79,    80,    81,    82,    83,    -1,    -1,    86,
9075       87,    88,    89,    90,    91,    92,    93,    94,     0,    96,
9076       -1,    -1,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,
9077       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,
9078       -1,   118,   119,    -1,   121,    -1,    -1,    29,    30,    31,
9079       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
9080       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
9081       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
9082       62,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,
9083       -1,    -1,    74,    75,    -1,    -1,    78,    79,    80,    81,
9084       82,    83,    -1,    -1,    86,    87,    88,    89,    90,    91,
9085       92,    93,    94,     0,    96,    -1,    -1,    99,   100,    -1,
9086       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9087       -1,    -1,    -1,    -1,    -1,    -1,   118,   119,    -1,   121,
9088       -1,    -1,    29,    30,    31,    32,    33,    34,    35,    36,
9089       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9090       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
9091       57,    58,    59,    60,    61,    62,    -1,    -1,    -1,    66,
9092       -1,    68,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
9093       -1,    78,    79,    80,    81,    82,    83,    -1,    -1,    86,
9094       87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
9095        3,    -1,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,
9096       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9097       -1,   118,   119,    -1,   121,    28,    29,    30,    31,    32,
9098       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
9099       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
9100       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9101       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
9102       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,
9103       -1,    -1,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,
9104       -1,    -1,    -1,    -1,    -1,    -1,     3,   100,    -1,    -1,
9105       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,
9106       -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,
9107      123,    28,    29,    30,    31,    32,    33,    34,    35,    36,
9108       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9109       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
9110       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
9111       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
9112       -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    86,
9113       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9114       -1,    -1,     3,   100,    -1,    -1,    -1,    -1,    -1,    -1,
9115       -1,    -1,   109,    -1,    -1,   112,    -1,    -1,    -1,    -1,
9116       -1,    -1,    -1,    -1,    -1,    -1,   123,    28,    29,    30,
9117       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
9118       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
9119       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9120       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
9121       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
9122       -1,    -1,    -1,    -1,    85,    86,    87,    -1,    -1,    -1,
9123       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,   100,
9124       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
9125       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9126       -1,    -1,   123,    28,    29,    30,    31,    32,    33,    34,
9127       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
9128       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
9129       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9130       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
9131       75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,
9132       85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9133       -1,    -1,    -1,    -1,     3,   100,    -1,    -1,    -1,    -1,
9134       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,
9135       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   123,    28,
9136       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
9137       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
9138       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9139       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
9140       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
9141       79,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    -1,
9142       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9143        3,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9144      109,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
9145       -1,    -1,    -1,    -1,   123,    28,    29,    30,    31,    32,
9146       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
9147       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
9148       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9149       -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,
9150       -1,    74,    75,    76,    77,    -1,    79,    -1,    -1,    82,
9151       83,    -1,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,
9152       -1,    -1,    -1,    -1,     3,    -1,    -1,   100,    -1,    -1,
9153       -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,   112,
9154       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,    28,
9155       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
9156       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
9157       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9158       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
9159       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    78,
9160       79,    -1,    -1,    82,    83,    -1,    85,    86,    87,    -1,
9161       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
9162       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9163      109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,
9164       -1,    -1,   121,    28,    29,    30,    31,    32,    33,    34,
9165       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
9166       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
9167       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9168       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
9169       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
9170       85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9171       -1,    -1,     3,    -1,    -1,   100,    -1,    -1,    -1,    -1,
9172       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,
9173      115,    -1,    -1,    -1,    -1,    -1,   121,    28,    29,    30,
9174       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
9175       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
9176       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9177       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
9178       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
9179       -1,    82,    83,    -1,    85,    86,    87,    -1,    -1,    -1,
9180       -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,   100,
9181       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
9182       -1,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,
9183      121,    28,    29,    30,    31,    32,    33,    34,    35,    36,
9184       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9185       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
9186       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
9187       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
9188       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    86,
9189       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
9190       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
9191       -1,    -1,   109,    -1,    -1,   112,    -1,    -1,    -1,    -1,
9192       -1,    -1,    -1,    -1,   121,    28,    29,    30,    31,    32,
9193       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
9194       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
9195       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9196       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
9197       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,
9198       -1,    -1,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,
9199        1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
9200       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9201       -1,    -1,    -1,    -1,    -1,    -1,   119,    28,    29,    30,
9202       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
9203       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
9204       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9205       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
9206       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
9207       -1,    -1,    -1,    -1,    85,    86,    87,    -1,    -1,    -1,
9208       -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
9209       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9210       -1,    -1,    -1,    -1,   115,    -1,   117,   118,    28,    29,
9211       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
9212       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
9213       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9214       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
9215       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
9216       -1,    -1,    -1,    -1,    -1,    85,    86,    87,    -1,    -1,
9217       -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9218      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9219       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    28,
9220       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
9221       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
9222       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9223       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
9224       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
9225       79,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    -1,
9226       -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,
9227       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9228       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
9229       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
9230       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
9231       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9232       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
9233       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
9234       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
9235       -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,
9236       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9237       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9238      118,    28,    29,    30,    31,    32,    33,    34,    35,    36,
9239       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9240       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
9241       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
9242       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
9243       -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    86,
9244       87,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
9245       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
9246       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9247       -1,   118,    28,    29,    30,    31,    32,    33,    34,    35,
9248       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
9249       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
9250       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9251       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
9252       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,
9253       86,    87,    -1,    -1,    -1,     0,     1,    -1,     3,    -1,
9254       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
9255       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9256       -1,    -1,   118,    28,    29,    30,    31,    32,    33,    34,
9257       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
9258       45,    46,    47,    48,    49,    50,    -1,    -1,    53,    -1,
9259       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9260       65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
9261       75,    76,    77,    -1,    79,    80,    81,    82,    83,    -1,
9262       85,    86,    87,    -1,    -1,    -1,     3,    -1,    -1,    -1,
9263       -1,    -1,    -1,    -1,    -1,   100,   101,    -1,    -1,    -1,
9264      105,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,
9265      115,    28,    29,    30,    31,    32,    33,    34,    35,    36,
9266       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9267       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
9268       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
9269       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
9270       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    86,
9271       87,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,
9272       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
9273      107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9274       -1,   118,    28,    29,    30,    31,    32,    33,    34,    35,
9275       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
9276       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
9277       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9278       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
9279       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
9280       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
9281       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
9282       -1,   107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9283       -1,    -1,   118,    28,    29,    30,    31,    32,    33,    34,
9284       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
9285       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
9286       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9287       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
9288       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
9289       85,    86,    87,    -1,    -1,    -1,    -1,     1,    -1,     3,
9290       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
9291       -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9292       -1,    -1,    -1,   118,    28,    29,    30,    31,    32,    33,
9293       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
9294       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
9295       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9296       -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9297       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
9298       -1,    85,    86,    87,    -1,     1,    -1,     3,    -1,    -1,
9299       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
9300       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,
9301       -1,   115,    28,    29,    30,    31,    32,    33,    34,    35,
9302       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
9303       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
9304       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9305       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
9306       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
9307       86,    87,    -1,     1,    -1,     3,    -1,    -1,    -1,    -1,
9308       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
9309       -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,   115,
9310       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
9311       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
9312       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9313       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
9314       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
9315       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
9316       -1,     1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
9317       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9318       -1,   109,    -1,    -1,   112,    -1,    -1,   115,    28,    29,
9319       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
9320       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
9321       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9322       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
9323       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
9324       -1,    -1,    -1,    -1,    -1,    85,    86,    87,    -1,    -1,
9325       -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9326      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
9327       -1,    -1,   112,    -1,    -1,   115,    28,    29,    30,    31,
9328       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
9329       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
9330       -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9331       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,
9332       -1,    -1,    74,    75,    76,    77,    -1,    79,    80,    81,
9333       82,    83,    -1,    85,    86,    87,     0,     1,    -1,     3,
9334       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,   101,
9335       -1,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
9336      112,    -1,    -1,   115,    28,    29,    30,    31,    32,    33,
9337       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
9338       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    53,
9339       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9340       -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9341       74,    75,    -1,    -1,    -1,    79,    80,    81,    82,    83,
9342       -1,    85,    86,    87,     1,    -1,     3,    -1,    -1,    -1,
9343       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
9344       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,
9345       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
9346       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9347       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
9348       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
9349       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
9350       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    86,
9351       87,     1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
9352       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
9353       -1,    -1,   109,    -1,    -1,   112,   113,    -1,    28,    29,
9354       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
9355       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
9356       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9357       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
9358       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
9359       -1,    -1,    82,    83,    -1,    85,    86,    87,     1,    -1,
9360        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9361      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9362       -1,    -1,    -1,   113,    -1,    28,    29,    30,    31,    32,
9363       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
9364       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
9365       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9366       -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,
9367       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
9368       83,    -1,    85,    86,    87,     1,    -1,     3,    -1,    -1,
9369       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
9370       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9371      113,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
9372       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
9373       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
9374       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
9375       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
9376       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
9377       86,    87,     1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
9378       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
9379       -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,    28,
9380       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
9381       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
9382       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9383       -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,
9384       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
9385       79,    -1,    -1,    82,    83,    -1,    85,    86,    87,     1,
9386       -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9387       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9388       -1,    -1,    -1,    -1,   113,    -1,    28,    29,    30,    31,
9389       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
9390       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
9391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9392       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,
9393       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
9394       82,    83,    -1,    85,    86,    87,     1,    -1,     3,    -1,
9395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
9396       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
9397      112,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
9398       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
9399       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
9400       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9401       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
9402       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
9403       85,    86,    87,     1,    -1,     3,    -1,    -1,    -1,    -1,
9404       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
9405       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,
9406       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
9407       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
9408       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9409       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
9410       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
9411       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
9412        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9413       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9414       -1,    -1,    -1,    -1,   112,    28,    29,    30,    31,    32,
9415       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
9416       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
9417       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9418       -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,
9419       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
9420       83,    -1,    85,    86,    87,     3,    -1,    -1,    -1,    -1,
9421       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
9422       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,
9423       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
9424       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
9425       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9426       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
9427       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
9428       -1,    79,    -1,    -1,    82,    83,    -1,    85,    86,    87,
9429        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9430       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9431       -1,   109,    -1,    -1,   112,    28,    29,    30,    31,    32,
9432       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
9433       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
9434       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9435       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
9436       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
9437       83,    -1,    85,    86,    87,     3,    -1,    -1,    -1,    -1,
9438       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
9439       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
9440       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
9441       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
9442       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9443       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
9444       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
9445       -1,    79,    -1,    -1,    82,    83,    -1,    85,    86,    87,
9446        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9447       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9448       -1,    -1,    -1,    -1,   112,    28,    29,    30,    31,    32,
9449       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
9450       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
9451       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9452       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
9453       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,
9454       -1,    -1,    85,    86,    87,     3,    -1,    -1,    -1,    -1,
9455       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
9456       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,
9457       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
9458       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
9459       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9460       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
9461       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
9462       -1,    79,    -1,    -1,    82,    83,    -1,    85,    86,    87,
9463        1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9464       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,   107,
9465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
9466       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
9467       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
9468       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9469       -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,
9470       -1,    -1,    -1,    74,    75,     1,    -1,     3,    79,    -1,
9471       -1,    82,    83,    -1,    85,    86,    87,    -1,    -1,    -1,
9472       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
9473       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
9474       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
9475       46,    47,    48,    49,    50,    51,    -1,    -1,    -1,    -1,
9476       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
9477       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
9478        1,    -1,     3,    79,    -1,    -1,    82,    83,    -1,    85,
9479       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9480       -1,    -1,    -1,    -1,   100,    -1,    -1,    28,    29,    30,
9481       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
9482       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
9483       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9484       -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,
9485       -1,    -1,    -1,    74,    75,     1,    -1,     3,    79,    -1,
9486       -1,    82,    83,    -1,    85,    86,    87,    -1,    -1,    -1,
9487       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
9488       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
9489       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
9490       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
9491       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9492       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
9493        3,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,
9494       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9495       -1,    -1,    -1,    -1,   100,    28,    29,    30,    31,    32,
9496       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
9497       43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
9498       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9499       -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,
9500       -1,    74,    75,     3,    -1,    -1,    79,    -1,    -1,    82,
9501       83,    -1,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,
9502       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    28,    29,
9503       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
9504       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
9505       50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9506       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
9507       -1,    -1,    -1,    -1,    74,    75,     3,    -1,    -1,    79,
9508       -1,    -1,    82,    83,    -1,    85,    86,    87,    -1,    -1,
9509       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9510      100,    28,    29,    30,    31,    32,    33,    34,    35,    36,
9511       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9512       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
9513       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
9514       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,     3,
9515       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    86,
9516       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9517       -1,    -1,    -1,   100,    28,    29,    30,    31,    32,    33,
9518       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
9519       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
9520       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9521       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9522       74,    75,     3,    -1,    -1,    79,    80,    81,    -1,    -1,
9523       -1,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
9524       -1,    -1,    -1,    -1,    -1,    -1,   100,    28,    29,    30,
9525       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
9526       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
9527       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9528       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
9529       -1,    -1,    -1,    74,    75,     3,    -1,    -1,    79,    -1,
9530       -1,    82,    83,    -1,    85,    86,    87,    -1,    -1,    -1,
9531       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
9532       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
9533       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
9534       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9535       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
9536       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,     3,    -1,
9537       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
9538       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9539       -1,    -1,   100,    28,    29,    30,    31,    32,    33,    34,
9540       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
9541       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
9542       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9543       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
9544       75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,
9545       85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9546       -1,    -1,    -1,    -1,    -1,   100,    28,    29,    30,    31,
9547       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
9548       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
9549       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9550       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
9551       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
9552       -1,    -1,    -1,    85,    86,    87,    -1,    -1,    -1,    -1,
9553       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
9554       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
9555      112,   113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9556       -1,   123,    28,    29,    30,    31,    32,    33,    34,    35,
9557       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
9558       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
9559       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9560       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
9561       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,
9562       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9563       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
9564       -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,    -1,
9565       -1,    -1,    -1,    -1,    -1,    -1,    -1,   123,    28,    29,
9566       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
9567       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
9568       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9569       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
9570       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
9571       -1,    -1,    -1,    -1,    -1,    85,    86,    87,    -1,    -1,
9572       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9573      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9574       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
9575       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
9576       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
9577       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
9579       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
9580       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
9581       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9582       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9583       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9584      118,    28,    29,    30,    31,    32,    33,    34,    35,    36,
9585       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
9586       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
9587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
9588       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
9589       -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    86,
9590       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
9591       -1,    -1,    -1,   100
9592 };
9593
9594 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
9595    symbol of state STATE-NUM.  */
9596 static const unsigned short int yystos[] =
9597 {
9598        0,     3,    28,    29,    30,    31,    32,    33,    34,    35,
9599       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
9600       46,    47,    48,    49,    50,    53,    65,    66,    74,    75,
9601       76,    77,    79,    80,    81,    82,    83,    85,    86,    87,
9602      100,   101,   105,   109,   112,   115,   135,   136,   137,   139,
9603      164,   201,   202,   203,   204,   205,   206,   260,   263,   264,
9604      267,   268,   269,   270,   271,   272,   273,   275,   279,   282,
9605      283,   284,   285,   286,   287,   292,   293,   301,   302,   303,
9606      306,   307,   310,   314,   341,   344,   345,   363,   364,   366,
9607      367,   368,   369,   370,   371,    77,   121,     5,    31,   206,
9608      365,   206,   112,   112,   112,   139,   206,   365,   273,   274,
9609      306,   310,   206,   301,   303,   305,   306,   310,   313,   110,
9610      115,   136,   137,   206,   119,   121,   115,   119,   118,   109,
9611      110,   201,   206,   119,   139,   206,   119,   121,   118,   110,
9612      119,   121,   119,   118,   119,   137,   206,     1,    31,   115,
9613      135,   203,   205,   206,   260,   270,   271,   273,   275,   303,
9614      306,   310,   313,   314,   322,   323,   324,   325,   324,   112,
9615      123,     1,    29,    30,    31,    32,    33,    65,   113,   135,
9616      206,   259,   263,   265,   266,   273,   275,   279,   280,   281,
9617      287,   291,   299,   300,   328,   329,   330,   331,   332,   333,
9618      303,   310,   303,   306,    34,    35,    36,    37,    38,    39,
9619       40,    41,    42,    43,    46,    47,    66,    85,    87,   100,
9620      119,   139,   160,   161,   259,   264,   265,   273,   276,   280,
9621      282,   290,   343,   346,   347,   348,   353,   354,   355,    31,
9622       76,   121,   203,   205,   292,   344,   345,   363,   364,   371,
9623        1,   203,   269,   286,   292,   314,   341,   367,     1,   366,
9624      367,     0,   206,   365,   365,     5,   116,   365,     1,     4,
9625        6,     8,     9,    65,    71,    72,    73,    84,    85,    98,
9626      102,   103,   104,   105,   106,   107,   108,   109,   112,   114,
9627      122,   123,   125,   126,   127,   128,   139,   165,   166,   206,
9628      207,   208,   211,   212,   216,   217,   219,   220,   221,   222,
9629      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
9630      233,   237,   239,   240,   242,   243,   244,   245,   246,   247,
9631      248,   249,   250,   251,   252,   253,   365,   377,   378,   379,
9632      380,   136,   206,   119,   139,   206,   273,   310,   301,   303,
9633      310,   305,   306,   113,   306,    85,   139,   190,   191,   193,
9634      195,   199,   200,   206,   217,   231,   232,   240,   252,   257,
9635      290,   115,   110,   110,   115,     1,    68,    78,    80,    81,
9636       85,    88,    91,    92,    93,    94,    96,    98,    99,   112,
9637      114,   115,   118,   139,   140,   141,   142,   143,   144,   145,
9638      146,   147,   162,   163,   165,   166,   169,   170,   171,   172,
9639      173,   174,   175,   176,   177,   178,   182,   186,   187,   188,
9640      189,   206,   212,   237,   291,   302,   304,   306,   310,   314,
9641      315,   342,    80,    81,   206,   259,   263,   273,   276,   279,
9642      287,   294,   295,     1,   118,   188,   189,   137,   206,     1,
9643      206,   261,   262,     1,   118,   262,   295,    65,   190,   192,
9644      194,   196,   197,   198,   206,     1,   118,   188,   189,   295,
9645        1,   118,   188,   189,     1,   118,   188,   189,   119,   303,
9646      310,   303,   306,     1,   116,   347,   354,   355,     1,   115,
9647      117,   117,   115,   124,   136,   206,   253,   257,   258,   117,
9648      119,   139,   206,   118,   119,   118,   119,   112,   123,   125,
9649      135,   206,   259,   265,   273,   275,   280,   306,   308,   310,
9650      311,   313,     1,   113,   117,     1,   113,   117,     1,   117,
9651        1,   117,   113,   113,   303,   303,   112,   112,     1,   115,
9652        1,   118,     1,   115,   206,   259,   265,   273,   276,   280,
9653      306,   324,   325,     1,   115,     1,   343,   346,   354,   355,
9654      343,   346,    52,    53,    54,    55,    56,    57,    58,    59,
9655       60,    61,    62,    79,    86,    88,    89,    90,   115,   121,
9656      183,   184,   185,   206,   212,   217,   233,   235,   240,   253,
9657      254,   255,   334,   335,   338,   339,   340,   347,   348,   349,
9658      350,   351,   352,   354,   355,   357,   358,   359,   360,   361,
9659      362,   118,    31,   206,   365,   206,   201,   202,   204,   205,
9660      314,   347,   355,   203,   292,   116,   232,   113,     1,   112,
9661      166,   208,   213,   216,   218,   238,   239,   241,   112,   217,
9662      240,   217,   240,   112,   206,   259,   265,   273,   276,   280,
9663      298,   257,   112,   112,   298,   257,   112,   112,   112,   112,
9664      112,   113,   233,   235,   255,   265,   273,   275,   280,   288,
9665      326,   365,   119,   167,   168,   209,   214,   233,   119,     1,
9666      118,   119,     1,     7,     8,     9,   112,   120,   123,    18,
9667       19,    20,    21,    22,    23,    24,    25,    26,    27,   116,
9668      234,   168,   209,   210,   220,   242,   109,   129,   130,   126,
9669      127,    10,    11,   223,   245,    12,    13,   110,   111,    14,
9670       15,   125,   131,   132,    16,    17,   133,   234,   113,     7,
9671        8,     9,   112,   120,   123,   234,   109,   129,   130,   126,
9672      127,    10,    11,    12,    13,   110,   111,    14,    15,   125,
9673      131,   132,    16,    17,   133,   234,   113,   113,   107,   206,
9674      291,   372,   375,   376,   119,   119,   305,   116,    11,   111,
9675      117,   116,   133,   133,   112,   306,   310,   311,    65,   190,
9676      198,   206,   198,     1,   206,   259,   273,   276,   287,   296,
9677      291,   314,   315,   112,   139,   206,   206,   291,     1,   112,
9678      296,   109,   112,   206,   291,   115,   354,   355,   354,   355,
9679      354,   115,   354,   355,   115,   115,     1,   118,   115,     1,
9680        1,   115,   117,   117,    69,    70,    91,    95,    97,   118,
9681       69,    70,   118,   115,     1,   186,   187,     1,   186,   187,
9682        1,   116,   112,   115,   121,   206,   277,   278,   301,   306,
9683      310,   314,   315,   316,     1,   291,   299,   330,   304,   310,
9684      304,   306,   112,   121,   146,   147,   162,   163,   165,   166,
9685      175,   206,   291,   110,   139,   206,   206,   259,   273,   276,
9686      110,   110,   116,   117,     1,   115,   119,    28,   138,   206,
9687      206,   111,   117,   116,   115,   117,   118,   148,   149,   150,
9688      151,   152,   153,   154,   155,   156,   157,   158,   159,   209,
9689      210,   212,   232,   253,   290,   319,   320,   303,   303,     1,
9690      119,   233,   254,   317,   318,   354,   355,   322,   323,   322,
9691      323,   124,   124,   124,    51,   328,   329,     1,   262,   119,
9692      119,     1,   118,   188,   189,     1,   118,   188,   189,   113,
9693      206,   299,   300,   311,   332,   333,   124,   136,   257,   258,
9694      313,   308,   310,   112,   123,   308,     1,     1,   117,     1,
9695       51,   206,   328,   329,   117,     1,    51,   206,   328,   329,
9696      117,     1,    51,   206,   328,   329,   117,    51,   206,   328,
9697      329,   233,   136,   206,   118,   119,   115,   115,   121,   257,
9698      258,   121,   112,   112,     1,   112,    52,    53,    54,    56,
9699       57,    58,    59,    62,    79,    86,   206,   255,   334,   357,
9700      361,   112,   206,   115,   115,   115,   209,   210,   235,   255,
9701      112,   273,   112,   112,   179,   206,   115,   115,   115,   121,
9702      120,   234,     1,   120,     1,   115,   117,   235,   255,   234,
9703      113,   117,   235,     1,   349,   350,   349,   350,   334,   335,
9704      343,   346,   334,   335,   343,   346,     1,     1,   365,   365,
9705      137,   206,   119,   119,   347,   355,   355,   232,   115,    65,
9706      135,   206,   217,   240,   265,   273,   275,   280,   289,   327,
9707        1,     1,     7,     8,     9,   112,   120,   123,     7,     8,
9708        9,   112,   120,   123,   206,   290,   110,   112,   123,   206,
9709      259,   265,   273,   276,   280,   306,   309,   310,   312,   206,
9710      259,   265,   273,   276,   280,   297,   235,   326,   354,   206,
9711      123,   312,   297,   233,   365,   365,   365,   233,   113,   206,
9712      265,   273,   275,   280,   311,   113,   120,     1,   158,   159,
9713        1,   118,   117,   124,     1,   158,   159,   118,     1,   158,
9714      159,     1,   206,     1,   113,   210,   214,   215,   254,     1,
9715      206,   235,   255,   209,   233,     1,   220,   242,   220,   242,
9716      220,   242,     1,   221,   243,     1,   221,   243,   222,   244,
9717      222,   244,   223,   245,   223,   245,   223,   245,     1,   209,
9718      210,   225,   246,     1,   209,   210,   225,   246,   209,   210,
9719      226,   247,   209,   210,   227,   248,   209,   210,   228,   249,
9720      229,   250,   230,   251,   121,   209,   210,   235,   236,   255,
9721      256,   209,   233,     1,   206,     1,   113,   214,   215,     1,
9722      206,   235,   255,   209,   233,   220,   242,   220,   242,   220,
9723      242,     1,   221,   243,     1,   221,   243,   222,   244,   222,
9724      244,   223,   245,   223,   245,   223,   245,   223,   245,     1,
9725      209,   210,   225,   246,     1,   209,   210,   225,   246,   209,
9726      210,   226,   247,   209,   210,   227,   248,   209,   210,   228,
9727      249,   229,   250,   230,   251,   121,   235,   236,   255,   256,
9728      209,   233,   110,   111,   206,   373,   374,   206,   118,   372,
9729      375,   376,   376,   190,   191,   193,   195,   206,   199,   191,
9730      193,   195,   235,   236,   255,   256,   235,   236,   255,   256,
9731      310,   111,   116,   111,   119,   110,   119,   206,   259,   273,
9732      276,   311,   314,   315,   179,   115,   115,   115,   278,   301,
9733      306,   310,   119,   206,   119,   206,   311,   206,   112,   118,
9734      169,   170,   169,   170,   354,   354,   354,   365,   354,   354,
9735        1,   319,   320,   113,   257,   258,   119,   115,   117,   301,
9736      310,   301,   306,   121,   307,   206,   112,   304,   304,   206,
9737      115,     1,   115,     1,   115,   278,   200,   110,   198,   198,
9738      257,   258,   261,   188,   189,     1,   118,   262,   116,   121,
9739      116,   121,   116,   197,   193,   206,   354,   355,     1,   115,
9740      117,   115,   117,   115,   150,   151,   154,   155,   156,   118,
9741      148,   151,   115,   118,   150,   151,   154,   155,   156,   116,
9742      314,   315,   316,   317,   318,   321,     1,   118,   262,     1,
9743      118,   262,   113,   113,   113,   124,   124,   124,   308,   113,
9744      332,   333,   124,   136,   257,   258,   328,   329,   291,   328,
9745      328,   328,   329,   113,   113,   113,     1,   158,   159,   334,
9746      335,   121,   121,   334,   335,   235,   255,   235,   255,     1,
9747      113,   235,   255,   121,   257,   258,   121,   112,   112,   334,
9748      112,   210,   255,   112,   121,    56,     1,   113,   115,   206,
9749      235,   255,   356,   115,   115,   115,   115,   115,   365,   112,
9750      233,   233,   206,   334,   335,    90,     1,   210,   254,    88,
9751       89,    90,     1,   233,   254,     1,   210,   254,     1,   233,
9752      254,   110,   355,   115,   135,   136,   113,   135,   265,   273,
9753      275,   280,   311,   113,     1,   206,     1,   113,   214,   215,
9754        1,   206,   235,   255,     1,   206,     1,   113,   214,   215,
9755        1,   206,   235,   255,   113,   113,   311,   200,   113,   312,
9756      332,   333,   257,   258,   110,   309,   310,   112,   309,   123,
9757      110,   123,   206,   259,   265,   273,   276,   280,   312,   113,
9758      113,   113,   113,   257,   258,   123,   123,   312,   117,   113,
9759      117,   117,   117,   220,   242,   365,     1,   118,   209,   233,
9760        1,     1,   113,   117,   113,   124,   124,     1,   117,   121,
9761      121,   117,   121,   121,   113,   117,   124,   124,   121,   121,
9762      121,   121,   206,   206,   115,   117,   206,   365,   118,   118,
9763      121,   121,   121,   121,   121,   121,   121,   121,   193,   200,
9764      110,   119,   119,   206,   113,   115,   301,   310,   301,   306,
9765      113,   119,   119,   206,   113,     1,   158,   159,   277,   306,
9766      301,   301,   257,   258,   112,   113,   115,   111,   200,   111,
9767      111,   115,     1,   115,   191,   206,   190,   191,   190,   195,
9768        1,   152,   153,     1,   152,   153,   355,     1,   319,   320,
9769      117,   118,   317,   318,     1,   115,     1,   115,   113,   113,
9770      124,   124,   124,   311,   313,     1,   334,   335,   334,   335,
9771      113,   113,   113,   113,     1,   334,   113,     1,   235,   334,
9772      335,   121,   121,   255,   113,   235,   255,    56,   255,   356,
9773      365,   112,   334,   121,   115,     1,   115,     1,   113,   255,
9774      356,     3,   113,   121,   365,   113,   113,   117,   112,   112,
9775      179,   113,   113,     1,   113,   117,   113,   124,   124,   113,
9776      117,   124,   124,   113,   111,   113,   113,   113,   124,   124,
9777      200,   309,   113,   332,   333,   257,   258,   200,   257,   258,
9778      110,   123,   112,   119,   317,   124,   124,   257,   258,   257,
9779      258,   123,   326,   206,   206,   233,     1,   210,   254,   209,
9780      210,   209,   210,   232,   252,   209,   210,   232,   252,   209,
9781      210,   209,   210,   232,   252,   209,   210,   232,   252,     1,
9782      209,   210,   232,   252,   209,   210,   232,   252,   209,   210,
9783      232,   252,   209,   210,   232,   252,   373,   115,   115,   111,
9784      200,   119,   354,   301,   301,   116,   119,     1,   121,   121,
9785      111,   188,   189,   115,   188,   189,   116,   116,   118,   317,
9786      318,     1,   188,   189,   188,   189,   334,   334,   334,   334,
9787      334,   335,   113,   112,   356,   113,   235,   255,   235,   334,
9788        1,     1,   113,   235,   255,   336,   337,   365,   115,   337,
9789        3,   113,   121,   119,   179,   233,   233,     1,     1,     1,
9790        1,   111,   113,   113,   124,   124,   111,   124,   124,   200,
9791      257,   258,   326,   321,   124,   124,   124,   124,   257,   258,
9792      113,   113,   113,   113,   111,   319,   257,   258,   257,   258,
9793      188,   189,   191,   191,     1,    64,    64,   235,   255,   113,
9794      235,   255,   113,   115,   113,   115,   334,   335,   113,   334,
9795      335,   113,   117,   121,   112,     3,   113,   121,   337,   115,
9796      337,    73,   179,   180,   181,   113,   113,   113,   117,   111,
9797      124,   124,   113,   117,   118,   124,   124,   115,   334,   334,
9798      113,   113,   115,   334,   235,   334,   335,   115,   336,   337,
9799      233,   337,   115,   337,   113,   121,     3,   113,   121,   354,
9800      354,   118,   180,   119,   179,   220,   242,   317,   118,   113,
9801      113,   113,   113,   113,   121,   115,   337,   337,   115,   337,
9802      181,   113,   334,   115,   115,   115,   337,   113,   113,   113,
9803      121,   118,   113,   115,   115,   115,   337,   115,   113,   115
9804 };
9805
9806 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
9807 # define YYSIZE_T __SIZE_TYPE__
9808 #endif
9809 #if ! defined (YYSIZE_T) && defined (size_t)
9810 # define YYSIZE_T size_t
9811 #endif
9812 #if ! defined (YYSIZE_T)
9813 # if defined (__STDC__) || defined (__cplusplus)
9814 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
9815 #  define YYSIZE_T size_t
9816 # endif
9817 #endif
9818 #if ! defined (YYSIZE_T)
9819 # define YYSIZE_T unsigned int
9820 #endif
9821
9822 #define yyerrok         (yyerrstatus = 0)
9823 #define yyclearin       (yychar = YYEMPTY)
9824 #define YYEMPTY         (-2)
9825 #define YYEOF           0
9826
9827 #define YYACCEPT        goto yyacceptlab
9828 #define YYABORT         goto yyabortlab
9829 #define YYERROR         goto yyerrorlab
9830
9831
9832 /* Like YYERROR except do call yyerror.  This remains here temporarily
9833    to ease the transition to the new meaning of YYERROR, for GCC.
9834    Once GCC version 2 has supplanted version 1, this can go.  */
9835
9836 #define YYFAIL          goto yyerrlab
9837
9838 #define YYRECOVERING()  (!!yyerrstatus)
9839
9840 #define YYBACKUP(Token, Value)                                  \
9841 do                                                              \
9842   if (yychar == YYEMPTY && yylen == 1)                          \
9843     {                                                           \
9844       yychar = (Token);                                         \
9845       yylval = (Value);                                         \
9846       yytoken = YYTRANSLATE (yychar);                           \
9847       YYPOPSTACK;                                               \
9848       goto yybackup;                                            \
9849     }                                                           \
9850   else                                                          \
9851     {                                                           \
9852       yyerror ("syntax error: cannot back up");\
9853       YYERROR;                                                  \
9854     }                                                           \
9855 while (0)
9856
9857
9858 #define YYTERROR        1
9859 #define YYERRCODE       256
9860
9861
9862 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
9863    If N is 0, then set CURRENT to the empty location which ends
9864    the previous symbol: RHS[0] (always defined).  */
9865
9866 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
9867 #ifndef YYLLOC_DEFAULT
9868 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
9869     do                                                                  \
9870       if (N)                                                            \
9871         {                                                               \
9872           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
9873           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
9874           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
9875           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
9876         }                                                               \
9877       else                                                              \
9878         {                                                               \
9879           (Current).first_line   = (Current).last_line   =              \
9880             YYRHSLOC (Rhs, 0).last_line;                                \
9881           (Current).first_column = (Current).last_column =              \
9882             YYRHSLOC (Rhs, 0).last_column;                              \
9883         }                                                               \
9884     while (0)
9885 #endif
9886
9887
9888 /* YY_LOCATION_PRINT -- Print the location on the stream.
9889    This macro was not mandated originally: define only if we know
9890    we won't break user code: when these are the locations we know.  */
9891
9892 #ifndef YY_LOCATION_PRINT
9893 # if YYLTYPE_IS_TRIVIAL
9894 #  define YY_LOCATION_PRINT(File, Loc)                  \
9895      fprintf (File, "%d.%d-%d.%d",                      \
9896               (Loc).first_line, (Loc).first_column,     \
9897               (Loc).last_line,  (Loc).last_column)
9898 # else
9899 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
9900 # endif
9901 #endif
9902
9903
9904 /* YYLEX -- calling `yylex' with the right arguments.  */
9905
9906 #ifdef YYLEX_PARAM
9907 # define YYLEX yylex (YYLEX_PARAM)
9908 #else
9909 # define YYLEX yylex ()
9910 #endif
9911
9912 /* Enable debugging if requested.  */
9913 #if YYDEBUG
9914
9915 # ifndef YYFPRINTF
9916 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
9917 #  define YYFPRINTF fprintf
9918 # endif
9919
9920 # define YYDPRINTF(Args)                        \
9921 do {                                            \
9922   if (yydebug)                                  \
9923     YYFPRINTF Args;                             \
9924 } while (0)
9925
9926 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)          \
9927 do {                                                            \
9928   if (yydebug)                                                  \
9929     {                                                           \
9930       YYFPRINTF (stderr, "%s ", Title);                         \
9931       yysymprint (stderr,                                       \
9932                   Type, Value, Location);       \
9933       YYFPRINTF (stderr, "\n");                                 \
9934     }                                                           \
9935 } while (0)
9936
9937 /*------------------------------------------------------------------.
9938 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
9939 | TOP (included).                                                   |
9940 `------------------------------------------------------------------*/
9941
9942 #if defined (__STDC__) || defined (__cplusplus)
9943 static void
9944 yy_stack_print (short int *bottom, short int *top)
9945 #else
9946 static void
9947 yy_stack_print (bottom, top)
9948     short int *bottom;
9949     short int *top;
9950 #endif
9951 {
9952   YYFPRINTF (stderr, "Stack now");
9953   for (/* Nothing. */; bottom <= top; ++bottom)
9954     YYFPRINTF (stderr, " %d", *bottom);
9955   YYFPRINTF (stderr, "\n");
9956 }
9957
9958 # define YY_STACK_PRINT(Bottom, Top)                            \
9959 do {                                                            \
9960   if (yydebug)                                                  \
9961     yy_stack_print ((Bottom), (Top));                           \
9962 } while (0)
9963
9964
9965 /*------------------------------------------------.
9966 | Report that the YYRULE is going to be reduced.  |
9967 `------------------------------------------------*/
9968
9969 #if defined (__STDC__) || defined (__cplusplus)
9970 static void
9971 yy_reduce_print (int yyrule)
9972 #else
9973 static void
9974 yy_reduce_print (yyrule)
9975     int yyrule;
9976 #endif
9977 {
9978   int yyi;
9979   unsigned int yylno = yyrline[yyrule];
9980   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
9981              yyrule - 1, yylno);
9982   /* Print the symbols being reduced, and their result.  */
9983   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
9984     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
9985   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
9986 }
9987
9988 # define YY_REDUCE_PRINT(Rule)          \
9989 do {                                    \
9990   if (yydebug)                          \
9991     yy_reduce_print (Rule);             \
9992 } while (0)
9993
9994 /* Nonzero means print parse trace.  It is left uninitialized so that
9995    multiple parsers can coexist.  */
9996 int yydebug;
9997 #else /* !YYDEBUG */
9998 # define YYDPRINTF(Args)
9999 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
10000 # define YY_STACK_PRINT(Bottom, Top)
10001 # define YY_REDUCE_PRINT(Rule)
10002 #endif /* !YYDEBUG */
10003
10004
10005 /* YYINITDEPTH -- initial size of the parser's stacks.  */
10006 #ifndef YYINITDEPTH
10007 # define YYINITDEPTH 200
10008 #endif
10009
10010 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
10011    if the built-in stack extension method is used).
10012
10013    Do not make this value too large; the results are undefined if
10014    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
10015    evaluated with infinite-precision integer arithmetic.  */
10016
10017 #ifndef YYMAXDEPTH
10018 # define YYMAXDEPTH 10000
10019 #endif
10020
10021 \f
10022
10023 #if YYERROR_VERBOSE
10024
10025 # ifndef yystrlen
10026 #  if defined (__GLIBC__) && defined (_STRING_H)
10027 #   define yystrlen strlen
10028 #  else
10029 /* Return the length of YYSTR.  */
10030 static YYSIZE_T
10031 #   if defined (__STDC__) || defined (__cplusplus)
10032 yystrlen (const char *yystr)
10033 #   else
10034 yystrlen (yystr)
10035      const char *yystr;
10036 #   endif
10037 {
10038   register const char *yys = yystr;
10039
10040   while (*yys++ != '\0')
10041     continue;
10042
10043   return yys - yystr - 1;
10044 }
10045 #  endif
10046 # endif
10047
10048 # ifndef yystpcpy
10049 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
10050 #   define yystpcpy stpcpy
10051 #  else
10052 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
10053    YYDEST.  */
10054 static char *
10055 #   if defined (__STDC__) || defined (__cplusplus)
10056 yystpcpy (char *yydest, const char *yysrc)
10057 #   else
10058 yystpcpy (yydest, yysrc)
10059      char *yydest;
10060      const char *yysrc;
10061 #   endif
10062 {
10063   register char *yyd = yydest;
10064   register const char *yys = yysrc;
10065
10066   while ((*yyd++ = *yys++) != '\0')
10067     continue;
10068
10069   return yyd - 1;
10070 }
10071 #  endif
10072 # endif
10073
10074 #endif /* !YYERROR_VERBOSE */
10075
10076 \f
10077
10078 #if YYDEBUG
10079 /*--------------------------------.
10080 | Print this symbol on YYOUTPUT.  |
10081 `--------------------------------*/
10082
10083 #if defined (__STDC__) || defined (__cplusplus)
10084 static void
10085 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
10086 #else
10087 static void
10088 yysymprint (yyoutput, yytype, yyvaluep, yylocationp)
10089     FILE *yyoutput;
10090     int yytype;
10091     YYSTYPE *yyvaluep;
10092     YYLTYPE *yylocationp;
10093 #endif
10094 {
10095   /* Pacify ``unused variable'' warnings.  */
10096   (void) yyvaluep;
10097   (void) yylocationp;
10098
10099   if (yytype < YYNTOKENS)
10100     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
10101   else
10102     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
10103
10104   YY_LOCATION_PRINT (yyoutput, *yylocationp);
10105   fprintf (yyoutput, ": ");
10106
10107 # ifdef YYPRINT
10108   if (yytype < YYNTOKENS)
10109     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
10110 # endif
10111   switch (yytype)
10112     {
10113       default:
10114         break;
10115     }
10116   YYFPRINTF (yyoutput, ")");
10117 }
10118
10119 #endif /* ! YYDEBUG */
10120 /*-----------------------------------------------.
10121 | Release the memory associated to this symbol.  |
10122 `-----------------------------------------------*/
10123
10124 #if defined (__STDC__) || defined (__cplusplus)
10125 static void
10126 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
10127 #else
10128 static void
10129 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
10130     const char *yymsg;
10131     int yytype;
10132     YYSTYPE *yyvaluep;
10133     YYLTYPE *yylocationp;
10134 #endif
10135 {
10136   /* Pacify ``unused variable'' warnings.  */
10137   (void) yyvaluep;
10138   (void) yylocationp;
10139
10140   if (!yymsg)
10141     yymsg = "Deleting";
10142   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
10143
10144   switch (yytype)
10145     {
10146       case 136: /* type */
10147 #line 199 "grammar.y"
10148         { FreeSpecifier((yyvaluep->specifier)); };
10149 #line 10150 "grammar.ec"
10150         break;
10151       case 140: /* class_function_definition_start */
10152 #line 224 "grammar.y"
10153         { FreeClassFunction((yyvaluep->classFunction)); };
10154 #line 10155 "grammar.ec"
10155         break;
10156       case 141: /* constructor_function_definition_start */
10157 #line 224 "grammar.y"
10158         { FreeClassFunction((yyvaluep->classFunction)); };
10159 #line 10160 "grammar.ec"
10160         break;
10161       case 142: /* destructor_function_definition_start */
10162 #line 224 "grammar.y"
10163         { FreeClassFunction((yyvaluep->classFunction)); };
10164 #line 10165 "grammar.ec"
10165         break;
10166       case 143: /* virtual_class_function_definition_start */
10167 #line 224 "grammar.y"
10168         { FreeClassFunction((yyvaluep->classFunction)); };
10169 #line 10170 "grammar.ec"
10170         break;
10171       case 144: /* class_function_definition_start_error */
10172 #line 224 "grammar.y"
10173         { FreeClassFunction((yyvaluep->classFunction)); };
10174 #line 10175 "grammar.ec"
10175         break;
10176       case 145: /* virtual_class_function_definition_start_error */
10177 #line 224 "grammar.y"
10178         { FreeClassFunction((yyvaluep->classFunction)); };
10179 #line 10180 "grammar.ec"
10180         break;
10181       case 146: /* class_function_definition */
10182 #line 224 "grammar.y"
10183         { FreeClassFunction((yyvaluep->classFunction)); };
10184 #line 10185 "grammar.ec"
10185         break;
10186       case 147: /* class_function_definition_error */
10187 #line 224 "grammar.y"
10188         { FreeClassFunction((yyvaluep->classFunction)); };
10189 #line 10190 "grammar.ec"
10190         break;
10191       case 148: /* instance_class_function_definition_start */
10192 #line 224 "grammar.y"
10193         { FreeClassFunction((yyvaluep->classFunction)); };
10194 #line 10195 "grammar.ec"
10195         break;
10196       case 149: /* instance_class_function_definition_start_error */
10197 #line 224 "grammar.y"
10198         { FreeClassFunction((yyvaluep->classFunction)); };
10199 #line 10200 "grammar.ec"
10200         break;
10201       case 150: /* instance_class_function_definition */
10202 #line 224 "grammar.y"
10203         { FreeClassFunction((yyvaluep->classFunction)); };
10204 #line 10205 "grammar.ec"
10205         break;
10206       case 151: /* instance_class_function_definition_error */
10207 #line 224 "grammar.y"
10208         { FreeClassFunction((yyvaluep->classFunction)); };
10209 #line 10210 "grammar.ec"
10210         break;
10211       case 152: /* data_member_initialization */
10212 #line 222 "grammar.y"
10213         { FreeMemberInit((yyvaluep->memberInit)); };
10214 #line 10215 "grammar.ec"
10215         break;
10216       case 153: /* data_member_initialization_error */
10217 #line 222 "grammar.y"
10218         { FreeMemberInit((yyvaluep->memberInit)); };
10219 #line 10220 "grammar.ec"
10220         break;
10221       case 154: /* data_member_initialization_list */
10222 #line 244 "grammar.y"
10223         { FreeList((yyvaluep->list), FreeMemberInit); };
10224 #line 10225 "grammar.ec"
10225         break;
10226       case 155: /* data_member_initialization_list_error */
10227 #line 244 "grammar.y"
10228         { FreeList((yyvaluep->list), FreeMemberInit); };
10229 #line 10230 "grammar.ec"
10230         break;
10231       case 156: /* data_member_initialization_list_coloned */
10232 #line 244 "grammar.y"
10233         { FreeList((yyvaluep->list), FreeMemberInit); };
10234 #line 10235 "grammar.ec"
10235         break;
10236       case 157: /* members_initialization_list_coloned */
10237 #line 245 "grammar.y"
10238         { FreeList((yyvaluep->list), FreeMembersInit); };
10239 #line 10240 "grammar.ec"
10240         break;
10241       case 158: /* members_initialization_list */
10242 #line 245 "grammar.y"
10243         { FreeList((yyvaluep->list), FreeMembersInit); };
10244 #line 10245 "grammar.ec"
10245         break;
10246       case 159: /* members_initialization_list_error */
10247 #line 245 "grammar.y"
10248         { FreeList((yyvaluep->list), FreeMembersInit); };
10249 #line 10250 "grammar.ec"
10250         break;
10251       case 160: /* instantiation_named */
10252 #line 220 "grammar.y"
10253         { FreeInstance((yyvaluep->instance)); };
10254 #line 10255 "grammar.ec"
10255         break;
10256       case 161: /* instantiation_named_error */
10257 #line 220 "grammar.y"
10258         { FreeInstance((yyvaluep->instance)); };
10259 #line 10260 "grammar.ec"
10260         break;
10261       case 165: /* instantiation_unnamed */
10262 #line 220 "grammar.y"
10263         { FreeInstance((yyvaluep->instance)); };
10264 #line 10265 "grammar.ec"
10265         break;
10266       case 166: /* instantiation_unnamed_error */
10267 #line 220 "grammar.y"
10268         { FreeInstance((yyvaluep->instance)); };
10269 #line 10270 "grammar.ec"
10270         break;
10271       case 169: /* default_property */
10272 #line 222 "grammar.y"
10273         { FreeMemberInit((yyvaluep->memberInit)); };
10274 #line 10275 "grammar.ec"
10275         break;
10276       case 170: /* default_property_error */
10277 #line 222 "grammar.y"
10278         { FreeMemberInit((yyvaluep->memberInit)); };
10279 #line 10280 "grammar.ec"
10280         break;
10281       case 171: /* default_property_list */
10282 #line 244 "grammar.y"
10283         { FreeList((yyvaluep->list), FreeMemberInit); };
10284 #line 10285 "grammar.ec"
10285         break;
10286       case 172: /* default_property_list_error */
10287 #line 244 "grammar.y"
10288         { FreeList((yyvaluep->list), FreeMemberInit); };
10289 #line 10290 "grammar.ec"
10290         break;
10291       case 175: /* property */
10292 #line 231 "grammar.y"
10293         { FreeProperty((yyvaluep->prop)); };
10294 #line 10295 "grammar.ec"
10295         break;
10296       case 186: /* struct_declaration */
10297 #line 229 "grammar.y"
10298         { FreeClassDef((yyvaluep->classDef)); };
10299 #line 10300 "grammar.ec"
10300         break;
10301       case 187: /* struct_declaration_error */
10302 #line 229 "grammar.y"
10303         { FreeClassDef((yyvaluep->classDef)); };
10304 #line 10305 "grammar.ec"
10305         break;
10306       case 188: /* struct_declaration_list */
10307 #line 243 "grammar.y"
10308         { FreeList((yyvaluep->list), FreeClassDef); };
10309 #line 10310 "grammar.ec"
10310         break;
10311       case 189: /* struct_declaration_list_error */
10312 #line 243 "grammar.y"
10313         { FreeList((yyvaluep->list), FreeClassDef); };
10314 #line 10315 "grammar.ec"
10315         break;
10316       case 203: /* class */
10317 #line 228 "grammar.y"
10318         { FreeClass((yyvaluep->_class)); };
10319 #line 10320 "grammar.ec"
10320         break;
10321       case 205: /* class_error */
10322 #line 228 "grammar.y"
10323         { FreeClass((yyvaluep->_class)); };
10324 #line 10325 "grammar.ec"
10325         break;
10326       case 206: /* identifier */
10327 #line 186 "grammar.y"
10328         { FreeIdentifier((yyvaluep->id)); };
10329 #line 10330 "grammar.ec"
10330         break;
10331       case 207: /* primary_expression */
10332 #line 188 "grammar.y"
10333         { FreeExpression((yyvaluep->exp)); };
10334 #line 10335 "grammar.ec"
10335         break;
10336       case 211: /* primary_expression_error */
10337 #line 188 "grammar.y"
10338         { FreeExpression((yyvaluep->exp)); };
10339 #line 10340 "grammar.ec"
10340         break;
10341       case 212: /* postfix_expression */
10342 #line 188 "grammar.y"
10343         { FreeExpression((yyvaluep->exp)); };
10344 #line 10345 "grammar.ec"
10345         break;
10346       case 214: /* argument_expression_list */
10347 #line 233 "grammar.y"
10348         { FreeList((yyvaluep->list), FreeExpression); };
10349 #line 10350 "grammar.ec"
10350         break;
10351       case 215: /* argument_expression_list_error */
10352 #line 233 "grammar.y"
10353         { FreeList((yyvaluep->list), FreeExpression); };
10354 #line 10355 "grammar.ec"
10355         break;
10356       case 217: /* unary_expression */
10357 #line 188 "grammar.y"
10358         { FreeExpression((yyvaluep->exp)); };
10359 #line 10360 "grammar.ec"
10360         break;
10361       case 220: /* cast_expression */
10362 #line 188 "grammar.y"
10363         { FreeExpression((yyvaluep->exp)); };
10364 #line 10365 "grammar.ec"
10365         break;
10366       case 221: /* multiplicative_expression */
10367 #line 188 "grammar.y"
10368         { FreeExpression((yyvaluep->exp)); };
10369 #line 10370 "grammar.ec"
10370         break;
10371       case 222: /* additive_expression */
10372 #line 188 "grammar.y"
10373         { FreeExpression((yyvaluep->exp)); };
10374 #line 10375 "grammar.ec"
10375         break;
10376       case 223: /* shift_expression */
10377 #line 188 "grammar.y"
10378         { FreeExpression((yyvaluep->exp)); };
10379 #line 10380 "grammar.ec"
10380         break;
10381       case 225: /* relational_expression */
10382 #line 188 "grammar.y"
10383         { FreeExpression((yyvaluep->exp)); };
10384 #line 10385 "grammar.ec"
10385         break;
10386       case 226: /* equality_expression */
10387 #line 188 "grammar.y"
10388         { FreeExpression((yyvaluep->exp)); };
10389 #line 10390 "grammar.ec"
10390         break;
10391       case 227: /* and_expression */
10392 #line 188 "grammar.y"
10393         { FreeExpression((yyvaluep->exp)); };
10394 #line 10395 "grammar.ec"
10395         break;
10396       case 228: /* exclusive_or_expression */
10397 #line 188 "grammar.y"
10398         { FreeExpression((yyvaluep->exp)); };
10399 #line 10400 "grammar.ec"
10400         break;
10401       case 229: /* inclusive_or_expression */
10402 #line 188 "grammar.y"
10403         { FreeExpression((yyvaluep->exp)); };
10404 #line 10405 "grammar.ec"
10405         break;
10406       case 230: /* logical_and_expression */
10407 #line 188 "grammar.y"
10408         { FreeExpression((yyvaluep->exp)); };
10409 #line 10410 "grammar.ec"
10410         break;
10411       case 231: /* logical_or_expression */
10412 #line 188 "grammar.y"
10413         { FreeExpression((yyvaluep->exp)); };
10414 #line 10415 "grammar.ec"
10415         break;
10416       case 232: /* conditional_expression */
10417 #line 188 "grammar.y"
10418         { FreeExpression((yyvaluep->exp)); };
10419 #line 10420 "grammar.ec"
10420         break;
10421       case 233: /* assignment_expression */
10422 #line 188 "grammar.y"
10423         { FreeExpression((yyvaluep->exp)); };
10424 #line 10425 "grammar.ec"
10425         break;
10426       case 235: /* expression */
10427 #line 233 "grammar.y"
10428         { FreeList((yyvaluep->list), FreeExpression); };
10429 #line 10430 "grammar.ec"
10430         break;
10431       case 237: /* postfix_expression_error */
10432 #line 188 "grammar.y"
10433         { FreeExpression((yyvaluep->exp)); };
10434 #line 10435 "grammar.ec"
10435         break;
10436       case 240: /* unary_expression_error */
10437 #line 188 "grammar.y"
10438         { FreeExpression((yyvaluep->exp)); };
10439 #line 10440 "grammar.ec"
10440         break;
10441       case 242: /* cast_expression_error */
10442 #line 188 "grammar.y"
10443         { FreeExpression((yyvaluep->exp)); };
10444 #line 10445 "grammar.ec"
10445         break;
10446       case 243: /* multiplicative_expression_error */
10447 #line 188 "grammar.y"
10448         { FreeExpression((yyvaluep->exp)); };
10449 #line 10450 "grammar.ec"
10450         break;
10451       case 244: /* additive_expression_error */
10452 #line 188 "grammar.y"
10453         { FreeExpression((yyvaluep->exp)); };
10454 #line 10455 "grammar.ec"
10455         break;
10456       case 245: /* shift_expression_error */
10457 #line 188 "grammar.y"
10458         { FreeExpression((yyvaluep->exp)); };
10459 #line 10460 "grammar.ec"
10460         break;
10461       case 246: /* relational_expression_error */
10462 #line 188 "grammar.y"
10463         { FreeExpression((yyvaluep->exp)); };
10464 #line 10465 "grammar.ec"
10465         break;
10466       case 247: /* equality_expression_error */
10467 #line 188 "grammar.y"
10468         { FreeExpression((yyvaluep->exp)); };
10469 #line 10470 "grammar.ec"
10470         break;
10471       case 248: /* and_expression_error */
10472 #line 188 "grammar.y"
10473         { FreeExpression((yyvaluep->exp)); };
10474 #line 10475 "grammar.ec"
10475         break;
10476       case 249: /* exclusive_or_expression_error */
10477 #line 188 "grammar.y"
10478         { FreeExpression((yyvaluep->exp)); };
10479 #line 10480 "grammar.ec"
10480         break;
10481       case 250: /* inclusive_or_expression_error */
10482 #line 188 "grammar.y"
10483         { FreeExpression((yyvaluep->exp)); };
10484 #line 10485 "grammar.ec"
10485         break;
10486       case 251: /* logical_and_expression_error */
10487 #line 188 "grammar.y"
10488         { FreeExpression((yyvaluep->exp)); };
10489 #line 10490 "grammar.ec"
10490         break;
10491       case 252: /* logical_or_expression_error */
10492 #line 188 "grammar.y"
10493         { FreeExpression((yyvaluep->exp)); };
10494 #line 10495 "grammar.ec"
10495         break;
10496       case 253: /* conditional_expression_error */
10497 #line 188 "grammar.y"
10498         { FreeExpression((yyvaluep->exp)); };
10499 #line 10500 "grammar.ec"
10500         break;
10501       case 254: /* assignment_expression_error */
10502 #line 188 "grammar.y"
10503         { FreeExpression((yyvaluep->exp)); };
10504 #line 10505 "grammar.ec"
10505         break;
10506       case 255: /* expression_error */
10507 #line 233 "grammar.y"
10508         { FreeList((yyvaluep->list), FreeExpression); };
10509 #line 10510 "grammar.ec"
10510         break;
10511       case 257: /* constant_expression */
10512 #line 188 "grammar.y"
10513         { FreeExpression((yyvaluep->exp)); };
10514 #line 10515 "grammar.ec"
10515         break;
10516       case 258: /* constant_expression_error */
10517 #line 188 "grammar.y"
10518         { FreeExpression((yyvaluep->exp)); };
10519 #line 10520 "grammar.ec"
10520         break;
10521       case 259: /* storage_class_specifier */
10522 #line 199 "grammar.y"
10523         { FreeSpecifier((yyvaluep->specifier)); };
10524 #line 10525 "grammar.ec"
10525         break;
10526       case 260: /* external_storage_class_specifier */
10527 #line 199 "grammar.y"
10528         { FreeSpecifier((yyvaluep->specifier)); };
10529 #line 10530 "grammar.ec"
10530         break;
10531       case 261: /* enumerator */
10532 #line 203 "grammar.y"
10533         { FreeEnumerator((yyvaluep->enumerator)); };
10534 #line 10535 "grammar.ec"
10535         break;
10536       case 262: /* enumerator_list */
10537 #line 234 "grammar.y"
10538         { FreeList((yyvaluep->list), FreeEnumerator); };
10539 #line 10540 "grammar.ec"
10540         break;
10541       case 266: /* enum_specifier_compound_error */
10542 #line 199 "grammar.y"
10543         { FreeSpecifier((yyvaluep->specifier)); };
10544 #line 10545 "grammar.ec"
10545         break;
10546       case 270: /* class_specifier */
10547 #line 199 "grammar.y"
10548         { FreeSpecifier((yyvaluep->specifier)); };
10549 #line 10550 "grammar.ec"
10550         break;
10551       case 271: /* class_specifier_error */
10552 #line 199 "grammar.y"
10553         { FreeSpecifier((yyvaluep->specifier)); };
10554 #line 10555 "grammar.ec"
10555         break;
10556       case 272: /* ext_storage */
10557 #line 199 "grammar.y"
10558         { FreeSpecifier((yyvaluep->specifier)); };
10559 #line 10560 "grammar.ec"
10560         break;
10561       case 273: /* type_qualifier */
10562 #line 199 "grammar.y"
10563         { FreeSpecifier((yyvaluep->specifier)); };
10564 #line 10565 "grammar.ec"
10565         break;
10566       case 274: /* type_qualifier_list */
10567 #line 235 "grammar.y"
10568         { FreeList((yyvaluep->list), FreeSpecifier); };
10569 #line 10570 "grammar.ec"
10570         break;
10571       case 275: /* type_specifier */
10572 #line 199 "grammar.y"
10573         { FreeSpecifier((yyvaluep->specifier)); };
10574 #line 10575 "grammar.ec"
10575         break;
10576       case 277: /* struct_declarator */
10577 #line 204 "grammar.y"
10578         { FreeDeclarator((yyvaluep->declarator)); };
10579 #line 10580 "grammar.ec"
10580         break;
10581       case 278: /* struct_declarator_list */
10582 #line 236 "grammar.y"
10583         { FreeList((yyvaluep->list), FreeDeclarator); };
10584 #line 10585 "grammar.ec"
10585         break;
10586       case 280: /* struct_or_union_specifier_compound */
10587 #line 199 "grammar.y"
10588         { FreeSpecifier((yyvaluep->specifier)); };
10589 #line 10590 "grammar.ec"
10590         break;
10591       case 281: /* struct_or_union_specifier_compound_error */
10592 #line 199 "grammar.y"
10593         { FreeSpecifier((yyvaluep->specifier)); };
10594 #line 10595 "grammar.ec"
10595         break;
10596       case 282: /* struct_or_union_specifier_nocompound */
10597 #line 199 "grammar.y"
10598         { FreeSpecifier((yyvaluep->specifier)); };
10599 #line 10600 "grammar.ec"
10600         break;
10601       case 285: /* struct_class */
10602 #line 199 "grammar.y"
10603         { FreeSpecifier((yyvaluep->specifier)); };
10604 #line 10605 "grammar.ec"
10605         break;
10606       case 286: /* struct_class_error */
10607 #line 199 "grammar.y"
10608         { FreeSpecifier((yyvaluep->specifier)); };
10609 #line 10610 "grammar.ec"
10610         break;
10611       case 288: /* specifier_qualifier_list */
10612 #line 235 "grammar.y"
10613         { FreeList((yyvaluep->list), FreeSpecifier); };
10614 #line 10615 "grammar.ec"
10615         break;
10616       case 290: /* declaration_specifiers */
10617 #line 235 "grammar.y"
10618         { FreeList((yyvaluep->list), FreeSpecifier); };
10619 #line 10620 "grammar.ec"
10620         break;
10621       case 294: /* _inheritance_specifiers */
10622 #line 235 "grammar.y"
10623         { FreeList((yyvaluep->list), FreeSpecifier); };
10624 #line 10625 "grammar.ec"
10625         break;
10626       case 295: /* inheritance_specifiers */
10627 #line 235 "grammar.y"
10628         { FreeList((yyvaluep->list), FreeSpecifier); };
10629 #line 10630 "grammar.ec"
10630         break;
10631       case 299: /* identifier_list_error */
10632 #line 240 "grammar.y"
10633         { FreeList((yyvaluep->list), FreeTypeName); };
10634 #line 10635 "grammar.ec"
10635         break;
10636       case 300: /* identifier_list */
10637 #line 240 "grammar.y"
10638         { FreeList((yyvaluep->list), FreeTypeName); };
10639 #line 10640 "grammar.ec"
10640         break;
10641       case 301: /* direct_declarator_nofunction */
10642 #line 204 "grammar.y"
10643         { FreeDeclarator((yyvaluep->declarator)); };
10644 #line 10645 "grammar.ec"
10645         break;
10646       case 302: /* direct_declarator_function_start */
10647 #line 204 "grammar.y"
10648         { FreeDeclarator((yyvaluep->declarator)); };
10649 #line 10650 "grammar.ec"
10650         break;
10651       case 303: /* direct_declarator_function */
10652 #line 204 "grammar.y"
10653         { FreeDeclarator((yyvaluep->declarator)); };
10654 #line 10655 "grammar.ec"
10655         break;
10656       case 304: /* direct_declarator_function_error */
10657 #line 204 "grammar.y"
10658         { FreeDeclarator((yyvaluep->declarator)); };
10659 #line 10660 "grammar.ec"
10660         break;
10661       case 305: /* direct_declarator */
10662 #line 204 "grammar.y"
10663         { FreeDeclarator((yyvaluep->declarator)); };
10664 #line 10665 "grammar.ec"
10665         break;
10666       case 306: /* ext_decl */
10667 #line 230 "grammar.y"
10668         { delete (yyvaluep->string); };
10669 #line 10670 "grammar.ec"
10670         break;
10671       case 308: /* direct_abstract_declarator */
10672 #line 204 "grammar.y"
10673         { FreeDeclarator((yyvaluep->declarator)); };
10674 #line 10675 "grammar.ec"
10675         break;
10676       case 309: /* direct_abstract_declarator_noarray */
10677 #line 204 "grammar.y"
10678         { FreeDeclarator((yyvaluep->declarator)); };
10679 #line 10680 "grammar.ec"
10680         break;
10681       case 310: /* pointer */
10682 #line 187 "grammar.y"
10683         { FreePointer((yyvaluep->pointer)); };
10684 #line 10685 "grammar.ec"
10685         break;
10686       case 311: /* abstract_declarator */
10687 #line 204 "grammar.y"
10688         { FreeDeclarator((yyvaluep->declarator)); };
10689 #line 10690 "grammar.ec"
10690         break;
10691       case 312: /* abstract_declarator_noarray */
10692 #line 204 "grammar.y"
10693         { FreeDeclarator((yyvaluep->declarator)); };
10694 #line 10695 "grammar.ec"
10695         break;
10696       case 313: /* declarator */
10697 #line 204 "grammar.y"
10698         { FreeDeclarator((yyvaluep->declarator)); };
10699 #line 10700 "grammar.ec"
10700         break;
10701       case 314: /* declarator_function */
10702 #line 204 "grammar.y"
10703         { FreeDeclarator((yyvaluep->declarator)); };
10704 #line 10705 "grammar.ec"
10705         break;
10706       case 315: /* declarator_function_error */
10707 #line 204 "grammar.y"
10708         { FreeDeclarator((yyvaluep->declarator)); };
10709 #line 10710 "grammar.ec"
10710         break;
10711       case 316: /* declarator_nofunction */
10712 #line 204 "grammar.y"
10713         { FreeDeclarator((yyvaluep->declarator)); };
10714 #line 10715 "grammar.ec"
10715         break;
10716       case 317: /* initializer */
10717 #line 209 "grammar.y"
10718         { FreeInitializer((yyvaluep->initializer)); };
10719 #line 10720 "grammar.ec"
10720         break;
10721       case 318: /* initializer_error */
10722 #line 209 "grammar.y"
10723         { FreeInitializer((yyvaluep->initializer)); };
10724 #line 10725 "grammar.ec"
10725         break;
10726       case 319: /* initializer_condition */
10727 #line 209 "grammar.y"
10728         { FreeInitializer((yyvaluep->initializer)); };
10729 #line 10730 "grammar.ec"
10730         break;
10731       case 320: /* initializer_condition_error */
10732 #line 209 "grammar.y"
10733         { FreeInitializer((yyvaluep->initializer)); };
10734 #line 10735 "grammar.ec"
10735         break;
10736       case 321: /* initializer_list */
10737 #line 238 "grammar.y"
10738         { FreeList((yyvaluep->list), FreeInitializer); };
10739 #line 10740 "grammar.ec"
10740         break;
10741       case 322: /* init_declarator */
10742 #line 210 "grammar.y"
10743         { FreeInitDeclarator((yyvaluep->initDeclarator)); };
10744 #line 10745 "grammar.ec"
10745         break;
10746       case 323: /* init_declarator_error */
10747 #line 210 "grammar.y"
10748         { FreeInitDeclarator((yyvaluep->initDeclarator)); };
10749 #line 10750 "grammar.ec"
10750         break;
10751       case 324: /* init_declarator_list */
10752 #line 239 "grammar.y"
10753         { FreeList((yyvaluep->list), FreeInitDeclarator); };
10754 #line 10755 "grammar.ec"
10755         break;
10756       case 325: /* init_declarator_list_error */
10757 #line 239 "grammar.y"
10758         { FreeList((yyvaluep->list), FreeInitDeclarator); };
10759 #line 10760 "grammar.ec"
10760         break;
10761       case 326: /* type_name */
10762 #line 211 "grammar.y"
10763         { FreeTypeName((yyvaluep->typeName)); };
10764 #line 10765 "grammar.ec"
10765         break;
10766       case 327: /* guess_type_name */
10767 #line 211 "grammar.y"
10768         { FreeTypeName((yyvaluep->typeName)); };
10769 #line 10770 "grammar.ec"
10770         break;
10771       case 328: /* parameter_declaration */
10772 #line 211 "grammar.y"
10773         { FreeTypeName((yyvaluep->typeName)); };
10774 #line 10775 "grammar.ec"
10775         break;
10776       case 329: /* parameter_declaration_error */
10777 #line 211 "grammar.y"
10778         { FreeTypeName((yyvaluep->typeName)); };
10779 #line 10780 "grammar.ec"
10780         break;
10781       case 330: /* parameter_list */
10782 #line 240 "grammar.y"
10783         { FreeList((yyvaluep->list), FreeTypeName); };
10784 #line 10785 "grammar.ec"
10785         break;
10786       case 331: /* parameter_list_error */
10787 #line 240 "grammar.y"
10788         { FreeList((yyvaluep->list), FreeTypeName); };
10789 #line 10790 "grammar.ec"
10790         break;
10791       case 332: /* parameter_type_list */
10792 #line 240 "grammar.y"
10793         { FreeList((yyvaluep->list), FreeTypeName); };
10794 #line 10795 "grammar.ec"
10795         break;
10796       case 333: /* parameter_type_list_error */
10797 #line 240 "grammar.y"
10798         { FreeList((yyvaluep->list), FreeTypeName); };
10799 #line 10800 "grammar.ec"
10800         break;
10801       case 334: /* statement */
10802 #line 212 "grammar.y"
10803         { FreeStatement((yyvaluep->stmt)); };
10804 #line 10805 "grammar.ec"
10805         break;
10806       case 335: /* statement_error */
10807 #line 212 "grammar.y"
10808         { FreeStatement((yyvaluep->stmt)); };
10809 #line 10810 "grammar.ec"
10810         break;
10811       case 339: /* labeled_statement */
10812 #line 212 "grammar.y"
10813         { FreeStatement((yyvaluep->stmt)); };
10814 #line 10815 "grammar.ec"
10815         break;
10816       case 340: /* labeled_statement_error */
10817 #line 212 "grammar.y"
10818         { FreeStatement((yyvaluep->stmt)); };
10819 #line 10820 "grammar.ec"
10820         break;
10821       case 341: /* declaration_mode */
10822 #line 246 "grammar.y"
10823         { };
10824 #line 10825 "grammar.ec"
10825         break;
10826       case 343: /* declaration */
10827 #line 216 "grammar.y"
10828         { FreeDeclaration((yyvaluep->declaration)); };
10829 #line 10830 "grammar.ec"
10830         break;
10831       case 347: /* declaration_list */
10832 #line 237 "grammar.y"
10833         { FreeList((yyvaluep->list), FreeDeclaration); };
10834 #line 10835 "grammar.ec"
10835         break;
10836       case 348: /* declaration_list_error */
10837 #line 237 "grammar.y"
10838         { FreeList((yyvaluep->list), FreeDeclaration); };
10839 #line 10840 "grammar.ec"
10840         break;
10841       case 349: /* statement_list */
10842 #line 241 "grammar.y"
10843         { FreeList((yyvaluep->list), FreeStatement); };
10844 #line 10845 "grammar.ec"
10845         break;
10846       case 350: /* statement_list_error */
10847 #line 241 "grammar.y"
10848         { FreeList((yyvaluep->list), FreeStatement); };
10849 #line 10850 "grammar.ec"
10850         break;
10851       case 351: /* compound_inside */
10852 #line 212 "grammar.y"
10853         { FreeStatement((yyvaluep->stmt)); };
10854 #line 10855 "grammar.ec"
10855         break;
10856       case 352: /* compound_inside_error */
10857 #line 212 "grammar.y"
10858         { FreeStatement((yyvaluep->stmt)); };
10859 #line 10860 "grammar.ec"
10860         break;
10861       case 354: /* compound_statement */
10862 #line 212 "grammar.y"
10863         { FreeStatement((yyvaluep->stmt)); };
10864 #line 10865 "grammar.ec"
10865         break;
10866       case 355: /* compound_statement_error */
10867 #line 212 "grammar.y"
10868         { FreeStatement((yyvaluep->stmt)); };
10869 #line 10870 "grammar.ec"
10870         break;
10871       case 356: /* expression_statement */
10872 #line 212 "grammar.y"
10873         { FreeStatement((yyvaluep->stmt)); };
10874 #line 10875 "grammar.ec"
10875         break;
10876       case 357: /* selection_statement */
10877 #line 212 "grammar.y"
10878         { FreeStatement((yyvaluep->stmt)); };
10879 #line 10880 "grammar.ec"
10880         break;
10881       case 358: /* selection_statement_error */
10882 #line 212 "grammar.y"
10883         { FreeStatement((yyvaluep->stmt)); };
10884 #line 10885 "grammar.ec"
10885         break;
10886       case 359: /* iteration_statement */
10887 #line 212 "grammar.y"
10888         { FreeStatement((yyvaluep->stmt)); };
10889 #line 10890 "grammar.ec"
10890         break;
10891       case 360: /* iteration_statement_error */
10892 #line 212 "grammar.y"
10893         { FreeStatement((yyvaluep->stmt)); };
10894 #line 10895 "grammar.ec"
10895         break;
10896       case 361: /* jump_statement */
10897 #line 212 "grammar.y"
10898         { FreeStatement((yyvaluep->stmt)); };
10899 #line 10900 "grammar.ec"
10900         break;
10901       case 362: /* jump_statement_error */
10902 #line 212 "grammar.y"
10903         { FreeStatement((yyvaluep->stmt)); };
10904 #line 10905 "grammar.ec"
10905         break;
10906       case 363: /* function_definition */
10907 #line 217 "grammar.y"
10908         { FreeFunction((yyvaluep->function)); };
10909 #line 10910 "grammar.ec"
10910         break;
10911       case 364: /* function_definition_error */
10912 #line 217 "grammar.y"
10913         { FreeFunction((yyvaluep->function)); };
10914 #line 10915 "grammar.ec"
10915         break;
10916       case 365: /* string_literal */
10917 #line 230 "grammar.y"
10918         { delete (yyvaluep->string); };
10919 #line 10920 "grammar.ec"
10920         break;
10921       case 366: /* external_declaration */
10922 #line 218 "grammar.y"
10923         { FreeExternal((yyvaluep->external)); };
10924 #line 10925 "grammar.ec"
10925         break;
10926       case 367: /* external_declaration_error */
10927 #line 218 "grammar.y"
10928         { FreeExternal((yyvaluep->external)); };
10929 #line 10930 "grammar.ec"
10930         break;
10931       case 368: /* translation_unit_error */
10932 #line 242 "grammar.y"
10933         { if((yyvaluep->list) != ast) FreeList((yyvaluep->list), FreeExternal); };
10934 #line 10935 "grammar.ec"
10935         break;
10936       case 369: /* translation_unit */
10937 #line 242 "grammar.y"
10938         { if((yyvaluep->list) != ast) FreeList((yyvaluep->list), FreeExternal); };
10939 #line 10940 "grammar.ec"
10940         break;
10941
10942       default:
10943         break;
10944     }
10945 }
10946 \f
10947
10948 /* Prevent warnings from -Wmissing-prototypes.  */
10949
10950 #ifdef YYPARSE_PARAM
10951 # if defined (__STDC__) || defined (__cplusplus)
10952 int yyparse (void *YYPARSE_PARAM);
10953 # else
10954 int yyparse ();
10955 # endif
10956 #else /* ! YYPARSE_PARAM */
10957 #if defined (__STDC__) || defined (__cplusplus)
10958 int yyparse (void);
10959 #else
10960 int yyparse ();
10961 #endif
10962 #endif /* ! YYPARSE_PARAM */
10963
10964
10965
10966 /* The look-ahead symbol.  */
10967 int yychar;
10968
10969 /* The semantic value of the look-ahead symbol.  */
10970 YYSTYPE yylval;
10971
10972 /* Number of syntax errors so far.  */
10973 int yynerrs;
10974 /* Location data for the look-ahead symbol.  */
10975 YYLTYPE yylloc;
10976
10977
10978
10979 /*----------.
10980 | yyparse.  |
10981 `----------*/
10982
10983 #ifdef YYPARSE_PARAM
10984 # if defined (__STDC__) || defined (__cplusplus)
10985 int yyparse (void *YYPARSE_PARAM)
10986 # else
10987 int yyparse (YYPARSE_PARAM)
10988   void *YYPARSE_PARAM;
10989 # endif
10990 #else /* ! YYPARSE_PARAM */
10991 #if defined (__STDC__) || defined (__cplusplus)
10992 int
10993 yyparse (void)
10994 #else
10995 int
10996 yyparse ()
10997
10998 #endif
10999 #endif
11000 {
11001   
11002   register int yystate;
11003   register int yyn;
11004   int yyresult;
11005   /* Number of tokens to shift before error messages enabled.  */
11006   int yyerrstatus;
11007   /* Look-ahead token as an internal (translated) token number.  */
11008   int yytoken = 0;
11009
11010   /* Three stacks and their tools:
11011      `yyss': related to states,
11012      `yyvs': related to semantic values,
11013      `yyls': related to locations.
11014
11015      Refer to the stacks thru separate pointers, to allow yyoverflow
11016      to reallocate them elsewhere.  */
11017
11018   /* The state stack.  */
11019   short int yyssa[YYINITDEPTH];
11020   short int *yyss = yyssa;
11021   register short int *yyssp;
11022
11023   /* The semantic value stack.  */
11024   YYSTYPE yyvsa[YYINITDEPTH];
11025   YYSTYPE *yyvs = yyvsa;
11026   register YYSTYPE *yyvsp;
11027
11028   /* The location stack.  */
11029   YYLTYPE yylsa[YYINITDEPTH];
11030   YYLTYPE *yyls = yylsa;
11031   YYLTYPE *yylsp;
11032   /* The locations where the error started and ended. */
11033   YYLTYPE yyerror_range[2];
11034
11035 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
11036
11037   YYSIZE_T yystacksize = YYINITDEPTH;
11038
11039   /* The variables used to return semantic value and location from the
11040      action routines.  */
11041   YYSTYPE yyval;
11042   YYLTYPE yyloc;
11043
11044   /* When reducing, the number of symbols on the RHS of the reduced
11045      rule.  */
11046   int yylen;
11047
11048   YYDPRINTF ((stderr, "Starting parse\n"));
11049
11050   yystate = 0;
11051   yyerrstatus = 0;
11052   yynerrs = 0;
11053   yychar = YYEMPTY;             /* Cause a token to be read.  */
11054
11055   /* Initialize stack pointers.
11056      Waste one element of value and location stack
11057      so that they stay on the same level as the state stack.
11058      The wasted elements are never initialized.  */
11059
11060   yyssp = yyss;
11061   yyvsp = yyvs;
11062   yylsp = yyls;
11063 #if YYLTYPE_IS_TRIVIAL
11064   /* Initialize the default location before parsing starts.  */
11065   yylloc.first_line   = yylloc.last_line   = 1;
11066   yylloc.first_column = yylloc.last_column = 0;
11067 #endif
11068
11069
11070   yyvsp[0] = yylval;
11071     yylsp[0] = yylloc;
11072
11073   goto yysetstate;
11074
11075 /*------------------------------------------------------------.
11076 | yynewstate -- Push a new state, which is found in yystate.  |
11077 `------------------------------------------------------------*/
11078  yynewstate:
11079   /* In all cases, when you get here, the value and location stacks
11080      have just been pushed. so pushing a state here evens the stacks.
11081      */
11082   yyssp++;
11083
11084  yysetstate:
11085   *yyssp = yystate;
11086
11087   if (yyss + yystacksize - 1 <= yyssp)
11088     {
11089       /* Get the current used size of the three stacks, in elements.  */
11090       YYSIZE_T yysize = yyssp - yyss + 1;
11091
11092 #ifdef yyoverflow
11093       {
11094         /* Give user a chance to reallocate the stack. Use copies of
11095            these so that the &'s don't force the real ones into
11096            memory.  */
11097         YYSTYPE *yyvs1 = yyvs;
11098         short int *yyss1 = yyss;
11099         YYLTYPE *yyls1 = yyls;
11100
11101         /* Each stack pointer address is followed by the size of the
11102            data in use in that stack, in bytes.  This used to be a
11103            conditional around just the two extra args, but that might
11104            be undefined if yyoverflow is a macro.  */
11105         yyoverflow ("parser stack overflow",
11106                     &yyss1, yysize * sizeof (*yyssp),
11107                     &yyvs1, yysize * sizeof (*yyvsp),
11108                     &yyls1, yysize * sizeof (*yylsp),
11109                     &yystacksize);
11110         yyls = yyls1;
11111         yyss = yyss1;
11112         yyvs = yyvs1;
11113       }
11114 #else /* no yyoverflow */
11115 # ifndef YYSTACK_RELOCATE
11116       goto yyoverflowlab;
11117 # else
11118       /* Extend the stack our own way.  */
11119       if (YYMAXDEPTH <= yystacksize)
11120         goto yyoverflowlab;
11121       yystacksize *= 2;
11122       if (YYMAXDEPTH < yystacksize)
11123         yystacksize = YYMAXDEPTH;
11124
11125       {
11126         short int *yyss1 = yyss;
11127         union yyalloc *yyptr =
11128           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
11129         if (! yyptr)
11130           goto yyoverflowlab;
11131         YYSTACK_RELOCATE (yyss);
11132         YYSTACK_RELOCATE (yyvs);
11133         YYSTACK_RELOCATE (yyls);
11134 #  undef YYSTACK_RELOCATE
11135         if (yyss1 != yyssa)
11136           YYSTACK_FREE (yyss1);
11137       }
11138 # endif
11139 #endif /* no yyoverflow */
11140
11141       yyssp = yyss + yysize - 1;
11142       yyvsp = yyvs + yysize - 1;
11143       yylsp = yyls + yysize - 1;
11144
11145       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
11146                   (unsigned long int) yystacksize));
11147
11148       if (yyss + yystacksize - 1 <= yyssp)
11149         YYABORT;
11150     }
11151
11152   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
11153
11154   goto yybackup;
11155
11156 /*-----------.
11157 | yybackup.  |
11158 `-----------*/
11159 yybackup:
11160
11161 /* Do appropriate processing given the current state.  */
11162 /* Read a look-ahead token if we need one and don't already have one.  */
11163 /* yyresume: */
11164
11165   /* First try to decide what to do without reference to look-ahead token.  */
11166
11167   yyn = yypact[yystate];
11168   if (yyn == YYPACT_NINF)
11169     goto yydefault;
11170
11171   /* Not known => get a look-ahead token if don't already have one.  */
11172
11173   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
11174   if (yychar == YYEMPTY)
11175     {
11176       YYDPRINTF ((stderr, "Reading a token: "));
11177       yychar = YYLEX;
11178     }
11179
11180   if (yychar <= YYEOF)
11181     {
11182       yychar = yytoken = YYEOF;
11183       YYDPRINTF ((stderr, "Now at end of input.\n"));
11184     }
11185   else
11186     {
11187       yytoken = YYTRANSLATE (yychar);
11188       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
11189     }
11190
11191   /* If the proper action on seeing token YYTOKEN is to reduce or to
11192      detect an error, take that action.  */
11193   yyn += yytoken;
11194   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
11195     goto yydefault;
11196   yyn = yytable[yyn];
11197   if (yyn <= 0)
11198     {
11199       if (yyn == 0 || yyn == YYTABLE_NINF)
11200         goto yyerrlab;
11201       yyn = -yyn;
11202       goto yyreduce;
11203     }
11204
11205   if (yyn == YYFINAL)
11206     YYACCEPT;
11207
11208   /* Shift the look-ahead token.  */
11209   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
11210
11211   /* Discard the token being shifted unless it is eof.  */
11212   if (yychar != YYEOF)
11213     yychar = YYEMPTY;
11214
11215   *++yyvsp = yylval;
11216   *++yylsp = yylloc;
11217
11218   /* Count tokens shifted since error; after three, turn off error
11219      status.  */
11220   if (yyerrstatus)
11221     yyerrstatus--;
11222
11223   yystate = yyn;
11224   goto yynewstate;
11225
11226
11227 /*-----------------------------------------------------------.
11228 | yydefault -- do the default action for the current state.  |
11229 `-----------------------------------------------------------*/
11230 yydefault:
11231   yyn = yydefact[yystate];
11232   if (yyn == 0)
11233     goto yyerrlab;
11234   goto yyreduce;
11235
11236
11237 /*-----------------------------.
11238 | yyreduce -- Do a reduction.  |
11239 `-----------------------------*/
11240 yyreduce:
11241   /* yyn is the number of a rule to reduce with.  */
11242   yylen = yyr2[yyn];
11243
11244   /* If YYLEN is nonzero, implement the default value of the action:
11245      `$$ = $1'.
11246
11247      Otherwise, the following line sets YYVAL to garbage.
11248      This behavior is undocumented and Bison
11249      users should not rely upon it.  Assigning to YYVAL
11250      unconditionally makes the parser a bit smaller, and it avoids a
11251      GCC warning that YYVAL may be used uninitialized.  */
11252   yyval = yyvsp[1-yylen];
11253
11254   /* Default location. */
11255   YYLLOC_DEFAULT (yyloc, yylsp - yylen, yylen);
11256   YY_REDUCE_PRINT (yyn);
11257   switch (yyn)
11258     {
11259         case 2:
11260 #line 255 "grammar.y"
11261     {
11262       // if($1._class && !$1._class.name)
11263       if((yyvsp[-1].id)._class)
11264       {
11265          char name[1024];
11266          strcpy(name,  (yyvsp[-1].id)._class.name ? (yyvsp[-1].id)._class.name : "");
11267          strcat(name, "::");
11268          strcat(name, (yyvsp[-1].id).string);
11269          _DeclClass(0, name);
11270       }
11271       else
11272          _DeclClass(0, (yyvsp[-1].id).string);
11273
11274       FreeIdentifier((yyvsp[-1].id));
11275
11276       fileInput.Seek((yylsp[-1]).start.pos, start); 
11277       resetScannerPos(&(yylsp[-1]).start);
11278       yyclearin;
11279
11280       YYPOPSTACK;
11281       yystate = *yyssp;
11282       YY_STACK_PRINT (yyss, yyssp);
11283       YYPOPSTACK;
11284       yystate = *yyssp;
11285       YY_STACK_PRINT (yyss, yyssp);
11286       goto yysetstate;
11287    ;}
11288     break;
11289
11290   case 3:
11291 #line 283 "grammar.y"
11292     {
11293    #ifdef PRECOMPILER
11294       // if($1._class && !$1._class.name)
11295       if((yyvsp[-1].id)._class)
11296       {
11297          char name[1024];
11298          strcpy(name,  (yyvsp[-1].id)._class.name ? (yyvsp[-1].id)._class.name : "");
11299          strcat(name, "::");
11300          strcat(name, (yyvsp[-1].id).string);
11301          _DeclClass(0, name);
11302       }
11303       else
11304          _DeclClass(0, (yyvsp[-1].id).string);
11305
11306       FreeIdentifier((yyvsp[-1].id));
11307
11308       fileInput.Seek((yylsp[-1]).start.pos, start); 
11309       resetScannerPos(&(yylsp[-1]).start);
11310       yyclearin;
11311
11312       YYPOPSTACK;
11313       yystate = *yyssp;
11314       YY_STACK_PRINT (yyss, yyssp);
11315       YYPOPSTACK;
11316       yystate = *yyssp;
11317       YY_STACK_PRINT (yyss, yyssp);
11318       goto yysetstate;
11319    #endif
11320    ;}
11321     break;
11322
11323   case 4:
11324 #line 340 "grammar.y"
11325     { (yyval.specifier) = (yyvsp[0].specifier); ;}
11326     break;
11327
11328   case 5:
11329 #line 342 "grammar.y"
11330     {
11331    #ifdef PRECOMPILER
11332       // if($1._class && !$1._class.name)
11333       if((yyvsp[-1].id)._class)
11334       {
11335          char name[1024];
11336          strcpy(name,  (yyvsp[-1].id)._class.name ? (yyvsp[-1].id)._class.name : "");
11337          strcat(name, "::");
11338          strcat(name, (yyvsp[-1].id).string);
11339          _DeclClass(0, name);
11340       }
11341       else
11342          _DeclClass(0, (yyvsp[-1].id).string);
11343       FreeIdentifier((yyvsp[-1].id));
11344       FreeIdentifier((yyvsp[0].id));
11345
11346       fileInput.Seek((yylsp[-1]).start.pos, start); 
11347       resetScannerPos(&(yylsp[-1]).start);
11348       yyclearin;
11349
11350       YYPOPSTACK;
11351       yystate = *yyssp;
11352       YY_STACK_PRINT (yyss, yyssp);
11353       YYPOPSTACK;
11354       yystate = *yyssp;
11355       YY_STACK_PRINT (yyss, yyssp);
11356       goto yysetstate;
11357    #else
11358       Location tmpLoc = yylloc; (yyval.specifier) = (yyvsp[0].id); yylloc = (yylsp[-1]); 
11359       Compiler_Error("Not a type: %s\n", (yyvsp[-1].id).string);      
11360       yylloc = tmpLoc; (yyvsp[0].id).badID = (yyvsp[-1].id);
11361    #endif
11362    ;}
11363     break;
11364
11365   case 6:
11366 #line 441 "grammar.y"
11367     { (yyval.specifier) = MkSpecifierName(yytext); ;}
11368     break;
11369
11370   case 7:
11371 #line 445 "grammar.y"
11372     { (yyval.string) = CopyString(yytext); ;}
11373     break;
11374
11375   case 9:
11376 #line 449 "grammar.y"
11377     { (yyval.specifier) = (yyvsp[-3].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[-1].list)); (yyval.specifier).loc = (yyloc); ;}
11378     break;
11379
11380   case 10:
11381 #line 451 "grammar.y"
11382     {
11383       (yyval.specifier) = (yyvsp[-3].specifier);
11384       SetClassTemplateArgs((yyval.specifier), (yyvsp[-1].list));
11385       (yyval.specifier).loc = (yyloc);
11386
11387       (yylsp[0]).end.pos--;
11388       fileInput.Seek((yylsp[0]).end.pos, start); 
11389       resetScannerPos(&(yylsp[0]).end);
11390       yyclearin;
11391     ;}
11392     break;
11393
11394   case 11:
11395 #line 500 "grammar.y"
11396     { (yyval.classFunction) = MkClassFunction((yyvsp[-1].list), null, (yyvsp[0].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11397     break;
11398
11399   case 12:
11400 #line 502 "grammar.y"
11401     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[0].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11402     break;
11403
11404   case 13:
11405 #line 507 "grammar.y"
11406     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; FreeList((yyvsp[-2].list), FreeSpecifier); ;}
11407     break;
11408
11409   case 14:
11410 #line 512 "grammar.y"
11411     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; FreeList((yyvsp[-2].list), FreeSpecifier) ;}
11412     break;
11413
11414   case 15:
11415 #line 517 "grammar.y"
11416     { (yyval.classFunction) = MkClassFunction((yyvsp[-1].list), null, (yyvsp[0].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11417     break;
11418
11419   case 16:
11420 #line 519 "grammar.y"
11421     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[0].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11422     break;
11423
11424   case 17:
11425 #line 524 "grammar.y"
11426     { (yyval.classFunction) = MkClassFunction((yyvsp[-1].list), null, (yyvsp[0].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11427     break;
11428
11429   case 18:
11430 #line 526 "grammar.y"
11431     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[0].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11432     break;
11433
11434   case 19:
11435 #line 531 "grammar.y"
11436     { (yyval.classFunction) = MkClassFunction((yyvsp[-1].list), null, (yyvsp[0].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11437     break;
11438
11439   case 20:
11440 #line 533 "grammar.y"
11441     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[0].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11442     break;
11443
11444   case 21:
11445 #line 538 "grammar.y"
11446     { ProcessClassFunctionBody((yyvsp[-1].classFunction), (yyvsp[0].stmt)); (yyval.classFunction).loc = (yyloc); ;}
11447     break;
11448
11449   case 22:
11450 #line 540 "grammar.y"
11451     { ProcessClassFunctionBody((yyvsp[-1].classFunction), (yyvsp[0].stmt)); (yyval.classFunction).loc = (yyloc); ;}
11452     break;
11453
11454   case 23:
11455 #line 542 "grammar.y"
11456     { ProcessClassFunctionBody((yyvsp[-1].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
11457     break;
11458
11459   case 24:
11460 #line 544 "grammar.y"
11461     { ProcessClassFunctionBody((yyvsp[-1].classFunction), (yyvsp[0].stmt)); (yyval.classFunction).loc = (yyloc); ;}
11462     break;
11463
11464   case 25:
11465 #line 546 "grammar.y"
11466     { ProcessClassFunctionBody((yyvsp[-1].classFunction), (yyvsp[0].stmt)); (yyval.classFunction).loc = (yyloc); ;}
11467     break;
11468
11469   case 26:
11470 #line 550 "grammar.y"
11471     { ProcessClassFunctionBody((yyvsp[-1].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
11472     break;
11473
11474   case 27:
11475 #line 555 "grammar.y"
11476     { ProcessClassFunctionBody((yyvsp[-1].classFunction), (yyvsp[0].stmt)); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end = (yyvsp[0].stmt).loc.end; ;}
11477     break;
11478
11479   case 28:
11480 #line 557 "grammar.y"
11481     { ProcessClassFunctionBody((yyvsp[0].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
11482     break;
11483
11484   case 29:
11485 #line 559 "grammar.y"
11486     { ProcessClassFunctionBody((yyvsp[-1].classFunction), (yyvsp[0].stmt)); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end = (yyvsp[0].stmt).loc.end; ;}
11487     break;
11488
11489   case 30:
11490 #line 561 "grammar.y"
11491     { ProcessClassFunctionBody((yyvsp[0].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
11492     break;
11493
11494   case 31:
11495 #line 563 "grammar.y"
11496     { ProcessClassFunctionBody((yyvsp[-1].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
11497     break;
11498
11499   case 32:
11500 #line 569 "grammar.y"
11501     { (yyval.classFunction) = MkClassFunction((yyvsp[-1].list), null, (yyvsp[0].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11502     break;
11503
11504   case 33:
11505 #line 571 "grammar.y"
11506     { (yyval.classFunction) = MkClassFunction((yyvsp[-1].list), null, MkDeclaratorFunction((yyvsp[0].declarator), null), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11507     break;
11508
11509   case 34:
11510 #line 576 "grammar.y"
11511     { (yyval.classFunction) = MkClassFunction((yyvsp[-1].list), null, (yyvsp[0].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
11512     break;
11513
11514   case 35:
11515 #line 581 "grammar.y"
11516     { ProcessClassFunctionBody((yyvsp[-1].classFunction), (yyvsp[0].stmt)); (yyval.classFunction).loc = (yyloc); ;}
11517     break;
11518
11519   case 36:
11520 #line 586 "grammar.y"
11521     { ProcessClassFunctionBody((yyvsp[-1].classFunction), (yyvsp[0].stmt)); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end = (yyvsp[0].stmt).loc.end; (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
11522     break;
11523
11524   case 37:
11525 #line 588 "grammar.y"
11526     { ProcessClassFunctionBody((yyvsp[0].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
11527     break;
11528
11529   case 38:
11530 #line 590 "grammar.y"
11531     { ProcessClassFunctionBody((yyvsp[0].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
11532     break;
11533
11534   case 39:
11535 #line 594 "grammar.y"
11536     { (yyval.memberInit) = MkMemberInitExp((yyvsp[-2].exp), (yyvsp[0].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[-1]).end;;}
11537     break;
11538
11539   case 40:
11540 #line 595 "grammar.y"
11541     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[0].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
11542     break;
11543
11544   case 41:
11545 #line 599 "grammar.y"
11546     { (yyval.memberInit) = MkMemberInitExp((yyvsp[-2].exp), (yyvsp[0].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[-1]).end;;}
11547     break;
11548
11549   case 42:
11550 #line 601 "grammar.y"
11551     { 
11552          (yyval.memberInit) = MkMemberInitExp((yyvsp[-2].exp), MkInitializerAssignment(MkExpDummy()));
11553          (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yyval.memberInit).initializer.loc.end = (yylsp[-1]).end; 
11554
11555          fileInput.Seek((yylsp[-1]).end.pos, start); 
11556          yyclearin;
11557          resetScannerPos(&(yylsp[-1]).end);
11558          (yyloc).start = (yylsp[-2]).start;
11559          (yyloc).end = (yylsp[-1]).end;
11560       ;}
11561     break;
11562
11563   case 43:
11564 #line 611 "grammar.y"
11565     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[0].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
11566     break;
11567
11568   case 44:
11569 #line 615 "grammar.y"
11570     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].memberInit)); ;}
11571     break;
11572
11573   case 45:
11574 #line 617 "grammar.y"
11575     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[0]).start; ListAdd((yyvsp[-2].list), (yyvsp[0].memberInit)); ;}
11576     break;
11577
11578   case 46:
11579 #line 619 "grammar.y"
11580     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[0]).start; ListAdd((yyvsp[-2].list), (yyvsp[0].memberInit)); ;}
11581     break;
11582
11583   case 47:
11584 #line 623 "grammar.y"
11585     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].memberInit)); ;}
11586     break;
11587
11588   case 48:
11589 #line 625 "grammar.y"
11590     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[0]).start; ListAdd((yyvsp[-2].list), (yyvsp[0].memberInit)); ;}
11591     break;
11592
11593   case 49:
11594 #line 627 "grammar.y"
11595     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[0]).start; ListAdd((yyvsp[-2].list), (yyvsp[0].memberInit)); ;}
11596     break;
11597
11598   case 50:
11599 #line 630 "grammar.y"
11600     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[-1]).end; 
11601          { 
11602             Initializer dummy = MkInitializerAssignment(MkExpDummy()); 
11603             MemberInit memberInit = MkMemberInit(null, dummy); 
11604             memberInit.realLoc.start = memberInit.loc.start = dummy.loc.start = (yylsp[-1]).end; 
11605             memberInit.realLoc.end = memberInit.loc.end = dummy.loc.end = (yylsp[-1]).end; 
11606             ListAdd((yyvsp[-2].list), memberInit); 
11607           } 
11608        ;}
11609     break;
11610
11611   case 51:
11612 #line 641 "grammar.y"
11613     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[-1]).end; 
11614          { 
11615             Initializer dummy = MkInitializerAssignment(MkExpDummy()); 
11616             MemberInit memberInit = MkMemberInit(null, dummy); 
11617             memberInit.realLoc.start = memberInit.loc.start = dummy.loc.start = (yylsp[-1]).end; 
11618             memberInit.realLoc.end = memberInit.loc.end = dummy.loc.end = (yylsp[-1]).end; 
11619             ListAdd((yyvsp[-2].list), memberInit); 
11620           } 
11621        ;}
11622     break;
11623
11624   case 52:
11625 #line 651 "grammar.y"
11626     {
11627          Initializer dummy = MkInitializerAssignment(MkExpDummy());
11628          MemberInit memberInit = MkMemberInit(null, dummy); 
11629          memberInit.realLoc.start = memberInit.loc.start = dummy.loc.start = (yylsp[0]).start; 
11630          memberInit.realLoc.end = memberInit.loc.end = dummy.loc.end = (yylsp[0]).start; 
11631
11632          (yyval.list) = MkList();
11633          ListAdd((yyval.list), memberInit); 
11634
11635          dummy = MkInitializerAssignment(MkExpDummy()); 
11636          memberInit = MkMemberInit(null, dummy); 
11637          memberInit.realLoc.start = memberInit.loc.start = dummy.loc.start = (yylsp[0]).end; 
11638          memberInit.realLoc.end = memberInit.loc.end = dummy.loc.end = (yylsp[0]).end; 
11639          ListAdd((yyval.list), memberInit); 
11640       ;}
11641     break;
11642
11643   case 53:
11644 #line 670 "grammar.y"
11645     { if((yyvsp[-1].list)->last) ((MemberInit)(yyvsp[-1].list)->last).loc.end = (yylsp[0]).end; ;}
11646     break;
11647
11648   case 54:
11649 #line 672 "grammar.y"
11650     { if((yyvsp[-1].list)->last) ((MemberInit)(yyvsp[-1].list)->last).loc.end = (yylsp[0]).end; ;}
11651     break;
11652
11653   case 55:
11654 #line 676 "grammar.y"
11655     { MembersInit members = MkMembersInitList((yyvsp[0].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[0]); ;}
11656     break;
11657
11658   case 56:
11659 #line 677 "grammar.y"
11660     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[0].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11661     break;
11662
11663   case 57:
11664 #line 678 "grammar.y"
11665     { MembersInit members = MkMembersInitList((yyvsp[0].list)); ListAdd((yyval.list), members);  members.loc = (yylsp[0]);  ;}
11666     break;
11667
11668   case 58:
11669 #line 679 "grammar.y"
11670     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[0].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11671     break;
11672
11673   case 59:
11674 #line 680 "grammar.y"
11675     { MembersInit members = MkMembersInitList((yyvsp[0].list)); ListAdd((yyval.list), members); members.loc = (yylsp[0]);  ;}
11676     break;
11677
11678   case 60:
11679 #line 681 "grammar.y"
11680     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[0].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11681     break;
11682
11683   case 61:
11684 #line 682 "grammar.y"
11685     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[0]);  ;}
11686     break;
11687
11688   case 63:
11689 #line 684 "grammar.y"
11690     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[0]);  ;}
11691     break;
11692
11693   case 65:
11694 #line 689 "grammar.y"
11695     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[0].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11696     break;
11697
11698   case 66:
11699 #line 690 "grammar.y"
11700     { ListAdd((yyvsp[-1].list), MkMembersInitList((yyvsp[0].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11701     break;
11702
11703   case 67:
11704 #line 691 "grammar.y"
11705     { ListAdd((yyvsp[-1].list), MkMembersInitList((yyvsp[0].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11706     break;
11707
11708   case 68:
11709 #line 695 "grammar.y"
11710     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[0].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11711     break;
11712
11713   case 69:
11714 #line 696 "grammar.y"
11715     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[0].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11716     break;
11717
11718   case 70:
11719 #line 697 "grammar.y"
11720     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[0].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11721     break;
11722
11723   case 71:
11724 #line 698 "grammar.y"
11725     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[0].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11726     break;
11727
11728   case 72:
11729 #line 699 "grammar.y"
11730     { ListAdd((yyval.list), MkMembersInitList((yyvsp[0].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11731     break;
11732
11733   case 73:
11734 #line 700 "grammar.y"
11735     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[0].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11736     break;
11737
11738   case 74:
11739 #line 701 "grammar.y"
11740     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[-1].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[0]); ;}
11741     break;
11742
11743   case 75:
11744 #line 706 "grammar.y"
11745     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[0]).start; ;}
11746     break;
11747
11748   case 76:
11749 #line 708 "grammar.y"
11750     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[-1]).start; ;}
11751     break;
11752
11753   case 77:
11754 #line 713 "grammar.y"
11755     { (yyval.instance) = MkInstantiationNamed((yyvsp[-3].list), MkExpIdentifier((yyvsp[-2].id)), (yyvsp[0].list)); (yyval.instance).exp.loc = (yylsp[-2]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-2]); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11756     break;
11757
11758   case 78:
11759 #line 715 "grammar.y"
11760     { (yyval.instance) = MkInstantiationNamed((yyvsp[-4].list), MkExpIdentifier((yyvsp[-3].id)), (yyvsp[-1].list)); (yyval.instance).exp.loc = (yylsp[-3]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-3]); (yyval.instance).insideLoc.start = (yylsp[-2]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11761     break;
11762
11763   case 79:
11764 #line 717 "grammar.y"
11765     { (yyval.instance) = MkInstantiationNamed((yyvsp[-3].list), MkExpIdentifier((yyvsp[-2].id)), (yyvsp[0].list)); (yyval.instance).exp.loc = (yylsp[-2]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-2]); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11766     break;
11767
11768   case 80:
11769 #line 719 "grammar.y"
11770     { (yyval.instance) = MkInstantiationNamed((yyvsp[-2].list), MkExpIdentifier((yyvsp[-1].id)), null); (yyval.instance).exp.loc = (yylsp[-1]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-1]); (yyval.instance).insideLoc.start = (yylsp[0]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11771     break;
11772
11773   case 81:
11774 #line 721 "grammar.y"
11775     { (yyval.instance) = MkInstantiationNamed((yyvsp[-3].list), MkExpIdentifier((yyvsp[-2].id)), null);(yyval.instance).exp.loc = (yylsp[-2]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-2]); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11776     break;
11777
11778   case 82:
11779 #line 751 "grammar.y"
11780     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[0]).start; ;}
11781     break;
11782
11783   case 83:
11784 #line 753 "grammar.y"
11785     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[-1]).start; ;}
11786     break;
11787
11788   case 84:
11789 #line 758 "grammar.y"
11790     { (yyval.instance) = MkInstantiationNamed((yyvsp[-3].list), MkExpIdentifier((yyvsp[-2].id)), (yyvsp[0].list));(yyval.instance).exp.loc = (yylsp[-2]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-2]); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11791     break;
11792
11793   case 85:
11794 #line 760 "grammar.y"
11795     { (yyval.instance) = MkInstantiationNamed((yyvsp[-4].list), MkExpIdentifier((yyvsp[-3].id)), (yyvsp[-1].list)); (yyval.instance).exp.loc = (yylsp[-3]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-3]); (yyval.instance).insideLoc.start = (yylsp[-2]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11796     break;
11797
11798   case 86:
11799 #line 762 "grammar.y"
11800     { (yyval.instance) = MkInstantiationNamed((yyvsp[-3].list), MkExpIdentifier((yyvsp[-2].id)), (yyvsp[0].list));(yyval.instance).exp.loc = (yylsp[-2]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-2]); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11801     break;
11802
11803   case 87:
11804 #line 764 "grammar.y"
11805     { (yyval.instance) = MkInstantiationNamed((yyvsp[-2].list), MkExpIdentifier((yyvsp[-1].id)), null);(yyval.instance).exp.loc = (yylsp[-1]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-1]); (yyval.instance).insideLoc.start = (yylsp[0]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11806     break;
11807
11808   case 88:
11809 #line 766 "grammar.y"
11810     { (yyval.instance) = MkInstantiationNamed((yyvsp[-3].list), MkExpIdentifier((yyvsp[-2].id)), null);(yyval.instance).exp.loc = (yylsp[-2]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-2]); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11811     break;
11812
11813   case 89:
11814 #line 795 "grammar.y"
11815     { (yyval.instance) = MkInstantiationNamed((yyvsp[-4].list), MkExpIdentifier((yyvsp[-3].id)), (yyvsp[-1].list)); (yyval.instance).exp.loc = (yylsp[-3]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-3]); (yyval.instance).insideLoc.start = (yylsp[-2]).end; (yyval.instance).insideLoc.end = (yylsp[0]).start;;}
11816     break;
11817
11818   case 90:
11819 #line 797 "grammar.y"
11820     { (yyval.instance) = MkInstantiationNamed((yyvsp[-4].list), MkExpIdentifier((yyvsp[-3].id)), (yyvsp[-1].list)); (yyval.instance).exp.loc = (yylsp[-3]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-3]); (yyval.instance).insideLoc.start = (yylsp[-2]).end; (yyval.instance).insideLoc.end = (yylsp[0]).start;;}
11821     break;
11822
11823   case 91:
11824 #line 799 "grammar.y"
11825     { (yyval.instance) = MkInstantiationNamed((yyvsp[-3].list), MkExpIdentifier((yyvsp[-2].id)), MkList());  (yyval.instance).exp.loc = (yylsp[-2]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[-2]); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).start;;}
11826     break;
11827
11828   case 92:
11829 #line 804 "grammar.y"
11830     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[0]).start; ;}
11831     break;
11832
11833   case 93:
11834 #line 806 "grammar.y"
11835     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[-1]).start; ;}
11836     break;
11837
11838   case 94:
11839 #line 811 "grammar.y"
11840     { (yyval.instance) = MkInstantiation((yyvsp[-2].specifier), null, (yyvsp[0].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11841     break;
11842
11843   case 95:
11844 #line 813 "grammar.y"
11845     { Location tmpLoc = yylloc; yylloc = (yylsp[-2]); 
11846       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[-2].id).string), null, (yyvsp[0].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end; FreeIdentifier((yyvsp[-2].id)); ;}
11847     break;
11848
11849   case 96:
11850 #line 817 "grammar.y"
11851     { (yyval.instance) = MkInstantiation((yyvsp[-2].specifier), null, (yyvsp[0].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11852     break;
11853
11854   case 97:
11855 #line 819 "grammar.y"
11856     { (yyval.instance) = MkInstantiation((yyvsp[-1].specifier), null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[0]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11857     break;
11858
11859   case 98:
11860 #line 821 "grammar.y"
11861     { (yyval.instance) = MkInstantiation((yyvsp[-3].specifier), null, (yyvsp[-1].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-2]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11862     break;
11863
11864   case 99:
11865 #line 823 "grammar.y"
11866     { (yyval.instance) = MkInstantiation((yyvsp[-2].specifier), null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++;  ;}
11867     break;
11868
11869   case 100:
11870 #line 828 "grammar.y"
11871     { Location tmpLoc = yylloc; yylloc = (yylsp[-2]); 
11872       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[-2].id).string), null, (yyvsp[0].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[-2].id)); ;}
11873     break;
11874
11875   case 101:
11876 #line 831 "grammar.y"
11877     { Location tmpLoc = yylloc; yylloc = (yylsp[-1]); 
11878       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[-1].id).string), null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[0]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[-1].id)); ;}
11879     break;
11880
11881   case 102:
11882 #line 834 "grammar.y"
11883     { Location tmpLoc = yylloc; yylloc = (yylsp[-3]); 
11884       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[-3].id).string), null, (yyvsp[-1].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-2]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[-3].id)); ;}
11885     break;
11886
11887   case 103:
11888 #line 837 "grammar.y"
11889     { Location tmpLoc = yylloc; yylloc = (yylsp[-2]); 
11890       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[-2].id).string), null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[-2].id)); ;}
11891     break;
11892
11893   case 104:
11894 #line 902 "grammar.y"
11895     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[0]).start; ;}
11896     break;
11897
11898   case 105:
11899 #line 904 "grammar.y"
11900     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[-1]).start; ;}
11901     break;
11902
11903   case 106:
11904 #line 909 "grammar.y"
11905     { (yyval.instance) = MkInstantiation(null, null, (yyvsp[0].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11906     break;
11907
11908   case 107:
11909 #line 911 "grammar.y"
11910     { (yyval.instance) = MkInstantiation(null, null, (yyvsp[-1].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-2]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11911     break;
11912
11913   case 108:
11914 #line 913 "grammar.y"
11915     { (yyval.instance) = MkInstantiation(null, null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[-1]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++;  ;}
11916     break;
11917
11918   case 109:
11919 #line 915 "grammar.y"
11920     { (yyval.instance) = MkInstantiation(null, null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[0]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11921     break;
11922
11923   case 110:
11924 #line 917 "grammar.y"
11925     { (yyval.instance) = MkInstantiation(null, null, (yyvsp[0].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[-1]).end; (yyval.instance).insideLoc.end = (yylsp[0]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
11926     break;
11927
11928   case 111:
11929 #line 947 "grammar.y"
11930     { (yyval.memberInit) = MkMemberInitExp((yyvsp[-2].exp), (yyvsp[0].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
11931     break;
11932
11933   case 112:
11934 #line 951 "grammar.y"
11935     { (yyval.memberInit) = MkMemberInitExp((yyvsp[-2].exp), (yyvsp[0].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[-1]).end; ;}
11936     break;
11937
11938   case 113:
11939 #line 952 "grammar.y"
11940     { (yyval.memberInit) = MkMemberInitExp((yyvsp[-2].exp), MkInitializerAssignment(MkExpDummy())); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[-1]).end; (yyval.memberInit).initializer.loc.end = (yylsp[-1]).end; ;}
11941     break;
11942
11943   case 114:
11944 #line 953 "grammar.y"
11945     { (yyval.memberInit) = MkMemberInitExp((yyvsp[-1].exp), null); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
11946     break;
11947
11948   case 115:
11949 #line 957 "grammar.y"
11950     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
11951     break;
11952
11953   case 116:
11954 #line 958 "grammar.y"
11955     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[0]).start; ListAdd((yyvsp[-2].list), (yyvsp[0].memberInit)); ;}
11956     break;
11957
11958   case 117:
11959 #line 959 "grammar.y"
11960     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[0]).start; ListAdd((yyvsp[-2].list), (yyvsp[0].memberInit)); ;}
11961     break;
11962
11963   case 118:
11964 #line 963 "grammar.y"
11965     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
11966     break;
11967
11968   case 119:
11969 #line 964 "grammar.y"
11970     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[0]).start; ListAdd((yyvsp[-2].list), (yyvsp[0].memberInit)); ;}
11971     break;
11972
11973   case 120:
11974 #line 965 "grammar.y"
11975     { ((MemberInit)(yyvsp[-2].list)->last).loc.end = (yylsp[0]).start; ListAdd((yyvsp[-2].list), (yyvsp[0].memberInit)); ;}
11976     break;
11977
11978   case 122:
11979 #line 971 "grammar.y"
11980     { (yyval.prop) = MkProperty((yyvsp[-2].list), null, (yyvsp[-1].id), null, null); (yyval.prop).loc = (yyloc); ;}
11981     break;
11982
11983   case 123:
11984 #line 974 "grammar.y"
11985     { (yyval.prop) = MkProperty((yyvsp[-3].list), (yyvsp[-2].declarator), (yyvsp[-1].id), null, null); (yyval.prop).loc = (yyloc); ;}
11986     break;
11987
11988   case 124:
11989 #line 977 "grammar.y"
11990     { (yyval.prop) = MkProperty((yyvsp[-1].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
11991     break;
11992
11993   case 125:
11994 #line 980 "grammar.y"
11995     { (yyval.prop) = MkProperty((yyvsp[-2].list), (yyvsp[-1].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
11996     break;
11997
11998   case 126:
11999 #line 983 "grammar.y"
12000     { (yyval.prop) = MkProperty(null, null, null, null, null); (yyval.prop).loc = (yyloc); ;}
12001     break;
12002
12003   case 128:
12004 #line 989 "grammar.y"
12005     { (yyvsp[-2].prop).setStmt = (yyvsp[0].stmt); ;}
12006     break;
12007
12008   case 129:
12009 #line 991 "grammar.y"
12010     { (yyvsp[-2].prop).getStmt = (yyvsp[0].stmt); ;}
12011     break;
12012
12013   case 130:
12014 #line 993 "grammar.y"
12015     { (yyvsp[-2].prop).issetStmt = (yyvsp[0].stmt); ;}
12016     break;
12017
12018   case 131:
12019 #line 995 "grammar.y"
12020     { (yyvsp[-1].prop).isWatchable = true; ;}
12021     break;
12022
12023   case 132:
12024 #line 997 "grammar.y"
12025     { (yyvsp[-2].prop).category = (yyvsp[0].string); ;}
12026     break;
12027
12028   case 133:
12029 #line 1001 "grammar.y"
12030     { (yyvsp[-1].prop).loc.end = (yylsp[0]).end; ;}
12031     break;
12032
12033   case 134:
12034 #line 1006 "grammar.y"
12035     { (yyval.prop) = MkProperty((yyvsp[-2].list), null, (yyvsp[-1].id), null, null); (yyval.prop).loc = (yyloc); ;}
12036     break;
12037
12038   case 135:
12039 #line 1009 "grammar.y"
12040     { (yyval.prop) = MkProperty((yyvsp[-3].list), (yyvsp[-2].declarator), (yyvsp[-1].id), null, null); (yyval.prop).loc = (yyloc); ;}
12041     break;
12042
12043   case 136:
12044 #line 1012 "grammar.y"
12045     { (yyval.prop) = MkProperty((yyvsp[-1].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
12046     break;
12047
12048   case 137:
12049 #line 1015 "grammar.y"
12050     { (yyval.prop) = MkProperty((yyvsp[-2].list), (yyvsp[-1].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
12051     break;
12052
12053   case 138:
12054 #line 1018 "grammar.y"
12055     { (yyval.prop) = MkProperty(null, null, null, null, null); (yyval.prop).loc = (yyloc); ;}
12056     break;
12057
12058   case 140:
12059 #line 1024 "grammar.y"
12060     { (yyvsp[-2].prop).setStmt = (yyvsp[0].stmt); ;}
12061     break;
12062
12063   case 141:
12064 #line 1026 "grammar.y"
12065     { (yyvsp[-2].prop).getStmt = (yyvsp[0].stmt); ;}
12066     break;
12067
12068   case 142:
12069 #line 1030 "grammar.y"
12070     { (yyvsp[-1].prop).loc.end = (yylsp[0]).end; ;}
12071     break;
12072
12073   case 143:
12074 #line 1035 "grammar.y"
12075     { (yyval.list) = MkListOne((yyvsp[0].id)); ;}
12076     break;
12077
12078   case 144:
12079 #line 1037 "grammar.y"
12080     { ListAdd((yyvsp[-1].list), (yyvsp[0].id)); ;}
12081     break;
12082
12083   case 145:
12084 #line 1042 "grammar.y"
12085     { (yyval.propertyWatch) = MkPropertyWatch((yyvsp[-1].list), (yyvsp[0].stmt)); ;}
12086     break;
12087
12088   case 146:
12089 #line 1044 "grammar.y"
12090     { (yyval.propertyWatch) = MkDeleteWatch((yyvsp[0].stmt)); ;}
12091     break;
12092
12093   case 147:
12094 #line 1049 "grammar.y"
12095     { (yyval.list) = MkListOne((yyvsp[0].propertyWatch)); ;}
12096     break;
12097
12098   case 148:
12099 #line 1051 "grammar.y"
12100     { ListAdd((yyvsp[-1].list), (yyvsp[0].propertyWatch)); ;}
12101     break;
12102
12103   case 149:
12104 #line 1056 "grammar.y"
12105     { (yyval.propertyWatch) = MkPropertyWatch((yyvsp[-2].list), (yyvsp[0].stmt)); ;}
12106     break;
12107
12108   case 150:
12109 #line 1061 "grammar.y"
12110     { (yyval.stmt) = MkWatchStmt(null, (yyvsp[-4].exp), (yyvsp[-1].list)); ;}
12111     break;
12112
12113   case 151:
12114 #line 1063 "grammar.y"
12115     { (yyval.stmt) = MkWatchStmt((yyvsp[-8].exp), (yyvsp[-4].exp), (yyvsp[-1].list)); ;}
12116     break;
12117
12118   case 152:
12119 #line 1068 "grammar.y"
12120     { (yyval.stmt) = MkStopWatchingStmt(null, (yyvsp[-3].exp), (yyvsp[-1].list)); ;}
12121     break;
12122
12123   case 153:
12124 #line 1070 "grammar.y"
12125     { (yyval.stmt) = MkStopWatchingStmt((yyvsp[-7].exp), (yyvsp[-3].exp), (yyvsp[-1].list)); ;}
12126     break;
12127
12128   case 154:
12129 #line 1072 "grammar.y"
12130     { (yyval.stmt) = MkStopWatchingStmt(null, (yyvsp[-1].exp), null); ;}
12131     break;
12132
12133   case 155:
12134 #line 1074 "grammar.y"
12135     { (yyval.stmt) = MkStopWatchingStmt((yyvsp[-5].exp), (yyvsp[-1].exp), null); ;}
12136     break;
12137
12138   case 156:
12139 #line 1079 "grammar.y"
12140     { (yyval.stmt) = MkFireWatchersStmt(null, null); ;}
12141     break;
12142
12143   case 157:
12144 #line 1081 "grammar.y"
12145     { (yyval.stmt) = MkFireWatchersStmt(null, (yyvsp[0].list)); ;}
12146     break;
12147
12148   case 158:
12149 #line 1083 "grammar.y"
12150     { (yyval.stmt) = MkFireWatchersStmt((yyvsp[-2].exp), null); ;}
12151     break;
12152
12153   case 159:
12154 #line 1085 "grammar.y"
12155     { (yyval.stmt) = MkFireWatchersStmt((yyvsp[-3].exp), (yyvsp[0].list)); ;}
12156     break;
12157
12158   case 160:
12159 #line 1089 "grammar.y"
12160     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[-2].list), (yyvsp[-1].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12161     break;
12162
12163   case 161:
12164 #line 1090 "grammar.y"
12165     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[-1].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12166     break;
12167
12168   case 162:
12169 #line 1091 "grammar.y"
12170     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[-1].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12171     break;
12172
12173   case 163:
12174 #line 1092 "grammar.y"
12175     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[-1].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12176     break;
12177
12178   case 164:
12179 #line 1093 "grammar.y"
12180     { (yyval.classDef) = MkClassDefFunction((yyvsp[0].classFunction)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12181     break;
12182
12183   case 165:
12184 #line 1094 "grammar.y"
12185     { (yyval.classDef) = MkClassDefProperty((yyvsp[0].prop)); (yyval.classDef).loc = (yyloc); globalContext.nextID++; (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12186     break;
12187
12188   case 166:
12189 #line 1096 "grammar.y"
12190     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[-2].list), (yyvsp[-1].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[-3].declMode); ;}
12191     break;
12192
12193   case 167:
12194 #line 1097 "grammar.y"
12195     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[-1].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[-2].declMode); ;}
12196     break;
12197
12198   case 168:
12199 #line 1098 "grammar.y"
12200     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[-1].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[-2].declMode); ;}
12201     break;
12202
12203   case 169:
12204 #line 1099 "grammar.y"
12205     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[-1].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[-2].declMode); ;}
12206     break;
12207
12208   case 170:
12209 #line 1100 "grammar.y"
12210     { (yyval.classDef) = MkClassDefFunction((yyvsp[0].classFunction)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[-1].declMode); ;}
12211     break;
12212
12213   case 171:
12214 #line 1101 "grammar.y"
12215     { (yyval.classDef) = MkClassDefProperty((yyvsp[0].prop)); (yyval.classDef).loc = (yyloc); globalContext.nextID++; (yyval.classDef).memberAccess = (yyvsp[-1].declMode); ;}
12216     break;
12217
12218   case 172:
12219 #line 1103 "grammar.y"
12220     { (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[-1].list)); if((yyvsp[-1].list)->last) ((MemberInit)(yyvsp[-1].list)->last).loc.end = (yylsp[0]).start; (yyval.classDef).loc = (yyloc); ;}
12221     break;
12222
12223   case 173:
12224 #line 1104 "grammar.y"
12225     { (yyval.classDef) = MkClassDefClassData(MkStructDeclaration((yyvsp[-2].list), (yyvsp[-1].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
12226     break;
12227
12228   case 174:
12229 #line 1105 "grammar.y"
12230     { (yyval.classDef) = MkClassDefClassProperty((yyvsp[0].prop)); (yyval.classDef).loc = (yyloc); globalContext.nextID++; ;}
12231     break;
12232
12233   case 175:
12234 #line 1106 "grammar.y"
12235     { (yyval.classDef) = MkClassDefPropertyWatch((yyvsp[-1].propertyWatch)); (yyval.classDef).loc = (yyloc); globalContext.nextID++; ;}
12236     break;
12237
12238   case 176:
12239 #line 1107 "grammar.y"
12240     { (yyval.classDef) = null; deleteWatchable = true; ;}
12241     break;
12242
12243   case 177:
12244 #line 1108 "grammar.y"
12245     { (yyval.classDef) = MkClassDefDesigner((yyvsp[-1].id).string); FreeIdentifier((yyvsp[-1].id)); ;}
12246     break;
12247
12248   case 178:
12249 #line 1109 "grammar.y"
12250     { (yyval.classDef) = MkClassDefDesigner((yyvsp[-1].specifier).name); FreeSpecifier((yyvsp[-1].specifier)); ;}
12251     break;
12252
12253   case 179:
12254 #line 1110 "grammar.y"
12255     { (yyval.classDef) = MkClassDefNoExpansion(); ;}
12256     break;
12257
12258   case 180:
12259 #line 1111 "grammar.y"
12260     { (yyval.classDef) = MkClassDefFixed(); ;}
12261     break;
12262
12263   case 181:
12264 #line 1112 "grammar.y"
12265     { (yyval.classDef) = MkClassDefDesignerDefaultProperty((yyvsp[-1].id)); ;}
12266     break;
12267
12268   case 182:
12269 #line 1113 "grammar.y"
12270     { (yyval.classDef) = MkClassDefClassPropertyValue((yyvsp[-4].id), (yyvsp[-1].initializer)); (yyval.classDef).loc = (yyloc); ;}
12271     break;
12272
12273   case 183:
12274 #line 1115 "grammar.y"
12275     { (yyval.classDef) = null; ;}
12276     break;
12277
12278   case 184:
12279 #line 1116 "grammar.y"
12280     { memberAccessStack[defaultMemberAccess] = (yyvsp[-1].declMode); if(defaultMemberAccess == 0) { (yyval.classDef) = MkClassDefMemberAccess(); (yyval.classDef).memberAccess = (yyvsp[-1].declMode); (yyval.classDef).loc = (yyloc); } else (yyval.classDef) = null; ;}
12281     break;
12282
12283   case 185:
12284 #line 1118 "grammar.y"
12285     { (yyval.classDef) = MkClassDefAccessOverride((yyvsp[-3].declMode), (yyvsp[-1].id)); (yyval.classDef).loc = (yyloc); ;}
12286     break;
12287
12288   case 186:
12289 #line 1122 "grammar.y"
12290     { (yyval.classDef) = MkClassDefFunction((yyvsp[0].classFunction)); (yyval.classDef).loc = (yyvsp[0].classFunction).loc;  (yyval.classDef).loc.end.charPos++; (yyval.classDef).loc.end.pos++; (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12291     break;
12292
12293   case 187:
12294 #line 1123 "grammar.y"
12295     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[-1].instance))); (yyval.classDef).loc = (yyvsp[-1].instance).loc; (yyval.classDef).decl.loc = (yyval.classDef).loc;  (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12296     break;
12297
12298   case 188:
12299 #line 1124 "grammar.y"
12300     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[-1].instance))); (yyval.classDef).loc = (yyvsp[-1].instance).loc; (yyval.classDef).decl.loc = (yyval.classDef).loc;  (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12301     break;
12302
12303   case 189:
12304 #line 1125 "grammar.y"
12305     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[0].instance))); (yyval.classDef).loc = (yyvsp[0].instance).loc; (yyval.classDef).decl.loc = (yyval.classDef).loc;  (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12306     break;
12307
12308   case 190:
12309 #line 1126 "grammar.y"
12310     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[0].instance))); (yyval.classDef).loc = (yyvsp[0].instance).loc; (yyval.classDef).decl.loc = (yyval.classDef).loc;  (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
12311     break;
12312
12313   case 191:
12314 #line 1128 "grammar.y"
12315     { (yyval.classDef) = MkClassDefFunction((yyvsp[0].classFunction)); (yyval.classDef).loc = (yyloc);  (yyval.classDef).loc.end.charPos++; (yyval.classDef).loc.end.pos++; (yyval.classDef).memberAccess = (yyvsp[-1].declMode); ;}
12316     break;
12317
12318   case 192:
12319 #line 1129 "grammar.y"
12320     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[-1].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = (yyvsp[-2].declMode); ;}
12321     break;
12322
12323   case 193:
12324 #line 1130 "grammar.y"
12325     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[-1].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = (yyvsp[-2].declMode); ;}
12326     break;
12327
12328   case 194:
12329 #line 1131 "grammar.y"
12330     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[0].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = (yyvsp[-1].declMode); ;}
12331     break;
12332
12333   case 195:
12334 #line 1132 "grammar.y"
12335     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[0].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = (yyvsp[-1].declMode); ;}
12336     break;
12337
12338   case 196:
12339 #line 1134 "grammar.y"
12340     { (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[0].list)); (yyval.classDef).loc = (yyloc);  (yyval.classDef).loc.end.charPos++; (yyval.classDef).loc.end.pos++; ;}
12341     break;
12342
12343   case 197:
12344 #line 1138 "grammar.y"
12345     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].classDef)); ;}
12346     break;
12347
12348   case 198:
12349 #line 1139 "grammar.y"
12350     { ListAdd((yyvsp[-1].list), (yyvsp[0].classDef)); ;}
12351     break;
12352
12353   case 199:
12354 #line 1140 "grammar.y"
12355     { ListAdd((yyvsp[-1].list), (yyvsp[0].classDef)); ;}
12356     break;
12357
12358   case 200:
12359 #line 1144 "grammar.y"
12360     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].classDef)); ;}
12361     break;
12362
12363   case 203:
12364 #line 1147 "grammar.y"
12365     { ListAdd((yyval.list), (yyvsp[0].classDef)); ;}
12366     break;
12367
12368   case 204:
12369 #line 1148 "grammar.y"
12370     { ListAdd((yyval.list), (yyvsp[0].classDef)); ;}
12371     break;
12372
12373   case 205:
12374 #line 1152 "grammar.y"
12375     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[0].list), null); ;}
12376     break;
12377
12378   case 206:
12379 #line 1153 "grammar.y"
12380     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[-1].list), (yyvsp[0].declarator)); ;}
12381     break;
12382
12383   case 207:
12384 #line 1154 "grammar.y"
12385     { (yyval.templateDatatype) = MkTemplateDatatype(MkListOne(MkSpecifierName((yyvsp[0].id).string)), null); FreeIdentifier((yyvsp[0].id)); ;}
12386     break;
12387
12388   case 208:
12389 #line 1158 "grammar.y"
12390     { (yyval.templateArgument) = MkTemplateTypeArgument((yyvsp[0].templateDatatype)); ;}
12391     break;
12392
12393   case 209:
12394 #line 1162 "grammar.y"
12395     { (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[0].id), null, null); ;}
12396     break;
12397
12398   case 210:
12399 #line 1163 "grammar.y"
12400     { (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[-2].id), null, (yyvsp[0].templateArgument)); ;}
12401     break;
12402
12403   case 211:
12404 #line 1164 "grammar.y"
12405     { (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[-2].id), (yyvsp[0].templateDatatype), null); ;}
12406     break;
12407
12408   case 212:
12409 #line 1165 "grammar.y"
12410     { (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[-4].id), (yyvsp[-2].templateDatatype), (yyvsp[0].templateArgument)); ;}
12411     break;
12412
12413   case 213:
12414 #line 1166 "grammar.y"
12415     { (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[0].string)), null, null); delete (yyvsp[0].string); ;}
12416     break;
12417
12418   case 214:
12419 #line 1167 "grammar.y"
12420     { (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[-2].string)), null, (yyvsp[0].templateArgument)); ;}
12421     break;
12422
12423   case 215:
12424 #line 1168 "grammar.y"
12425     { (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[-2].string)), (yyvsp[0].templateDatatype), null); ;}
12426     break;
12427
12428   case 216:
12429 #line 1169 "grammar.y"
12430     { (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[-4].string)), (yyvsp[-2].templateDatatype), (yyvsp[0].templateArgument)); ;}
12431     break;
12432
12433   case 217:
12434 #line 1173 "grammar.y"
12435     { (yyval.templateArgument) = MkTemplateIdentifierArgument((yyvsp[0].id)); ;}
12436     break;
12437
12438   case 218:
12439 #line 1177 "grammar.y"
12440     { (yyval.templateParameter) = MkIdentifierTemplateParameter((yyvsp[0].id), dataMember, null); ;}
12441     break;
12442
12443   case 219:
12444 #line 1178 "grammar.y"
12445     { (yyval.templateParameter) = MkIdentifierTemplateParameter((yyvsp[-2].id), dataMember, (yyvsp[0].templateArgument)); ;}
12446     break;
12447
12448   case 220:
12449 #line 1182 "grammar.y"
12450     { (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[0].exp)); ;}
12451     break;
12452
12453   case 221:
12454 #line 1186 "grammar.y"
12455     { (yyval.templateParameter) = MkExpressionTemplateParameter((yyvsp[0].id), (yyvsp[-1].templateDatatype), null); ;}
12456     break;
12457
12458   case 222:
12459 #line 1187 "grammar.y"
12460     { (yyval.templateParameter) = MkExpressionTemplateParameter((yyvsp[-2].id), (yyvsp[-3].templateDatatype), (yyvsp[0].templateArgument)); ;}
12461     break;
12462
12463   case 226:
12464 #line 1197 "grammar.y"
12465     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].templateParameter)); ;}
12466     break;
12467
12468   case 227:
12469 #line 1198 "grammar.y"
12470     { ListAdd((yyvsp[-2].list), (yyvsp[0].templateParameter)); ;}
12471     break;
12472
12473   case 231:
12474 #line 1205 "grammar.y"
12475     { (yyval.templateArgument) = (yyvsp[0].templateArgument); (yyval.templateArgument).name = (yyvsp[-2].id); (yyval.templateArgument).loc = (yyloc); ;}
12476     break;
12477
12478   case 232:
12479 #line 1206 "grammar.y"
12480     { (yyval.templateArgument) = (yyvsp[0].templateArgument); (yyval.templateArgument).name = (yyvsp[-2].id); (yyval.templateArgument).loc = (yyloc); ;}
12481     break;
12482
12483   case 233:
12484 #line 1207 "grammar.y"
12485     { (yyval.templateArgument) = (yyvsp[0].templateArgument); (yyval.templateArgument).name = (yyvsp[-2].id); (yyval.templateArgument).loc = (yyloc); ;}
12486     break;
12487
12488   case 234:
12489 #line 1209 "grammar.y"
12490     {
12491       (yyval.templateArgument) = (yyvsp[0].templateArgument); 
12492       if((yyvsp[-2].templateDatatype).specifiers && (yyvsp[-2].templateDatatype).specifiers->first)
12493       {
12494          Specifier spec = (yyvsp[-2].templateDatatype).specifiers->first;
12495          if(spec.type == nameSpecifier)
12496             (yyval.templateArgument).name = MkIdentifier(spec.name);
12497       }
12498       FreeTemplateDataType((yyvsp[-2].templateDatatype));
12499       (yyval.templateArgument).loc = (yyloc);
12500    ;}
12501     break;
12502
12503   case 235:
12504 #line 1221 "grammar.y"
12505     {
12506       (yyval.templateArgument) = (yyvsp[0].templateArgument); 
12507       if((yyvsp[-2].templateDatatype).specifiers && (yyvsp[-2].templateDatatype).specifiers->first)
12508       {
12509          Specifier spec = (yyvsp[-2].templateDatatype).specifiers->first;
12510          if(spec.type == nameSpecifier)
12511             (yyval.templateArgument).name = MkIdentifier(spec.name);
12512       }
12513       FreeTemplateDataType((yyvsp[-2].templateDatatype));
12514       (yyval.templateArgument).loc = (yyloc);
12515    ;}
12516     break;
12517
12518   case 236:
12519 #line 1233 "grammar.y"
12520     {
12521       (yyval.templateArgument) = (yyvsp[0].templateArgument); 
12522       if((yyvsp[-2].templateDatatype).specifiers && (yyvsp[-2].templateDatatype).specifiers->first)
12523       {
12524          Specifier spec = (yyvsp[-2].templateDatatype).specifiers->first;
12525          if(spec.type == nameSpecifier)
12526             (yyval.templateArgument).name = MkIdentifier(spec.name);
12527       }
12528       FreeTemplateDataType((yyvsp[-2].templateDatatype));
12529       (yyval.templateArgument).loc = (yyloc);
12530    ;}
12531     break;
12532
12533   case 237:
12534 #line 1247 "grammar.y"
12535     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].templateArgument)); ;}
12536     break;
12537
12538   case 238:
12539 #line 1248 "grammar.y"
12540     { ListAdd((yyvsp[-2].list), (yyvsp[0].templateArgument)); ;}
12541     break;
12542
12543   case 239:
12544 #line 1253 "grammar.y"
12545     {
12546       PushContext();
12547    ;}
12548     break;
12549
12550   case 240:
12551 #line 1258 "grammar.y"
12552     { (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[0].id).string); FreeIdentifier((yyvsp[0].id)); (yyval.symbol).nameLoc = (yylsp[0]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
12553     break;
12554
12555   case 241:
12556 #line 1260 "grammar.y"
12557     { 
12558       (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[0].specifier).name); 
12559       (yyval.symbol).nameLoc = (yylsp[0]); 
12560       FreeSpecifier((yyvsp[0].specifier)); 
12561       ++defaultMemberAccess;
12562       memberAccessStack[defaultMemberAccess] = privateAccess;
12563    ;}
12564     break;
12565
12566   case 242:
12567 #line 1267 "grammar.y"
12568     { (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[0].id).string); FreeIdentifier((yyvsp[-2].id)); FreeIdentifier((yyvsp[0].id)); (yyval.symbol).nameLoc = (yylsp[0]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
12569     break;
12570
12571   case 243:
12572 #line 1268 "grammar.y"
12573     { (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[0].specifier).name); FreeIdentifier((yyvsp[-2].id)); (yyval.symbol).nameLoc = (yylsp[0]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[0].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
12574     break;
12575
12576   case 244:
12577 #line 1270 "grammar.y"
12578     { (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[-3].id).string); (yyval.symbol).templateParams = (yyvsp[-1].list); FreeIdentifier((yyvsp[-3].id)); (yyval.symbol).nameLoc = (yylsp[-3]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
12579     break;
12580
12581   case 245:
12582 #line 1272 "grammar.y"
12583     { 
12584       (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[-3].specifier).name);
12585       (yyval.symbol).templateParams = (yyvsp[-1].list); 
12586       (yyval.symbol).nameLoc = (yylsp[-3]); 
12587       FreeSpecifier((yyvsp[-3].specifier)); 
12588       ++defaultMemberAccess;
12589       memberAccessStack[defaultMemberAccess] = privateAccess;
12590    ;}
12591     break;
12592
12593   case 246:
12594 #line 1280 "grammar.y"
12595     { (yyval.symbol) = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[-3].id).string); (yyval.symbol).templateParams = (yyvsp[-1].list); FreeIdentifier((yyvsp[-5].id)); FreeIdentifier((yyvsp[-3].id)); (yyval.symbol).nameLoc = (yylsp[-3]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
12596     break;
12597
12598   case 247:
12599 #line 1281 "grammar.y"
12600     { (yyval.symbol) = DeclClass(globalContext.nextID++, (yyvsp[-3].specifier).name); (yyval.symbol).templateParams = (yyvsp[-1].list); FreeIdentifier((yyvsp[-5].id)); (yyval.symbol).nameLoc = (yylsp[-3]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[-3].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
12601     break;
12602
12603   case 248:
12604 #line 1286 "grammar.y"
12605     {
12606          (yyval._class).loc = (yyloc);
12607       ;}
12608     break;
12609
12610   case 249:
12611 #line 1292 "grammar.y"
12612     {
12613          (yyval._class) = (yyvsp[-1]._class); (yyval._class).definitions = MkList(); (yyval._class).blockStart = (yylsp[0]);  (yyval._class).loc = (yyloc); (yyval._class).endid = globalContext.nextID++;
12614          POP_DEFAULT_ACCESS
12615          PopContext(curContext);
12616       ;}
12617     break;
12618
12619   case 250:
12620 #line 1299 "grammar.y"
12621     {
12622          (yyval._class) = MkClass((yyvsp[-2].symbol), null, MkList()); (yyval._class).blockStart = (yylsp[-1]);  (yyval._class).loc = (yyloc); (yyval._class).endid = globalContext.nextID++;
12623          POP_DEFAULT_ACCESS
12624          PopContext(curContext);
12625       ;}
12626     break;
12627
12628   case 251:
12629 #line 1305 "grammar.y"
12630     {
12631          (yyval._class) = (yyvsp[-2]._class); (yyval._class).definitions = MkList(); (yyval._class).blockStart = (yylsp[-1]);  (yyval._class).loc = (yyloc); (yyval._class).endid = globalContext.nextID++;
12632          POP_DEFAULT_ACCESS
12633          PopContext(curContext);
12634       ;}
12635     break;
12636
12637   case 252:
12638 #line 1312 "grammar.y"
12639     {
12640          (yyval._class) = MkClass(DeclClassAddNameSpace(0, (yyvsp[-1].id).string), null, null); FreeIdentifier((yyvsp[-1].id));
12641          POP_DEFAULT_ACCESS
12642          PopContext(curContext);
12643       ;}
12644     break;
12645
12646   case 253:
12647 #line 1318 "grammar.y"
12648     {
12649          (yyval._class) = MkClass(DeclClass(0, (yyvsp[-1].specifier).name), null, null); FreeSpecifier((yyvsp[-1].specifier));
12650          POP_DEFAULT_ACCESS
12651          PopContext(curContext);
12652       ;}
12653     break;
12654
12655   case 254:
12656 #line 1327 "grammar.y"
12657     {
12658          (yyval._class) = MkClass((yyvsp[-2].symbol), (yyvsp[0].list), null);
12659       ;}
12660     break;
12661
12662   case 255:
12663 #line 1334 "grammar.y"
12664     {
12665          (yyval._class) = MkClass((yyvsp[-2].symbol), null, (yyvsp[0].list)); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[-1]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++; (yyval._class).endid = globalContext.nextID++;
12666          POP_DEFAULT_ACCESS
12667          PopContext(curContext);
12668       ;}
12669     break;
12670
12671   case 256:
12672 #line 1340 "grammar.y"
12673     {
12674          (yyval._class) = (yyvsp[-2]._class); (yyval._class).definitions = (yyvsp[0].list); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[-1]);  (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++; (yyval._class).endid = globalContext.nextID++;
12675          POP_DEFAULT_ACCESS
12676          PopContext(curContext);
12677       ;}
12678     break;
12679
12680   case 257:
12681 #line 1346 "grammar.y"
12682     {
12683          (yyval._class) = MkClass((yyvsp[-2].symbol), null, (yyvsp[0].list)); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[-1]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++; (yyval._class).endid = globalContext.nextID++;
12684          POP_DEFAULT_ACCESS
12685          PopContext(curContext);
12686       ;}
12687     break;
12688
12689   case 258:
12690 #line 1352 "grammar.y"
12691     {
12692          (yyval._class) = (yyvsp[-2]._class); (yyval._class).definitions = (yyvsp[0].list); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[-1]);  (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++; (yyval._class).endid = globalContext.nextID++;
12693          POP_DEFAULT_ACCESS
12694          PopContext(curContext);
12695       ;}
12696     break;
12697
12698   case 259:
12699 #line 1358 "grammar.y"
12700     {
12701          (yyval._class) = MkClass((yyvsp[-2].symbol), null, MkList()); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[-1]);  (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++; (yyval._class).endid = globalContext.nextID++;
12702          POP_DEFAULT_ACCESS
12703          PopContext(curContext);
12704       ;}
12705     break;
12706
12707   case 260:
12708 #line 1364 "grammar.y"
12709     {
12710          (yyval._class) = (yyvsp[-2]._class); (yyval._class).definitions = MkList(); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[-1]);  (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++; (yyval._class).endid = globalContext.nextID++;
12711          POP_DEFAULT_ACCESS
12712          PopContext(curContext);
12713       ;}
12714     break;
12715
12716   case 261:
12717 #line 1375 "grammar.y"
12718     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[0]); ;}
12719     break;
12720
12721   case 263:
12722 #line 1381 "grammar.y"
12723     { (yyval.exp) = MkExpBrackets((yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
12724     break;
12725
12726   case 264:
12727 #line 1385 "grammar.y"
12728     { (yyval.exp) = MkExpIdentifier((yyvsp[0].id)); (yyval.exp).loc = (yyloc); ;}
12729     break;
12730
12731   case 265:
12732 #line 1386 "grammar.y"
12733     { (yyval.exp) = MkExpInstance((yyvsp[0].instance)); (yyval.exp).loc = (yyloc); ;}
12734     break;
12735
12736   case 266:
12737 #line 1387 "grammar.y"
12738     { (yyval.exp) = MkExpExtensionCompound((yyvsp[-1].stmt)); (yyval.exp).loc = (yyloc); ;}
12739     break;
12740
12741   case 267:
12742 #line 1388 "grammar.y"
12743     { (yyval.exp) = MkExpExtensionExpression((yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
12744     break;
12745
12746   case 268:
12747 #line 1389 "grammar.y"
12748     { (yyval.exp) = MkExpExtensionInitializer((yyvsp[-2].typeName), (yyvsp[0].initializer)); (yyval.exp).loc = (yyloc); ;}
12749     break;
12750
12751   case 269:
12752 #line 1390 "grammar.y"
12753     { (yyval.exp) = MkExpExtensionInitializer((yyvsp[-5].typeName), MkInitializerAssignment(MkExpExtensionInitializer((yyvsp[-2].typeName), (yyvsp[0].initializer)))); (yyval.exp).loc = (yyloc); ;}
12754     break;
12755
12756   case 270:
12757 #line 1391 "grammar.y"
12758     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
12759     break;
12760
12761   case 271:
12762 #line 1392 "grammar.y"
12763     { (yyval.exp) = MkExpString((yyvsp[0].string)); delete (yyvsp[0].string); (yyval.exp).loc = (yyloc); ;}
12764     break;
12765
12766   case 272:
12767 #line 1393 "grammar.y"
12768     { (yyval.exp) = MkExpIntlString((yyvsp[0].string), null); delete (yyvsp[0].string); (yyval.exp).loc = (yyloc); ;}
12769     break;
12770
12771   case 273:
12772 #line 1394 "grammar.y"
12773     { (yyval.exp) = MkExpIntlString((yyvsp[0].string), (yyvsp[-2].string)); delete (yyvsp[-2].string); delete (yyvsp[0].string); (yyval.exp).loc = (yyloc); ;}
12774     break;
12775
12776   case 274:
12777 #line 1395 "grammar.y"
12778     { Expression exp = MkExpDummy(); exp.loc.start = (yylsp[-1]).end; exp.loc.end = (yylsp[0]).start; (yyval.exp) = MkExpBrackets(MkListOne(exp)); (yyval.exp).loc = (yyloc); yyerror(); ;}
12779     break;
12780
12781   case 275:
12782 #line 1396 "grammar.y"
12783     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[-4].list),(yyvsp[-3].declarator)), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12784     break;
12785
12786   case 276:
12787 #line 1397 "grammar.y"
12788     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[-4].list),(yyvsp[-3].declarator)), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12789     break;
12790
12791   case 277:
12792 #line 1398 "grammar.y"
12793     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[-3].list),null), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12794     break;
12795
12796   case 278:
12797 #line 1399 "grammar.y"
12798     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[-3].list),null), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12799     break;
12800
12801   case 279:
12802 #line 1400 "grammar.y"
12803     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[-4].list),(yyvsp[-3].declarator)), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12804     break;
12805
12806   case 280:
12807 #line 1401 "grammar.y"
12808     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[-4].list),(yyvsp[-3].declarator)), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12809     break;
12810
12811   case 281:
12812 #line 1402 "grammar.y"
12813     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[-3].list),null), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12814     break;
12815
12816   case 282:
12817 #line 1403 "grammar.y"
12818     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[-3].list),null), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12819     break;
12820
12821   case 283:
12822 #line 1404 "grammar.y"
12823     { (yyval.exp) = MkExpRenew((yyvsp[-5].exp), MkTypeName((yyvsp[-4].list),(yyvsp[-3].declarator)), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12824     break;
12825
12826   case 284:
12827 #line 1405 "grammar.y"
12828     { (yyval.exp) = MkExpRenew((yyvsp[-5].exp), MkTypeName((yyvsp[-4].list),(yyvsp[-3].declarator)), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12829     break;
12830
12831   case 285:
12832 #line 1406 "grammar.y"
12833     { (yyval.exp) = MkExpRenew((yyvsp[-4].exp), MkTypeName((yyvsp[-3].list),null), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12834     break;
12835
12836   case 286:
12837 #line 1407 "grammar.y"
12838     { (yyval.exp) = MkExpRenew((yyvsp[-4].exp), MkTypeName((yyvsp[-3].list),null), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12839     break;
12840
12841   case 287:
12842 #line 1408 "grammar.y"
12843     { (yyval.exp) = MkExpRenew0((yyvsp[-5].exp), MkTypeName((yyvsp[-4].list),(yyvsp[-3].declarator)), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12844     break;
12845
12846   case 288:
12847 #line 1409 "grammar.y"
12848     { (yyval.exp) = MkExpRenew0((yyvsp[-5].exp), MkTypeName((yyvsp[-4].list),(yyvsp[-3].declarator)), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12849     break;
12850
12851   case 289:
12852 #line 1410 "grammar.y"
12853     { (yyval.exp) = MkExpRenew0((yyvsp[-4].exp), MkTypeName((yyvsp[-3].list),null), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12854     break;
12855
12856   case 290:
12857 #line 1411 "grammar.y"
12858     { (yyval.exp) = MkExpRenew0((yyvsp[-4].exp), MkTypeName((yyvsp[-3].list),null), (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
12859     break;
12860
12861   case 291:
12862 #line 1412 "grammar.y"
12863     { (yyval.exp) = MkExpClass((yyvsp[-1].list), null); (yyval.exp).loc = (yyloc); ;}
12864     break;
12865
12866   case 292:
12867 #line 1413 "grammar.y"
12868     { (yyval.exp) = MkExpClass((yyvsp[-2].list), (yyvsp[-1].declarator)); (yyval.exp).loc = (yyloc); ;}
12869     break;
12870
12871   case 293:
12872 #line 1414 "grammar.y"
12873     { (yyval.exp) = MkExpClass(MkListOne(MkSpecifierName((yyvsp[-1].id).string)), null); FreeIdentifier((yyvsp[-1].id)); (yyval.exp).loc = (yyloc); ;}
12874     break;
12875
12876   case 294:
12877 #line 1415 "grammar.y"
12878     { (yyval.exp) = MkExpVaArg((yyvsp[-3].exp), (yyvsp[-1].typeName)); (yyval.exp).loc = (yyloc); ;}
12879     break;
12880
12881   case 295:
12882 #line 1417 "grammar.y"
12883     { (yyval.exp) = MkExpClassData((yyvsp[-1].id)); (yyval.exp).loc = (yyloc); ;}
12884     break;
12885
12886   case 300:
12887 #line 1423 "grammar.y"
12888     { (yyval.exp) = MkExpArray((yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
12889     break;
12890
12891   case 301:
12892 #line 1427 "grammar.y"
12893     { (yyval.exp) = MkExpInstance((yyvsp[0].instance)); (yyval.exp).loc = (yyloc); ;}
12894     break;
12895
12896   case 302:
12897 #line 1431 "grammar.y"
12898     { (yyval.exp) = MkExpInstance((yyvsp[-1].instance)); (yyval.exp).loc = (yyloc); ;}
12899     break;
12900
12901   case 303:
12902 #line 1435 "grammar.y"
12903     { (yyval.exp) = MkExpBrackets((yyvsp[0].list)); (yyval.exp).loc = (yyloc); ;}
12904     break;
12905
12906   case 304:
12907 #line 1436 "grammar.y"
12908     { (yyval.exp) = MkExpBrackets((yyvsp[0].list)); (yyval.exp).loc = (yyloc); ;}
12909     break;
12910
12911   case 306:
12912 #line 1442 "grammar.y"
12913     { (yyval.exp) = MkExpIndex((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
12914     break;
12915
12916   case 307:
12917 #line 1443 "grammar.y"
12918     { (yyval.exp) = MkExpIndex((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
12919     break;
12920
12921   case 308:
12922 #line 1444 "grammar.y"
12923     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); ;}
12924     break;
12925
12926   case 309:
12927 #line 1445 "grammar.y"
12928     { (yyval.exp) = MkExpCall((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).call.argLoc.start = (yylsp[-2]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); ;}
12929     break;
12930
12931   case 310:
12932 #line 1446 "grammar.y"
12933     { (yyval.exp) = MkExpCall((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).call.argLoc.start = (yylsp[-2]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); if((yyvsp[-1].list)->last) ((Expression)(yyvsp[-1].list)->last).loc.end = (yylsp[0]).start; ;}
12934     break;
12935
12936   case 311:
12937 #line 1447 "grammar.y"
12938     { (yyval.exp) = MkExpMember((yyvsp[-2].exp), (yyvsp[0].id)); (yyval.exp).loc = (yyloc); ;}
12939     break;
12940
12941   case 312:
12942 #line 1448 "grammar.y"
12943     { (yyval.exp) = MkExpPointer((yyvsp[-2].exp), (yyvsp[0].id)); (yyval.exp).loc = (yyloc); ;}
12944     break;
12945
12946   case 313:
12947 #line 1449 "grammar.y"
12948     { (yyval.exp) = MkExpOp((yyvsp[-1].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
12949     break;
12950
12951   case 314:
12952 #line 1450 "grammar.y"
12953     { (yyval.exp) = MkExpOp((yyvsp[-1].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
12954     break;
12955
12956   case 315:
12957 #line 1452 "grammar.y"
12958     { (yyval.exp) = MkExpIndex((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
12959     break;
12960
12961   case 316:
12962 #line 1453 "grammar.y"
12963     { (yyval.exp) = MkExpIndex((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
12964     break;
12965
12966   case 317:
12967 #line 1454 "grammar.y"
12968     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); ;}
12969     break;
12970
12971   case 318:
12972 #line 1455 "grammar.y"
12973     { (yyval.exp) = MkExpCall((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).call.argLoc.start = (yylsp[-2]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end;(yyval.exp).loc = (yyloc); ;}
12974     break;
12975
12976   case 319:
12977 #line 1456 "grammar.y"
12978     { (yyval.exp) = MkExpMember((yyvsp[-2].exp), (yyvsp[0].id)); (yyval.exp).loc = (yyloc); ;}
12979     break;
12980
12981   case 320:
12982 #line 1457 "grammar.y"
12983     { (yyval.exp) = MkExpPointer((yyvsp[-2].exp), (yyvsp[0].id)); (yyval.exp).loc = (yyloc); ;}
12984     break;
12985
12986   case 321:
12987 #line 1458 "grammar.y"
12988     { (yyval.exp) = MkExpOp((yyvsp[-1].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
12989     break;
12990
12991   case 322:
12992 #line 1459 "grammar.y"
12993     { (yyval.exp) = MkExpOp((yyvsp[-1].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
12994     break;
12995
12996   case 324:
12997 #line 1465 "grammar.y"
12998     { (yyval.exp) = MkExpIndex((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
12999     break;
13000
13001   case 325:
13002 #line 1466 "grammar.y"
13003     { (yyval.exp) = MkExpIndex((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
13004     break;
13005
13006   case 326:
13007 #line 1467 "grammar.y"
13008     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); ;}
13009     break;
13010
13011   case 327:
13012 #line 1468 "grammar.y"
13013     { (yyval.exp) = MkExpCall((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).call.argLoc.start = (yylsp[-2]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); ;}
13014     break;
13015
13016   case 328:
13017 #line 1469 "grammar.y"
13018     { (yyval.exp) = MkExpCall((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).call.argLoc.start = (yylsp[-2]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); if((yyvsp[-1].list)->last) ((Expression)(yyvsp[-1].list)->last).loc.end = (yylsp[0]).start; ;}
13019     break;
13020
13021   case 329:
13022 #line 1470 "grammar.y"
13023     { (yyval.exp) = MkExpMember((yyvsp[-2].exp), (yyvsp[0].id)); (yyval.exp).loc = (yyloc); ;}
13024     break;
13025
13026   case 330:
13027 #line 1471 "grammar.y"
13028     { (yyval.exp) = MkExpPointer((yyvsp[-2].exp), (yyvsp[0].id)); (yyval.exp).loc = (yyloc); ;}
13029     break;
13030
13031   case 331:
13032 #line 1472 "grammar.y"
13033     { (yyval.exp) = MkExpOp((yyvsp[-1].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
13034     break;
13035
13036   case 332:
13037 #line 1473 "grammar.y"
13038     { (yyval.exp) = MkExpOp((yyvsp[-1].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
13039     break;
13040
13041   case 333:
13042 #line 1475 "grammar.y"
13043     { (yyval.exp) = MkExpIndex((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
13044     break;
13045
13046   case 334:
13047 #line 1476 "grammar.y"
13048     { (yyval.exp) = MkExpIndex((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).loc = (yyloc); ;}
13049     break;
13050
13051   case 335:
13052 #line 1477 "grammar.y"
13053     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); ;}
13054     break;
13055
13056   case 336:
13057 #line 1478 "grammar.y"
13058     { (yyval.exp) = MkExpCall((yyvsp[-3].exp), (yyvsp[-1].list)); (yyval.exp).call.argLoc.start = (yylsp[-2]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end;(yyval.exp).loc = (yyloc); ;}
13059     break;
13060
13061   case 337:
13062 #line 1479 "grammar.y"
13063     { (yyval.exp) = MkExpMember((yyvsp[-2].exp), (yyvsp[0].id)); (yyval.exp).loc = (yyloc); ;}
13064     break;
13065
13066   case 338:
13067 #line 1480 "grammar.y"
13068     { (yyval.exp) = MkExpPointer((yyvsp[-2].exp), (yyvsp[0].id)); (yyval.exp).loc = (yyloc); ;}
13069     break;
13070
13071   case 339:
13072 #line 1481 "grammar.y"
13073     { (yyval.exp) = MkExpOp((yyvsp[-1].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
13074     break;
13075
13076   case 340:
13077 #line 1482 "grammar.y"
13078     { (yyval.exp) = MkExpOp((yyvsp[-1].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
13079     break;
13080
13081   case 341:
13082 #line 1486 "grammar.y"
13083     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].exp)); ;}
13084     break;
13085
13086   case 342:
13087 #line 1487 "grammar.y"
13088     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].exp)); ;}
13089     break;
13090
13091   case 343:
13092 #line 1488 "grammar.y"
13093     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp));  ;}
13094     break;
13095
13096   case 344:
13097 #line 1489 "grammar.y"
13098     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp));  ;}
13099     break;
13100
13101   case 345:
13102 #line 1493 "grammar.y"
13103     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].exp)); ;}
13104     break;
13105
13106   case 346:
13107 #line 1494 "grammar.y"
13108     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].exp)); ;}
13109     break;
13110
13111   case 347:
13112 #line 1495 "grammar.y"
13113     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp));  ;}
13114     break;
13115
13116   case 348:
13117 #line 1496 "grammar.y"
13118     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp));  ;}
13119     break;
13120
13121   case 349:
13122 #line 1497 "grammar.y"
13123     { Expression exp = MkExpDummy(); exp.loc.start = (yylsp[0]).end; exp.loc.end = (yylsp[0]).end; ListAdd((yyvsp[-1].list), exp); ;}
13124     break;
13125
13126   case 350:
13127 #line 1501 "grammar.y"
13128     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13129     break;
13130
13131   case 351:
13132 #line 1502 "grammar.y"
13133     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13134     break;
13135
13136   case 352:
13137 #line 1503 "grammar.y"
13138     { (yyval.exp) = MkExpOp(null, (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13139     break;
13140
13141   case 353:
13142 #line 1504 "grammar.y"
13143     { (yyval.exp) = MkExpOp(null, (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13144     break;
13145
13146   case 354:
13147 #line 1505 "grammar.y"
13148     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[-1].exp)); (yyval.exp).loc = (yyloc); ;}
13149     break;
13150
13151   case 355:
13152 #line 1506 "grammar.y"
13153     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13154     break;
13155
13156   case 356:
13157 #line 1507 "grammar.y"
13158     { (yyval.exp) = MkExpTypeSize((yyvsp[-1].typeName)); (yyval.exp).loc = (yyloc); ;}
13159     break;
13160
13161   case 357:
13162 #line 1508 "grammar.y"
13163     { (yyval.exp) = MkExpClassSize((yyvsp[-1].specifier)); (yyval.exp).loc = (yyloc); ;}
13164     break;
13165
13166   case 358:
13167 #line 1509 "grammar.y"
13168     { (yyval.exp) = MkExpClassSize((yyvsp[-1].specifier)); (yyval.exp).loc = (yyloc); ;}
13169     break;
13170
13171   case 363:
13172 #line 1523 "grammar.y"
13173     { (yyval.i) = '&'; ;}
13174     break;
13175
13176   case 364:
13177 #line 1524 "grammar.y"
13178     { (yyval.i) = '*'; ;}
13179     break;
13180
13181   case 365:
13182 #line 1525 "grammar.y"
13183     { (yyval.i) = '+'; ;}
13184     break;
13185
13186   case 366:
13187 #line 1526 "grammar.y"
13188     { (yyval.i) = '-'; ;}
13189     break;
13190
13191   case 367:
13192 #line 1527 "grammar.y"
13193     { (yyval.i) = '~'; ;}
13194     break;
13195
13196   case 368:
13197 #line 1528 "grammar.y"
13198     { (yyval.i) = '!'; ;}
13199     break;
13200
13201   case 369:
13202 #line 1529 "grammar.y"
13203     { (yyval.i) = DELETE; ;}
13204     break;
13205
13206   case 370:
13207 #line 1530 "grammar.y"
13208     { (yyval.i) = _INCREF; ;}
13209     break;
13210
13211   case 372:
13212 #line 1535 "grammar.y"
13213     { (yyval.exp) = MkExpCast((yyvsp[-2].typeName), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13214     break;
13215
13216   case 374:
13217 #line 1540 "grammar.y"
13218     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '*', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13219     break;
13220
13221   case 375:
13222 #line 1541 "grammar.y"
13223     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '/', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13224     break;
13225
13226   case 376:
13227 #line 1542 "grammar.y"
13228     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '%', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13229     break;
13230
13231   case 377:
13232 #line 1543 "grammar.y"
13233     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '*', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13234     break;
13235
13236   case 378:
13237 #line 1544 "grammar.y"
13238     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '/', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13239     break;
13240
13241   case 379:
13242 #line 1545 "grammar.y"
13243     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '%', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13244     break;
13245
13246   case 381:
13247 #line 1550 "grammar.y"
13248     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '+', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13249     break;
13250
13251   case 382:
13252 #line 1551 "grammar.y"
13253     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '-', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13254     break;
13255
13256   case 383:
13257 #line 1552 "grammar.y"
13258     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '+', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13259     break;
13260
13261   case 384:
13262 #line 1553 "grammar.y"
13263     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '-', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13264     break;
13265
13266   case 386:
13267 #line 1558 "grammar.y"
13268     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), LEFT_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13269     break;
13270
13271   case 387:
13272 #line 1559 "grammar.y"
13273     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), RIGHT_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13274     break;
13275
13276   case 388:
13277 #line 1560 "grammar.y"
13278     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), LEFT_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13279     break;
13280
13281   case 389:
13282 #line 1561 "grammar.y"
13283     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), RIGHT_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13284     break;
13285
13286   case 390:
13287 #line 1566 "grammar.y"
13288     {
13289       (yyval.exp) = (yyvsp[-1].exp);
13290       skipErrors = true;
13291    ;}
13292     break;
13293
13294   case 392:
13295 #line 1574 "grammar.y"
13296     { skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[-1].exp), '<', (yyvsp[0].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
13297     break;
13298
13299   case 393:
13300 #line 1575 "grammar.y"
13301     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '>', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13302     break;
13303
13304   case 394:
13305 #line 1576 "grammar.y"
13306     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), LE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13307     break;
13308
13309   case 395:
13310 #line 1577 "grammar.y"
13311     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), GE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13312     break;
13313
13314   case 396:
13315 #line 1578 "grammar.y"
13316     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '<', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13317     break;
13318
13319   case 397:
13320 #line 1579 "grammar.y"
13321     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '>', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13322     break;
13323
13324   case 398:
13325 #line 1580 "grammar.y"
13326     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), LE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13327     break;
13328
13329   case 399:
13330 #line 1581 "grammar.y"
13331     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), GE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13332     break;
13333
13334   case 401:
13335 #line 1586 "grammar.y"
13336     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13337     break;
13338
13339   case 402:
13340 #line 1587 "grammar.y"
13341     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13342     break;
13343
13344   case 403:
13345 #line 1588 "grammar.y"
13346     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13347     break;
13348
13349   case 404:
13350 #line 1589 "grammar.y"
13351     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13352     break;
13353
13354   case 405:
13355 #line 1591 "grammar.y"
13356     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13357     break;
13358
13359   case 406:
13360 #line 1592 "grammar.y"
13361     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13362     break;
13363
13364   case 407:
13365 #line 1593 "grammar.y"
13366     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13367     break;
13368
13369   case 408:
13370 #line 1594 "grammar.y"
13371     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13372     break;
13373
13374   case 410:
13375 #line 1599 "grammar.y"
13376     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '&', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13377     break;
13378
13379   case 411:
13380 #line 1600 "grammar.y"
13381     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '&', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13382     break;
13383
13384   case 412:
13385 #line 1602 "grammar.y"
13386     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '&', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13387     break;
13388
13389   case 413:
13390 #line 1603 "grammar.y"
13391     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '&', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13392     break;
13393
13394   case 415:
13395 #line 1608 "grammar.y"
13396     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '^', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13397     break;
13398
13399   case 416:
13400 #line 1609 "grammar.y"
13401     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '^', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13402     break;
13403
13404   case 417:
13405 #line 1611 "grammar.y"
13406     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '^', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13407     break;
13408
13409   case 418:
13410 #line 1612 "grammar.y"
13411     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '^', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13412     break;
13413
13414   case 420:
13415 #line 1617 "grammar.y"
13416     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '|', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13417     break;
13418
13419   case 421:
13420 #line 1618 "grammar.y"
13421     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '|', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13422     break;
13423
13424   case 422:
13425 #line 1620 "grammar.y"
13426     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '|', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13427     break;
13428
13429   case 423:
13430 #line 1621 "grammar.y"
13431     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '|', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13432     break;
13433
13434   case 425:
13435 #line 1626 "grammar.y"
13436     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), AND_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13437     break;
13438
13439   case 426:
13440 #line 1627 "grammar.y"
13441     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), AND_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13442     break;
13443
13444   case 428:
13445 #line 1632 "grammar.y"
13446     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), OR_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13447     break;
13448
13449   case 429:
13450 #line 1633 "grammar.y"
13451     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), OR_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13452     break;
13453
13454   case 431:
13455 #line 1638 "grammar.y"
13456     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13457     break;
13458
13459   case 432:
13460 #line 1639 "grammar.y"
13461     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13462     break;
13463
13464   case 433:
13465 #line 1640 "grammar.y"
13466     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13467     break;
13468
13469   case 434:
13470 #line 1641 "grammar.y"
13471     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13472     break;
13473
13474   case 435:
13475 #line 1643 "grammar.y"
13476     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13477     break;
13478
13479   case 436:
13480 #line 1644 "grammar.y"
13481     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13482     break;
13483
13484   case 437:
13485 #line 1645 "grammar.y"
13486     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13487     break;
13488
13489   case 438:
13490 #line 1646 "grammar.y"
13491     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13492     break;
13493
13494   case 439:
13495 #line 1648 "grammar.y"
13496     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13497     break;
13498
13499   case 440:
13500 #line 1649 "grammar.y"
13501     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13502     break;
13503
13504   case 441:
13505 #line 1650 "grammar.y"
13506     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13507     break;
13508
13509   case 442:
13510 #line 1651 "grammar.y"
13511     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13512     break;
13513
13514   case 443:
13515 #line 1653 "grammar.y"
13516     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13517     break;
13518
13519   case 444:
13520 #line 1654 "grammar.y"
13521     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13522     break;
13523
13524   case 445:
13525 #line 1655 "grammar.y"
13526     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13527     break;
13528
13529   case 446:
13530 #line 1656 "grammar.y"
13531     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13532     break;
13533
13534   case 448:
13535 #line 1661 "grammar.y"
13536     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13537     break;
13538
13539   case 449:
13540 #line 1662 "grammar.y"
13541     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13542     break;
13543
13544   case 450:
13545 #line 1663 "grammar.y"
13546     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13547     break;
13548
13549   case 451:
13550 #line 1664 "grammar.y"
13551     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13552     break;
13553
13554   case 452:
13555 #line 1666 "grammar.y"
13556     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13557     break;
13558
13559   case 453:
13560 #line 1667 "grammar.y"
13561     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13562     break;
13563
13564   case 454:
13565 #line 1668 "grammar.y"
13566     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13567     break;
13568
13569   case 455:
13570 #line 1669 "grammar.y"
13571     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13572     break;
13573
13574   case 456:
13575 #line 1673 "grammar.y"
13576     { (yyval.i) = '='; ;}
13577     break;
13578
13579   case 457:
13580 #line 1674 "grammar.y"
13581     { (yyval.i) = MUL_ASSIGN; ;}
13582     break;
13583
13584   case 458:
13585 #line 1675 "grammar.y"
13586     { (yyval.i) = DIV_ASSIGN; ;}
13587     break;
13588
13589   case 459:
13590 #line 1676 "grammar.y"
13591     { (yyval.i) = MOD_ASSIGN; ;}
13592     break;
13593
13594   case 460:
13595 #line 1677 "grammar.y"
13596     { (yyval.i) = ADD_ASSIGN; ;}
13597     break;
13598
13599   case 461:
13600 #line 1678 "grammar.y"
13601     { (yyval.i) = SUB_ASSIGN; ;}
13602     break;
13603
13604   case 462:
13605 #line 1679 "grammar.y"
13606     { (yyval.i) = LEFT_ASSIGN; ;}
13607     break;
13608
13609   case 463:
13610 #line 1680 "grammar.y"
13611     { (yyval.i) = RIGHT_ASSIGN; ;}
13612     break;
13613
13614   case 464:
13615 #line 1681 "grammar.y"
13616     { (yyval.i) = AND_ASSIGN; ;}
13617     break;
13618
13619   case 465:
13620 #line 1682 "grammar.y"
13621     { (yyval.i) = XOR_ASSIGN; ;}
13622     break;
13623
13624   case 466:
13625 #line 1683 "grammar.y"
13626     { (yyval.i) = OR_ASSIGN; ;}
13627     break;
13628
13629   case 467:
13630 #line 1687 "grammar.y"
13631     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].exp)); ;}
13632     break;
13633
13634   case 468:
13635 #line 1688 "grammar.y"
13636     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp)); ;}
13637     break;
13638
13639   case 469:
13640 #line 1689 "grammar.y"
13641     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp)); ;}
13642     break;
13643
13644   case 471:
13645 #line 1694 "grammar.y"
13646     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].exp)); ;}
13647     break;
13648
13649   case 472:
13650 #line 1695 "grammar.y"
13651     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp)); ;}
13652     break;
13653
13654   case 473:
13655 #line 1696 "grammar.y"
13656     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp)); ;}
13657     break;
13658
13659   case 475:
13660 #line 1701 "grammar.y"
13661     { (yyval.exp) = MkExpDummy(); (yyval.exp).loc = (yyloc); /*printf("Sorry, didn't mean that syntax error\n");*/ ;}
13662     break;
13663
13664   case 477:
13665 #line 1703 "grammar.y"
13666     { (yyval.exp) = MkExpInstance((yyvsp[-1].instance)); (yyval.exp).loc = (yyloc); ;}
13667     break;
13668
13669   case 478:
13670 #line 1705 "grammar.y"
13671     { (yyval.exp) = MkExpPointer((yyvsp[-2].exp), null); (yyval.exp).loc = (yyloc); ;}
13672     break;
13673
13674   case 479:
13675 #line 1706 "grammar.y"
13676     { (yyval.exp) = MkExpPointer((yyvsp[-2].exp), null); (yyval.exp).loc = (yyloc); ;}
13677     break;
13678
13679   case 480:
13680 #line 1708 "grammar.y"
13681     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), (yyvsp[0].list)); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
13682     break;
13683
13684   case 481:
13685 #line 1709 "grammar.y"
13686     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), (yyvsp[0].list)); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
13687     break;
13688
13689   case 482:
13690 #line 1710 "grammar.y"
13691     { (yyval.exp) = MkExpCall((yyvsp[-4].exp), (yyvsp[-2].list)); (yyval.exp).call.argLoc.start = (yylsp[-3]).start; (yyval.exp).call.argLoc.end = (yylsp[-1]).end;(yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
13692     break;
13693
13694   case 483:
13695 #line 1711 "grammar.y"
13696     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), MkList() ); (yyloc).end = yylloc.start; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = yylloc.start; /*@2.end; $$.call.argLoc.end.charPos++;*/ ;}
13697     break;
13698
13699   case 484:
13700 #line 1712 "grammar.y"
13701     { (yyval.exp) = MkExpMember((yyvsp[-2].exp), null); (yyval.exp).loc = (yyloc); ;}
13702     break;
13703
13704   case 485:
13705 #line 1714 "grammar.y"
13706     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), (yyvsp[0].list)); (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).call.argLoc.end.charPos++;;}
13707     break;
13708
13709   case 486:
13710 #line 1715 "grammar.y"
13711     { (yyval.exp) = MkExpCall((yyvsp[-4].exp), (yyvsp[-2].list)); (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[-3]).start; (yyval.exp).call.argLoc.end = (yylsp[-1]).end; (yyval.exp).call.argLoc.end.charPos++;;}
13712     break;
13713
13714   case 487:
13715 #line 1716 "grammar.y"
13716     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), MkList() ); (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[-1]).end; (yyval.exp).call.argLoc.end.charPos++;;}
13717     break;
13718
13719   case 488:
13720 #line 1717 "grammar.y"
13721     { (yyval.exp) = MkExpMember((yyvsp[-2].exp), null); (yyval.exp).loc = (yyloc); ;}
13722     break;
13723
13724   case 489:
13725 #line 1721 "grammar.y"
13726     { (yyval.exp) = MkExpDummy(); (yyval.exp).loc = (yyloc); ;}
13727     break;
13728
13729   case 491:
13730 #line 1723 "grammar.y"
13731     { (yyval.exp) = MkExpInstance((yyvsp[-1].instance)); (yyval.exp).loc = (yyloc); ;}
13732     break;
13733
13734   case 492:
13735 #line 1725 "grammar.y"
13736     { (yyval.exp) = MkExpPointer((yyvsp[-2].exp), null); (yyval.exp).loc = (yyloc); ;}
13737     break;
13738
13739   case 493:
13740 #line 1726 "grammar.y"
13741     { (yyval.exp) = MkExpPointer((yyvsp[-2].exp), null); (yyval.exp).loc = (yyloc); ;}
13742     break;
13743
13744   case 494:
13745 #line 1728 "grammar.y"
13746     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), (yyvsp[0].list)); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
13747     break;
13748
13749   case 495:
13750 #line 1729 "grammar.y"
13751     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), (yyvsp[0].list)); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
13752     break;
13753
13754   case 496:
13755 #line 1730 "grammar.y"
13756     { (yyval.exp) = MkExpCall((yyvsp[-4].exp), (yyvsp[-2].list)); (yyval.exp).call.argLoc.start = (yylsp[-3]).start; (yyval.exp).call.argLoc.end = (yylsp[-1]).end;(yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
13757     break;
13758
13759   case 497:
13760 #line 1731 "grammar.y"
13761     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), MkList() ); (yyloc).end = yylloc.start; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = yylloc.start; /*@2.end; $$.call.argLoc.end.charPos++;*/ ;}
13762     break;
13763
13764   case 498:
13765 #line 1732 "grammar.y"
13766     { (yyval.exp) = MkExpMember((yyvsp[-2].exp), null); (yyval.exp).loc = (yyloc); ;}
13767     break;
13768
13769   case 499:
13770 #line 1734 "grammar.y"
13771     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), (yyvsp[0].list)); (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[0]).end; (yyval.exp).call.argLoc.end.charPos++;;}
13772     break;
13773
13774   case 500:
13775 #line 1735 "grammar.y"
13776     { (yyval.exp) = MkExpCall((yyvsp[-4].exp), (yyvsp[-2].list)); (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[-3]).start; (yyval.exp).call.argLoc.end = (yylsp[-1]).end; (yyval.exp).call.argLoc.end.charPos++;;}
13777     break;
13778
13779   case 501:
13780 #line 1736 "grammar.y"
13781     { (yyval.exp) = MkExpCall((yyvsp[-2].exp), MkList() ); (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[-1]).start; (yyval.exp).call.argLoc.end = (yylsp[-1]).end; (yyval.exp).call.argLoc.end.charPos++;;}
13782     break;
13783
13784   case 502:
13785 #line 1737 "grammar.y"
13786     { (yyval.exp) = MkExpMember((yyvsp[-2].exp), null); (yyval.exp).loc = (yyloc); ;}
13787     break;
13788
13789   case 503:
13790 #line 1741 "grammar.y"
13791     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13792     break;
13793
13794   case 504:
13795 #line 1742 "grammar.y"
13796     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13797     break;
13798
13799   case 505:
13800 #line 1743 "grammar.y"
13801     { (yyval.exp) = MkExpOp(null, (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13802     break;
13803
13804   case 506:
13805 #line 1744 "grammar.y"
13806     { (yyval.exp) = MkExpOp(null, (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13807     break;
13808
13809   case 507:
13810 #line 1745 "grammar.y"
13811     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13812     break;
13813
13814   case 508:
13815 #line 1746 "grammar.y"
13816     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13817     break;
13818
13819   case 509:
13820 #line 1747 "grammar.y"
13821     { (yyval.exp) = MkExpTypeSize((yyvsp[-2].typeName)); (yyval.exp).loc = (yyloc); ;}
13822     break;
13823
13824   case 510:
13825 #line 1748 "grammar.y"
13826     { (yyval.exp) = MkExpClassSize((yyvsp[-2].specifier)); (yyval.exp).loc = (yyloc); ;}
13827     break;
13828
13829   case 511:
13830 #line 1749 "grammar.y"
13831     { (yyval.exp) = MkExpClassSize((yyvsp[-2].specifier)); (yyval.exp).loc = (yyloc); ;}
13832     break;
13833
13834   case 517:
13835 #line 1765 "grammar.y"
13836     { (yyval.exp) = MkExpCast((yyvsp[-2].typeName), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13837     break;
13838
13839   case 519:
13840 #line 1770 "grammar.y"
13841     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '*', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13842     break;
13843
13844   case 520:
13845 #line 1771 "grammar.y"
13846     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '/', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13847     break;
13848
13849   case 521:
13850 #line 1772 "grammar.y"
13851     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '%', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13852     break;
13853
13854   case 522:
13855 #line 1773 "grammar.y"
13856     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '*', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13857     break;
13858
13859   case 523:
13860 #line 1774 "grammar.y"
13861     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '/', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13862     break;
13863
13864   case 524:
13865 #line 1775 "grammar.y"
13866     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '%', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13867     break;
13868
13869   case 526:
13870 #line 1780 "grammar.y"
13871     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '+', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13872     break;
13873
13874   case 527:
13875 #line 1781 "grammar.y"
13876     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '+', null); (yyval.exp).loc = (yyloc); ;}
13877     break;
13878
13879   case 528:
13880 #line 1782 "grammar.y"
13881     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '-', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13882     break;
13883
13884   case 529:
13885 #line 1783 "grammar.y"
13886     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '-', null); (yyval.exp).loc = (yyloc); ;}
13887     break;
13888
13889   case 530:
13890 #line 1784 "grammar.y"
13891     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '+', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13892     break;
13893
13894   case 531:
13895 #line 1785 "grammar.y"
13896     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '+', null); (yyval.exp).loc = (yyloc); ;}
13897     break;
13898
13899   case 532:
13900 #line 1786 "grammar.y"
13901     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '-', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13902     break;
13903
13904   case 533:
13905 #line 1787 "grammar.y"
13906     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '-', null); (yyval.exp).loc = (yyloc); ;}
13907     break;
13908
13909   case 535:
13910 #line 1792 "grammar.y"
13911     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), LEFT_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13912     break;
13913
13914   case 536:
13915 #line 1793 "grammar.y"
13916     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), RIGHT_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13917     break;
13918
13919   case 537:
13920 #line 1794 "grammar.y"
13921     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), LEFT_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13922     break;
13923
13924   case 538:
13925 #line 1795 "grammar.y"
13926     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), RIGHT_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13927     break;
13928
13929   case 540:
13930 #line 1801 "grammar.y"
13931     {
13932       if((yyvsp[-1].exp).type == identifierExp)
13933       {
13934          if((yyvsp[-1].exp).identifier._class && !(yyvsp[-1].exp).identifier._class.name)
13935          {
13936             char name[1024];
13937             strcpy(name, "::");
13938             strcat(name, (yyvsp[-1].exp).identifier.string);
13939             _DeclClass(0, name);
13940          }
13941          else
13942             _DeclClass(0, (yyvsp[-1].exp).identifier.string);
13943
13944          // printf("Declaring Class %s\n", $1.identifier.string);
13945          skipErrors = false;
13946
13947          FreeExpression((yyvsp[-1].exp));
13948          
13949          fileInput.Seek((yylsp[-1]).start.pos, start); 
13950          resetScannerPos(&(yylsp[-1]).start);
13951          yyclearin;
13952
13953          YYPOPSTACK;
13954          yystate = *yyssp;
13955          YY_STACK_PRINT (yyss, yyssp);
13956
13957          YYPOPSTACK;
13958          yystate = *yyssp;
13959          YY_STACK_PRINT (yyss, yyssp);
13960 /*         
13961          YYPOPSTACK;
13962          yystate = *yyssp;
13963          YY_STACK_PRINT (yyss, yyssp);
13964
13965          YYPOPSTACK;
13966          yystate = *yyssp;
13967          YY_STACK_PRINT (yyss, yyssp);
13968 */
13969          yyerrok;
13970
13971          goto yysetstate;
13972       }
13973       else
13974       {
13975          (yyval.exp) = MkExpOp((yyvsp[-1].exp), '<', (yyvsp[0].exp));
13976          (yyval.exp).loc = (yyloc);
13977       } 
13978       skipErrors = false;
13979    ;}
13980     break;
13981
13982   case 541:
13983 #line 1850 "grammar.y"
13984     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '>', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13985     break;
13986
13987   case 542:
13988 #line 1851 "grammar.y"
13989     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), LE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13990     break;
13991
13992   case 543:
13993 #line 1852 "grammar.y"
13994     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), GE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
13995     break;
13996
13997   case 544:
13998 #line 1853 "grammar.y"
13999     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '<', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14000     break;
14001
14002   case 545:
14003 #line 1854 "grammar.y"
14004     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '>', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14005     break;
14006
14007   case 546:
14008 #line 1855 "grammar.y"
14009     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), LE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14010     break;
14011
14012   case 547:
14013 #line 1856 "grammar.y"
14014     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), GE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14015     break;
14016
14017   case 549:
14018 #line 1861 "grammar.y"
14019     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14020     break;
14021
14022   case 550:
14023 #line 1862 "grammar.y"
14024     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14025     break;
14026
14027   case 551:
14028 #line 1863 "grammar.y"
14029     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14030     break;
14031
14032   case 552:
14033 #line 1864 "grammar.y"
14034     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14035     break;
14036
14037   case 553:
14038 #line 1866 "grammar.y"
14039     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, MkExpDummy()); (yyval.exp).loc = (yyloc); ;}
14040     break;
14041
14042   case 554:
14043 #line 1867 "grammar.y"
14044     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, MkExpDummy()); (yyval.exp).loc = (yyloc); ;}
14045     break;
14046
14047   case 555:
14048 #line 1868 "grammar.y"
14049     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, MkExpDummy()); (yyval.exp).loc = (yyloc); ;}
14050     break;
14051
14052   case 556:
14053 #line 1869 "grammar.y"
14054     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, MkExpDummy()); (yyval.exp).loc = (yyloc); ;}
14055     break;
14056
14057   case 557:
14058 #line 1871 "grammar.y"
14059     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14060     break;
14061
14062   case 558:
14063 #line 1872 "grammar.y"
14064     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14065     break;
14066
14067   case 559:
14068 #line 1873 "grammar.y"
14069     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), EQ_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14070     break;
14071
14072   case 560:
14073 #line 1874 "grammar.y"
14074     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), NE_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14075     break;
14076
14077   case 562:
14078 #line 1879 "grammar.y"
14079     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '&', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14080     break;
14081
14082   case 563:
14083 #line 1880 "grammar.y"
14084     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '&', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14085     break;
14086
14087   case 564:
14088 #line 1882 "grammar.y"
14089     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '&', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14090     break;
14091
14092   case 565:
14093 #line 1883 "grammar.y"
14094     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '&', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14095     break;
14096
14097   case 567:
14098 #line 1888 "grammar.y"
14099     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '^', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14100     break;
14101
14102   case 568:
14103 #line 1889 "grammar.y"
14104     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '^', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14105     break;
14106
14107   case 569:
14108 #line 1891 "grammar.y"
14109     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '^', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14110     break;
14111
14112   case 570:
14113 #line 1892 "grammar.y"
14114     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '^', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14115     break;
14116
14117   case 572:
14118 #line 1897 "grammar.y"
14119     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '|', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14120     break;
14121
14122   case 573:
14123 #line 1898 "grammar.y"
14124     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '|', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14125     break;
14126
14127   case 574:
14128 #line 1900 "grammar.y"
14129     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '|', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14130     break;
14131
14132   case 575:
14133 #line 1901 "grammar.y"
14134     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), '|', (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14135     break;
14136
14137   case 577:
14138 #line 1906 "grammar.y"
14139     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), AND_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14140     break;
14141
14142   case 578:
14143 #line 1907 "grammar.y"
14144     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), AND_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14145     break;
14146
14147   case 580:
14148 #line 1912 "grammar.y"
14149     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), OR_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14150     break;
14151
14152   case 581:
14153 #line 1913 "grammar.y"
14154     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), OR_OP, (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14155     break;
14156
14157   case 583:
14158 #line 1918 "grammar.y"
14159     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14160     break;
14161
14162   case 584:
14163 #line 1919 "grammar.y"
14164     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14165     break;
14166
14167   case 585:
14168 #line 1920 "grammar.y"
14169     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14170     break;
14171
14172   case 586:
14173 #line 1921 "grammar.y"
14174     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14175     break;
14176
14177   case 587:
14178 #line 1922 "grammar.y"
14179     { (yyval.exp) = MkExpCondition((yyvsp[-3].exp), (yyvsp[-1].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[-1]); ;}
14180     break;
14181
14182   case 588:
14183 #line 1923 "grammar.y"
14184     { (yyval.exp) = MkExpCondition((yyvsp[-3].exp), (yyvsp[-1].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[-1]); ;}
14185     break;
14186
14187   case 589:
14188 #line 1924 "grammar.y"
14189     { (yyval.exp) = MkExpCondition((yyvsp[-3].exp), (yyvsp[-1].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[-1]); ;}
14190     break;
14191
14192   case 590:
14193 #line 1925 "grammar.y"
14194     { (yyval.exp) = MkExpCondition((yyvsp[-3].exp), (yyvsp[-1].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[-1]); ;}
14195     break;
14196
14197   case 591:
14198 #line 1927 "grammar.y"
14199     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14200     break;
14201
14202   case 592:
14203 #line 1928 "grammar.y"
14204     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14205     break;
14206
14207   case 593:
14208 #line 1929 "grammar.y"
14209     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14210     break;
14211
14212   case 594:
14213 #line 1930 "grammar.y"
14214     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14215     break;
14216
14217   case 595:
14218 #line 1931 "grammar.y"
14219     { (yyval.exp) = MkExpCondition((yyvsp[-3].exp), (yyvsp[-1].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[-1]); ;}
14220     break;
14221
14222   case 596:
14223 #line 1932 "grammar.y"
14224     { (yyval.exp) = MkExpCondition((yyvsp[-3].exp), (yyvsp[-1].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[-1]); ;}
14225     break;
14226
14227   case 597:
14228 #line 1933 "grammar.y"
14229     { (yyval.exp) = MkExpCondition((yyvsp[-3].exp), (yyvsp[-1].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[-1]); ;}
14230     break;
14231
14232   case 598:
14233 #line 1934 "grammar.y"
14234     { (yyval.exp) = MkExpCondition((yyvsp[-3].exp), (yyvsp[-1].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[-1]); ;}
14235     break;
14236
14237   case 599:
14238 #line 1936 "grammar.y"
14239     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14240     break;
14241
14242   case 600:
14243 #line 1937 "grammar.y"
14244     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14245     break;
14246
14247   case 601:
14248 #line 1938 "grammar.y"
14249     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14250     break;
14251
14252   case 602:
14253 #line 1939 "grammar.y"
14254     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14255     break;
14256
14257   case 603:
14258 #line 1941 "grammar.y"
14259     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14260     break;
14261
14262   case 604:
14263 #line 1942 "grammar.y"
14264     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14265     break;
14266
14267   case 605:
14268 #line 1943 "grammar.y"
14269     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14270     break;
14271
14272   case 606:
14273 #line 1944 "grammar.y"
14274     { (yyval.exp) = MkExpCondition((yyvsp[-4].exp), (yyvsp[-2].list), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14275     break;
14276
14277   case 607:
14278 #line 1947 "grammar.y"
14279     { 
14280          (yyval.exp) = MkExpCondition((yyvsp[-2].exp), MkListOne(MkExpDummy()), MkExpDummy()); 
14281          (yyval.exp).loc = (yyloc); 
14282          ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[-1]); 
14283          (yyval.exp).cond.elseExp.loc = (yylsp[0]); 
14284       ;}
14285     break;
14286
14287   case 608:
14288 #line 1954 "grammar.y"
14289     {
14290          (yyval.exp) = MkExpCondition((yyvsp[-2].exp), MkListOne(MkExpDummy()), MkExpDummy()); (yyval.exp).loc = (yyloc); ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[-1]); (yyval.exp).cond.elseExp.loc = (yylsp[0]);
14291       ;}
14292     break;
14293
14294   case 609:
14295 #line 1958 "grammar.y"
14296     {
14297          (yyval.exp) = MkExpCondition((yyvsp[-1].exp), MkListOne(MkExpDummy()), MkExpDummy()); (yyval.exp).loc = (yyloc); ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[0]); (yyval.exp).cond.elseExp.loc = (yylsp[0]);
14298       ;}
14299     break;
14300
14301   case 610:
14302 #line 1962 "grammar.y"
14303     {
14304          (yyval.exp) = MkExpCondition((yyvsp[-1].exp), MkListOne(MkExpDummy()), MkExpDummy()); (yyval.exp).loc = (yyloc); ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[0]); (yyval.exp).cond.elseExp.loc = (yylsp[0]);
14305       ;}
14306     break;
14307
14308   case 612:
14309 #line 1969 "grammar.y"
14310     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14311     break;
14312
14313   case 613:
14314 #line 1970 "grammar.y"
14315     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).op.exp2.loc = (yylsp[-1]); ;}
14316     break;
14317
14318   case 614:
14319 #line 1971 "grammar.y"
14320     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14321     break;
14322
14323   case 615:
14324 #line 1972 "grammar.y"
14325     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).op.exp2.loc = (yylsp[-1]); ;}
14326     break;
14327
14328   case 616:
14329 #line 1974 "grammar.y"
14330     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14331     break;
14332
14333   case 617:
14334 #line 1975 "grammar.y"
14335     { (yyval.exp) = MkExpOp((yyvsp[-2].exp), (yyvsp[-1].i), (yyvsp[0].exp)); (yyval.exp).loc = (yyloc); ;}
14336     break;
14337
14338   case 618:
14339 #line 1979 "grammar.y"
14340     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].exp)); ;}
14341     break;
14342
14343   case 619:
14344 #line 1980 "grammar.y"
14345     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[-1].exp)); ;}
14346     break;
14347
14348   case 620:
14349 #line 1981 "grammar.y"
14350     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp)); ;}
14351     break;
14352
14353   case 621:
14354 #line 1982 "grammar.y"
14355     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp)); ;}
14356     break;
14357
14358   case 625:
14359 #line 1986 "grammar.y"
14360     { FreeList((yyvsp[0].list), FreeExpression); ;}
14361     break;
14362
14363   case 626:
14364 #line 1987 "grammar.y"
14365     { FreeList((yyvsp[0].list), FreeExpression); ;}
14366     break;
14367
14368   case 627:
14369 #line 1988 "grammar.y"
14370     { FreeList((yyvsp[0].list), FreeExpression); ;}
14371     break;
14372
14373   case 628:
14374 #line 1992 "grammar.y"
14375     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].exp)); ;}
14376     break;
14377
14378   case 629:
14379 #line 1993 "grammar.y"
14380     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[-1].exp)); ;}
14381     break;
14382
14383   case 630:
14384 #line 1994 "grammar.y"
14385     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp)); ;}
14386     break;
14387
14388   case 631:
14389 #line 1995 "grammar.y"
14390     { ListAdd((yyvsp[-2].list), (yyvsp[0].exp)); ;}
14391     break;
14392
14393   case 634:
14394 #line 2005 "grammar.y"
14395     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
14396     break;
14397
14398   case 635:
14399 #line 2006 "grammar.y"
14400     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
14401     break;
14402
14403   case 636:
14404 #line 2007 "grammar.y"
14405     { (yyval.specifier) = MkSpecifier(STATIC); ;}
14406     break;
14407
14408   case 637:
14409 #line 2008 "grammar.y"
14410     { (yyval.specifier) = MkSpecifier(AUTO); ;}
14411     break;
14412
14413   case 638:
14414 #line 2009 "grammar.y"
14415     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
14416     break;
14417
14418   case 639:
14419 #line 2013 "grammar.y"
14420     { (yyval.specifier) = MkSpecifier(TYPEDEF); declMode = defaultAccess; ;}
14421     break;
14422
14423   case 640:
14424 #line 2014 "grammar.y"
14425     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
14426     break;
14427
14428   case 641:
14429 #line 2015 "grammar.y"
14430     { (yyval.specifier) = MkSpecifier(STATIC); declMode = staticAccess; ;}
14431     break;
14432
14433   case 642:
14434 #line 2016 "grammar.y"
14435     { (yyval.specifier) = MkSpecifier(AUTO); ;}
14436     break;
14437
14438   case 643:
14439 #line 2017 "grammar.y"
14440     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
14441     break;
14442
14443   case 644:
14444 #line 2021 "grammar.y"
14445     { (yyval.enumerator) = MkEnumerator((yyvsp[0].id), null); ;}
14446     break;
14447
14448   case 645:
14449 #line 2022 "grammar.y"
14450     { (yyval.enumerator) = MkEnumerator((yyvsp[-2].id), (yyvsp[0].exp)); ;}
14451     break;
14452
14453   case 646:
14454 #line 2023 "grammar.y"
14455     { (yyval.enumerator) = MkEnumerator((yyvsp[-2].id), (yyvsp[0].exp)); ;}
14456     break;
14457
14458   case 647:
14459 #line 2027 "grammar.y"
14460     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].enumerator)); ;}
14461     break;
14462
14463   case 648:
14464 #line 2028 "grammar.y"
14465     { ListAdd((yyvsp[-2].list), (yyvsp[0].enumerator)); ;}
14466     break;
14467
14468   case 650:
14469 #line 2033 "grammar.y"
14470     { memberAccessStack[++defaultMemberAccess] = publicAccess; ;}
14471     break;
14472
14473   case 651:
14474 #line 2037 "grammar.y"
14475     { (yyval.specifier) = MkEnum((yyvsp[0].id), null); POP_DEFAULT_ACCESS ;}
14476     break;
14477
14478   case 652:
14479 #line 2038 "grammar.y"
14480     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[0].specifier).name), null); POP_DEFAULT_ACCESS ;}
14481     break;
14482
14483   case 653:
14484 #line 2042 "grammar.y"
14485     { (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14486     break;
14487
14488   case 654:
14489 #line 2043 "grammar.y"
14490     { (yyval.specifier) = MkEnum((yyvsp[-2].id), null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14491     break;
14492
14493   case 655:
14494 #line 2044 "grammar.y"
14495     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[-2].specifier).name), null); FreeSpecifier((yyvsp[-2].specifier)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14496     break;
14497
14498   case 656:
14499 #line 2048 "grammar.y"
14500     { (yyval.specifier) = MkEnum(null, (yyvsp[0].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14501     break;
14502
14503   case 657:
14504 #line 2049 "grammar.y"
14505     { (yyval.specifier) = MkEnum(null, null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14506     break;
14507
14508   case 658:
14509 #line 2051 "grammar.y"
14510     { (yyval.specifier) = MkEnum((yyvsp[-2].id), (yyvsp[0].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14511     break;
14512
14513   case 659:
14514 #line 2052 "grammar.y"
14515     { (yyval.specifier) = MkEnum((yyvsp[-3].id), (yyvsp[-1].list));  (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14516     break;
14517
14518   case 660:
14519 #line 2053 "grammar.y"
14520     { (yyval.specifier) = MkEnum((yyvsp[-2].id), null);  (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14521     break;
14522
14523   case 661:
14524 #line 2054 "grammar.y"
14525     { (yyval.specifier) = MkEnum((yyvsp[-4].id), (yyvsp[-2].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[0].list);  POP_DEFAULT_ACCESS ;}
14526     break;
14527
14528   case 662:
14529 #line 2055 "grammar.y"
14530     { (yyval.specifier) = MkEnum((yyvsp[-4].id), (yyvsp[-2].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[0].list);  POP_DEFAULT_ACCESS ;}
14531     break;
14532
14533   case 663:
14534 #line 2057 "grammar.y"
14535     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[-2].specifier).name), (yyvsp[0].list)); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[-2].specifier)); POP_DEFAULT_ACCESS ;}
14536     break;
14537
14538   case 664:
14539 #line 2058 "grammar.y"
14540     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[-3].specifier).name), (yyvsp[-1].list)); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[-3].specifier)); POP_DEFAULT_ACCESS ;}
14541     break;
14542
14543   case 665:
14544 #line 2059 "grammar.y"
14545     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[-2].specifier).name), null); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[-2].specifier)); POP_DEFAULT_ACCESS ;}
14546     break;
14547
14548   case 666:
14549 #line 2060 "grammar.y"
14550     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[-4].specifier).name), (yyvsp[-2].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[0].list); FreeSpecifier((yyvsp[-4].specifier)); POP_DEFAULT_ACCESS ;}
14551     break;
14552
14553   case 667:
14554 #line 2061 "grammar.y"
14555     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[-4].specifier).name), (yyvsp[-2].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[0].list); FreeSpecifier((yyvsp[-4].specifier)); POP_DEFAULT_ACCESS ;}
14556     break;
14557
14558   case 668:
14559 #line 2065 "grammar.y"
14560     { (yyval.id) = (yyvsp[0].id); if(declMode) DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[0].id).string); ;}
14561     break;
14562
14563   case 669:
14564 #line 2066 "grammar.y"
14565     { (yyval.id) = MkIdentifier((yyvsp[0].specifier).name); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[0].specifier).name); FreeSpecifier((yyvsp[0].specifier)); ;}
14566     break;
14567
14568   case 670:
14569 #line 2070 "grammar.y"
14570     { (yyval.specifier).loc = (yyloc); ;}
14571     break;
14572
14573   case 671:
14574 #line 2071 "grammar.y"
14575     { (yyval.specifier) = MkEnum((yyvsp[-4].id), null); (yyval.specifier).baseSpecs = (yyvsp[-2].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14576     break;
14577
14578   case 672:
14579 #line 2072 "grammar.y"
14580     { (yyval.specifier) = MkEnum((yyvsp[-2].id), null); POP_DEFAULT_ACCESS ;}
14581     break;
14582
14583   case 673:
14584 #line 2076 "grammar.y"
14585     { (yyval.specifier) = MkEnum((yyvsp[-4].id), (yyvsp[0].list)); (yyval.specifier).baseSpecs = (yyvsp[-2].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14586     break;
14587
14588   case 674:
14589 #line 2077 "grammar.y"
14590     { (yyval.specifier) = MkEnum((yyvsp[-5].id), (yyvsp[-1].list)); (yyval.specifier).baseSpecs = (yyvsp[-3].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14591     break;
14592
14593   case 675:
14594 #line 2078 "grammar.y"
14595     { (yyval.specifier) = MkEnum((yyvsp[-4].id), null); (yyval.specifier).baseSpecs = (yyvsp[-2].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14596     break;
14597
14598   case 676:
14599 #line 2079 "grammar.y"
14600     { (yyval.specifier) = MkEnum((yyvsp[-6].id), (yyvsp[-2].list)); (yyval.specifier).baseSpecs = (yyvsp[-4].list); (yyval.specifier).definitions = (yyvsp[0].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14601     break;
14602
14603   case 677:
14604 #line 2080 "grammar.y"
14605     { (yyval.specifier) = MkEnum((yyvsp[-6].id), (yyvsp[-2].list)); (yyval.specifier).baseSpecs = (yyvsp[-4].list); (yyval.specifier).definitions = (yyvsp[0].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14606     break;
14607
14608   case 678:
14609 #line 2081 "grammar.y"
14610     { (yyval.specifier) = MkEnum((yyvsp[-7].id), (yyvsp[-3].list)); (yyval.specifier).baseSpecs = (yyvsp[-5].list); (yyval.specifier).definitions = (yyvsp[0].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14611     break;
14612
14613   case 679:
14614 #line 2082 "grammar.y"
14615     { (yyval.specifier) = MkEnum((yyvsp[-7].id), (yyvsp[-3].list)); (yyval.specifier).baseSpecs = (yyvsp[-5].list); (yyval.specifier).definitions = (yyvsp[0].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14616     break;
14617
14618   case 680:
14619 #line 2083 "grammar.y"
14620     { (yyval.specifier) = MkEnum((yyvsp[-6].id), null); (yyval.specifier).baseSpecs = (yyvsp[-4].list); (yyval.specifier).definitions = (yyvsp[0].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14621     break;
14622
14623   case 681:
14624 #line 2084 "grammar.y"
14625     { (yyval.specifier) = MkEnum((yyvsp[-6].id), null); (yyval.specifier).baseSpecs = (yyvsp[-4].list); (yyval.specifier).definitions = (yyvsp[0].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14626     break;
14627
14628   case 682:
14629 #line 2086 "grammar.y"
14630     { (yyval.specifier) = MkEnum(null, (yyvsp[0].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14631     break;
14632
14633   case 683:
14634 #line 2087 "grammar.y"
14635     { (yyval.specifier) = MkEnum(null, null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14636     break;
14637
14638   case 684:
14639 #line 2089 "grammar.y"
14640     { (yyval.specifier) = MkEnum((yyvsp[-2].id), (yyvsp[0].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14641     break;
14642
14643   case 685:
14644 #line 2090 "grammar.y"
14645     { (yyval.specifier) = MkEnum((yyvsp[-3].id), (yyvsp[-1].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14646     break;
14647
14648   case 686:
14649 #line 2091 "grammar.y"
14650     { (yyval.specifier) = MkEnum((yyvsp[-2].id), null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14651     break;
14652
14653   case 687:
14654 #line 2092 "grammar.y"
14655     { (yyval.specifier) = MkEnum((yyvsp[-4].id), (yyvsp[-2].list)); (yyval.specifier).definitions = (yyvsp[0].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14656     break;
14657
14658   case 688:
14659 #line 2093 "grammar.y"
14660     { (yyval.specifier) = MkEnum((yyvsp[-4].id), (yyvsp[-2].list)); (yyval.specifier).definitions = (yyvsp[0].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14661     break;
14662
14663   case 693:
14664 #line 2107 "grammar.y"
14665     { (yyval.specifier) = MkSpecifierExtended(yytext); ;}
14666     break;
14667
14668   case 694:
14669 #line 2108 "grammar.y"
14670     { (yyval.specifier) = MkSpecifierExtended((yyvsp[0].string)); delete (yyvsp[0].string); ;}
14671     break;
14672
14673   case 695:
14674 #line 2112 "grammar.y"
14675     { (yyval.specifier) = MkSpecifier(CONST); ;}
14676     break;
14677
14678   case 696:
14679 #line 2113 "grammar.y"
14680     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
14681     break;
14682
14683   case 697:
14684 #line 2114 "grammar.y"
14685     { (yyval.specifier) = (yyvsp[0].specifier); ;}
14686     break;
14687
14688   case 698:
14689 #line 2119 "grammar.y"
14690     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
14691     break;
14692
14693   case 699:
14694 #line 2120 "grammar.y"
14695     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier));  ;}
14696     break;
14697
14698   case 700:
14699 #line 2124 "grammar.y"
14700     { (yyval.specifier) = MkSpecifier(VOID); ;}
14701     break;
14702
14703   case 701:
14704 #line 2125 "grammar.y"
14705     { (yyval.specifier) = MkSpecifier(CHAR); ;}
14706     break;
14707
14708   case 702:
14709 #line 2126 "grammar.y"
14710     { (yyval.specifier) = MkSpecifier(SHORT); ;}
14711     break;
14712
14713   case 703:
14714 #line 2127 "grammar.y"
14715     { (yyval.specifier) = MkSpecifier(INT); ;}
14716     break;
14717
14718   case 704:
14719 #line 2128 "grammar.y"
14720     { (yyval.specifier) = MkSpecifier(UINT); ;}
14721     break;
14722
14723   case 705:
14724 #line 2129 "grammar.y"
14725     { (yyval.specifier) = MkSpecifier(INT64); ;}
14726     break;
14727
14728   case 706:
14729 #line 2130 "grammar.y"
14730     { (yyval.specifier) = MkSpecifier(VALIST); ;}
14731     break;
14732
14733   case 707:
14734 #line 2131 "grammar.y"
14735     { (yyval.specifier) = MkSpecifier(LONG); ;}
14736     break;
14737
14738   case 708:
14739 #line 2132 "grammar.y"
14740     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
14741     break;
14742
14743   case 709:
14744 #line 2133 "grammar.y"
14745     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
14746     break;
14747
14748   case 710:
14749 #line 2134 "grammar.y"
14750     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
14751     break;
14752
14753   case 711:
14754 #line 2135 "grammar.y"
14755     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
14756     break;
14757
14758   case 712:
14759 #line 2136 "grammar.y"
14760     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
14761     break;
14762
14763   case 716:
14764 #line 2140 "grammar.y"
14765     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[-1].exp)); ;}
14766     break;
14767
14768   case 717:
14769 #line 2141 "grammar.y"
14770     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[-1].specifier)); ;}
14771     break;
14772
14773   case 718:
14774 #line 2142 "grammar.y"
14775     { _DeclClass(0, (yyvsp[-1].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[-1].id).string)); FreeIdentifier((yyvsp[-1].id)); ;}
14776     break;
14777
14778   case 719:
14779 #line 2143 "grammar.y"
14780     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
14781     break;
14782
14783   case 720:
14784 #line 2144 "grammar.y"
14785     { (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
14786     break;
14787
14788   case 721:
14789 #line 2145 "grammar.y"
14790     { (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
14791     break;
14792
14793   case 722:
14794 #line 2149 "grammar.y"
14795     { (yyval.specifier) = MkSpecifier(VOID); ;}
14796     break;
14797
14798   case 723:
14799 #line 2150 "grammar.y"
14800     { (yyval.specifier) = MkSpecifier(CHAR); ;}
14801     break;
14802
14803   case 724:
14804 #line 2151 "grammar.y"
14805     { (yyval.specifier) = MkSpecifier(SHORT); ;}
14806     break;
14807
14808   case 725:
14809 #line 2152 "grammar.y"
14810     { (yyval.specifier) = MkSpecifier(INT); ;}
14811     break;
14812
14813   case 726:
14814 #line 2153 "grammar.y"
14815     { (yyval.specifier) = MkSpecifier(UINT); ;}
14816     break;
14817
14818   case 727:
14819 #line 2154 "grammar.y"
14820     { (yyval.specifier) = MkSpecifier(INT64); ;}
14821     break;
14822
14823   case 728:
14824 #line 2155 "grammar.y"
14825     { (yyval.specifier) = MkSpecifier(VALIST); ;}
14826     break;
14827
14828   case 729:
14829 #line 2156 "grammar.y"
14830     { (yyval.specifier) = MkSpecifier(LONG); ;}
14831     break;
14832
14833   case 730:
14834 #line 2157 "grammar.y"
14835     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
14836     break;
14837
14838   case 731:
14839 #line 2158 "grammar.y"
14840     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
14841     break;
14842
14843   case 732:
14844 #line 2159 "grammar.y"
14845     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
14846     break;
14847
14848   case 733:
14849 #line 2160 "grammar.y"
14850     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
14851     break;
14852
14853   case 734:
14854 #line 2161 "grammar.y"
14855     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
14856     break;
14857
14858   case 738:
14859 #line 2165 "grammar.y"
14860     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[-1].exp)); ;}
14861     break;
14862
14863   case 739:
14864 #line 2166 "grammar.y"
14865     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[-1].specifier)); ;}
14866     break;
14867
14868   case 740:
14869 #line 2167 "grammar.y"
14870     { _DeclClass(0, (yyvsp[-1].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[-1].id).string)); FreeIdentifier((yyvsp[-1].id)); ;}
14871     break;
14872
14873   case 741:
14874 #line 2168 "grammar.y"
14875     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
14876     break;
14877
14878   case 742:
14879 #line 2175 "grammar.y"
14880     { (yyval.declarator) = MkStructDeclarator((yyvsp[0].declarator), null); (yyval.declarator).loc = (yyloc); ;}
14881     break;
14882
14883   case 743:
14884 #line 2177 "grammar.y"
14885     { (yyval.declarator) = MkStructDeclarator((yyvsp[-1].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[0].string); (yyval.declarator).loc = (yyloc); ;}
14886     break;
14887
14888   case 744:
14889 #line 2179 "grammar.y"
14890     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[0].exp));  (yyval.declarator).loc = (yyloc); ;}
14891     break;
14892
14893   case 745:
14894 #line 2181 "grammar.y"
14895     { (yyval.declarator) = MkStructDeclarator((yyvsp[-2].declarator), (yyvsp[0].exp));  (yyval.declarator).loc = (yyloc); ;}
14896     break;
14897
14898   case 746:
14899 #line 2183 "grammar.y"
14900     { (yyval.declarator) = MkStructDeclarator((yyvsp[-4].declarator), (yyvsp[-2].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[0].exp); (yyval.declarator).loc = (yyloc); ;}
14901     break;
14902
14903   case 747:
14904 #line 2185 "grammar.y"
14905     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[0].exp));  (yyval.declarator).loc = (yyloc); ;}
14906     break;
14907
14908   case 748:
14909 #line 2187 "grammar.y"
14910     { (yyval.declarator) = MkStructDeclarator((yyvsp[-2].declarator), (yyvsp[0].exp));  (yyval.declarator).loc = (yyloc); ;}
14911     break;
14912
14913   case 749:
14914 #line 2189 "grammar.y"
14915     { (yyval.declarator) = MkStructDeclarator((yyvsp[-4].declarator), (yyvsp[-2].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[0].exp); (yyval.declarator).loc = (yyloc); ;}
14916     break;
14917
14918   case 750:
14919 #line 2191 "grammar.y"
14920     { (yyval.declarator) = MkStructDeclarator((yyvsp[-4].declarator), (yyvsp[-2].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[0].exp); (yyval.declarator).loc = (yyloc); ;}
14921     break;
14922
14923   case 751:
14924 #line 2193 "grammar.y"
14925     { (yyval.declarator) = MkStructDeclarator((yyvsp[-4].declarator), (yyvsp[-2].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[0].exp); (yyval.declarator).loc = (yyloc); ;}
14926     break;
14927
14928   case 752:
14929 #line 2197 "grammar.y"
14930     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].declarator)); ;}
14931     break;
14932
14933   case 753:
14934 #line 2198 "grammar.y"
14935     { ListAdd((yyvsp[-2].list), (yyvsp[0].declarator)); ;}
14936     break;
14937
14938   case 754:
14939 #line 2203 "grammar.y"
14940     {
14941          (yyval.specifier) = MkStructOrUnion((yyvsp[-1].specifierType), (yyvsp[0].id), null);
14942          (yyval.specifier).addNameSpace = true;
14943          (yyval.specifier).ctx = PushContext();
14944       ;}
14945     break;
14946
14947   case 755:
14948 #line 2209 "grammar.y"
14949     {
14950          (yyval.specifier) = MkStructOrUnion((yyvsp[-1].specifierType), MkIdentifier((yyvsp[0].specifier).name), null);
14951          (yyval.specifier).ctx = PushContext();
14952          FreeSpecifier((yyvsp[0].specifier));
14953       ;}
14954     break;
14955
14956   case 756:
14957 #line 2217 "grammar.y"
14958     { (yyval.specifier).loc = (yyloc); ;}
14959     break;
14960
14961   case 757:
14962 #line 2218 "grammar.y"
14963     { (yyval.specifier) = (yyvsp[-2].specifier); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS PopContext(curContext); ;}
14964     break;
14965
14966   case 758:
14967 #line 2219 "grammar.y"
14968     { (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifierType), null, null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
14969     break;
14970
14971   case 759:
14972 #line 2223 "grammar.y"
14973     { (yyval.specifier) = (yyvsp[-2].specifier); AddStructDefinitions((yyvsp[-2].specifier), (yyvsp[0].list));  POP_DEFAULT_ACCESS PopContext(curContext); ;}
14974     break;
14975
14976   case 760:
14977 #line 2224 "grammar.y"
14978     { (yyval.specifier) = (yyvsp[-2].specifier); AddStructDefinitions((yyvsp[-2].specifier), (yyvsp[0].list));  POP_DEFAULT_ACCESS PopContext(curContext); ;}
14979     break;
14980
14981   case 761:
14982 #line 2225 "grammar.y"
14983     { (yyval.specifier) = (yyvsp[-2].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
14984     break;
14985
14986   case 762:
14987 #line 2227 "grammar.y"
14988     { (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifierType), null, (yyvsp[0].list)); POP_DEFAULT_ACCESS ;}
14989     break;
14990
14991   case 763:
14992 #line 2228 "grammar.y"
14993     { (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifierType), null, (yyvsp[0].list)); POP_DEFAULT_ACCESS ;}
14994     break;
14995
14996   case 764:
14997 #line 2229 "grammar.y"
14998     { (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifierType), null, null); POP_DEFAULT_ACCESS ;}
14999     break;
15000
15001   case 765:
15002 #line 2233 "grammar.y"
15003     { (yyval.specifier) = (yyvsp[0].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
15004     break;
15005
15006   case 766:
15007 #line 2238 "grammar.y"
15008     {
15009         (yyval.specifier) = (yyvsp[0].specifier);
15010         if(declMode)
15011         {
15012            ((yyvsp[0].specifier).addNameSpace ? DeclClassAddNameSpace : DeclClass)(globalContext.nextID++, (yyvsp[0].specifier).id.string);
15013         }
15014      ;}
15015     break;
15016
15017   case 767:
15018 #line 2246 "grammar.y"
15019     {
15020       Symbol symbol = ((yyvsp[-3].specifier).addNameSpace ? DeclClassAddNameSpace : DeclClass)(globalContext.nextID++, (yyvsp[-3].specifier).id.string);
15021       (yyval.specifier) = (yyvsp[-3].specifier);
15022       symbol.templateParams = (yyvsp[-1].list);
15023    ;}
15024     break;
15025
15026   case 768:
15027 #line 2255 "grammar.y"
15028     {
15029       (yyval.specifier) = (yyvsp[-2].specifier);
15030       (yyval.specifier).baseSpecs = (yyvsp[0].list);
15031       SetupBaseSpecs(null, (yyvsp[0].list));
15032    ;}
15033     break;
15034
15035   case 769:
15036 #line 2263 "grammar.y"
15037     { (yyval.specifier).loc = (yyloc); ;}
15038     break;
15039
15040   case 770:
15041 #line 2265 "grammar.y"
15042     { (yyval.specifier) = (yyvsp[-2].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
15043     break;
15044
15045   case 771:
15046 #line 2266 "grammar.y"
15047     { POP_DEFAULT_ACCESS PopContext(curContext); ;}
15048     break;
15049
15050   case 772:
15051 #line 2267 "grammar.y"
15052     { (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifierType), null, null); POP_DEFAULT_ACCESS ;}
15053     break;
15054
15055   case 773:
15056 #line 2272 "grammar.y"
15057     {
15058       (yyval.specifier) = (yyvsp[-2].specifier);
15059       (yyval.specifier).definitions = (yyvsp[0].list);
15060       POP_DEFAULT_ACCESS
15061       PopContext(curContext);
15062    ;}
15063     break;
15064
15065   case 774:
15066 #line 2279 "grammar.y"
15067     {
15068       (yyval.specifier) = (yyvsp[-2].specifier);
15069       (yyval.specifier).definitions = (yyvsp[0].list);
15070       POP_DEFAULT_ACCESS
15071       PopContext(curContext);
15072    ;}
15073     break;
15074
15075   case 775:
15076 #line 2286 "grammar.y"
15077     { (yyval.specifier) = (yyvsp[-2].specifier); POP_DEFAULT_ACCESS PopContext(curContext);;}
15078     break;
15079
15080   case 776:
15081 #line 2289 "grammar.y"
15082     {
15083         PopContext(curContext);
15084         if(!declMode)
15085         {
15086            (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifier).type, (yyvsp[-2].specifier).id, (yyvsp[0].list));
15087            (yyvsp[-2].specifier).id = null;
15088            FreeSpecifier((yyvsp[-2].specifier));
15089         }
15090         else
15091            (yyval.specifier).definitions = (yyvsp[0].list);
15092         POP_DEFAULT_ACCESS
15093      ;}
15094     break;
15095
15096   case 777:
15097 #line 2302 "grammar.y"
15098     {
15099         PopContext(curContext);
15100
15101         if(!declMode)
15102         {
15103            (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifier).type, (yyvsp[-2].specifier).id, (yyvsp[0].list));
15104            (yyvsp[-2].specifier).id = null;
15105            FreeSpecifier((yyvsp[-2].specifier));
15106         }
15107         else
15108            (yyval.specifier).definitions = (yyvsp[0].list);
15109         POP_DEFAULT_ACCESS
15110      ;}
15111     break;
15112
15113   case 778:
15114 #line 2316 "grammar.y"
15115     { POP_DEFAULT_ACCESS PopContext(curContext); ;}
15116     break;
15117
15118   case 779:
15119 #line 2319 "grammar.y"
15120     { (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifierType), null, (yyvsp[0].list)); POP_DEFAULT_ACCESS  ;}
15121     break;
15122
15123   case 780:
15124 #line 2321 "grammar.y"
15125     { (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifierType), null, (yyvsp[0].list)); POP_DEFAULT_ACCESS ;}
15126     break;
15127
15128   case 781:
15129 #line 2323 "grammar.y"
15130     { (yyval.specifier) = MkStructOrUnion((yyvsp[-2].specifierType), null, null); POP_DEFAULT_ACCESS ;}
15131     break;
15132
15133   case 782:
15134 #line 2327 "grammar.y"
15135     { (yyval.specifierType) = structSpecifier; memberAccessStack[++defaultMemberAccess] = publicAccess; ;}
15136     break;
15137
15138   case 783:
15139 #line 2328 "grammar.y"
15140     { (yyval.specifierType) = unionSpecifier; memberAccessStack[++defaultMemberAccess] = publicAccess; ;}
15141     break;
15142
15143   case 784:
15144 #line 2332 "grammar.y"
15145     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15146     break;
15147
15148   case 785:
15149 #line 2333 "grammar.y"
15150     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15151     break;
15152
15153   case 786:
15154 #line 2334 "grammar.y"
15155     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15156     break;
15157
15158   case 787:
15159 #line 2335 "grammar.y"
15160     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15161     break;
15162
15163   case 788:
15164 #line 2336 "grammar.y"
15165     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15166     break;
15167
15168   case 789:
15169 #line 2337 "grammar.y"
15170     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15171     break;
15172
15173   case 790:
15174 #line 2338 "grammar.y"
15175     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15176     break;
15177
15178   case 791:
15179 #line 2339 "grammar.y"
15180     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15181     break;
15182
15183   case 792:
15184 #line 2343 "grammar.y"
15185     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15186     break;
15187
15188   case 793:
15189 #line 2344 "grammar.y"
15190     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15191     break;
15192
15193   case 794:
15194 #line 2345 "grammar.y"
15195     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15196     break;
15197
15198   case 795:
15199 #line 2346 "grammar.y"
15200     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15201     break;
15202
15203   case 796:
15204 #line 2347 "grammar.y"
15205     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15206     break;
15207
15208   case 797:
15209 #line 2348 "grammar.y"
15210     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15211     break;
15212
15213   case 798:
15214 #line 2349 "grammar.y"
15215     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15216     break;
15217
15218   case 799:
15219 #line 2350 "grammar.y"
15220     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15221     break;
15222
15223   case 800:
15224 #line 2351 "grammar.y"
15225     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15226     break;
15227
15228   case 801:
15229 #line 2352 "grammar.y"
15230     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15231     break;
15232
15233   case 802:
15234 #line 2356 "grammar.y"
15235     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15236     break;
15237
15238   case 803:
15239 #line 2357 "grammar.y"
15240     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15241     break;
15242
15243   case 804:
15244 #line 2358 "grammar.y"
15245     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15246     break;
15247
15248   case 805:
15249 #line 2359 "grammar.y"
15250     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15251     break;
15252
15253   case 806:
15254 #line 2360 "grammar.y"
15255     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15256     break;
15257
15258   case 807:
15259 #line 2361 "grammar.y"
15260     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15261     break;
15262
15263   case 808:
15264 #line 2362 "grammar.y"
15265     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15266     break;
15267
15268   case 809:
15269 #line 2363 "grammar.y"
15270     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15271     break;
15272
15273   case 810:
15274 #line 2364 "grammar.y"
15275     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15276     break;
15277
15278   case 811:
15279 #line 2365 "grammar.y"
15280     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15281     break;
15282
15283   case 812:
15284 #line 2369 "grammar.y"
15285     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15286     break;
15287
15288   case 813:
15289 #line 2370 "grammar.y"
15290     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15291     break;
15292
15293   case 814:
15294 #line 2371 "grammar.y"
15295     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15296     break;
15297
15298   case 815:
15299 #line 2372 "grammar.y"
15300     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15301     break;
15302
15303   case 816:
15304 #line 2373 "grammar.y"
15305     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15306     break;
15307
15308   case 817:
15309 #line 2374 "grammar.y"
15310     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15311     break;
15312
15313   case 818:
15314 #line 2375 "grammar.y"
15315     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15316     break;
15317
15318   case 819:
15319 #line 2376 "grammar.y"
15320     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15321     break;
15322
15323   case 820:
15324 #line 2377 "grammar.y"
15325     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15326     break;
15327
15328   case 821:
15329 #line 2378 "grammar.y"
15330     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15331     break;
15332
15333   case 822:
15334 #line 2379 "grammar.y"
15335     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15336     break;
15337
15338   case 823:
15339 #line 2380 "grammar.y"
15340     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15341     break;
15342
15343   case 824:
15344 #line 2384 "grammar.y"
15345     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15346     break;
15347
15348   case 825:
15349 #line 2385 "grammar.y"
15350     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15351     break;
15352
15353   case 826:
15354 #line 2386 "grammar.y"
15355     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15356     break;
15357
15358   case 827:
15359 #line 2387 "grammar.y"
15360     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15361     break;
15362
15363   case 828:
15364 #line 2388 "grammar.y"
15365     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15366     break;
15367
15368   case 829:
15369 #line 2389 "grammar.y"
15370     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15371     break;
15372
15373   case 830:
15374 #line 2390 "grammar.y"
15375     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15376     break;
15377
15378   case 831:
15379 #line 2391 "grammar.y"
15380     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15381     break;
15382
15383   case 832:
15384 #line 2392 "grammar.y"
15385     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15386     break;
15387
15388   case 833:
15389 #line 2393 "grammar.y"
15390     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15391     break;
15392
15393   case 834:
15394 #line 2397 "grammar.y"
15395     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15396     break;
15397
15398   case 835:
15399 #line 2398 "grammar.y"
15400     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15401     break;
15402
15403   case 836:
15404 #line 2402 "grammar.y"
15405     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifier(PRIVATE)); ;}
15406     break;
15407
15408   case 837:
15409 #line 2403 "grammar.y"
15410     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifier(PUBLIC)); ;}
15411     break;
15412
15413   case 838:
15414 #line 2404 "grammar.y"
15415     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15416     break;
15417
15418   case 839:
15419 #line 2405 "grammar.y"
15420     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15421     break;
15422
15423   case 840:
15424 #line 2406 "grammar.y"
15425     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15426     break;
15427
15428   case 841:
15429 #line 2407 "grammar.y"
15430     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15431     break;
15432
15433   case 842:
15434 #line 2408 "grammar.y"
15435     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15436     break;
15437
15438   case 843:
15439 #line 2409 "grammar.y"
15440     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15441     break;
15442
15443   case 844:
15444 #line 2411 "grammar.y"
15445     { _DeclClass(0, (yyvsp[0].id).string); (yyval.list) = MkListOne(MkSpecifierName((yyvsp[0].id).string)); FreeIdentifier((yyvsp[0].id)); ;}
15446     break;
15447
15448   case 845:
15449 #line 2412 "grammar.y"
15450     { _DeclClass(0, (yyvsp[0].id).string); ListAdd((yyvsp[-1].list), MkSpecifierName((yyvsp[0].id).string)); FreeIdentifier((yyvsp[0].id)); ;}
15451     break;
15452
15453   case 846:
15454 #line 2415 "grammar.y"
15455     {
15456          // if($1._class && !$1._class.name)
15457          if((yyvsp[-3].id)._class)
15458          {
15459             char name[1024];
15460             strcpy(name,  (yyvsp[-3].id)._class.name ? (yyvsp[-3].id)._class.name : "");
15461             strcat(name, "::");
15462             strcat(name, (yyvsp[-3].id).string);
15463             _DeclClass(0, name);
15464          }
15465          else
15466             _DeclClass(0, (yyvsp[-3].id).string);
15467
15468          (yyval.list) = MkList();
15469          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[-3].id).string, (yyvsp[-1].list)));
15470          FreeIdentifier((yyvsp[-3].id));
15471       ;}
15472     break;
15473
15474   case 847:
15475 #line 2433 "grammar.y"
15476     {
15477          if((yyvsp[-3].id)._class && !(yyvsp[-3].id)._class.name)
15478          {
15479             char name[1024];
15480             strcpy(name, "::");
15481             strcat(name, (yyvsp[-3].id).string);
15482             _DeclClass(0, name);
15483          }
15484          else
15485             _DeclClass(0, (yyvsp[-3].id).string);
15486          ListAdd((yyvsp[-4].list), MkSpecifierNameArgs((yyvsp[-3].id).string, (yyvsp[-1].list)));
15487          FreeIdentifier((yyvsp[-3].id));
15488       ;}
15489     break;
15490
15491   case 849:
15492 #line 2450 "grammar.y"
15493     { (yyval.list) = MkListOne(MkStructOrUnion((yyvsp[0].specifierType), null, null)); POP_DEFAULT_ACCESS ;}
15494     break;
15495
15496   case 850:
15497 #line 2454 "grammar.y"
15498     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15499     break;
15500
15501   case 851:
15502 #line 2455 "grammar.y"
15503     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15504     break;
15505
15506   case 852:
15507 #line 2456 "grammar.y"
15508     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15509     break;
15510
15511   case 853:
15512 #line 2457 "grammar.y"
15513     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15514     break;
15515
15516   case 854:
15517 #line 2458 "grammar.y"
15518     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15519     break;
15520
15521   case 855:
15522 #line 2459 "grammar.y"
15523     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15524     break;
15525
15526   case 856:
15527 #line 2460 "grammar.y"
15528     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[0].id).string)); FreeIdentifier((yyvsp[0].id));}
15529     break;
15530
15531   case 857:
15532 #line 2461 "grammar.y"
15533     { ListAdd((yyvsp[-1].list), MkSpecifierName((yyvsp[0].id).string)); FreeIdentifier((yyvsp[0].id));}
15534     break;
15535
15536   case 858:
15537 #line 2463 "grammar.y"
15538     {
15539          // if($1._class && !$1._class.name)
15540          if((yyvsp[-3].id)._class)
15541          {
15542             char name[1024];
15543             strcpy(name,  (yyvsp[-3].id)._class.name ? (yyvsp[-3].id)._class.name : "");
15544             strcat(name, "::");
15545             strcat(name, (yyvsp[-3].id).string);
15546             _DeclClass(0, name);
15547          }
15548          else
15549             _DeclClass(0, (yyvsp[-3].id).string);
15550
15551          (yyval.list) = MkList();
15552          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[-3].id).string, (yyvsp[-1].list)));
15553          FreeIdentifier((yyvsp[-3].id));
15554       ;}
15555     break;
15556
15557   case 859:
15558 #line 2481 "grammar.y"
15559     {
15560          if((yyvsp[-3].id)._class && !(yyvsp[-3].id)._class.name)
15561          {
15562             char name[1024];
15563             strcpy(name, "::");
15564             strcat(name, (yyvsp[-3].id).string);
15565             _DeclClass(0, name);
15566          }
15567          else
15568             _DeclClass(0, (yyvsp[-3].id).string);
15569          ListAdd((yyvsp[-4].list), MkSpecifierNameArgs((yyvsp[-3].id).string, (yyvsp[-1].list)));
15570          FreeIdentifier((yyvsp[-3].id));
15571       ;}
15572     break;
15573
15574   case 860:
15575 #line 2497 "grammar.y"
15576     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15577     break;
15578
15579   case 861:
15580 #line 2498 "grammar.y"
15581     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15582     break;
15583
15584   case 862:
15585 #line 2499 "grammar.y"
15586     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15587     break;
15588
15589   case 863:
15590 #line 2500 "grammar.y"
15591     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15592     break;
15593
15594   case 864:
15595 #line 2501 "grammar.y"
15596     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15597     break;
15598
15599   case 865:
15600 #line 2502 "grammar.y"
15601     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15602     break;
15603
15604   case 866:
15605 #line 2503 "grammar.y"
15606     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15607     break;
15608
15609   case 867:
15610 #line 2504 "grammar.y"
15611     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15612     break;
15613
15614   case 868:
15615 #line 2505 "grammar.y"
15616     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15617     break;
15618
15619   case 869:
15620 #line 2506 "grammar.y"
15621     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15622     break;
15623
15624   case 870:
15625 #line 2507 "grammar.y"
15626     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[0].id).string)); FreeIdentifier((yyvsp[0].id));}
15627     break;
15628
15629   case 871:
15630 #line 2508 "grammar.y"
15631     { ListAdd((yyvsp[-1].list), MkSpecifierName((yyvsp[0].id).string)); FreeIdentifier((yyvsp[0].id));}
15632     break;
15633
15634   case 872:
15635 #line 2510 "grammar.y"
15636     {
15637          // if($1._class && !$1._class.name)
15638          if((yyvsp[-3].id)._class)
15639          {
15640             char name[1024];
15641             strcpy(name,  (yyvsp[-3].id)._class.name ? (yyvsp[-3].id)._class.name : "");
15642             strcat(name, "::");
15643             strcat(name, (yyvsp[-3].id).string);
15644             _DeclClass(0, name);
15645          }
15646          else
15647             _DeclClass(0, (yyvsp[-3].id).string);
15648
15649          (yyval.list) = MkList();
15650          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[-3].id).string, (yyvsp[-1].list)));
15651          FreeIdentifier((yyvsp[-3].id));
15652       ;}
15653     break;
15654
15655   case 873:
15656 #line 2528 "grammar.y"
15657     {
15658          if((yyvsp[-3].id)._class && !(yyvsp[-3].id)._class.name)
15659          {
15660             char name[1024];
15661             strcpy(name, "::");
15662             strcat(name, (yyvsp[-3].id).string);
15663             _DeclClass(0, name);
15664          }
15665          else
15666             _DeclClass(0, (yyvsp[-3].id).string);
15667          ListAdd((yyvsp[-4].list), MkSpecifierNameArgs((yyvsp[-3].id).string, (yyvsp[-1].list)));
15668          FreeIdentifier((yyvsp[-3].id));
15669       ;}
15670     break;
15671
15672   case 874:
15673 #line 2544 "grammar.y"
15674     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15675     break;
15676
15677   case 875:
15678 #line 2545 "grammar.y"
15679     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15680     break;
15681
15682   case 876:
15683 #line 2546 "grammar.y"
15684     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15685     break;
15686
15687   case 877:
15688 #line 2547 "grammar.y"
15689     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15690     break;
15691
15692   case 878:
15693 #line 2548 "grammar.y"
15694     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15695     break;
15696
15697   case 879:
15698 #line 2549 "grammar.y"
15699     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15700     break;
15701
15702   case 880:
15703 #line 2550 "grammar.y"
15704     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15705     break;
15706
15707   case 881:
15708 #line 2551 "grammar.y"
15709     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15710     break;
15711
15712   case 882:
15713 #line 2552 "grammar.y"
15714     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].specifier)); ;}
15715     break;
15716
15717   case 883:
15718 #line 2553 "grammar.y"
15719     { ListAdd((yyvsp[-1].list), (yyvsp[0].specifier)); ;}
15720     break;
15721
15722   case 884:
15723 #line 2554 "grammar.y"
15724     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[0].id).string)); FreeIdentifier((yyvsp[0].id));}
15725     break;
15726
15727   case 885:
15728 #line 2555 "grammar.y"
15729     { ListAdd((yyvsp[-1].list), MkSpecifierName((yyvsp[0].id).string)); FreeIdentifier((yyvsp[0].id));}
15730     break;
15731
15732   case 886:
15733 #line 2557 "grammar.y"
15734     {
15735          // if($1._class && !$1._class.name)
15736          if((yyvsp[-3].id)._class)
15737          {
15738             char name[1024];
15739             strcpy(name,  (yyvsp[-3].id)._class.name ? (yyvsp[-3].id)._class.name : "");
15740             strcat(name, "::");
15741             strcat(name, (yyvsp[-3].id).string);
15742             _DeclClass(0, name);
15743          }
15744          else
15745             _DeclClass(0, (yyvsp[-3].id).string);
15746
15747          (yyval.list) = MkList();
15748          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[-3].id).string, (yyvsp[-1].list)));
15749          FreeIdentifier((yyvsp[-3].id));
15750       ;}
15751     break;
15752
15753   case 887:
15754 #line 2575 "grammar.y"
15755     {
15756          if((yyvsp[-3].id)._class && !(yyvsp[-3].id)._class.name)
15757          {
15758             char name[1024];
15759             strcpy(name, "::");
15760             strcat(name, (yyvsp[-3].id).string);
15761             _DeclClass(0, name);
15762          }
15763          else
15764             _DeclClass(0, (yyvsp[-3].id).string);
15765          ListAdd((yyvsp[-4].list), MkSpecifierNameArgs((yyvsp[-3].id).string, (yyvsp[-1].list)));
15766          FreeIdentifier((yyvsp[-3].id));
15767       ;}
15768     break;
15769
15770   case 888:
15771 #line 2591 "grammar.y"
15772     { ListAdd((yyvsp[-2].list), null); ;}
15773     break;
15774
15775   case 889:
15776 #line 2592 "grammar.y"
15777     { ListAdd((yyvsp[-2].list), null); ;}
15778     break;
15779
15780   case 890:
15781 #line 2596 "grammar.y"
15782     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[0].id)))); ;}
15783     break;
15784
15785   case 891:
15786 #line 2597 "grammar.y"
15787     { ListAdd((yyvsp[-2].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[0].id)))); ;}
15788     break;
15789
15790   case 892:
15791 #line 2598 "grammar.y"
15792     { ListAdd((yyvsp[-2].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[0].id)))); ;}
15793     break;
15794
15795   case 893:
15796 #line 2599 "grammar.y"
15797     { ListAdd((yyvsp[-2].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[0].id)))); ;}
15798     break;
15799
15800   case 894:
15801 #line 2600 "grammar.y"
15802     { ListAdd((yyvsp[-2].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[0].id)))); ;}
15803     break;
15804
15805   case 895:
15806 #line 2604 "grammar.y"
15807     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[0].id)); ;}
15808     break;
15809
15810   case 896:
15811 #line 2605 "grammar.y"
15812     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[-1].declarator)); ;}
15813     break;
15814
15815   case 897:
15816 #line 2606 "grammar.y"
15817     { (yyval.declarator) = MkDeclaratorArray((yyvsp[-3].declarator), (yyvsp[-1].exp)); ;}
15818     break;
15819
15820   case 898:
15821 #line 2607 "grammar.y"
15822     { (yyval.declarator) = MkDeclaratorArray((yyvsp[-3].declarator), (yyvsp[-1].exp)); ;}
15823     break;
15824
15825   case 899:
15826 #line 2608 "grammar.y"
15827     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[-3].declarator), (yyvsp[-1].specifier)); ;}
15828     break;
15829
15830   case 900:
15831 #line 2609 "grammar.y"
15832     { (yyval.declarator) = MkDeclaratorArray((yyvsp[-2].declarator), null); ;}
15833     break;
15834
15835   case 902:
15836 #line 2617 "grammar.y"
15837     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-2].declarator), (yyvsp[-1].list)); ;}
15838     break;
15839
15840   case 903:
15841 #line 2618 "grammar.y"
15842     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-2].declarator), (yyvsp[-1].list)); ;}
15843     break;
15844
15845   case 904:
15846 #line 2619 "grammar.y"
15847     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-2].declarator), (yyvsp[-1].list)); ;}
15848     break;
15849
15850   case 905:
15851 #line 2620 "grammar.y"
15852     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-2].declarator), (yyvsp[-1].list)); ;}
15853     break;
15854
15855   case 906:
15856 #line 2621 "grammar.y"
15857     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-1].declarator), null); ;}
15858     break;
15859
15860   case 907:
15861 #line 2627 "grammar.y"
15862     { 
15863          (yyval.declarator) = MkDeclaratorFunction((yyvsp[-1].declarator), null); 
15864          fileInput.Seek((yylsp[-1]).end.pos, start); 
15865          yyclearin;
15866          resetScannerPos(&(yylsp[-1]).end);
15867          (yyloc).start = (yylsp[-1]).start;
15868          (yyloc).end = (yylsp[-1]).end;
15869       ;}
15870     break;
15871
15872   case 908:
15873 #line 2636 "grammar.y"
15874     { 
15875          (yyval.declarator) = MkDeclaratorFunction((yyvsp[-1].declarator), null); 
15876          fileInput.Seek((yylsp[-1]).end.pos, start); 
15877          yyclearin;
15878          resetScannerPos(&(yylsp[-1]).end);
15879          (yyloc).start = (yylsp[-1]).start;
15880          (yyloc).end = (yylsp[-1]).end;
15881       ;}
15882     break;
15883
15884   case 909:
15885 #line 2645 "grammar.y"
15886     { 
15887          (yyval.declarator) = MkDeclaratorFunction((yyvsp[-2].declarator), null); 
15888          fileInput.Seek((yylsp[-2]).end.pos, start); 
15889          yyclearin;
15890          resetScannerPos(&(yylsp[-2]).end);
15891          (yyloc).start = (yylsp[-2]).start;
15892          (yyloc).end = (yylsp[-2]).end;
15893       ;}
15894     break;
15895
15896   case 910:
15897 #line 2654 "grammar.y"
15898     { 
15899          (yyval.declarator) = MkDeclaratorFunction((yyvsp[-3].declarator), null); 
15900          fileInput.Seek((yylsp[-3]).end.pos, start); 
15901          yyclearin;
15902          resetScannerPos(&(yylsp[-3]).end);
15903          (yyloc).start = (yylsp[-3]).start;
15904          (yyloc).end = (yylsp[-3]).end;
15905          FreeIdentifier((yyvsp[-1].id));
15906       ;}
15907     break;
15908
15909   case 913:
15910 #line 2669 "grammar.y"
15911     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator)); ;}
15912     break;
15913
15914   case 914:
15915 #line 2671 "grammar.y"
15916     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator)); ;}
15917     break;
15918
15919   case 915:
15920 #line 2715 "grammar.y"
15921     { (yyval.string) = CopyString(yytext); ;}
15922     break;
15923
15924   case 917:
15925 #line 2718 "grammar.y"
15926     {
15927          char temp[1024];
15928          strcpy(temp, "__asm__(");
15929          strcat(temp, (yyvsp[-1].string));
15930          strcat(temp, ")");
15931          (yyval.string) = CopyString(temp);
15932          delete (yyvsp[-1].string);
15933       ;}
15934     break;
15935
15936   case 918:
15937 #line 2729 "grammar.y"
15938     { (yyval.string) = CopyString(yytext); ;}
15939     break;
15940
15941   case 919:
15942 #line 2735 "grammar.y"
15943     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[-1].declarator)); ;}
15944     break;
15945
15946   case 920:
15947 #line 2737 "grammar.y"
15948     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
15949     break;
15950
15951   case 921:
15952 #line 2739 "grammar.y"
15953     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[-1].exp)); ;}
15954     break;
15955
15956   case 922:
15957 #line 2741 "grammar.y"
15958     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[-1].exp)); ;}
15959     break;
15960
15961   case 923:
15962 #line 2743 "grammar.y"
15963     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[-1].specifier)); ;}
15964     break;
15965
15966   case 924:
15967 #line 2745 "grammar.y"
15968     { (yyval.declarator) = MkDeclaratorArray((yyvsp[-2].declarator), null); ;}
15969     break;
15970
15971   case 925:
15972 #line 2747 "grammar.y"
15973     { (yyval.declarator) = MkDeclaratorArray((yyvsp[-3].declarator), (yyvsp[-1].exp)); ;}
15974     break;
15975
15976   case 926:
15977 #line 2749 "grammar.y"
15978     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[-3].declarator), (yyvsp[-1].specifier)); ;}
15979     break;
15980
15981   case 927:
15982 #line 2751 "grammar.y"
15983     { (yyval.declarator) = MkDeclaratorArray((yyvsp[-3].declarator), (yyvsp[-1].exp)); ;}
15984     break;
15985
15986   case 928:
15987 #line 2753 "grammar.y"
15988     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
15989     break;
15990
15991   case 929:
15992 #line 2755 "grammar.y"
15993     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[-1].list)); ;}
15994     break;
15995
15996   case 930:
15997 #line 2757 "grammar.y"
15998     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[-1].list)); ;}
15999     break;
16000
16001   case 931:
16002 #line 2759 "grammar.y"
16003     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-2].declarator), null); ;}
16004     break;
16005
16006   case 932:
16007 #line 2761 "grammar.y"
16008     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-3].declarator), (yyvsp[-1].list)); ;}
16009     break;
16010
16011   case 933:
16012 #line 2763 "grammar.y"
16013     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-3].declarator), (yyvsp[-1].list)); ;}
16014     break;
16015
16016   case 934:
16017 #line 2768 "grammar.y"
16018     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[-1].declarator)); ;}
16019     break;
16020
16021   case 935:
16022 #line 2770 "grammar.y"
16023     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
16024     break;
16025
16026   case 936:
16027 #line 2772 "grammar.y"
16028     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[-1].list)); ;}
16029     break;
16030
16031   case 937:
16032 #line 2774 "grammar.y"
16033     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[-1].list)); ;}
16034     break;
16035
16036   case 938:
16037 #line 2776 "grammar.y"
16038     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-2].declarator), null); ;}
16039     break;
16040
16041   case 939:
16042 #line 2778 "grammar.y"
16043     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-3].declarator), (yyvsp[-1].list)); ;}
16044     break;
16045
16046   case 940:
16047 #line 2780 "grammar.y"
16048     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[-3].declarator), (yyvsp[-1].list)); ;}
16049     break;
16050
16051   case 941:
16052 #line 2784 "grammar.y"
16053     { (yyval.pointer) = MkPointer(null, null); ;}
16054     break;
16055
16056   case 942:
16057 #line 2785 "grammar.y"
16058     { (yyval.pointer) = MkPointer((yyvsp[0].list), null); ;}
16059     break;
16060
16061   case 943:
16062 #line 2786 "grammar.y"
16063     { (yyval.pointer) = MkPointer(null, (yyvsp[0].pointer)); ;}
16064     break;
16065
16066   case 944:
16067 #line 2787 "grammar.y"
16068     { (yyval.pointer) = MkPointer((yyvsp[-1].list), (yyvsp[0].pointer)); ;}
16069     break;
16070
16071   case 945:
16072 #line 2791 "grammar.y"
16073     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[0].pointer), null); ;}
16074     break;
16075
16076   case 947:
16077 #line 2793 "grammar.y"
16078     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator)); ;}
16079     break;
16080
16081   case 948:
16082 #line 2794 "grammar.y"
16083     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-1].string), MkDeclaratorPointer((yyvsp[0].pointer), null)); ;}
16084     break;
16085
16086   case 949:
16087 #line 2795 "grammar.y"
16088     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator)); ;}
16089     break;
16090
16091   case 950:
16092 #line 2796 "grammar.y"
16093     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-2].string), MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator))); ;}
16094     break;
16095
16096   case 951:
16097 #line 2800 "grammar.y"
16098     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[0].pointer), null); ;}
16099     break;
16100
16101   case 953:
16102 #line 2802 "grammar.y"
16103     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator)); ;}
16104     break;
16105
16106   case 954:
16107 #line 2803 "grammar.y"
16108     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-1].string), MkDeclaratorPointer((yyvsp[0].pointer), null)); ;}
16109     break;
16110
16111   case 955:
16112 #line 2804 "grammar.y"
16113     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator)); ;}
16114     break;
16115
16116   case 956:
16117 #line 2805 "grammar.y"
16118     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-2].string), MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator))); ;}
16119     break;
16120
16121   case 958:
16122 #line 2811 "grammar.y"
16123     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator)); ;}
16124     break;
16125
16126   case 959:
16127 #line 2813 "grammar.y"
16128     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-2].string), MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator))); ;}
16129     break;
16130
16131   case 960:
16132 #line 2815 "grammar.y"
16133     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[0].string), (yyvsp[-1].declarator)); ;}
16134     break;
16135
16136   case 962:
16137 #line 2820 "grammar.y"
16138     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator)); ;}
16139     break;
16140
16141   case 963:
16142 #line 2821 "grammar.y"
16143     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator)); ;}
16144     break;
16145
16146   case 964:
16147 #line 2822 "grammar.y"
16148     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-2].string), MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator))); ;}
16149     break;
16150
16151   case 965:
16152 #line 2823 "grammar.y"
16153     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[-2].pointer), MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator))); ;}
16154     break;
16155
16156   case 967:
16157 #line 2828 "grammar.y"
16158     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator)); ;}
16159     break;
16160
16161   case 968:
16162 #line 2829 "grammar.y"
16163     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator)); ;}
16164     break;
16165
16166   case 969:
16167 #line 2830 "grammar.y"
16168     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-2].string), MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator))); ;}
16169     break;
16170
16171   case 970:
16172 #line 2831 "grammar.y"
16173     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[-2].pointer), MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator))); ;}
16174     break;
16175
16176   case 972:
16177 #line 2836 "grammar.y"
16178     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator)); ;}
16179     break;
16180
16181   case 973:
16182 #line 2837 "grammar.y"
16183     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator)); ;}
16184     break;
16185
16186   case 974:
16187 #line 2838 "grammar.y"
16188     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[-2].string), MkDeclaratorPointer((yyvsp[-1].pointer), (yyvsp[0].declarator))); ;}
16189     break;
16190
16191   case 975:
16192 #line 2839 "grammar.y"
16193     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[-2].pointer), MkDeclaratorExtended((yyvsp[-1].string), (yyvsp[0].declarator))); ;}
16194     break;
16195
16196   case 976:
16197 #line 2843 "grammar.y"
16198     { (yyval.initializer) = MkInitializerAssignment((yyvsp[0].exp)); (yyval.initializer).loc = (yyloc); ;}
16199     break;
16200
16201   case 977:
16202 #line 2844 "grammar.y"
16203     { (yyval.initializer) = MkInitializerList((yyvsp[-1].list)); (yyval.initializer).loc = (yyloc); ;}
16204     break;
16205
16206   case 978:
16207 #line 2846 "grammar.y"
16208     { 
16209          (yyval.initializer) = MkInitializerList((yyvsp[-2].list)); 
16210          (yyval.initializer).loc = (yyloc); 
16211
16212          {
16213             Expression exp = MkExpDummy();
16214             Initializer init = MkInitializerAssignment(exp);
16215             init.loc = (yylsp[-1]);
16216             exp.loc = (yylsp[-1]);
16217             ListAdd((yyvsp[-2].list), init); 
16218          }
16219       ;}
16220     break;
16221
16222   case 979:
16223 #line 2861 "grammar.y"
16224     { (yyval.initializer) = MkInitializerAssignment((yyvsp[0].exp)); (yyval.initializer).loc = (yyloc); ;}
16225     break;
16226
16227   case 980:
16228 #line 2862 "grammar.y"
16229     { (yyval.initializer) = MkInitializerList((yyvsp[-2].list)); (yyval.initializer).loc = (yyloc); ;}
16230     break;
16231
16232   case 981:
16233 #line 2863 "grammar.y"
16234     { (yyval.initializer) = MkInitializerList((yyvsp[0].list)); (yyval.initializer).loc = (yyloc); ;}
16235     break;
16236
16237   case 982:
16238 #line 2865 "grammar.y"
16239     { 
16240          (yyval.initializer) = MkInitializerList((yyvsp[-3].list)); 
16241          (yyval.initializer).loc = (yyloc);
16242
16243          {
16244             Expression exp = MkExpDummy();
16245             Initializer init = MkInitializerAssignment(exp);
16246             init.loc = (yylsp[-2]);
16247             exp.loc = (yylsp[-2]);
16248             ListAdd((yyvsp[-3].list), init); 
16249          }
16250       ;}
16251     break;
16252
16253   case 983:
16254 #line 2878 "grammar.y"
16255     { 
16256          (yyval.initializer) = MkInitializerList((yyvsp[-1].list)); 
16257          (yyval.initializer).loc = (yyloc);
16258
16259          {
16260             Expression exp = MkExpDummy();
16261             Initializer init = MkInitializerAssignment(exp);
16262             init.loc = (yylsp[0]);
16263             exp.loc = (yylsp[0]);
16264             ListAdd((yyvsp[-1].list), init); 
16265          }
16266       ;}
16267     break;
16268
16269   case 984:
16270 #line 2893 "grammar.y"
16271     { (yyval.initializer) = MkInitializerAssignment((yyvsp[0].exp)); (yyval.initializer).loc = (yyloc); ;}
16272     break;
16273
16274   case 985:
16275 #line 2895 "grammar.y"
16276     { (yyval.initializer) = MkInitializerAssignment((yyvsp[0].exp)); (yyval.initializer).loc = (yyloc); ;}
16277     break;
16278
16279   case 986:
16280 #line 2899 "grammar.y"
16281     { (yyval.initializer) = MkInitializerAssignment((yyvsp[0].exp)); (yyval.initializer).loc = (yyloc); ;}
16282     break;
16283
16284   case 987:
16285 #line 2900 "grammar.y"
16286     { (yyval.initializer) = MkInitializerAssignment((yyvsp[0].exp)); (yyval.initializer).loc = (yyloc); ;}
16287     break;
16288
16289   case 988:
16290 #line 2904 "grammar.y"
16291     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].initializer)); ;}
16292     break;
16293
16294   case 989:
16295 #line 2905 "grammar.y"
16296     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].initializer)); ;}
16297     break;
16298
16299   case 990:
16300 #line 2906 "grammar.y"
16301     { ListAdd((yyvsp[-2].list), (yyvsp[0].initializer)); ;}
16302     break;
16303
16304   case 991:
16305 #line 2907 "grammar.y"
16306     { ListAdd((yyvsp[-2].list), (yyvsp[0].initializer)); ;}
16307     break;
16308
16309   case 992:
16310 #line 2910 "grammar.y"
16311     { ListAdd((yyvsp[-1].list), (yyvsp[0].initializer)); ;}
16312     break;
16313
16314   case 993:
16315 #line 2911 "grammar.y"
16316     { ListAdd((yyvsp[-1].list), (yyvsp[0].initializer)); ;}
16317     break;
16318
16319   case 994:
16320 #line 2915 "grammar.y"
16321     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[0].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
16322     break;
16323
16324   case 995:
16325 #line 2916 "grammar.y"
16326     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[-2].declarator), (yyvsp[0].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[-1]).end; ;}
16327     break;
16328
16329   case 996:
16330 #line 2920 "grammar.y"
16331     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[-1].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
16332     break;
16333
16334   case 997:
16335 #line 2921 "grammar.y"
16336     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[-2].declarator), MkInitializerAssignment(MkExpDummy())); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc = (yylsp[-1]); (yyval.initDeclarator).initializer.exp.loc = (yylsp[-1]); ;}
16337     break;
16338
16339   case 998:
16340 #line 2922 "grammar.y"
16341     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[-2].declarator), (yyvsp[0].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[-1]).end; ;}
16342     break;
16343
16344   case 999:
16345 #line 2926 "grammar.y"
16346     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].initDeclarator)); ;}
16347     break;
16348
16349   case 1000:
16350 #line 2927 "grammar.y"
16351     { ListAdd((yyvsp[-2].list), (yyvsp[0].initDeclarator)); ;}
16352     break;
16353
16354   case 1001:
16355 #line 2928 "grammar.y"
16356     { ListAdd((yyvsp[-2].list), (yyvsp[0].initDeclarator)); ;}
16357     break;
16358
16359   case 1002:
16360 #line 2932 "grammar.y"
16361     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].initDeclarator)); ;}
16362     break;
16363
16364   case 1003:
16365 #line 2933 "grammar.y"
16366     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[-1].initDeclarator)); ;}
16367     break;
16368
16369   case 1004:
16370 #line 2934 "grammar.y"
16371     { ListAdd((yyvsp[-2].list), (yyvsp[0].initDeclarator)); ;}
16372     break;
16373
16374   case 1005:
16375 #line 2935 "grammar.y"
16376     { ListAdd((yyvsp[-2].list), (yyvsp[0].initDeclarator)); ;}
16377     break;
16378
16379   case 1006:
16380 #line 2939 "grammar.y"
16381     { (yyval.typeName) = MkTypeName((yyvsp[0].list), null); ;}
16382     break;
16383
16384   case 1007:
16385 #line 2940 "grammar.y"
16386     { (yyval.typeName) = MkTypeName((yyvsp[-1].list), (yyvsp[0].declarator)); ;}
16387     break;
16388
16389   case 1008:
16390 #line 2944 "grammar.y"
16391     { (yyval.typeName) = MkTypeName((yyvsp[0].list), null); ;}
16392     break;
16393
16394   case 1009:
16395 #line 2945 "grammar.y"
16396     { (yyval.typeName) = MkTypeName((yyvsp[-1].list), (yyvsp[0].declarator)); ;}
16397     break;
16398
16399   case 1010:
16400 #line 2950 "grammar.y"
16401     { (yyval.typeName) = MkTypeName((yyvsp[-1].list), (yyvsp[0].declarator)); ;}
16402     break;
16403
16404   case 1011:
16405 #line 2951 "grammar.y"
16406     { (yyval.typeName) = MkTypeName((yyvsp[-1].list), (yyvsp[0].declarator)); ;}
16407     break;
16408
16409   case 1012:
16410 #line 2952 "grammar.y"
16411     { (yyval.typeName) = MkTypeName((yyvsp[-1].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
16412     break;
16413
16414   case 1013:
16415 #line 2953 "grammar.y"
16416     { (yyval.typeName) = MkTypeName((yyvsp[-2].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[0].declarator))); ;}
16417     break;
16418
16419   case 1014:
16420 #line 2954 "grammar.y"
16421     { (yyval.typeName) = MkTypeName((yyvsp[0].list), null); ;}
16422     break;
16423
16424   case 1015:
16425 #line 2956 "grammar.y"
16426     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
16427     break;
16428
16429   case 1016:
16430 #line 2974 "grammar.y"
16431     { (yyval.typeName) = MkTypeName((yyvsp[-2].list), (yyvsp[-1].declarator)); ;}
16432     break;
16433
16434   case 1017:
16435 #line 2975 "grammar.y"
16436     { (yyval.typeName) = MkTypeName((yyvsp[-2].list), (yyvsp[-1].declarator)); ;}
16437     break;
16438
16439   case 1018:
16440 #line 2979 "grammar.y"
16441     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].typeName)); ;}
16442     break;
16443
16444   case 1019:
16445 #line 2980 "grammar.y"
16446     { ListAdd((yyvsp[-2].list), (yyvsp[0].typeName)); ;}
16447     break;
16448
16449   case 1020:
16450 #line 2981 "grammar.y"
16451     { ListAdd((yyvsp[-3].list), (yyvsp[0].typeName)); ;}
16452     break;
16453
16454   case 1021:
16455 #line 2982 "grammar.y"
16456     { ListAdd((yyvsp[-2].list), (yyvsp[0].typeName)); ;}
16457     break;
16458
16459   case 1022:
16460 #line 2983 "grammar.y"
16461     { ListAdd((yyvsp[-3].list), (yyvsp[0].typeName)); ;}
16462     break;
16463
16464   case 1023:
16465 #line 2984 "grammar.y"
16466     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(MkList(), null)); ListAdd((yyval.list), (yyvsp[0].typeName)); ;}
16467     break;
16468
16469   case 1024:
16470 #line 2986 "grammar.y"
16471     { ListAdd((yyvsp[-2].list), (yyvsp[0].typeName)); ;}
16472     break;
16473
16474   case 1025:
16475 #line 2987 "grammar.y"
16476     { ListAdd((yyvsp[-3].list), (yyvsp[0].typeName)); ;}
16477     break;
16478
16479   case 1026:
16480 #line 2988 "grammar.y"
16481     { ListAdd((yyvsp[-2].list), (yyvsp[0].typeName)); ;}
16482     break;
16483
16484   case 1027:
16485 #line 2989 "grammar.y"
16486     { ListAdd((yyvsp[-3].list), (yyvsp[0].typeName)); ;}
16487     break;
16488
16489   case 1028:
16490 #line 2993 "grammar.y"
16491     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].typeName)); ;}
16492     break;
16493
16494   case 1029:
16495 #line 2994 "grammar.y"
16496     { ListAdd((yyvsp[-2].list), (yyvsp[0].typeName)); ;}
16497     break;
16498
16499   case 1030:
16500 #line 2995 "grammar.y"
16501     { ListAdd((yyvsp[-2].list), (yyvsp[0].typeName)); ;}
16502     break;
16503
16504   case 1031:
16505 #line 2996 "grammar.y"
16506     { ListAdd((yyvsp[-3].list), (yyvsp[0].typeName)); ;}
16507     break;
16508
16509   case 1032:
16510 #line 2997 "grammar.y"
16511     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(MkList(), null)); ListAdd((yyval.list), (yyvsp[0].typeName)); ;}
16512     break;
16513
16514   case 1033:
16515 #line 2999 "grammar.y"
16516     { ListAdd((yyvsp[-2].list), (yyvsp[0].typeName)); ;}
16517     break;
16518
16519   case 1034:
16520 #line 3000 "grammar.y"
16521     { ListAdd((yyvsp[-2].list), (yyvsp[0].typeName)); ;}
16522     break;
16523
16524   case 1035:
16525 #line 3001 "grammar.y"
16526     { ListAdd((yyvsp[-3].list), (yyvsp[0].typeName)); ;}
16527     break;
16528
16529   case 1037:
16530 #line 3006 "grammar.y"
16531     { ListAdd((yyvsp[-2].list), MkTypeName(null, null)); ;}
16532     break;
16533
16534   case 1038:
16535 #line 3007 "grammar.y"
16536     { ListAdd((yyvsp[-2].list), MkTypeName(null, null)); ;}
16537     break;
16538
16539   case 1039:
16540 #line 3008 "grammar.y"
16541     { ListAdd((yyvsp[-2].list), MkTypeName(null, null)); ;}
16542     break;
16543
16544   case 1040:
16545 #line 3009 "grammar.y"
16546     { ListAdd((yyvsp[-2].list), MkTypeName(null, null)); ;}
16547     break;
16548
16549   case 1041:
16550 #line 3010 "grammar.y"
16551     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, null)); ;}
16552     break;
16553
16554   case 1043:
16555 #line 3015 "grammar.y"
16556     { ListAdd((yyvsp[-2].list), null); ;}
16557     break;
16558
16559   case 1046:
16560 #line 3022 "grammar.y"
16561     { (yyval.stmt) = MkExpressionStmt(null); ;}
16562     break;
16563
16564   case 1048:
16565 #line 3024 "grammar.y"
16566     { (yyval.stmt) = MkExpressionStmt(null); ;}
16567     break;
16568
16569   case 1049:
16570 #line 3025 "grammar.y"
16571     { (yyval.stmt) = MkExpressionStmt(null); ;}
16572     break;
16573
16574   case 1050:
16575 #line 3026 "grammar.y"
16576     { (yyval.stmt) = MkExpressionStmt((yyvsp[-1].list)); (yyval.stmt).loc = (yyloc); ;}
16577     break;
16578
16579   case 1054:
16580 #line 3030 "grammar.y"
16581     {;}
16582     break;
16583
16584   case 1058:
16585 #line 3038 "grammar.y"
16586     { (yyval.stmt) = (yyvsp[0].stmt); Compiler_Error("syntax error\n"); ;}
16587     break;
16588
16589   case 1059:
16590 #line 3039 "grammar.y"
16591     { (yyval.stmt) = (yyvsp[0].stmt); Compiler_Error("syntax error\n"); ;}
16592     break;
16593
16594   case 1060:
16595 #line 3040 "grammar.y"
16596     { (yyval.stmt) = (yyvsp[0].stmt); Compiler_Error("syntax error\n"); ;}
16597     break;
16598
16599   case 1061:
16600 #line 3041 "grammar.y"
16601     { (yyval.stmt) = (yyvsp[0].stmt); Compiler_Error("syntax error\n"); ;}
16602     break;
16603
16604   case 1062:
16605 #line 3042 "grammar.y"
16606     { (yyval.stmt) = (yyvsp[0].stmt); Compiler_Error("syntax error\n"); ;}
16607     break;
16608
16609   case 1063:
16610 #line 3043 "grammar.y"
16611     { (yyval.stmt) = (yyvsp[-1].stmt); Compiler_Error("syntax error\n"); ;}
16612     break;
16613
16614   case 1064:
16615 #line 3044 "grammar.y"
16616     { (yyval.stmt) = MkExpressionStmt((yyvsp[0].list)); Compiler_Error("syntax error\n"); (yyval.stmt).loc = (yylsp[0]); ;}
16617     break;
16618
16619   case 1065:
16620 #line 3048 "grammar.y"
16621     { (yyval.asmField) = MkAsmField((yyvsp[0].string), null); (yyval.asmField).loc = (yylsp[0]); ;}
16622     break;
16623
16624   case 1066:
16625 #line 3049 "grammar.y"
16626     { (yyval.asmField) = MkAsmField((yyvsp[-3].string), (yyvsp[-1].exp)); (yyval.asmField).loc = (yyloc); ;}
16627     break;
16628
16629   case 1067:
16630 #line 3053 "grammar.y"
16631     { (yyval.list) = MkListOne((yyvsp[0].asmField)); ;}
16632     break;
16633
16634   case 1068:
16635 #line 3054 "grammar.y"
16636     { ListAdd((yyval.list), (yyvsp[0].asmField)); ;}
16637     break;
16638
16639   case 1069:
16640 #line 3055 "grammar.y"
16641     { (yyval.list) = null; ;}
16642     break;
16643
16644   case 1070:
16645 #line 3059 "grammar.y"
16646     { (yyval.stmt) = MkAsmStmt((yyvsp[-4].specifier), (yyvsp[-2].string), null, null, null); (yyval.stmt).loc = (yyloc); ;}
16647     break;
16648
16649   case 1071:
16650 #line 3060 "grammar.y"
16651     { (yyval.stmt) = MkAsmStmt((yyvsp[-6].specifier), (yyvsp[-4].string), (yyvsp[-2].list), null, null); (yyval.stmt).loc = (yyloc); ;}
16652     break;
16653
16654   case 1072:
16655 #line 3061 "grammar.y"
16656     { (yyval.stmt) = MkAsmStmt((yyvsp[-8].specifier), (yyvsp[-6].string), (yyvsp[-4].list), (yyvsp[-2].list), null); (yyval.stmt).loc = (yyloc); ;}
16657     break;
16658
16659   case 1073:
16660 #line 3062 "grammar.y"
16661     { (yyval.stmt) = MkAsmStmt((yyvsp[-10].specifier), (yyvsp[-8].string), (yyvsp[-6].list), (yyvsp[-4].list), (yyvsp[-2].list)); (yyval.stmt).loc = (yyloc); ;}
16662     break;
16663
16664   case 1074:
16665 #line 3064 "grammar.y"
16666     { (yyval.stmt) = MkAsmStmt((yyvsp[-6].specifier), (yyvsp[-4].string), null, (yyvsp[-2].list), null); (yyval.stmt).loc = (yyloc); ;}
16667     break;
16668
16669   case 1075:
16670 #line 3065 "grammar.y"
16671     { (yyval.stmt) = MkAsmStmt((yyvsp[-8].specifier), (yyvsp[-6].string), null, (yyvsp[-4].list), (yyvsp[-2].list)); (yyval.stmt).loc = (yyloc); ;}
16672     break;
16673
16674   case 1076:
16675 #line 3066 "grammar.y"
16676     { (yyval.stmt) = MkAsmStmt((yyvsp[-8].specifier), (yyvsp[-6].string), (yyvsp[-4].list), null, (yyvsp[-2].list)); (yyval.stmt).loc = (yyloc); ;}
16677     break;
16678
16679   case 1077:
16680 #line 3068 "grammar.y"
16681     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[-2].string), null, null, null); (yyval.stmt).loc = (yyloc); ;}
16682     break;
16683
16684   case 1078:
16685 #line 3069 "grammar.y"
16686     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[-4].string), (yyvsp[-2].list), null, null); (yyval.stmt).loc = (yyloc); ;}
16687     break;
16688
16689   case 1079:
16690 #line 3070 "grammar.y"
16691     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[-6].string), (yyvsp[-4].list), (yyvsp[-2].list), null); (yyval.stmt).loc = (yyloc); ;}
16692     break;
16693
16694   case 1080:
16695 #line 3071 "grammar.y"
16696     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[-8].string), (yyvsp[-6].list), (yyvsp[-4].list), (yyvsp[-2].list)); (yyval.stmt).loc = (yyloc); ;}
16697     break;
16698
16699   case 1081:
16700 #line 3073 "grammar.y"
16701     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[-4].string), null, (yyvsp[-2].list), null); (yyval.stmt).loc = (yyloc); ;}
16702     break;
16703
16704   case 1082:
16705 #line 3074 "grammar.y"
16706     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[-6].string), null, (yyvsp[-4].list), (yyvsp[-2].list)); (yyval.stmt).loc = (yyloc); ;}
16707     break;
16708
16709   case 1083:
16710 #line 3075 "grammar.y"
16711     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[-6].string), (yyvsp[-4].list), null, (yyvsp[-2].list)); (yyval.stmt).loc = (yyloc); ;}
16712     break;
16713
16714   case 1084:
16715 #line 3079 "grammar.y"
16716     { (yyval.stmt) = MkLabeledStmt((yyvsp[-2].id), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
16717     break;
16718
16719   case 1085:
16720 #line 3080 "grammar.y"
16721     { (yyval.stmt) = MkCaseStmt((yyvsp[-2].exp), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[-2].exp).loc.start = (yylsp[-3]).end; ;}
16722     break;
16723
16724   case 1086:
16725 #line 3081 "grammar.y"
16726     { (yyval.stmt) = MkCaseStmt((yyvsp[-2].exp), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[-2].exp).loc.start = (yylsp[-3]).end; ;}
16727     break;
16728
16729   case 1087:
16730 #line 3082 "grammar.y"
16731     { (yyval.stmt) = MkCaseStmt(MkExpDummy(), (yyvsp[0].stmt)); (yyval.stmt).caseStmt.exp.loc = (yylsp[-1]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[-2]).end; ;}
16732     break;
16733
16734   case 1088:
16735 #line 3083 "grammar.y"
16736     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
16737     break;
16738
16739   case 1089:
16740 #line 3087 "grammar.y"
16741     { (yyval.stmt) = MkLabeledStmt((yyvsp[-2].id), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
16742     break;
16743
16744   case 1090:
16745 #line 3088 "grammar.y"
16746     { (yyval.stmt) = MkCaseStmt((yyvsp[-2].exp), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[-2].exp).loc.start = (yylsp[-3]).end; ;}
16747     break;
16748
16749   case 1091:
16750 #line 3089 "grammar.y"
16751     { (yyval.stmt) = MkCaseStmt((yyvsp[-2].exp), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[-2].exp).loc.start = (yylsp[-3]).end; ;}
16752     break;
16753
16754   case 1092:
16755 #line 3090 "grammar.y"
16756     { (yyval.stmt) = MkCaseStmt(MkExpDummy(), (yyvsp[0].stmt)); (yyval.stmt).caseStmt.exp.loc = (yylsp[-1]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[-2]).end; ;}
16757     break;
16758
16759   case 1093:
16760 #line 3091 "grammar.y"
16761     { (yyval.stmt) = MkCaseStmt(MkExpDummy(), null); (yyval.stmt).caseStmt.exp.loc = (yylsp[0]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[-1]).end; ;}
16762     break;
16763
16764   case 1094:
16765 #line 3092 "grammar.y"
16766     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
16767     break;
16768
16769   case 1095:
16770 #line 3093 "grammar.y"
16771     { (yyval.stmt) = MkCaseStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
16772     break;
16773
16774   case 1096:
16775 #line 3097 "grammar.y"
16776     { (yyval.declMode) = declMode = publicAccess; ;}
16777     break;
16778
16779   case 1097:
16780 #line 3098 "grammar.y"
16781     { (yyval.declMode) = declMode = privateAccess; ;}
16782     break;
16783
16784   case 1098:
16785 #line 3099 "grammar.y"
16786     { (yyval.declMode) = declMode = defaultAccess; ;}
16787     break;
16788
16789   case 1099:
16790 #line 3103 "grammar.y"
16791     { (yyval.declMode) = publicAccess; ;}
16792     break;
16793
16794   case 1100:
16795 #line 3104 "grammar.y"
16796     { (yyval.declMode) = privateAccess; ;}
16797     break;
16798
16799   case 1101:
16800 #line 3108 "grammar.y"
16801     { (yyval.declaration) = MkDeclaration((yyvsp[-1].list), null); (yyval.declaration).loc = (yyloc); ;}
16802     break;
16803
16804   case 1102:
16805 #line 3109 "grammar.y"
16806     { (yyval.declaration) = MkDeclaration((yyvsp[-2].list), (yyvsp[-1].list)); (yyval.declaration).loc = (yyloc); ;}
16807     break;
16808
16809   case 1103:
16810 #line 3110 "grammar.y"
16811     { (yyval.declaration) = MkDeclarationInst((yyvsp[-1].instance)); (yyval.declaration).loc = (yyloc); ;}
16812     break;
16813
16814   case 1104:
16815 #line 3111 "grammar.y"
16816     {;}
16817     break;
16818
16819   case 1105:
16820 #line 3115 "grammar.y"
16821     { (yyval.declaration) = MkDeclaration((yyvsp[-1].list), null); (yyval.declaration).loc = (yyloc); ;}
16822     break;
16823
16824   case 1106:
16825 #line 3116 "grammar.y"
16826     { (yyval.declaration) = MkDeclaration((yyvsp[-2].list), (yyvsp[-1].list)); (yyval.declaration).loc = (yyloc); ;}
16827     break;
16828
16829   case 1107:
16830 #line 3117 "grammar.y"
16831     { (yyval.declaration) = MkDeclaration((yyvsp[-2].list), (yyvsp[-1].list)); (yyval.declaration).loc = (yyloc); ;}
16832     break;
16833
16834   case 1108:
16835 #line 3119 "grammar.y"
16836     { (yyval.declaration) = MkDeclarationInst((yyvsp[-1].instance)); (yyval.declaration).loc = (yyloc); ;}
16837     break;
16838
16839   case 1109:
16840 #line 3120 "grammar.y"
16841     { (yyval.declaration) = MkDeclarationDefine((yyvsp[-3].id), (yyvsp[-1].exp)); (yyval.declaration).loc = (yyloc); ;}
16842     break;
16843
16844   case 1110:
16845 #line 3121 "grammar.y"
16846     { declMode = staticAccess; (yyval.declaration) = MkDeclarationDefine((yyvsp[-3].id), (yyvsp[-1].exp)); (yyval.declaration).loc = (yyloc); ;}
16847     break;
16848
16849   case 1111:
16850 #line 3125 "grammar.y"
16851     { (yyval.declaration) = MkDeclaration((yyvsp[-1].list), null); (yyval.declaration).loc = (yyloc); yyerrok; ;}
16852     break;
16853
16854   case 1112:
16855 #line 3129 "grammar.y"
16856     { (yyval.declaration) = MkDeclaration((yyvsp[-1].list), null); (yyval.declaration).loc = (yyloc); ;}
16857     break;
16858
16859   case 1113:
16860 #line 3130 "grammar.y"
16861     {;}
16862     break;
16863
16864   case 1114:
16865 #line 3132 "grammar.y"
16866     { (yyval.declaration) = MkDeclarationInst((yyvsp[-1].instance)); (yyval.declaration).loc = (yyloc); ;}
16867     break;
16868
16869   case 1115:
16870 #line 3133 "grammar.y"
16871     { (yyval.declaration) = MkDeclarationInst((yyvsp[-1].instance)); (yyval.declaration).loc = (yyloc); ;}
16872     break;
16873
16874   case 1116:
16875 #line 3134 "grammar.y"
16876     { (yyval.declaration) = MkDeclaration((yyvsp[-1].list), (yyvsp[0].list)); (yyval.declaration).loc = (yyloc); ;}
16877     break;
16878
16879   case 1117:
16880 #line 3138 "grammar.y"
16881     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].declaration)); /*declMode = defaultDeclMode;*/ ;}
16882     break;
16883
16884   case 1118:
16885 #line 3139 "grammar.y"
16886     { ListAdd((yyvsp[-1].list), (yyvsp[0].declaration)); /*declMode = defaultDeclMode; */;}
16887     break;
16888
16889   case 1119:
16890 #line 3140 "grammar.y"
16891     { ListAdd((yyvsp[-1].list), (yyvsp[0].declaration)); /*declMode = defaultDeclMode; */;}
16892     break;
16893
16894   case 1120:
16895 #line 3141 "grammar.y"
16896     { ;}
16897     break;
16898
16899   case 1121:
16900 #line 3145 "grammar.y"
16901     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].declaration)); ;}
16902     break;
16903
16904   case 1122:
16905 #line 3146 "grammar.y"
16906     { ListAdd((yyvsp[-1].list), (yyvsp[0].declaration)); ;}
16907     break;
16908
16909   case 1123:
16910 #line 3150 "grammar.y"
16911     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].stmt)); ;}
16912     break;
16913
16914   case 1124:
16915 #line 3151 "grammar.y"
16916     { ListAdd((yyvsp[-1].list), (yyvsp[0].stmt)); ;}
16917     break;
16918
16919   case 1125:
16920 #line 3152 "grammar.y"
16921     { ListAdd((yyvsp[-1].list), (yyvsp[0].stmt)); ;}
16922     break;
16923
16924   case 1126:
16925 #line 3156 "grammar.y"
16926     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].stmt)); ;}
16927     break;
16928
16929   case 1127:
16930 #line 3157 "grammar.y"
16931     { ListAdd((yyvsp[-1].list), (yyvsp[0].stmt)); ;}
16932     break;
16933
16934   case 1128:
16935 #line 3158 "grammar.y"
16936     { ListAdd((yyvsp[-1].list), (yyvsp[0].stmt)); ;}
16937     break;
16938
16939   case 1129:
16940 #line 3159 "grammar.y"
16941     { Statement stmt = MkBadDeclStmt((yyvsp[0].declaration)); stmt.loc = (yylsp[0]); yyerror(); ListAdd((yyvsp[-1].list), stmt); /*declMode = defaultDeclMode;*/ ;}
16942     break;
16943
16944   case 1130:
16945 #line 3160 "grammar.y"
16946     { Statement stmt = MkBadDeclStmt((yyvsp[0].declaration)); stmt.loc = (yylsp[0]); yyerror(); ListAdd((yyvsp[-1].list), stmt); /*declMode = defaultDeclMode;*/ ;}
16947     break;
16948
16949   case 1131:
16950 #line 3161 "grammar.y"
16951     { Statement stmt = MkBadDeclStmt((yyvsp[0].declaration)); stmt.loc = (yylsp[0]); yyerror(); ListAdd((yyvsp[-1].list), stmt); /*declMode = defaultDeclMode;*/ ;}
16952     break;
16953
16954   case 1132:
16955 #line 3162 "grammar.y"
16956     { Statement stmt = MkBadDeclStmt((yyvsp[0].declaration)); stmt.loc = (yylsp[0]); yyerror(); ListAdd((yyvsp[-1].list), stmt); /*declMode = defaultDeclMode;*/ ;}
16957     break;
16958
16959   case 1133:
16960 #line 3166 "grammar.y"
16961     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[0].list)); ;}
16962     break;
16963
16964   case 1134:
16965 #line 3167 "grammar.y"
16966     { (yyval.stmt) = MkCompoundStmt((yyvsp[0].list), null); ;}
16967     break;
16968
16969   case 1135:
16970 #line 3168 "grammar.y"
16971     { (yyval.stmt) = MkCompoundStmt((yyvsp[-1].list), (yyvsp[0].list)); ;}
16972     break;
16973
16974   case 1136:
16975 #line 3169 "grammar.y"
16976     { (yyval.stmt) = MkCompoundStmt((yyvsp[-1].list), (yyvsp[0].list)); ;}
16977     break;
16978
16979   case 1137:
16980 #line 3173 "grammar.y"
16981     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[0].list)); ;}
16982     break;
16983
16984   case 1138:
16985 #line 3174 "grammar.y"
16986     { (yyval.stmt) = MkCompoundStmt((yyvsp[0].list), null); ;}
16987     break;
16988
16989   case 1139:
16990 #line 3175 "grammar.y"
16991     { (yyval.stmt) = MkCompoundStmt((yyvsp[-1].list), (yyvsp[0].list)); ;}
16992     break;
16993
16994   case 1140:
16995 #line 3176 "grammar.y"
16996     { (yyval.stmt) = MkCompoundStmt((yyvsp[-1].list), (yyvsp[0].list)); ;}
16997     break;
16998
16999   case 1141:
17000 #line 3180 "grammar.y"
17001     { (yyval.context) = PushContext(); ;}
17002     break;
17003
17004   case 1142:
17005 #line 3184 "grammar.y"
17006     { (yyval.stmt).loc = (yyloc); ;}
17007     break;
17008
17009   case 1143:
17010 #line 3189 "grammar.y"
17011     { (yyval.stmt) = (yyvsp[0].stmt); (yyval.stmt).compound.context = (yyvsp[-1].context); PopContext((yyvsp[-1].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
17012     break;
17013
17014   case 1144:
17015 #line 3191 "grammar.y"
17016     { (yyval.stmt) = MkCompoundStmt(null, null); (yyval.stmt).compound.context = (yyvsp[0].context); PopContext((yyvsp[0].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
17017     break;
17018
17019   case 1145:
17020 #line 3194 "grammar.y"
17021     { (yyval.stmt) = (yyvsp[0].stmt); (yyval.stmt).compound.context = (yyvsp[-1].context); PopContext((yyvsp[-1].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
17022     break;
17023
17024   case 1146:
17025 #line 3199 "grammar.y"
17026     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
17027     break;
17028
17029   case 1147:
17030 #line 3200 "grammar.y"
17031     { (yyval.stmt) = MkExpressionStmt((yyvsp[-1].list)); (yyval.stmt).loc = (yyloc); ;}
17032     break;
17033
17034   case 1148:
17035 #line 3201 "grammar.y"
17036     { (yyval.stmt) = MkExpressionStmt((yyvsp[-1].list)); (yyval.stmt).loc = (yyloc); ;}
17037     break;
17038
17039   case 1149:
17040 #line 3205 "grammar.y"
17041     { (yyval.stmt) = MkIfStmt((yyvsp[-2].list), (yyvsp[0].stmt), null); (yyval.stmt).loc = (yyloc); ;}
17042     break;
17043
17044   case 1150:
17045 #line 3206 "grammar.y"
17046     { (yyval.stmt) = MkIfStmt((yyvsp[-2].list), (yyvsp[0].stmt), null); (yyval.stmt).loc = (yyloc); ;}
17047     break;
17048
17049   case 1151:
17050 #line 3207 "grammar.y"
17051     { (yyval.stmt) = MkIfStmt((yyvsp[-4].list), (yyvsp[-2].stmt), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17052     break;
17053
17054   case 1152:
17055 #line 3208 "grammar.y"
17056     { (yyval.stmt) = MkIfStmt((yyvsp[-4].list), (yyvsp[-2].stmt), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17057     break;
17058
17059   case 1153:
17060 #line 3209 "grammar.y"
17061     { (yyval.stmt) = MkSwitchStmt((yyvsp[-2].list), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17062     break;
17063
17064   case 1154:
17065 #line 3210 "grammar.y"
17066     { (yyval.stmt) = MkSwitchStmt((yyvsp[-2].list), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17067     break;
17068
17069   case 1155:
17070 #line 3214 "grammar.y"
17071     { (yyval.stmt) = MkIfStmt((yyvsp[0].list), null, null); (yyval.stmt).loc = (yyloc); ;}
17072     break;
17073
17074   case 1157:
17075 #line 3219 "grammar.y"
17076     { (yyval.stmt) = MkWhileStmt((yyvsp[-2].list), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17077     break;
17078
17079   case 1158:
17080 #line 3220 "grammar.y"
17081     { (yyval.stmt) = MkWhileStmt((yyvsp[-1].list), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17082     break;
17083
17084   case 1159:
17085 #line 3221 "grammar.y"
17086     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17087     break;
17088
17089   case 1160:
17090 #line 3223 "grammar.y"
17091     { (yyval.stmt) = MkDoWhileStmt((yyvsp[-5].stmt), (yyvsp[-2].list)); (yyval.stmt).loc = (yyloc); ;}
17092     break;
17093
17094   case 1161:
17095 #line 3224 "grammar.y"
17096     { (yyval.stmt) = MkDoWhileStmt((yyvsp[-4].stmt), (yyvsp[-1].list)); (yyval.stmt).loc = (yyloc); ;}
17097     break;
17098
17099   case 1162:
17100 #line 3226 "grammar.y"
17101     { (yyval.stmt) = MkForStmt((yyvsp[-3].stmt), (yyvsp[-2].stmt), null, (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17102     break;
17103
17104   case 1163:
17105 #line 3227 "grammar.y"
17106     { (yyval.stmt) = MkForStmt((yyvsp[-2].stmt), null, null, (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17107     break;
17108
17109   case 1164:
17110 #line 3228 "grammar.y"
17111     { (yyval.stmt) = MkForStmt((yyvsp[-4].stmt), (yyvsp[-3].stmt), (yyvsp[-2].list), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17112     break;
17113
17114   case 1165:
17115 #line 3229 "grammar.y"
17116     { (yyval.stmt) = MkForStmt((yyvsp[-3].stmt), (yyvsp[-2].stmt), (yyvsp[-1].list), (yyvsp[0].stmt) ); (yyval.stmt).loc = (yyloc); ;}
17117     break;
17118
17119   case 1166:
17120 #line 3230 "grammar.y"
17121     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17122     break;
17123
17124   case 1167:
17125 #line 3232 "grammar.y"
17126     { (yyval.stmt) = MkForEachStmt((yyvsp[-4].id), (yyvsp[-2].list), null, (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17127     break;
17128
17129   case 1168:
17130 #line 3233 "grammar.y"
17131     { (yyval.stmt) = MkForEachStmt((yyvsp[-6].id), (yyvsp[-4].list), (yyvsp[-2].list), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17132     break;
17133
17134   case 1169:
17135 #line 3237 "grammar.y"
17136     { (yyval.stmt) = MkForStmt(null, null, null, null); (yyval.stmt).loc = (yyloc); ;}
17137     break;
17138
17139   case 1170:
17140 #line 3238 "grammar.y"
17141     { (yyval.stmt) = MkForStmt(MkExpressionStmt((yyvsp[-1].list)), null, null, null); (yyval.stmt).forStmt.init.loc = (yylsp[-1]); (yyval.stmt).loc = (yyloc); ;}
17142     break;
17143
17144   case 1171:
17145 #line 3239 "grammar.y"
17146     { (yyval.stmt) = MkForStmt((yyvsp[-1].stmt), null, null, null); (yyval.stmt).loc = (yyloc); ;}
17147     break;
17148
17149   case 1172:
17150 #line 3240 "grammar.y"
17151     { (yyval.stmt) = MkForStmt((yyvsp[-2].stmt), MkExpressionStmt((yyvsp[-1].list)), null, null); (yyval.stmt).loc = (yyloc); (yyval.stmt).forStmt.check.loc = (yylsp[-1]); ;}
17152     break;
17153
17154   case 1173:
17155 #line 3241 "grammar.y"
17156     { (yyval.stmt) = MkForStmt((yyvsp[-2].stmt), (yyvsp[-1].stmt), null, null); (yyval.stmt).loc = (yyloc); ;}
17157     break;
17158
17159   case 1174:
17160 #line 3242 "grammar.y"
17161     { (yyval.stmt) = MkForStmt((yyvsp[-2].stmt), (yyvsp[-1].stmt), (yyvsp[0].list), null); (yyval.stmt).loc = (yyloc); ;}
17162     break;
17163
17164   case 1175:
17165 #line 3243 "grammar.y"
17166     { (yyval.stmt) = MkForStmt((yyvsp[-3].stmt), (yyvsp[-2].stmt), null, (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17167     break;
17168
17169   case 1176:
17170 #line 3244 "grammar.y"
17171     { (yyval.stmt) = MkForStmt((yyvsp[-4].stmt), (yyvsp[-3].stmt), (yyvsp[-2].list), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17172     break;
17173
17174   case 1177:
17175 #line 3245 "grammar.y"
17176     { (yyval.stmt) = MkForStmt((yyvsp[-3].stmt), (yyvsp[-2].stmt), (yyvsp[-1].list), (yyvsp[0].stmt) ); (yyval.stmt).loc = (yyloc); ;}
17177     break;
17178
17179   case 1178:
17180 #line 3247 "grammar.y"
17181     { (yyval.stmt) = MkDoWhileStmt((yyvsp[-4].stmt), (yyvsp[-1].list)); (yyval.stmt).loc = (yyloc); ;}
17182     break;
17183
17184   case 1179:
17185 #line 3248 "grammar.y"
17186     { (yyval.stmt) = MkDoWhileStmt((yyvsp[-3].stmt), (yyvsp[0].list)); (yyval.stmt).loc = (yyloc); ;}
17187     break;
17188
17189   case 1180:
17190 #line 3249 "grammar.y"
17191     { (yyval.stmt) = MkDoWhileStmt((yyvsp[-3].stmt), (yyvsp[0].list)); (yyval.stmt).loc = (yyloc); ;}
17192     break;
17193
17194   case 1181:
17195 #line 3250 "grammar.y"
17196     { (yyval.stmt) = MkDoWhileStmt((yyvsp[-2].stmt), null); (yyval.stmt).loc = (yyloc); ;}
17197     break;
17198
17199   case 1182:
17200 #line 3251 "grammar.y"
17201     { (yyval.stmt) = MkDoWhileStmt((yyvsp[-1].stmt), null); (yyval.stmt).loc = (yyloc); ;}
17202     break;
17203
17204   case 1183:
17205 #line 3252 "grammar.y"
17206     { (yyval.stmt) = MkDoWhileStmt((yyvsp[0].stmt), null); (yyval.stmt).loc = (yyloc); ;}
17207     break;
17208
17209   case 1184:
17210 #line 3253 "grammar.y"
17211     { (yyval.stmt) = MkDoWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
17212     break;
17213
17214   case 1185:
17215 #line 3256 "grammar.y"
17216     { (yyval.stmt) = MkWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
17217     break;
17218
17219   case 1186:
17220 #line 3257 "grammar.y"
17221     { (yyval.stmt) = MkWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
17222     break;
17223
17224   case 1187:
17225 #line 3258 "grammar.y"
17226     { (yyval.stmt) = MkWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
17227     break;
17228
17229   case 1188:
17230 #line 3259 "grammar.y"
17231     { (yyval.stmt) = MkWhileStmt((yyvsp[0].list), null); (yyval.stmt).loc = (yyloc); ;}
17232     break;
17233
17234   case 1189:
17235 #line 3260 "grammar.y"
17236     { (yyval.stmt) = MkWhileStmt((yyvsp[-1].list), null); (yyval.stmt).loc = (yyloc); ;}
17237     break;
17238
17239   case 1190:
17240 #line 3261 "grammar.y"
17241     { (yyval.stmt) = MkWhileStmt((yyvsp[-2].list), (yyvsp[0].stmt)); (yyval.stmt).loc = (yyloc); ;}
17242     break;
17243
17244   case 1191:
17245 #line 3262 "grammar.y"
17246     { (yyval.stmt) = MkWhileStmt((yyvsp[-1].list), (yyvsp[0].stmt) ); (yyval.stmt).loc = (yyloc); ;}
17247     break;
17248
17249   case 1192:
17250 #line 3266 "grammar.y"
17251     { (yyval.stmt) = MkGotoStmt((yyvsp[-1].id)); (yyval.stmt).loc = (yyloc); ;}
17252     break;
17253
17254   case 1193:
17255 #line 3267 "grammar.y"
17256     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
17257     break;
17258
17259   case 1194:
17260 #line 3268 "grammar.y"
17261     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
17262     break;
17263
17264   case 1195:
17265 #line 3269 "grammar.y"
17266     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[0]); ;}
17267     break;
17268
17269   case 1196:
17270 #line 3270 "grammar.y"
17271     { (yyval.stmt) = MkReturnStmt((yyvsp[-1].list)); (yyval.stmt).loc = (yyloc); ;}
17272     break;
17273
17274   case 1197:
17275 #line 3271 "grammar.y"
17276     { (yyval.stmt) = MkReturnStmt((yyvsp[-1].list)); (yyval.stmt).loc = (yyloc); ;}
17277     break;
17278
17279   case 1198:
17280 #line 3272 "grammar.y"
17281     { (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[-1].exp))); (yyval.stmt).loc = (yyloc); ;}
17282     break;
17283
17284   case 1199:
17285 #line 3273 "grammar.y"
17286     { (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[-1].exp))); (yyval.stmt).loc = (yyloc); ;}
17287     break;
17288
17289   case 1200:
17290 #line 3277 "grammar.y"
17291     { (yyval.stmt) = MkReturnStmt((yyvsp[0].list)); (yyval.stmt).loc = (yyloc); ;}
17292     break;
17293
17294   case 1201:
17295 #line 3278 "grammar.y"
17296     { (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[0].exp))); (yyval.stmt).loc = (yyloc); ;}
17297     break;
17298
17299   case 1202:
17300 #line 3279 "grammar.y"
17301     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc.start = exp.loc.end = (yylsp[0]).end; ;}
17302     break;
17303
17304   case 1203:
17305 #line 3280 "grammar.y"
17306     { (yyval.stmt) = MkGotoStmt(null); (yyval.stmt).loc = (yyloc); ;}
17307     break;
17308
17309   case 1204:
17310 #line 3286 "grammar.y"
17311     { (yyval.function) = MkFunction((yyvsp[-3].list), (yyvsp[-2].declarator), (yyvsp[-1].list)); ProcessFunctionBody((yyval.function), (yyvsp[0].stmt)); (yyval.function).loc = (yyloc); ;}
17312     break;
17313
17314   case 1205:
17315 #line 3288 "grammar.y"
17316     { (yyval.function) = MkFunction((yyvsp[-2].list), (yyvsp[-1].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[0].stmt)); (yyval.function).loc = (yyloc); ;}
17317     break;
17318
17319   case 1206:
17320 #line 3290 "grammar.y"
17321     { (yyval.function) = MkFunction(null, (yyvsp[-2].declarator), (yyvsp[-1].list)); ProcessFunctionBody((yyval.function), (yyvsp[0].stmt)); (yyval.function).loc = (yyloc); ;}
17322     break;
17323
17324   case 1207:
17325 #line 3291 "grammar.y"
17326     { (yyval.function) = MkFunction(null, (yyvsp[-1].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[0].stmt)); (yyval.function).loc = (yyloc);;}
17327     break;
17328
17329   case 1208:
17330 #line 3294 "grammar.y"
17331     { (yyval.function) = MkFunction((yyvsp[-3].list), (yyvsp[-2].declarator), (yyvsp[-1].list)); ProcessFunctionBody((yyval.function), (yyvsp[0].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[0].stmt).loc.end; ;}
17332     break;
17333
17334   case 1209:
17335 #line 3295 "grammar.y"
17336     { (yyval.function) = MkFunction((yyvsp[-2].list), (yyvsp[-1].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[0].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[0].stmt).loc.end; ;}
17337     break;
17338
17339   case 1210:
17340 #line 3296 "grammar.y"
17341     { (yyval.function) = MkFunction(null, (yyvsp[-2].declarator), (yyvsp[-1].list)); ProcessFunctionBody((yyval.function), (yyvsp[0].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[0].stmt).loc.end; ;}
17342     break;
17343
17344   case 1211:
17345 #line 3297 "grammar.y"
17346     { (yyval.function) = MkFunction(null, (yyvsp[-1].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[0].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[0].stmt).loc.end; ;}
17347     break;
17348
17349   case 1212:
17350 #line 3301 "grammar.y"
17351     { (yyval.string) = CopyString(yytext); ;}
17352     break;
17353
17354   case 1213:
17355 #line 3303 "grammar.y"
17356     { 
17357       int len1 = strlen((yyvsp[-1].string));
17358       int len2 = strlen(yytext);
17359       (yyval.string) = new byte[len1-1 + len2-1 + 1];
17360       memcpy((yyval.string), (yyvsp[-1].string), len1-1);
17361       memcpy((yyval.string) + len1-1, yytext+1, len2);
17362       delete (yyvsp[-1].string);
17363    ;}
17364     break;
17365
17366   case 1214:
17367 #line 3314 "grammar.y"
17368     { (yyval.external) = MkExternalFunction((yyvsp[0].function)); (yyval.external).loc = (yyloc); (yyvsp[0].function).declMode = declMode; declMode = defaultDeclMode; ;}
17369     break;
17370
17371   case 1215:
17372 #line 3316 "grammar.y"
17373     { (yyval.external) = MkExternalClass((yyvsp[0]._class));  (yyval.external).loc = (yyloc); (yyvsp[0]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
17374     break;
17375
17376   case 1216:
17377 #line 3319 "grammar.y"
17378     { (yyval.external) = MkExternalClass((yyvsp[0]._class));  (yyval.external).loc = (yyloc); (yyvsp[0]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
17379     break;
17380
17381   case 1217:
17382 #line 3322 "grammar.y"
17383     { (yyval.external) = MkExternalDeclaration((yyvsp[0].declaration));  (yyval.external).loc = (yyloc); (yyvsp[0].declaration).declMode = declMode; declMode = defaultDeclMode; ;}
17384     break;
17385
17386   case 1218:
17387 #line 3323 "grammar.y"
17388     { (yyval.external) = MkExternalImport((yyvsp[0].string), normalImport, (declMode != defaultAccess) ? declMode : privateAccess);  (yyval.external).loc = (yyloc); ;}
17389     break;
17390
17391   case 1219:
17392 #line 3324 "grammar.y"
17393     { (yyval.external) = MkExternalImport((yyvsp[0].string), staticImport, (declMode != defaultAccess) ? declMode : privateAccess);  (yyval.external).loc = (yyloc); ;}
17394     break;
17395
17396   case 1220:
17397 #line 3325 "grammar.y"
17398     { if(!strcmp((yyvsp[-1].id).string, "remote")) { (yyval.external) = MkExternalImport((yyvsp[0].string), remoteImport, (declMode != defaultAccess) ? declMode : privateAccess);  (yyval.external).loc = (yyloc); } else yyerror(); FreeIdentifier((yyvsp[-1].id)); ;}
17399     break;
17400
17401   case 1221:
17402 #line 3327 "grammar.y"
17403     { (yyval.external) = null; ;}
17404     break;
17405
17406   case 1222:
17407 #line 3329 "grammar.y"
17408     { (yyval.external) = MkExternalFunction((yyvsp[0].function)); (yyval.external).loc = (yyloc); (yyvsp[0].function).declMode = (yyvsp[-1].declMode); declMode = defaultDeclMode; ;}
17409     break;
17410
17411   case 1223:
17412 #line 3331 "grammar.y"
17413     { (yyval.external) = MkExternalClass((yyvsp[0]._class));  (yyval.external).loc = (yyloc); (yyvsp[0]._class).declMode = ((yyvsp[-1].declMode) != defaultAccess) ? (yyvsp[-1].declMode) : privateAccess; declMode = defaultDeclMode; ;}
17414     break;
17415
17416   case 1224:
17417 #line 3332 "grammar.y"
17418     { (yyval.external) = MkExternalDeclaration((yyvsp[0].declaration)); (yyval.external).loc = (yyloc); (yyvsp[0].declaration).declMode = (yyvsp[-1].declMode); declMode = defaultDeclMode; ;}
17419     break;
17420
17421   case 1225:
17422 #line 3333 "grammar.y"
17423     { (yyval.external) = MkExternalImport((yyvsp[0].string), normalImport, ((yyvsp[-2].declMode) != defaultAccess) ? (yyvsp[-2].declMode) : privateAccess);  (yyval.external).loc = (yyloc); declMode = defaultDeclMode; ;}
17424     break;
17425
17426   case 1226:
17427 #line 3334 "grammar.y"
17428     { (yyval.external) = MkExternalImport((yyvsp[0].string), staticImport, ((yyvsp[-3].declMode) != defaultAccess) ? (yyvsp[-3].declMode) : privateAccess);  (yyval.external).loc = (yyloc); declMode = defaultDeclMode; ;}
17429     break;
17430
17431   case 1227:
17432 #line 3335 "grammar.y"
17433     { if(!strcmp((yyvsp[-1].id).string, "remote")) { (yyval.external) = MkExternalImport((yyvsp[0].string), remoteImport, ((yyvsp[-3].declMode) != defaultAccess) ? (yyvsp[-3].declMode) : privateAccess);  (yyval.external).loc = (yyloc); FreeIdentifier((yyvsp[-1].id)); } else yyerror();  declMode = defaultDeclMode; ;}
17434     break;
17435
17436   case 1228:
17437 #line 3336 "grammar.y"
17438     { defaultDeclMode = (yyvsp[-1].declMode); (yyval.external) = null; ;}
17439     break;
17440
17441   case 1229:
17442 #line 3337 "grammar.y"
17443     { defaultDeclMode = staticAccess; (yyval.external) = null; ;}
17444     break;
17445
17446   case 1230:
17447 #line 3338 "grammar.y"
17448     { (yyval.external) = MkExternalNameSpace((yyvsp[0].id)); (yyval.external).loc = (yyloc); ;}
17449     break;
17450
17451   case 1231:
17452 #line 3339 "grammar.y"
17453     { (yyval.external) = MkExternalNameSpace(MkIdentifier((yyvsp[0].specifier).name)); FreeSpecifier((yyvsp[0].specifier)); (yyval.external).loc = (yyloc); ;}
17454     break;
17455
17456   case 1232:
17457 #line 3340 "grammar.y"
17458     { (yyval.external) = MkExternalDBTable((yyvsp[0].dbtableDef)); (yyval.external).loc = (yyloc);  (yyvsp[0].dbtableDef).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
17459     break;
17460
17461   case 1233:
17462 #line 3341 "grammar.y"
17463     { (yyval.external) = MkExternalDBTable((yyvsp[0].dbtableDef)); (yyval.external).loc = (yyloc);  (yyvsp[0].dbtableDef).declMode = ((yyvsp[-1].declMode) != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
17464     break;
17465
17466   case 1234:
17467 #line 3345 "grammar.y"
17468     { (yyval.external) = MkExternalClass((yyvsp[0]._class));  (yyval.external).loc = (yyvsp[0]._class).loc; (yyvsp[0]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
17469     break;
17470
17471   case 1235:
17472 #line 3346 "grammar.y"
17473     { (yyval.external) = MkExternalClass((yyvsp[0]._class));  (yyval.external).loc = (yyvsp[0]._class).loc; (yyvsp[0]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
17474     break;
17475
17476   case 1236:
17477 #line 3347 "grammar.y"
17478     { (yyval.external) = MkExternalFunction((yyvsp[0].function)); (yyval.external).loc = (yyvsp[0].function).loc;  (yyvsp[0].function).declMode = declMode; declMode = defaultDeclMode; ;}
17479     break;
17480
17481   case 1237:
17482 #line 3349 "grammar.y"
17483     { (yyval.external) = MkExternalClass((yyvsp[0]._class));  (yyval.external).loc = (yyvsp[0]._class).loc; (yyvsp[0]._class).declMode = ((yyvsp[-1].declMode) != defaultAccess) ? (yyvsp[-1].declMode) : privateAccess; declMode = defaultDeclMode; ;}
17484     break;
17485
17486   case 1238:
17487 #line 3350 "grammar.y"
17488     { (yyval.external) = MkExternalFunction((yyvsp[0].function)); (yyval.external).loc = (yyvsp[0].function).loc; (yyvsp[0].function).declMode = (yyvsp[-1].declMode); declMode = defaultDeclMode; ;}
17489     break;
17490
17491   case 1239:
17492 #line 3353 "grammar.y"
17493     { (yyval.external) = MkExternalDeclaration((yyvsp[0].declaration));  (yyval.external).loc = (yyloc); (yyvsp[0].declaration).declMode = declMode; declMode = defaultDeclMode; ;}
17494     break;
17495
17496   case 1240:
17497 #line 3354 "grammar.y"
17498     { (yyval.external) = MkExternalDeclaration((yyvsp[0].declaration)); (yyval.external).loc = (yyloc); (yyvsp[0].declaration).declMode = (yyvsp[-1].declMode); declMode = defaultDeclMode; ;}
17499     break;
17500
17501   case 1241:
17502 #line 3358 "grammar.y"
17503     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].external)); ast = (yyval.list); ;}
17504     break;
17505
17506   case 1242:
17507 #line 3359 "grammar.y"
17508     { ListAdd((yyvsp[-1].list), (yyvsp[0].external)); ;}
17509     break;
17510
17511   case 1243:
17512 #line 3360 "grammar.y"
17513     { ListAdd((yyvsp[-1].list), (yyvsp[0].external)); ;}
17514     break;
17515
17516   case 1246:
17517 #line 3366 "grammar.y"
17518     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].external)); ast = (yyval.list); ;}
17519     break;
17520
17521   case 1247:
17522 #line 3367 "grammar.y"
17523     { ListAdd((yyvsp[-1].list), (yyvsp[0].external)); ;}
17524     break;
17525
17526   case 1248:
17527 #line 3369 "grammar.y"
17528     { External _class = MkExternalClass((yyvsp[0]._class)); ListAdd((yyvsp[-1].list), _class); _class.loc = (yylsp[0]);  (yyvsp[0]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
17529     break;
17530
17531   case 1249:
17532 #line 3371 "grammar.y"
17533     { External _class = MkExternalClass((yyvsp[0]._class)); ListAdd((yyvsp[-2].list), _class); _class.loc = (yylsp[0]);  (yyvsp[0]._class).declMode = ((yyvsp[-1].declMode) != defaultAccess) ? (yyvsp[-1].declMode) : privateAccess; declMode = defaultDeclMode; ;}
17534     break;
17535
17536   case 1252:
17537 #line 3377 "grammar.y"
17538     { ast = MkList(); ;}
17539     break;
17540
17541   case 1253:
17542 #line 3381 "grammar.y"
17543     { Symbol symbol = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[-3].id).string); FreeIdentifier((yyvsp[-3].id)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[-4].string), symbol, (yyvsp[-1].list)); ;}
17544     break;
17545
17546   case 1254:
17547 #line 3382 "grammar.y"
17548     { Symbol symbol = DeclClass(globalContext.nextID++, (yyvsp[-3].specifier).name); FreeSpecifier((yyvsp[-3].specifier)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[-4].string), symbol, (yyvsp[-1].list)); ;}
17549     break;
17550
17551   case 1255:
17552 #line 3383 "grammar.y"
17553     { (yyval.dbtableDef) = MkDBTableDef((yyvsp[-3].string), null, (yyvsp[-1].list)); ;}
17554     break;
17555
17556   case 1256:
17557 #line 3387 "grammar.y"
17558     { (yyval.dbtableEntry) = MkDBFieldEntry(MkTypeName((yyvsp[-3].list), null), (yyvsp[-2].id), (yyvsp[-1].string)); ;}
17559     break;
17560
17561   case 1257:
17562 #line 3391 "grammar.y"
17563     { (yyval.dbindexItem) = MkDBIndexItem((yyvsp[0].id), ascending); ;}
17564     break;
17565
17566   case 1258:
17567 #line 3392 "grammar.y"
17568     { (yyval.dbindexItem) = MkDBIndexItem((yyvsp[0].id), descending); ;}
17569     break;
17570
17571   case 1259:
17572 #line 3393 "grammar.y"
17573     { (yyval.dbindexItem) = MkDBIndexItem((yyvsp[0].id), ascending); ;}
17574     break;
17575
17576   case 1260:
17577 #line 3397 "grammar.y"
17578     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].dbindexItem)); ;}
17579     break;
17580
17581   case 1261:
17582 #line 3398 "grammar.y"
17583     { ListAdd((yyvsp[-2].list), (yyvsp[0].dbindexItem)); ;}
17584     break;
17585
17586   case 1262:
17587 #line 3402 "grammar.y"
17588     { (yyval.dbtableEntry) = MkDBIndexEntry((yyvsp[-1].list), null); ;}
17589     break;
17590
17591   case 1263:
17592 #line 3403 "grammar.y"
17593     { (yyval.dbtableEntry) = MkDBIndexEntry((yyvsp[-2].list), (yyvsp[-1].id)); ;}
17594     break;
17595
17596   case 1264:
17597 #line 3407 "grammar.y"
17598     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].dbtableEntry)); ;}
17599     break;
17600
17601   case 1265:
17602 #line 3408 "grammar.y"
17603     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[0].dbtableEntry)); ;}
17604     break;
17605
17606   case 1266:
17607 #line 3409 "grammar.y"
17608     { ListAdd((yyvsp[-1].list), (yyvsp[0].dbtableEntry)); ;}
17609     break;
17610
17611   case 1267:
17612 #line 3410 "grammar.y"
17613     { ListAdd((yyvsp[-1].list), (yyvsp[0].dbtableEntry)); ;}
17614     break;
17615
17616   case 1268:
17617 #line 3414 "grammar.y"
17618     { (yyval.exp) = MkExpDBOpen((yyvsp[-3].exp), (yyvsp[-1].exp)); ;}
17619     break;
17620
17621   case 1269:
17622 #line 3418 "grammar.y"
17623     { (yyval.exp) = MkExpDBField((yyvsp[-3].string), (yyvsp[-1].id)); ;}
17624     break;
17625
17626   case 1270:
17627 #line 3422 "grammar.y"
17628     { (yyval.exp) = MkExpDBIndex((yyvsp[-3].string), (yyvsp[-1].id)); ;}
17629     break;
17630
17631   case 1271:
17632 #line 3426 "grammar.y"
17633     { (yyval.exp) = MkExpDBTable((yyvsp[-1].string)); ;}
17634     break;
17635
17636
17637     }
17638
17639 /* Line 1037 of yacc.c.  */
17640 #line 17641 "grammar.ec"
17641 \f
17642   yyvsp -= yylen;
17643   yyssp -= yylen;
17644   yylsp -= yylen;
17645
17646   YY_STACK_PRINT (yyss, yyssp);
17647
17648   *++yyvsp = yyval;
17649   *++yylsp = yyloc;
17650
17651   /* Now `shift' the result of the reduction.  Determine what state
17652      that goes to, based on the state we popped back to and the rule
17653      number reduced by.  */
17654
17655   yyn = yyr1[yyn];
17656
17657   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
17658   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
17659     yystate = yytable[yystate];
17660   else
17661     yystate = yydefgoto[yyn - YYNTOKENS];
17662
17663   goto yynewstate;
17664
17665
17666 /*------------------------------------.
17667 | yyerrlab -- here on detecting error |
17668 `------------------------------------*/
17669 yyerrlab:
17670   /* If not already recovering from an error, report this error.  */
17671   if (!yyerrstatus)
17672     {
17673       ++yynerrs;
17674 #if YYERROR_VERBOSE
17675       yyn = yypact[yystate];
17676
17677       if (YYPACT_NINF < yyn && yyn < YYLAST)
17678         {
17679           YYSIZE_T yysize = 0;
17680           int yytype = YYTRANSLATE (yychar);
17681           const char* yyprefix;
17682           char *yymsg;
17683           int yyx;
17684
17685           /* Start YYX at -YYN if negative to avoid negative indexes in
17686              YYCHECK.  */
17687           int yyxbegin = yyn < 0 ? -yyn : 0;
17688
17689           /* Stay within bounds of both yycheck and yytname.  */
17690           int yychecklim = YYLAST - yyn;
17691           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
17692           int yycount = 0;
17693
17694           yyprefix = ", expecting ";
17695           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
17696             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
17697               {
17698                 yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
17699                 yycount += 1;
17700                 if (yycount == 5)
17701                   {
17702                     yysize = 0;
17703                     break;
17704                   }
17705               }
17706           yysize += (sizeof ("syntax error, unexpected ")
17707                      + yystrlen (yytname[yytype]));
17708           yymsg = (char *) YYSTACK_ALLOC (yysize);
17709           if (yymsg != 0)
17710             {
17711               char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
17712               yyp = yystpcpy (yyp, yytname[yytype]);
17713
17714               if (yycount < 5)
17715                 {
17716                   yyprefix = ", expecting ";
17717                   for (yyx = yyxbegin; yyx < yyxend; ++yyx)
17718                     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
17719                       {
17720                         yyp = yystpcpy (yyp, yyprefix);
17721                         yyp = yystpcpy (yyp, yytname[yyx]);
17722                         yyprefix = " or ";
17723                       }
17724                 }
17725               yyerror (yymsg);
17726               YYSTACK_FREE (yymsg);
17727             }
17728           else
17729             yyerror ("syntax error; also virtual memory exhausted");
17730         }
17731       else
17732 #endif /* YYERROR_VERBOSE */
17733         yyerror ("syntax error");
17734     }
17735
17736   yyerror_range[0] = yylloc;
17737
17738   if (yyerrstatus == 3)
17739     {
17740       /* If just tried and failed to reuse look-ahead token after an
17741          error, discard it.  */
17742
17743       if (yychar <= YYEOF)
17744         {
17745           /* If at end of input, pop the error token,
17746              then the rest of the stack, then return failure.  */
17747           if (yychar == YYEOF)
17748              for (;;)
17749                {
17750                  yyerror_range[0] = *yylsp;
17751                  YYPOPSTACK;
17752                  if (yyssp == yyss)
17753                    YYABORT;
17754                  yydestruct ("Error: popping",
17755                              yystos[*yyssp], yyvsp, yylsp);
17756                }
17757         }
17758       else
17759         {
17760           yydestruct ("Error: discarding", yytoken, &yylval, &yylloc);
17761           yychar = YYEMPTY;
17762         }
17763     }
17764
17765   /* Else will try to reuse look-ahead token after shifting the error
17766      token.  */
17767   goto yyerrlab1;
17768
17769
17770 /*---------------------------------------------------.
17771 | yyerrorlab -- error raised explicitly by YYERROR.  |
17772 `---------------------------------------------------*/
17773 yyerrorlab:
17774
17775 #ifdef __GNUC__
17776   /* Pacify GCC when the user code never invokes YYERROR and the label
17777      yyerrorlab therefore never appears in user code.  */
17778   if (0)
17779      goto yyerrorlab;
17780 #endif
17781
17782   yyerror_range[0] = yylsp[1-yylen];
17783   yylsp -= yylen;
17784   yyvsp -= yylen;
17785   yyssp -= yylen;
17786   yystate = *yyssp;
17787   goto yyerrlab1;
17788
17789
17790 /*-------------------------------------------------------------.
17791 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
17792 `-------------------------------------------------------------*/
17793 yyerrlab1:
17794   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
17795
17796   for (;;)
17797     {
17798       yyn = yypact[yystate];
17799       if (yyn != YYPACT_NINF)
17800         {
17801           yyn += YYTERROR;
17802           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
17803             {
17804               yyn = yytable[yyn];
17805               if (0 < yyn)
17806                 break;
17807             }
17808         }
17809
17810       /* Pop the current state because it cannot handle the error token.  */
17811       if (yyssp == yyss)
17812         YYABORT;
17813
17814       yyerror_range[0] = *yylsp;
17815       yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp);
17816       YYPOPSTACK;
17817       yystate = *yyssp;
17818       YY_STACK_PRINT (yyss, yyssp);
17819     }
17820
17821   if (yyn == YYFINAL)
17822     YYACCEPT;
17823
17824   *++yyvsp = yylval;
17825
17826   yyerror_range[1] = yylloc;
17827   /* Using YYLLOC is tempting, but would change the location of
17828      the look-ahead.  YYLOC is available though. */
17829   YYLLOC_DEFAULT (yyloc, yyerror_range - 1, 2);
17830   *++yylsp = yyloc;
17831
17832   /* Shift the error token. */
17833   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
17834
17835   yystate = yyn;
17836   goto yynewstate;
17837
17838
17839 /*-------------------------------------.
17840 | yyacceptlab -- YYACCEPT comes here.  |
17841 `-------------------------------------*/
17842 yyacceptlab:
17843   yyresult = 0;
17844   goto yyreturn;
17845
17846 /*-----------------------------------.
17847 | yyabortlab -- YYABORT comes here.  |
17848 `-----------------------------------*/
17849 yyabortlab:
17850   yydestruct ("Error: discarding lookahead",
17851               yytoken, &yylval, &yylloc);
17852   yychar = YYEMPTY;
17853   yyresult = 1;
17854   goto yyreturn;
17855
17856 #ifndef yyoverflow
17857 /*----------------------------------------------.
17858 | yyoverflowlab -- parser overflow comes here.  |
17859 `----------------------------------------------*/
17860 yyoverflowlab:
17861   yyerror ("parser stack overflow");
17862   yyresult = 2;
17863   /* Fall through.  */
17864 #endif
17865
17866 yyreturn:
17867 #ifndef yyoverflow
17868   if (yyss != yyssa)
17869     YYSTACK_FREE (yyss);
17870 #endif
17871   return yyresult;
17872 }
17873
17874
17875 #line 3429 "grammar.y"
17876
17877