1 /* A Bison parser, made by GNU Bison 3.0.4.  */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6 
7    This program is free software: you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation, either version 3 of the License, or
10    (at your option) any later version.
11 
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19 
20 /* As a special exception, you may create a larger work that contains
21    part or all of the Bison parser skeleton and distribute that work
22    under terms of your choice, so long as that work isn't itself a
23    parser generator using the skeleton or a modified version thereof
24    as a parser skeleton.  Alternatively, if you modify or redistribute
25    the parser skeleton itself, you may (at your option) remove this
26    special exception, which will cause the skeleton and the resulting
27    Bison output files to be licensed under the GNU General Public
28    License without this special exception.
29 
30    This special exception was added by the Free Software Foundation in
31    version 2.2 of Bison.  */
32 
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34    simplifying the original so-called "semantic" parser.  */
35 
36 /* All symbols defined below should begin with yy or YY, to avoid
37    infringing on user name space.  This should be done even for local
38    variables, as they might otherwise be expanded by user macros.
39    There are some unavoidable exceptions within include files to
40    define necessary library symbols; they are noted "INFRINGES ON
41    USER NAME SPACE" below.  */
42 
43 /* Identify Bison output.  */
44 #define YYBISON 1
45 
46 /* Bison version.  */
47 #define YYBISON_VERSION "3.0.4"
48 
49 /* Skeleton name.  */
50 #define YYSKELETON_NAME "yacc.c"
51 
52 /* Pure parsers.  */
53 #define YYPURE 2
54 
55 /* Push parsers.  */
56 #define YYPUSH 0
57 
58 /* Pull parsers.  */
59 #define YYPULL 1
60 
61 /* "%code top" blocks.  */
62 
63 
64 #include "zend.h"
65 #include "zend_list.h"
66 #include "zend_globals.h"
67 #include "zend_API.h"
68 #include "zend_constants.h"
69 #include "zend_language_scanner.h"
70 #include "zend_exceptions.h"
71 
72 #define YYSIZE_T size_t
73 #define yytnamerr zend_yytnamerr
74 static YYSIZE_T zend_yytnamerr(char*, const char*);
75 
76 #ifdef _MSC_VER
77 #define YYMALLOC malloc
78 #define YYFREE free
79 #endif
80 
81 
82 /* Substitute the type names.  */
83 #define YYSTYPE         ZENDSTYPE
84 /* Substitute the variable and function names.  */
85 #define yyparse         zendparse
86 #define yylex           zendlex
87 #define yyerror         zenderror
88 #define yydebug         zenddebug
89 #define yynerrs         zendnerrs
90 
91 
92 /* Copy the first part of user declarations.  */
93 
94 
95 
96 # ifndef YY_NULLPTR
97 #  if defined __cplusplus && 201103L <= __cplusplus
98 #   define YY_NULLPTR nullptr
99 #  else
100 #   define YY_NULLPTR 0
101 #  endif
102 # endif
103 
104 /* Enabling verbose error messages.  */
105 #ifdef YYERROR_VERBOSE
106 # undef YYERROR_VERBOSE
107 # define YYERROR_VERBOSE 1
108 #else
109 # define YYERROR_VERBOSE 1
110 #endif
111 
112 /* In a future release of Bison, this section will be replaced
113    by #include "zend_language_parser.h".  */
114 #ifndef YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED
115 # define YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED
116 /* Debug traces.  */
117 #ifndef ZENDDEBUG
118 # if defined YYDEBUG
119 #if YYDEBUG
120 #   define ZENDDEBUG 1
121 #  else
122 #   define ZENDDEBUG 0
123 #  endif
124 # else /* ! defined YYDEBUG */
125 #  define ZENDDEBUG 0
126 # endif /* ! defined YYDEBUG */
127 #endif  /* ! defined ZENDDEBUG */
128 #if ZENDDEBUG
129 extern int zenddebug;
130 #endif
131 /* "%code requires" blocks.  */
132 
133 
134 #include "zend_compile.h"
135 
136 
137 
138 /* Token type.  */
139 #ifndef ZENDTOKENTYPE
140 # define ZENDTOKENTYPE
141   enum zendtokentype
142   {
143     END = 0,
144     T_THROW = 258,
145     PREC_ARROW_FUNCTION = 259,
146     T_INCLUDE = 260,
147     T_INCLUDE_ONCE = 261,
148     T_REQUIRE = 262,
149     T_REQUIRE_ONCE = 263,
150     T_LOGICAL_OR = 264,
151     T_LOGICAL_XOR = 265,
152     T_LOGICAL_AND = 266,
153     T_PRINT = 267,
154     T_YIELD = 268,
155     T_DOUBLE_ARROW = 269,
156     T_YIELD_FROM = 270,
157     T_PLUS_EQUAL = 271,
158     T_MINUS_EQUAL = 272,
159     T_MUL_EQUAL = 273,
160     T_DIV_EQUAL = 274,
161     T_CONCAT_EQUAL = 275,
162     T_MOD_EQUAL = 276,
163     T_AND_EQUAL = 277,
164     T_OR_EQUAL = 278,
165     T_XOR_EQUAL = 279,
166     T_SL_EQUAL = 280,
167     T_SR_EQUAL = 281,
168     T_POW_EQUAL = 282,
169     T_COALESCE_EQUAL = 283,
170     T_COALESCE = 284,
171     T_BOOLEAN_OR = 285,
172     T_BOOLEAN_AND = 286,
173     T_IS_EQUAL = 287,
174     T_IS_NOT_EQUAL = 288,
175     T_IS_IDENTICAL = 289,
176     T_IS_NOT_IDENTICAL = 290,
177     T_SPACESHIP = 291,
178     T_IS_SMALLER_OR_EQUAL = 292,
179     T_IS_GREATER_OR_EQUAL = 293,
180     T_SL = 294,
181     T_SR = 295,
182     T_INSTANCEOF = 296,
183     T_INT_CAST = 297,
184     T_DOUBLE_CAST = 298,
185     T_STRING_CAST = 299,
186     T_ARRAY_CAST = 300,
187     T_OBJECT_CAST = 301,
188     T_BOOL_CAST = 302,
189     T_UNSET_CAST = 303,
190     T_POW = 304,
191     T_CLONE = 305,
192     T_NOELSE = 306,
193     T_ELSEIF = 307,
194     T_ELSE = 308,
195     T_LNUMBER = 309,
196     T_DNUMBER = 310,
197     T_STRING = 311,
198     T_NAME_FULLY_QUALIFIED = 312,
199     T_NAME_RELATIVE = 313,
200     T_NAME_QUALIFIED = 314,
201     T_VARIABLE = 315,
202     T_INLINE_HTML = 316,
203     T_ENCAPSED_AND_WHITESPACE = 317,
204     T_CONSTANT_ENCAPSED_STRING = 318,
205     T_STRING_VARNAME = 319,
206     T_NUM_STRING = 320,
207     T_EVAL = 321,
208     T_NEW = 322,
209     T_EXIT = 323,
210     T_IF = 324,
211     T_ENDIF = 325,
212     T_ECHO = 326,
213     T_DO = 327,
214     T_WHILE = 328,
215     T_ENDWHILE = 329,
216     T_FOR = 330,
217     T_ENDFOR = 331,
218     T_FOREACH = 332,
219     T_ENDFOREACH = 333,
220     T_DECLARE = 334,
221     T_ENDDECLARE = 335,
222     T_AS = 336,
223     T_SWITCH = 337,
224     T_ENDSWITCH = 338,
225     T_CASE = 339,
226     T_DEFAULT = 340,
227     T_MATCH = 341,
228     T_BREAK = 342,
229     T_CONTINUE = 343,
230     T_GOTO = 344,
231     T_FUNCTION = 345,
232     T_FN = 346,
233     T_CONST = 347,
234     T_RETURN = 348,
235     T_TRY = 349,
236     T_CATCH = 350,
237     T_FINALLY = 351,
238     T_USE = 352,
239     T_INSTEADOF = 353,
240     T_GLOBAL = 354,
241     T_STATIC = 355,
242     T_ABSTRACT = 356,
243     T_FINAL = 357,
244     T_PRIVATE = 358,
245     T_PROTECTED = 359,
246     T_PUBLIC = 360,
247     T_VAR = 361,
248     T_UNSET = 362,
249     T_ISSET = 363,
250     T_EMPTY = 364,
251     T_HALT_COMPILER = 365,
252     T_CLASS = 366,
253     T_TRAIT = 367,
254     T_INTERFACE = 368,
255     T_EXTENDS = 369,
256     T_IMPLEMENTS = 370,
257     T_NAMESPACE = 371,
258     T_LIST = 372,
259     T_ARRAY = 373,
260     T_CALLABLE = 374,
261     T_LINE = 375,
262     T_FILE = 376,
263     T_DIR = 377,
264     T_CLASS_C = 378,
265     T_TRAIT_C = 379,
266     T_METHOD_C = 380,
267     T_FUNC_C = 381,
268     T_NS_C = 382,
269     T_ATTRIBUTE = 383,
270     T_INC = 384,
271     T_DEC = 385,
272     T_OBJECT_OPERATOR = 386,
273     T_NULLSAFE_OBJECT_OPERATOR = 387,
274     T_COMMENT = 388,
275     T_DOC_COMMENT = 389,
276     T_OPEN_TAG = 390,
277     T_OPEN_TAG_WITH_ECHO = 391,
278     T_CLOSE_TAG = 392,
279     T_WHITESPACE = 393,
280     T_START_HEREDOC = 394,
281     T_END_HEREDOC = 395,
282     T_DOLLAR_OPEN_CURLY_BRACES = 396,
283     T_CURLY_OPEN = 397,
284     T_PAAMAYIM_NEKUDOTAYIM = 398,
285     T_NS_SEPARATOR = 399,
286     T_ELLIPSIS = 400,
287     T_BAD_CHARACTER = 401,
288     T_ERROR = 402
289   };
290 #endif
291 
292 /* Value type.  */
293 #if ! defined ZENDSTYPE && ! defined ZENDSTYPE_IS_DECLARED
294 typedef zend_parser_stack_elem ZENDSTYPE;
295 # define ZENDSTYPE_IS_TRIVIAL 1
296 # define ZENDSTYPE_IS_DECLARED 1
297 #endif
298 
299 
300 
301 ZEND_API int zendparse (void);
302 
303 #endif /* !YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED  */
304 
305 /* Copy the second part of user declarations.  */
306 
307 
308 
309 #ifdef short
310 # undef short
311 #endif
312 
313 #ifdef YYTYPE_UINT8
314 typedef YYTYPE_UINT8 yytype_uint8;
315 #else
316 typedef unsigned char yytype_uint8;
317 #endif
318 
319 #ifdef YYTYPE_INT8
320 typedef YYTYPE_INT8 yytype_int8;
321 #else
322 typedef signed char yytype_int8;
323 #endif
324 
325 #ifdef YYTYPE_UINT16
326 typedef YYTYPE_UINT16 yytype_uint16;
327 #else
328 typedef unsigned short int yytype_uint16;
329 #endif
330 
331 #ifdef YYTYPE_INT16
332 typedef YYTYPE_INT16 yytype_int16;
333 #else
334 typedef short int yytype_int16;
335 #endif
336 
337 #ifndef YYSIZE_T
338 # ifdef __SIZE_TYPE__
339 #  define YYSIZE_T __SIZE_TYPE__
340 # elif defined size_t
341 #  define YYSIZE_T size_t
342 # elif ! defined YYSIZE_T
343 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
344 #  define YYSIZE_T size_t
345 # else
346 #  define YYSIZE_T unsigned int
347 # endif
348 #endif
349 
350 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
351 
352 #ifndef YY_
353 # if defined YYENABLE_NLS && YYENABLE_NLS
354 #  if ENABLE_NLS
355 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
356 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
357 #  endif
358 # endif
359 # ifndef YY_
360 #  define YY_(Msgid) Msgid
361 # endif
362 #endif
363 
364 #ifndef YY_ATTRIBUTE
365 # if (defined __GNUC__                                               \
366       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
367      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
368 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
369 # else
370 #  define YY_ATTRIBUTE(Spec) /* empty */
371 # endif
372 #endif
373 
374 #ifndef YY_ATTRIBUTE_PURE
375 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
376 #endif
377 
378 #ifndef YY_ATTRIBUTE_UNUSED
379 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
380 #endif
381 
382 #if !defined _Noreturn \
383      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
384 # if defined _MSC_VER && 1200 <= _MSC_VER
385 #  define _Noreturn __declspec (noreturn)
386 # else
387 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
388 # endif
389 #endif
390 
391 /* Suppress unused-variable warnings by "using" E.  */
392 #if ! defined lint || defined __GNUC__
393 # define YYUSE(E) ((void) (E))
394 #else
395 # define YYUSE(E) /* empty */
396 #endif
397 
398 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
399 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
400 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
401     _Pragma ("GCC diagnostic push") \
402     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
403     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
404 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
405     _Pragma ("GCC diagnostic pop")
406 #else
407 # define YY_INITIAL_VALUE(Value) Value
408 #endif
409 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
410 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
411 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
412 #endif
413 #ifndef YY_INITIAL_VALUE
414 # define YY_INITIAL_VALUE(Value) /* Nothing. */
415 #endif
416 
417 
418 #if ! defined yyoverflow || YYERROR_VERBOSE
419 
420 /* The parser invokes alloca or malloc; define the necessary symbols.  */
421 
422 # ifdef YYSTACK_USE_ALLOCA
423 #  if YYSTACK_USE_ALLOCA
424 #   ifdef __GNUC__
425 #    define YYSTACK_ALLOC __builtin_alloca
426 #   elif defined __BUILTIN_VA_ARG_INCR
427 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
428 #   elif defined _AIX
429 #    define YYSTACK_ALLOC __alloca
430 #   elif defined _MSC_VER
431 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
432 #    define alloca _alloca
433 #   else
434 #    define YYSTACK_ALLOC alloca
435 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
436 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
437       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
438 #     ifndef EXIT_SUCCESS
439 #      define EXIT_SUCCESS 0
440 #     endif
441 #    endif
442 #   endif
443 #  endif
444 # endif
445 
446 # ifdef YYSTACK_ALLOC
447    /* Pacify GCC's 'empty if-body' warning.  */
448 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
449 #  ifndef YYSTACK_ALLOC_MAXIMUM
450     /* The OS might guarantee only one guard page at the bottom of the stack,
451        and a page size can be as small as 4096 bytes.  So we cannot safely
452        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
453        to allow for a few compiler-allocated temporary stack slots.  */
454 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
455 #  endif
456 # else
457 #  define YYSTACK_ALLOC YYMALLOC
458 #  define YYSTACK_FREE YYFREE
459 #  ifndef YYSTACK_ALLOC_MAXIMUM
460 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
461 #  endif
462 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
463        && ! ((defined YYMALLOC || defined malloc) \
464              && (defined YYFREE || defined free)))
465 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
466 #   ifndef EXIT_SUCCESS
467 #    define EXIT_SUCCESS 0
468 #   endif
469 #  endif
470 #  ifndef YYMALLOC
471 #   define YYMALLOC malloc
472 #   if ! defined malloc && ! defined EXIT_SUCCESS
473 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
474 #   endif
475 #  endif
476 #  ifndef YYFREE
477 #   define YYFREE free
478 #   if ! defined free && ! defined EXIT_SUCCESS
479 void free (void *); /* INFRINGES ON USER NAME SPACE */
480 #   endif
481 #  endif
482 # endif
483 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
484 
485 
486 #if (! defined yyoverflow \
487      && (! defined __cplusplus \
488          || (defined ZENDSTYPE_IS_TRIVIAL && ZENDSTYPE_IS_TRIVIAL)))
489 
490 /* A type that is properly aligned for any stack member.  */
491 union yyalloc
492 {
493   yytype_int16 yyss_alloc;
494   YYSTYPE yyvs_alloc;
495 };
496 
497 /* The size of the maximum gap between one aligned stack and the next.  */
498 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
499 
500 /* The size of an array large to enough to hold all stacks, each with
501    N elements.  */
502 # define YYSTACK_BYTES(N) \
503      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
504       + YYSTACK_GAP_MAXIMUM)
505 
506 # define YYCOPY_NEEDED 1
507 
508 /* Relocate STACK from its old location to the new one.  The
509    local variables YYSIZE and YYSTACKSIZE give the old and new number of
510    elements in the stack, and YYPTR gives the new location of the
511    stack.  Advance YYPTR to a properly aligned location for the next
512    stack.  */
513 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
514     do                                                                  \
515       {                                                                 \
516         YYSIZE_T yynewbytes;                                            \
517         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
518         Stack = &yyptr->Stack_alloc;                                    \
519         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
520         yyptr += yynewbytes / sizeof (*yyptr);                          \
521       }                                                                 \
522     while (0)
523 
524 #endif
525 
526 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
527 /* Copy COUNT objects from SRC to DST.  The source and destination do
528    not overlap.  */
529 # ifndef YYCOPY
530 #  if defined __GNUC__ && 1 < __GNUC__
531 #   define YYCOPY(Dst, Src, Count) \
532       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
533 #  else
534 #   define YYCOPY(Dst, Src, Count)              \
535       do                                        \
536         {                                       \
537           YYSIZE_T yyi;                         \
538           for (yyi = 0; yyi < (Count); yyi++)   \
539             (Dst)[yyi] = (Src)[yyi];            \
540         }                                       \
541       while (0)
542 #  endif
543 # endif
544 #endif /* !YYCOPY_NEEDED */
545 
546 /* YYFINAL -- State number of the termination state.  */
547 #define YYFINAL  3
548 /* YYLAST -- Last index in YYTABLE.  */
549 #define YYLAST   7975
550 
551 /* YYNTOKENS -- Number of terminals.  */
552 #define YYNTOKENS  176
553 /* YYNNTS -- Number of nonterminals.  */
554 #define YYNNTS  162
555 /* YYNRULES -- Number of rules.  */
556 #define YYNRULES  557
557 /* YYNSTATES -- Number of states.  */
558 #define YYNSTATES  1055
559 
560 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
561    by yylex, with out-of-bounds checking.  */
562 #define YYUNDEFTOK  2
563 #define YYMAXUTOK   402
564 
565 #define YYTRANSLATE(YYX)                                                \
566   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
567 
568 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
569    as returned by yylex, without out-of-bounds checking.  */
570 static const yytype_uint8 yytranslate[] =
571 {
572        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
575        2,     2,     2,    55,   174,     2,   175,    54,    37,     2,
576      167,   168,    52,    50,   165,    51,    47,    53,     2,     2,
577        2,     2,     2,     2,     2,     2,     2,     2,    31,   169,
578       43,    16,    45,    30,    65,     2,     2,     2,     2,     2,
579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
581        2,   172,     2,   166,    36,     2,   173,     2,     2,     2,
582        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
583        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
584        2,     2,     2,   170,    35,   171,    57,     2,     2,     2,
585        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
586        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
587        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
588        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
589        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
590        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
591        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
592        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
593        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
594        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
595        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
596        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
597        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
598        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
599       15,    17,    18,    19,    20,    21,    22,    23,    24,    25,
600       26,    27,    28,    29,    32,    33,    34,    38,    39,    40,
601       41,    42,    44,    46,    48,    49,    56,    58,    59,    60,
602       61,    62,    63,    64,    66,    67,    68,    69,    70,    71,
603       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
604       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
605       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
606      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
607      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
608      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
609      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
610      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
611      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
612      162,   163,   164
613 };
614 
615 #if ZENDDEBUG
616   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
617 static const yytype_uint16 yyrline[] =
618 {
619        0,   284,   284,   288,   288,   288,   288,   288,   288,   288,
620      288,   289,   289,   289,   289,   289,   289,   289,   289,   289,
621      289,   289,   289,   290,   290,   290,   290,   290,   290,   290,
622      290,   290,   290,   291,   291,   291,   291,   291,   291,   291,
623      291,   291,   291,   292,   292,   292,   292,   292,   292,   292,
624      292,   292,   292,   292,   293,   293,   293,   293,   293,   293,
625      293,   293,   294,   294,   294,   294,   294,   294,   294,   294,
626      294,   294,   298,   299,   299,   299,   299,   299,   299,   303,
627      304,   312,   313,   318,   319,   324,   325,   330,   331,   335,
628      336,   337,   338,   342,   344,   349,   351,   356,   360,   361,
629      365,   366,   367,   368,   372,   373,   374,   375,   379,   382,
630      382,   385,   385,   388,   389,   390,   391,   392,   396,   397,
631      401,   406,   411,   412,   416,   418,   423,   425,   430,   432,
632      437,   438,   442,   444,   449,   451,   456,   457,   461,   463,
633      469,   470,   471,   472,   479,   480,   481,   482,   484,   486,
634      488,   490,   491,   492,   493,   494,   495,   496,   497,   498,
635      499,   501,   505,   504,   508,   509,   511,   512,   516,   518,
636      523,   524,   528,   529,   533,   534,   538,   539,   543,   547,
637      554,   555,   559,   560,   564,   564,   567,   567,   573,   574,
638      579,   580,   584,   584,   590,   590,   596,   597,   601,   602,
639      606,   607,   611,   612,   613,   614,   618,   619,   623,   624,
640      628,   629,   633,   634,   635,   636,   640,   641,   643,   648,
641      649,   654,   659,   660,   664,   665,   669,   671,   676,   677,
642      682,   683,   688,   691,   697,   698,   703,   706,   712,   713,
643      719,   720,   725,   727,   732,   733,   737,   738,   739,   740,
644      744,   748,   756,   757,   761,   762,   763,   767,   768,   772,
645      773,   780,   781,   782,   786,   787,   788,   792,   794,   799,
646      800,   804,   805,   809,   811,   816,   817,   819,   823,   824,
647      828,   834,   835,   839,   840,   844,   846,   852,   855,   858,
648      865,   866,   867,   872,   873,   877,   878,   879,   883,   885,
649      890,   891,   895,   900,   902,   906,   908,   913,   915,   919,
650      924,   925,   929,   930,   934,   935,   940,   941,   946,   947,
651      948,   949,   950,   951,   955,   956,   960,   962,   967,   968,
652      972,   976,   980,   981,   984,   988,   989,   993,   994,   998,
653      998,  1008,  1010,  1012,  1017,  1019,  1021,  1023,  1025,  1027,
654     1028,  1030,  1032,  1034,  1036,  1038,  1040,  1042,  1044,  1046,
655     1048,  1050,  1052,  1054,  1055,  1056,  1057,  1058,  1060,  1062,
656     1064,  1066,  1068,  1069,  1070,  1071,  1072,  1073,  1074,  1075,
657     1076,  1077,  1078,  1079,  1080,  1081,  1082,  1083,  1084,  1086,
658     1088,  1090,  1092,  1094,  1096,  1098,  1100,  1102,  1104,  1108,
659     1109,  1111,  1113,  1115,  1116,  1117,  1118,  1119,  1120,  1121,
660     1122,  1123,  1124,  1125,  1126,  1127,  1128,  1129,  1130,  1131,
661     1132,  1133,  1134,  1135,  1136,  1138,  1143,  1148,  1158,  1162,
662     1166,  1170,  1174,  1178,  1179,  1183,  1184,  1188,  1189,  1193,
663     1194,  1198,  1200,  1202,  1204,  1209,  1212,  1216,  1217,  1218,
664     1222,  1223,  1227,  1229,  1230,  1235,  1236,  1241,  1242,  1243,
665     1244,  1248,  1249,  1250,  1251,  1253,  1254,  1255,  1256,  1260,
666     1261,  1262,  1263,  1264,  1265,  1266,  1267,  1268,  1272,  1274,
667     1279,  1280,  1284,  1288,  1289,  1290,  1291,  1295,  1296,  1300,
668     1301,  1302,  1306,  1308,  1310,  1312,  1314,  1316,  1320,  1322,
669     1324,  1326,  1331,  1332,  1333,  1337,  1339,  1344,  1346,  1348,
670     1350,  1352,  1354,  1356,  1361,  1362,  1363,  1367,  1368,  1369,
671     1373,  1378,  1379,  1383,  1385,  1390,  1392,  1394,  1396,  1398,
672     1400,  1403,  1409,  1411,  1413,  1415,  1420,  1422,  1425,  1428,
673     1431,  1433,  1435,  1438,  1442,  1443,  1444,  1445,  1450,  1451,
674     1452,  1454,  1456,  1458,  1460,  1465,  1466,  1471
675 };
676 #endif
677 
678 #if ZENDDEBUG || YYERROR_VERBOSE || 1
679 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
680    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
681 static const char *const yytname[] =
682 {
683   "\"end of file\"", "error", "$undefined", "\"'throw'\"",
684   "PREC_ARROW_FUNCTION", "\"'include'\"", "\"'include_once'\"",
685   "\"'require'\"", "\"'require_once'\"", "\"'or'\"", "\"'xor'\"",
686   "\"'and'\"", "\"'print'\"", "\"'yield'\"", "\"'=>'\"",
687   "\"'yield from'\"", "'='", "\"'+='\"", "\"'-='\"", "\"'*='\"",
688   "\"'/='\"", "\"'.='\"", "\"'%='\"", "\"'&='\"", "\"'|='\"", "\"'^='\"",
689   "\"'<<='\"", "\"'>>='\"", "\"'**='\"", "\"'?""?='\"", "'?'", "':'",
690   "\"'?""?'\"", "\"'||'\"", "\"'&&'\"", "'|'", "'^'", "'&'", "\"'=='\"",
691   "\"'!='\"", "\"'==='\"", "\"'!=='\"", "\"'<=>'\"", "'<'", "\"'<='\"",
692   "'>'", "\"'>='\"", "'.'", "\"'<<'\"", "\"'>>'\"", "'+'", "'-'", "'*'",
693   "'/'", "'%'", "'!'", "\"'instanceof'\"", "'~'", "\"'(int)'\"",
694   "\"'(double)'\"", "\"'(string)'\"", "\"'(array)'\"", "\"'(object)'\"",
695   "\"'(bool)'\"", "\"'(unset)'\"", "'@'", "\"'**'\"", "\"'clone'\"",
696   "T_NOELSE", "\"'elseif'\"", "\"'else'\"", "\"integer\"",
697   "\"floating-point number\"", "\"identifier\"",
698   "\"fully qualified name\"", "\"namespace-relative name\"",
699   "\"namespaced name\"", "\"variable\"", "T_INLINE_HTML",
700   "\"string content\"", "\"quoted string\"", "\"variable name\"",
701   "\"number\"", "\"'eval'\"", "\"'new'\"", "\"'exit'\"", "\"'if'\"",
702   "\"'endif'\"", "\"'echo'\"", "\"'do'\"", "\"'while'\"", "\"'endwhile'\"",
703   "\"'for'\"", "\"'endfor'\"", "\"'foreach'\"", "\"'endforeach'\"",
704   "\"'declare'\"", "\"'enddeclare'\"", "\"'as'\"", "\"'switch'\"",
705   "\"'endswitch'\"", "\"'case'\"", "\"'default'\"", "\"'match'\"",
706   "\"'break'\"", "\"'continue'\"", "\"'goto'\"", "\"'function'\"",
707   "\"'fn'\"", "\"'const'\"", "\"'return'\"", "\"'try'\"", "\"'catch'\"",
708   "\"'finally'\"", "\"'use'\"", "\"'insteadof'\"", "\"'global'\"",
709   "\"'static'\"", "\"'abstract'\"", "\"'final'\"", "\"'private'\"",
710   "\"'protected'\"", "\"'public'\"", "\"'var'\"", "\"'unset'\"",
711   "\"'isset'\"", "\"'empty'\"", "\"'__halt_compiler'\"", "\"'class'\"",
712   "\"'trait'\"", "\"'interface'\"", "\"'extends'\"", "\"'implements'\"",
713   "\"'namespace'\"", "\"'list'\"", "\"'array'\"", "\"'callable'\"",
714   "\"'__LINE__'\"", "\"'__FILE__'\"", "\"'__DIR__'\"", "\"'__CLASS__'\"",
715   "\"'__TRAIT__'\"", "\"'__METHOD__'\"", "\"'__FUNCTION__'\"",
716   "\"'__NAMESPACE__'\"", "\"'#['\"", "\"'++'\"", "\"'--'\"", "\"'->'\"",
717   "\"'?->'\"", "\"comment\"", "\"doc comment\"", "\"open tag\"",
718   "\"'<?='\"", "\"'?>'\"", "\"whitespace\"", "\"heredoc start\"",
719   "\"heredoc end\"", "\"'${'\"", "\"'{$'\"", "\"'::'\"", "\"'\\\\'\"",
720   "\"'...'\"", "\"invalid character\"", "T_ERROR", "','", "']'", "'('",
721   "')'", "';'", "'{'", "'}'", "'['", "'`'", "'\"'", "'$'", "$accept",
722   "start", "reserved_non_modifiers", "semi_reserved", "identifier",
723   "top_statement_list", "namespace_declaration_name", "namespace_name",
724   "legacy_namespace_name", "name", "attribute_decl", "attribute_group",
725   "attribute", "attributes", "attributed_statement", "top_statement",
726   "$@1", "$@2", "use_type", "group_use_declaration",
727   "mixed_group_use_declaration", "possible_comma",
728   "inline_use_declarations", "unprefixed_use_declarations",
729   "use_declarations", "inline_use_declaration",
730   "unprefixed_use_declaration", "use_declaration", "const_list",
731   "inner_statement_list", "inner_statement", "statement", "$@3",
732   "catch_list", "catch_name_list", "optional_variable",
733   "finally_statement", "unset_variables", "unset_variable",
734   "function_declaration_statement", "is_reference", "is_variadic",
735   "class_declaration_statement", "@4", "@5", "class_modifiers",
736   "class_modifier", "trait_declaration_statement", "@6",
737   "interface_declaration_statement", "@7", "extends_from",
738   "interface_extends_list", "implements_list", "foreach_variable",
739   "for_statement", "foreach_statement", "declare_statement",
740   "switch_case_list", "case_list", "case_separator", "match",
741   "match_arm_list", "non_empty_match_arm_list", "match_arm",
742   "match_arm_cond_list", "while_statement", "if_stmt_without_else",
743   "if_stmt", "alt_if_stmt_without_else", "alt_if_stmt", "parameter_list",
744   "non_empty_parameter_list", "attributed_parameter",
745   "optional_visibility_modifier", "parameter",
746   "optional_type_without_static", "type_expr", "type", "union_type",
747   "type_expr_without_static", "type_without_static",
748   "union_type_without_static", "return_type", "argument_list",
749   "non_empty_argument_list", "argument", "global_var_list", "global_var",
750   "static_var_list", "static_var", "class_statement_list",
751   "attributed_class_statement", "class_statement", "class_name_list",
752   "trait_adaptations", "trait_adaptation_list", "trait_adaptation",
753   "trait_precedence", "trait_alias", "trait_method_reference",
754   "absolute_trait_method_reference", "method_body", "variable_modifiers",
755   "method_modifiers", "non_empty_member_modifiers", "member_modifier",
756   "property_list", "property", "class_const_list", "class_const_decl",
757   "const_decl", "echo_expr_list", "echo_expr", "for_exprs",
758   "non_empty_for_exprs", "anonymous_class", "@8", "new_expr", "expr",
759   "inline_function", "fn", "function", "backup_doc_comment",
760   "backup_fn_flags", "backup_lex_pos", "returns_ref", "lexical_vars",
761   "lexical_var_list", "lexical_var", "function_call", "class_name",
762   "class_name_reference", "exit_expr", "backticks_expr", "ctor_arguments",
763   "dereferencable_scalar", "scalar", "constant", "class_constant",
764   "optional_expr", "variable_class_name", "fully_dereferencable",
765   "array_object_dereferencable", "callable_expr", "callable_variable",
766   "variable", "simple_variable", "static_member", "new_variable",
767   "member_name", "property_name", "array_pair_list", "possible_array_pair",
768   "non_empty_array_pair_list", "array_pair", "encaps_list", "encaps_var",
769   "encaps_var_offset", "internal_functions_in_yacc", "isset_variables",
770   "isset_variable", YY_NULLPTR
771 };
772 #endif
773 
774 # ifdef YYPRINT
775 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
776    (internal) symbol number NUM (which must be that of a token).  */
777 static const yytype_uint16 yytoknum[] =
778 {
779        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
780      265,   266,   267,   268,   269,   270,    61,   271,   272,   273,
781      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
782       63,    58,   284,   285,   286,   124,    94,    38,   287,   288,
783      289,   290,   291,    60,   292,    62,   293,    46,   294,   295,
784       43,    45,    42,    47,    37,    33,   296,   126,   297,   298,
785      299,   300,   301,   302,   303,    64,   304,   305,   306,   307,
786      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
787      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
788      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
789      338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
790      348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
791      358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
792      368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
793      378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
794      388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
795      398,   399,   400,   401,   402,    44,    93,    40,    41,    59,
796      123,   125,    91,    96,    34,    36
797 };
798 # endif
799 
800 #define YYPACT_NINF -884
801 
802 #define yypact_value_is_default(Yystate) \
803   (!!((Yystate) == (-884)))
804 
805 #define YYTABLE_NINF -529
806 
807 #define yytable_value_is_error(Yytable_value) \
808   (!!((Yytable_value) == (-529)))
809 
810   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
811      STATE-NUM.  */
812 static const yytype_int16 yypact[] =
813 {
814     -884,    30,  1731,  -884,  5795,  5795,  5795,  5795,  5795,  5795,
815     5795,  5795,  5795,  5795,  5795,  5795,  5795,  5795,  5795,  5795,
816     5795,  5795,  5795,  5795,  5795,  -884,  -884,    23,  -884,  -884,
817     -884,  -884,  -884,  -884,  -108,   674,  -104,   -99,  5795,  4635,
818      -79,   -67,     5,    36,    46,   106,  5795,  5795,   213,  -884,
819     -884,   227,  5795,   -39,   240,   -53,    92,  -884,  -884,   138,
820      163,   181,   187,  -884,  -884,  -884,  7225,   199,   215,  -884,
821     -884,  -884,  -884,  -884,  -884,  -884,  -884,   325,  7081,  7081,
822      -24,  5795,  -884,  -884,  4780,   -13,   -10,   -50,   130,  -884,
823      698,  -884,  -884,  -884,  -884,  -884,   -41,  -884,  -884,  -884,
824     -884,   355,  -884,   232,  -884,  -884,  6565,  -884,   299,   299,
825     -884,   211,   283,  -884,   459,   511,   220,   243,   463,   238,
826      252,    85,  -884,  -884,  -884,  -884,   288,   261,  7760,   299,
827     7760,  7760,  7760,  7760,  3762,  7848,  3762,   375,   375,     9,
828      375,   375,   375,   375,   375,   375,   375,   375,   375,  -884,
829     -884,  5795,  -884,  -884,  5795,  -884,   102,  -884,   279,   238,
830     -884,   582,  5795,  -884,  5795,   123,  -884,  7760,   354,  5795,
831     5795,  5795,   227,  5795,  5795,  7760,   289,   298,   304,   436,
832      198,  -884,   307,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
833      -25,   178,   313,   218,  -884,   294,  -884,  -884,   446,   303,
834     -884,  -884,  7081,  5795,  5795,   316,   414,   424,   429,  -884,
835     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
836     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
837     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
838     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
839     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
840     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
841     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
842     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,   321,
843      335,  4780,  4780,  -884,   371,   238,  5795,  4780,   376,  -884,
844     -884,   597,   597,   180,    78,  -884,  4925,  7081,    53,  -884,
845     1283,  1876,  7081,   378,  5795,  7712,   374,  -884,   402,  -884,
846      -19,   406,   148,   -19,    50,  5795,  -884,  1123,  -884,   288,
847     -884,  -884,  -884,  -884,  -884,   431,  4635,   432,   565,   434,
848     5795,  5795,  5795,  5070,  5795,  5795,  5795,  5795,  5795,  5795,
849     5795,  5795,  5795,  5795,  5795,  5795,  5795,  5795,  5795,  5795,
850     5795,  5795,  5795,  5795,  5795,  5795,  5795,   195,  5795,  -884,
851     -884,  -884,   528,  3768,  3768,    44,    44,  5795,  5795,  -884,
852     5215,  5795,  5795,  5795,  5795,  5795,  5795,  5795,  5795,  5795,
853     5795,  5795,  5795,  5795,  -884,  -884,  -884,  5795,  6613,   238,
854     6661,  -884,   -53,  -884,  -884,    44,    44,   -53,  5795,  5795,
855      441,  6709,  5795,  -884,   437,  6757,   444,   449,  7760,  7645,
856       58,  6805,  6853,  -884,  -884,  -884,  5795,   227,  -884,  -884,
857     2021,   545,   447,    -7,   458,   305,  -884,   178,  -884,   -53,
858     -884,  5795,   551,  -884,   469,  -884,    81,  7760,   472,  -884,
859     6901,   473,   507,  -884,   516,  -884,   502,  -884,   509,   512,
860      325,   513,  -884,  6949,   521,   602,   615,   353,  -884,  -884,
861      262,  6229,   519,  -884,  -884,  -884,   331,   531,  -884,   698,
862     -884,  -884,  -884,   373,  4780,  7760,  5360,   679,  4780,  -884,
863     -884,  6277,  5795,  5795,  5795,  5795,  5795,  5795,  5505,  5795,
864       45,  -108,   674,     0,   106,   669,   671,   -36,   163,   181,
865      199,   215,   673,   676,   687,   689,   702,   706,   708,   710,
866     5795,  -884,   713,   588,  -884,  7760,  -884,   685,  5795,  -884,
867     5795,  -884,  -884,  7807,  7360,  3762,  5795,  1071,  5939,  6085,
868     7488,  7879,  7909,  1101,  4828,  4828,  4828,  4828,  4828,  1429,
869     1429,  1429,  1429,   661,   807,   807,   640,   640,     9,     9,
870        9,  -884,   375,   592,  -884,   593,  5795,   599,   601,   238,
871      599,   601,   238,  -884,  5795,  -884,   238,   238,  6325,   604,
872     7081,  3762,  3762,  3762,  3762,  3762,  3762,  3762,  3762,  3762,
873     3762,  3762,  3762,  3762,  3762,  3762,  -884,   507,  -884,  -884,
874     -884,  -884,  -884,  6373,   605,  -884,  3910,  -884,  5795,  4055,
875     5795,  5795,   918,  -884,   -12,   613,  7760,  -884,  -884,  -884,
876      347,   622,  -884,  -884,   695,  -884,  -884,  7760,  -884,  7081,
877      626,  5795,   628,  -884,  -884,   325,   665,   629,   325,  -884,
878     -884,  1441,   756,  -884,  -884,  -884,   631,  -884,  -884,  -884,
879      719,  -884,  -884,  -884,   637,  -884,  5795,  -884,  -884,   636,
880     -884,   639,  7081,   644,  7760,  5795,  -884,  -884,  7760,  5795,
881     1296,   650,   507,  6997,  7045,  2166,  5939,  5795,   173,   645,
882      173,  6421,  -884,  -884,  6469,  -884,  -884,  -884,  -884,   597,
883      665,  -884,  -884,  -884,  -884,  7093,  -884,  -884,  -884,   652,
884     7760,  7081,   656,  4780,    26,    27,  4200,   655,   660,  -884,
885     5650,  -884,   451,   732,   235,   668,  -884,  -884,   235,  -884,
886      666,  -884,  -884,  -884,   325,  -884,  -884,   672,  -884,   675,
887     1586,  -884,  5795,  -884,  -884,  7141,   693,   756,   417,  4780,
888     3762,  7760,  -884,  -884,   665,  4635,   805,   696,  5939,  -884,
889     -884,  -884,   326,   680,   699,  -884,   168,  -884,   173,   700,
890     -884,  -884,  -884,  3616,   707,  2311,  5795,    37,  4780,   703,
891      918,  4345,  -884,  -884,  -884,  -884,   544,  -884,   -45,   712,
892      714,   716,  -884,   718,  7760,   704,   717,  -884,   815,  -884,
893      347,   722,   724,  -884,  -884,   672,   720,   144,   325,  -884,
894     -884,  3762,   723,  -884,   727,  -884,  -884,  -884,  -884,  -884,
895      865,   272,  -884,   209,  -884,  -884,  -884,   861,  -884,   864,
896      870,   742,   798,   744,  -884,   746,   748,   749,    38,   750,
897     -884,  -884,  -884,  2456,   623,   751,  5795,    -9,   127,  -884,
898     -884,   907,  -884,  5650,  -884,  5795,   908,   325,  -884,  -884,
899     -884,  -884,   235,   752,  -884,   325,  -884,  -884,  -884,  -884,
900     -884,  -884,  -884,  -884,   503,  -884,  -884,   168,   228,   667,
901     -884,  -884,   293,  -884,   756,   754,  3616,     6,   911,  -884,
902     -884,  -884,   764,   209,   209,   865,   760,   865,  -884,  -884,
903     4490,  -884,  4345,  2601,   761,   765,  -884,  6517,  -884,  -884,
904     -884,  -884,  5795,  -884,  7760,  5795,   204,  -884,  2746,  -884,
905     -884,   470,   152,  -884,   852,  7367,   299,  -884,  -884,  -884,
906      301,  -884,  -884,   901,   903,  -884,  -884,  -884,   863,  -884,
907     -884,  -884,   183,  -884,   733,  -884,  -884,  -884,  -884,   774,
908     -884,  -884,  -884,  3616,  7760,  7760,   325,  -884,   776,  -884,
909     -884,  -884,  5947,  -884,   930,   324,  -884,   931,   330,  -884,
910     7367,   866,  -884,   301,   301,  -884,  -884,   778,   873,  -884,
911      787,  -884,   783,  -884,  2891,  -884,  3616,  -884,   784,   796,
912     -884,  -884,  6089,  -884,   788,   789,   862,   847,   803,  5795,
913     -884,   852,  -884,  5795,  7367,  -884,  -884,  -884,  -884,  -884,
914     5795,   948,  -884,  -884,   183,   797,  -884,   800,  -884,  -884,
915     -884,  -884,  -884,  7509,   325,  7367,  7760,  -884,  7760,  -884,
916      804,  7760,  5795,  3036,  -884,  -884,  3181,  -884,  3326,  -884,
917     -884,  7367,   672,  -884,  -884,  -884,   173,  -884,  7760,  -884,
918     -884,  -884,  -884,   802,  -884,  -884,   865,  -884,   400,  -884,
919     -884,  -884,  3471,  -884,  -884
920 };
921 
922   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
923      Performed when YYTABLE does not specify something else to do.  Zero
924      means the default is an error.  */
925 static const yytype_uint16 yydefact[] =
926 {
927       82,     0,     2,     1,     0,     0,     0,     0,     0,     0,
928      416,     0,     0,     0,     0,     0,     0,     0,     0,     0,
929        0,     0,     0,     0,     0,   461,   462,    89,    91,    92,
930       90,   502,   157,   459,     0,     0,   450,     0,     0,     0,
931        0,     0,     0,     0,     0,     0,   480,   480,     0,   429,
932      428,     0,   480,     0,     0,     0,   445,   190,   191,     0,
933        0,     0,     0,   186,   192,   194,   111,     0,     0,   470,
934      471,   472,   477,   473,   474,   475,   476,     0,     0,     0,
935        0,     0,   164,   139,   521,   452,     0,     0,   469,    98,
936        0,   105,    81,   104,   100,   101,     0,   188,   102,   103,
937      425,   234,   145,     0,   146,   399,     0,   421,   433,   433,
938      497,     0,   466,   413,   467,   468,     0,   487,     0,     0,
939      498,   344,   492,   499,   403,    89,   445,     0,   420,   433,
940      550,   551,   553,   554,   415,   417,   419,   384,   385,   386,
941      387,   404,   405,   406,   407,   408,   409,   410,   412,   349,
942      167,     0,   445,   339,     0,   446,     0,   342,   447,   455,
943      507,   448,   480,   411,     0,     0,   333,   334,     0,     0,
944      335,     0,     0,     0,     0,   481,     0,     0,     0,     0,
945        0,   137,     0,   139,    85,    88,    86,   118,   119,    87,
946      134,     0,     0,     0,   129,     0,   279,   280,   283,     0,
947      282,   423,     0,     0,     0,     0,     0,     0,     0,    33,
948        3,     4,     6,     7,     8,     9,    10,    46,    47,    11,
949       13,    16,    17,    79,    84,     5,    12,    14,    15,    18,
950       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
951       29,    49,    50,    51,    52,    71,    53,    41,    42,    43,
952       70,    44,    45,    30,    31,    32,    34,    35,    36,    73,
953       74,    75,    76,    77,    78,    37,    38,    39,    40,    61,
954       59,    60,    56,    57,    58,    48,    54,    55,    66,    67,
955       68,    62,    63,    65,    64,    69,    72,    80,    83,   109,
956        0,   521,   521,    95,   122,    93,     0,   521,   485,   488,
957      486,   364,   366,   536,     0,   464,     0,     0,     0,   534,
958        0,     0,     0,     0,     0,   526,     0,   524,   520,   522,
959      453,     0,   454,     0,     0,     0,   504,     0,   441,     0,
960       99,   106,   422,   184,   189,     0,     0,     0,     0,     0,
961        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
962        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
963        0,     0,     0,     0,     0,     0,     0,     0,     0,   158,
964      434,   430,   430,     0,     0,     0,     0,     0,   480,   444,
965        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
966        0,     0,     0,     0,   363,   365,   430,     0,     0,   455,
967        0,   343,     0,   456,   341,     0,     0,     0,     0,   480,
968        0,     0,     0,   156,     0,     0,     0,   336,   338,     0,
969        0,     0,     0,   151,   152,   166,     0,     0,   117,   153,
970        0,     0,     0,   134,     0,     0,   113,     0,   115,     0,
971      154,     0,     0,   155,   122,   176,   483,   557,   122,   555,
972        0,     0,   196,   430,   198,   108,     0,    82,     0,     0,
973      123,     0,    94,     0,     0,     0,     0,     0,   463,   535,
974        0,     0,   483,   533,   465,   532,   398,     0,   144,     0,
975      141,   138,   140,   483,   521,   529,     0,   458,   521,   414,
976      460,     0,    33,     3,     4,     6,     7,    46,   416,    13,
977       89,     5,    12,   450,    71,   429,   428,    73,    39,    40,
978       48,    54,   470,   471,   472,   477,   473,   474,   475,   476,
979        0,   271,     0,   122,   273,   275,   424,     0,     0,   235,
980        0,   139,   238,   369,   371,   370,     0,     0,   402,   367,
981      368,   372,   374,   373,   390,   391,   388,   389,   396,   392,
982      393,   394,   395,   375,   382,   383,   376,   377,   378,   380,
983      381,   397,   379,     0,   430,     0,     0,   478,   505,     0,
984      479,   506,     0,   517,     0,   519,   500,   501,     0,     0,
985        0,   347,   350,   351,   352,   354,   355,   356,   357,   358,
986      359,   360,   361,   353,   362,   418,   552,   196,   449,   512,
987      510,   511,   513,     0,     0,   451,     0,   332,     0,     0,
988      335,     0,     0,   162,     0,     0,   430,   136,   168,   135,
989        0,     0,   114,   116,   134,   128,   278,   284,   281,   123,
990        0,   123,     0,   549,   107,     0,   200,     0,     0,   430,
991       82,     0,     0,   457,    96,    97,   484,   458,   538,   539,
992        0,   544,   547,   545,     0,   541,     0,   540,   543,     0,
993      142,     0,     0,     0,   525,     0,   523,   503,   277,     0,
994      123,     0,   196,     0,     0,     0,   401,     0,   246,     0,
995      246,     0,   442,   443,     0,   495,   496,   494,   493,   348,
996      200,   509,   508,   139,   232,     0,   139,   230,   147,     0,
997      337,     0,     0,   521,     0,   483,     0,   216,   216,   150,
998      222,   331,   174,   132,     0,   122,   125,   130,     0,   177,
999        0,   556,   548,   197,     0,   430,   286,   199,   293,     0,
1000        0,   112,     0,   546,   537,     0,     0,   531,   483,   521,
1001      346,   276,   274,   272,   200,     0,     0,     0,   400,   249,
1002      248,   247,   246,     0,   122,   242,   252,   245,   246,     0,
1003      515,   518,   430,   236,     0,     0,   335,   483,   521,     0,
1004        0,     0,   139,   210,   163,   216,     0,   216,     0,   122,
1005        0,   122,   224,   122,   228,     0,     0,   165,     0,   131,
1006      123,     0,   122,   127,   159,   201,     0,   314,     0,   286,
1007      110,   345,     0,   143,     0,   430,   233,   139,   239,   244,
1008      269,   246,   240,     0,   264,   265,   266,   180,   253,   261,
1009      263,     0,   435,     0,   148,     0,     0,     0,   458,     0,
1010      139,   208,   160,     0,     0,     0,     0,     0,     0,   212,
1011      123,     0,   221,   123,   223,   123,     0,     0,   139,   133,
1012      124,   121,   123,     0,   286,     0,   321,   322,   323,   320,
1013      319,   318,   313,   193,   314,   290,   285,   252,     0,   312,
1014      316,   294,   314,   542,   530,     0,   237,     0,     0,   243,
1015      262,   181,   182,     0,     0,   269,     0,   269,   286,   231,
1016        0,   204,     0,     0,     0,     0,   214,     0,   219,   220,
1017      139,   213,     0,   225,   229,     0,   172,   170,     0,   126,
1018      120,   314,     0,   291,     0,     0,   433,   317,   195,   286,
1019        0,   258,   270,   254,   256,   257,   431,   183,     0,   267,
1020      268,   431,     0,   431,   314,   139,   206,   149,   161,     0,
1021      211,   215,   139,   218,   227,   226,     0,   173,     0,   175,
1022      187,   295,     0,   292,   430,     0,   325,     0,     0,   329,
1023        0,   314,   255,     0,     0,   432,   430,     0,     0,   439,
1024      122,   438,     0,   340,     0,   209,   217,   171,     0,    73,
1025      296,   307,     0,   298,     0,     0,     0,   308,     0,     0,
1026      326,     0,   287,     0,     0,   288,   430,   185,   259,   260,
1027        0,   250,   139,   440,   123,     0,   139,     0,   139,   297,
1028      299,   300,   301,     0,     0,     0,   430,   324,   430,   328,
1029        0,   431,     0,     0,   437,   436,     0,   207,     0,   303,
1030      304,   306,   302,   309,   327,   330,   246,   427,   251,   431,
1031      431,   169,   305,     0,   179,   426,   269,   431,     0,   310,
1032      139,   431,     0,   289,   311
1033 };
1034 
1035   /* YYPGOTO[NTERM-NUM].  */
1036 static const yytype_int16 yypgoto[] =
1037 {
1038     -884,  -884,   -37,  -884,   -49,  -443,  -884,   -29,  -178,    84,
1039      517,  -884,   -82,    -2,     2,  -884,  -884,  -884,   924,  -884,
1040     -884,  -428,  -884,  -884,   799,   189,  -686,   559,   825,  -122,
1041     -884,    10,  -884,  -884,  -884,  -884,  -884,  -884,   370,  -884,
1042     -884,  -884,  -884,  -884,  -884,  -884,   904,  -884,  -884,  -884,
1043     -884,  -554,  -884,  -628,   231,  -884,   110,  -884,  -884,  -537,
1044      109,  -884,  -884,  -884,   160,  -884,  -884,  -884,  -884,  -884,
1045     -884,  -675,  -884,   196,  -884,   256,   142,  -884,  -878,  -884,
1046     -884,  -666,  -884,  -850,    -4,  -884,   340,  -884,   574,  -884,
1047      573,  -760,   153,  -884,  -718,  -884,  -884,    34,  -884,  -884,
1048     -884,  -884,  -884,  -884,  -884,  -884,  -848,  -884,    28,  -884,
1049       24,   596,  -884,   608,  -603,  -884,   872,  -884,  -884,   169,
1050      -30,  -884,    -1,  -360,  -883,  -884,  -106,  -884,  -884,    25,
1051     -884,   -33,   664,  -884,  -884,   633,   -32,  -884,    20,    72,
1052      -18,  -884,  -884,  -884,  -884,  -884,    74,   -17,  -884,  -884,
1053      659,  -128,  -282,   550,  -884,  -884,   490,   184,  -884,  -884,
1054     -884,   408
1055 };
1056 
1057   /* YYDEFGOTO[NTERM-NUM].  */
1058 static const yytype_int16 yydefgoto[] =
1059 {
1060       -1,     1,   286,   287,   522,     2,   289,   713,   190,    88,
1061      293,   294,    89,   127,   480,    92,   456,   290,   714,   434,
1062      192,   461,   715,   792,   193,   716,   717,   194,   180,   311,
1063      481,   482,   706,   712,   906,   948,   787,   444,   445,    94,
1064      882,   928,    95,   527,   206,    96,    97,    98,   207,    99,
1065      208,   636,   639,   725,   704,   937,   832,   774,   709,   776,
1066      900,   100,   780,   781,   782,   783,   698,   101,   102,   103,
1067      104,   753,   754,   755,   756,   757,   817,   922,   923,   924,
1068      818,   925,   820,   878,   403,   523,   524,   195,   196,   199,
1069      200,   797,   865,   866,   727,   953,   982,   983,   984,   985,
1070      986,   987,  1051,   867,   868,   869,   870,   955,   956,   958,
1071      959,   181,   165,   166,   416,   417,   157,   399,   105,   106,
1072      107,   108,   129,   565,   965,  1000,   371,   887,   970,   971,
1073      110,   111,   159,   163,   321,   404,   112,   113,   114,   115,
1074      176,   116,   117,   118,   119,   120,   121,   122,   123,   161,
1075      569,   576,   316,   317,   318,   319,   308,   309,   654,   124,
1076      448,   449
1077 };
1078 
1079   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1080      positive, shift that token.  If negative, reduce the rule whose
1081      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1082 static const yytype_int16 yytable[] =
1083 {
1084       90,   109,   158,   372,    91,   759,   795,   699,   330,   458,
1085      459,   563,    93,   433,   641,   464,   630,   288,   160,   707,
1086      632,   917,   898,   396,    31,   189,   201,    31,   789,   177,
1087        3,   -14,   793,   156,   182,   931,   920,   933,   197,   872,
1088      770,  -202,   962,   690,   295,   330,   298,   298,   967,   168,
1089      972,  -203,  -205,   303,   150,   304,   836,   837,   303,   151,
1090      332,   430,   762,   162,   303,   367,   320,   303,   164,   323,
1091      326,    49,    50,   431,   330,   368,   -79,    57,    58,   125,
1092       28,    29,    30,   821,   328,   998,   999,   333,   169,   109,
1093      819,   431,   331,   637,   911,   671,   201,   332,   299,   299,
1094      170,   380,   381,   382,   383,   384,   385,   386,   387,   388,
1095      389,   390,   391,   392,   393,   379,   805,   573,   744,   155,
1096      325,    31,    87,   921,  -445,    87,   839,   303,   934,   473,
1097      303,   183,   473,   305,   306,   307,   432,   912,  1037,   306,
1098      307,   814,   815,   -79,   410,   306,   307,   880,   306,   307,
1099      300,   300,   301,   302,   621,   303,  1044,  1045,   708,   961,
1100      899,   155,   189,   826,  1048,  1031,   909,   162,  1053,   198,
1101      298,   778,   171,   128,   130,   131,   132,   133,   134,   135,
1102      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1103      146,   147,   148,   149,   771,  -202,  1047,   730,   813,    49,
1104       50,   819,   661,   172,   679,  -203,  -205,   167,   306,   307,
1105      474,   306,   307,   173,   574,   175,   175,   929,   930,    87,
1106      968,   175,   299,   427,   490,   303,   613,   473,   836,   837,
1107      153,   394,   395,  -483,  -483,   468,   306,   307,   834,   946,
1108      838,   125,    28,    29,    30,  -483,  -178,    77,   577,  -178,
1109      310,   184,   185,   315,   186,  -483,   711,  -483,   855,   624,
1110      969,   856,   857,   858,   859,   860,   861,   862,   125,    28,
1111       29,    30,    31,   174,   300,   298,   446,   600,   601,   729,
1112      298,   947,   125,    28,    29,    30,   178,   791,   412,    77,
1113     -446,   462,   413,   749,   750,   751,  1032,   327,   901,   526,
1114      179,   337,   338,   814,   815,   202,   306,   307,   184,   479,
1115      109,   186,   152,   184,   185,   863,   186,   798,    77,   339,
1116      398,   951,   952,   400,   567,   570,   812,   299,   465,   466,
1117      203,   175,   299,   411,   158,    49,   370,   915,   415,   418,
1118      419,  -241,   421,   422,   814,   815,   529,   187,   204,   188,
1119      160,   841,   467,   844,   205,   846,   568,   571,   575,   575,
1120      579,  1043,   154,   427,   853,   796,   291,   428,    49,    50,
1121       87,   373,   447,   450,   125,    28,    29,    30,   329,   300,
1122      374,   472,   292,   437,   300,   599,   483,   438,   575,   575,
1123      602,   604,   749,   750,   751,    49,    50,   330,   125,    28,
1124       29,    30,   823,  -482,   650,   327,    77,   855,   189,   675,
1125      856,   857,   858,   859,   860,   861,   862,    77,   921,  -489,
1126      184,   769,   197,   186,   335,   336,   651,   295,   479,   109,
1127      652,  -485,  -485,   655,   656,   653,   814,   815,    77,   402,
1128     -123,   368,   152,  -485,   414,   875,   749,   750,   751,   332,
1129     -491,   155,   426,  -485,   187,  -485,   188,   804,   423,   439,
1130      315,   315,   441,   440,   918,   463,   315,   424,   442,   158,
1131      437,    77,   443,   425,   623,   471,   429,   201,   109,  -484,
1132     -484,   660,   436,   485,   451,   160,   827,   452,   469,   991,
1133      455,  -484,   475,   992,   491,   994,   525,   453,  -490,   995,
1134      156,  -484,   454,  -484,   469,   457,   475,   469,   475,   533,
1135      534,   535,   537,   538,   539,   540,   541,   542,   543,   544,
1136      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1137      555,   556,   557,   558,   559,   560,   460,   562,  -528,  -528,
1138      487,  -528,  1005,  -491,   155,   484,   578,   175,   298,   581,
1139      582,   583,   584,   585,   586,   587,   588,   589,   590,   591,
1140      592,   593,   594,   785,   786,   682,   595,   488,   683,  1049,
1141     1050,   763,   685,   686,   765,   322,   324,   603,   175,   489,
1142      298,   167,  -527,  -527,   855,  -527,   155,   856,   857,   858,
1143      859,   860,   861,   862,   990,   616,   531,   298,   528,   530,
1144      299,   564,   723,   532,   608,   728,  1001,  -488,  -488,   605,
1145      627,   375,   376,   610,   611,    77,   694,   620,   619,   697,
1146      856,   857,   858,   859,   860,   861,   862,   622,   198,  -488,
1147      298,  -488,   299,   377,   629,   378,  1020,   631,   635,    90,
1148      109,   950,   634,    91,   835,   836,   837,   638,    77,   299,
1149      833,    93,   300,   315,   689,   664,  1034,   315,  1035,  -486,
1150     -486,   128,   130,   131,   132,   133,   134,   135,   149,   298,
1151      330,  -486,   640,   479,   109,   648,   752,   642,   752,   645,
1152      643,  -486,   299,  -486,   300,   876,   705,   647,   649,   668,
1153      658,   728,   364,   365,   366,   665,   367,   673,   659,   674,
1154      -43,   300,   -70,   446,   -66,   676,   368,   -67,   893,   360,
1155      361,   362,   363,   364,   365,   366,   773,   367,   -68,   155,
1156      -62,   299,   155,   895,   836,   837,   908,   368,    90,   109,
1157      405,   406,    91,   -63,   300,   681,   738,   -65,   298,   -64,
1158       93,   -69,   407,   684,   669,  -483,  -483,   125,    28,    29,
1159       30,    31,   408,   670,   409,   806,   752,  -483,   672,   678,
1160      680,   479,   109,   479,   109,   871,  -514,  -483,  -516,  -483,
1161      688,   692,   732,   300,  -315,   767,  -315,   695,   943,   418,
1162      700,   831,   330,   710,   856,   857,   858,   859,   860,   861,
1163      299,   152,   718,   431,   720,   864,   722,   724,  -490,   726,
1164      447,   733,   153,   734,   736,    49,    50,   737,   155,   752,
1165      960,   739,   758,   974,   907,   329,    57,    58,   743,    77,
1166      976,   766,   728,   768,   775,   735,    63,    64,    65,   777,
1167      788,   479,   109,   790,   740,   794,   807,   798,   741,   525,
1168      816,   154,   300,    77,   705,   799,   748,   855,   810,    87,
1169      856,   857,   858,   859,   860,   861,   862,   362,   363,   364,
1170      365,   366,   803,   367,   811,   808,   957,   916,   822,   828,
1171      864,   847,   315,   368,   479,   109,   824,   840,    77,   784,
1172     1023,   843,   155,   845,  1026,   842,  1028,   848,   849,   852,
1173      854,   479,   109,   851,   873,   874,   877,   816,   881,   883,
1174      936,   801,   831,   981,   973,   884,   479,   109,   315,   864,
1175      885,   996,   886,   977,   888,   889,   890,   891,   892,   988,
1176      896,   902,   905,   910,   919,   926,   927,   932,  1052,   954,
1177      940,   155,   864,   981,   941,   418,   963,   315,   964,   155,
1178      966,   479,   109,   975,   978,   957,   989,   993,  1002,   988,
1179     1003,   816,  1004,  1006,  1008,   701,  -445,  1011,  1012,   864,
1180     1013,   816,  1014,  1015,  1022,  1025,  1033,   816,   816,  1027,
1181     1046,  1036,   479,   109,   479,   109,  1030,   644,   191,   850,
1182      855,   728,  1042,   856,   857,   858,   859,   860,   861,   862,
1183      435,   125,    28,    29,    30,    31,   625,   420,    33,   719,
1184      334,   829,   938,   903,   816,   897,   942,   879,   809,   914,
1185      742,    77,   784,   626,   904,   628,  1010,   913,  1019,  1017,
1186      607,   479,   109,   617,   479,   109,   479,   109,   401,  1024,
1187      155,   561,   597,   572,   752,   152,   155,   997,   666,   721,
1188        0,     0,     0,     0,     0,     0,     0,   816,   816,     0,
1189      479,   109,   702,    68,     0,    69,    70,    71,    72,    73,
1190       74,    75,    76,     0,     0,     0,   155,     0,     0,     0,
1191        0,   944,     0,     0,   945,     0,     0,     0,     0,     0,
1192      340,   341,   342,     0,     0,   296,     0,     0,     0,     0,
1193      703,     0,    86,    87,     0,     0,     0,     0,   155,     0,
1194        0,   343,   677,   344,   345,   346,   347,   348,   349,   350,
1195      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1196      361,   362,   363,   364,   365,   366,   492,   367,   493,   494,
1197      495,   496,   214,   215,   216,   497,   498,   368,    11,   350,
1198      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1199      361,   362,   363,   364,   365,   366,     0,   367,  1016,     0,
1200        0,     0,  1018,     0,     0,     0,     0,   368,     0,  1021,
1201        0,     0,     0,    12,    13,     0,     0,     0,    14,   219,
1202       15,    16,    17,    18,    19,    20,    21,    22,    23,     0,
1203      499,  1038,   221,   222,    25,    26,   500,    28,    29,    30,
1204       31,     0,     0,    33,     0,     0,   501,   502,   503,   228,
1205      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1206      239,   240,   241,   242,   243,   244,   504,   246,   247,   248,
1207      505,   506,   251,   252,   253,   254,   255,   256,   257,   258,
1208      507,   260,   261,   262,   263,   264,   265,   266,   508,   509,
1209        0,   269,   270,   271,   272,   273,   274,   510,   511,   277,
1210      512,   513,   514,   515,   516,   517,   518,   519,    77,    78,
1211       79,     0,     0,     0,     0,     0,     0,     0,     0,    80,
1212        0,     0,     0,     0,     0,   520,     0,     0,     0,     0,
1213       81,   521,   340,   341,   342,    84,    85,    86,    87,   492,
1214        0,   493,   494,   495,   496,   214,   215,   216,   497,   498,
1215        0,    11,     0,   343,     0,   344,   345,   346,   347,   348,
1216      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1217      359,   360,   361,   362,   363,   364,   365,   366,     0,   367,
1218        0,     0,     0,     0,     0,     0,    12,    13,     0,   368,
1219        0,    14,   219,    15,    16,    17,    18,    19,    20,    21,
1220       22,    23,     0,   499,     0,   221,   222,    25,    26,   500,
1221       28,    29,    30,    31,     0,     0,    33,     0,     0,   501,
1222      502,   503,   228,   229,   230,   231,   232,   233,   234,   235,
1223      236,   237,   238,   239,   240,   241,   242,   243,   244,   504,
1224      246,   247,   248,   505,   506,   251,   252,   253,   254,   255,
1225      256,   257,   258,   507,   260,   261,   262,   263,   264,   265,
1226      266,   508,   509,     0,   269,   270,   271,   272,   273,   274,
1227      510,   511,   277,   512,   513,   514,   515,   516,   517,   518,
1228      519,    77,    78,    79,     4,     0,     5,     6,     7,     8,
1229        0,   476,    80,     9,    10,     0,    11,     0,   520,     0,
1230        0,     0,     0,    81,     0,     0,     0,     0,    84,    85,
1231       86,    87,  -529,  -529,  -529,  -529,   359,   360,   361,   362,
1232      363,   364,   365,   366,     0,   367,     0,     0,     0,     0,
1233        0,    12,    13,     0,     0,   368,    14,     0,    15,    16,
1234       17,    18,    19,    20,    21,    22,    23,     0,    24,     0,
1235        0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
1236        0,    33,     0,     0,    34,    35,    36,    37,     0,    38,
1237       39,    40,     0,    41,     0,    42,     0,    43,     0,     0,
1238       44,     0,     0,     0,    45,    46,    47,    48,    49,    50,
1239       51,    52,    53,     0,     0,    54,     0,    55,    56,    57,
1240       58,     0,     0,     0,     0,    59,    60,    61,    62,    63,
1241       64,    65,     0,     0,    66,    67,    68,     0,    69,    70,
1242       71,    72,    73,    74,    75,    76,    77,    78,    79,     4,
1243        0,     5,     6,     7,     8,     0,     0,    80,     9,    10,
1244        0,    11,     0,     0,     0,     0,     0,     0,    81,     0,
1245       82,    83,   731,    84,    85,    86,    87,     0,     0,     0,
1246        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1247        0,     0,     0,     0,     0,     0,    12,    13,     0,     0,
1248        0,    14,     0,    15,    16,    17,    18,    19,    20,    21,
1249       22,    23,     0,    24,     0,     0,     0,    25,    26,    27,
1250       28,    29,    30,    31,    32,     0,    33,     0,     0,    34,
1251       35,    36,    37,     0,    38,    39,    40,     0,    41,     0,
1252       42,     0,    43,     0,     0,    44,     0,     0,     0,    45,
1253       46,    47,    48,    49,    50,    51,    52,    53,     0,     0,
1254       54,     0,    55,    56,    57,    58,     0,     0,     0,     0,
1255       59,    60,    61,    62,    63,    64,    65,     0,     0,    66,
1256       67,    68,     0,    69,    70,    71,    72,    73,    74,    75,
1257       76,    77,    78,    79,     4,     0,     5,     6,     7,     8,
1258        0,     0,    80,     9,    10,     0,    11,     0,     0,     0,
1259        0,     0,     0,    81,     0,    82,    83,   800,    84,    85,
1260       86,    87,     0,     0,     0,     0,     0,     0,     0,     0,
1261        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1262        0,    12,    13,     0,     0,     0,    14,     0,    15,    16,
1263       17,    18,    19,    20,    21,    22,    23,     0,    24,     0,
1264        0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
1265        0,    33,     0,     0,    34,    35,    36,    37,     0,    38,
1266       39,    40,     0,    41,     0,    42,     0,    43,     0,     0,
1267       44,     0,     0,     0,    45,    46,    47,    48,    49,    50,
1268       51,    52,    53,     0,     0,    54,     0,    55,    56,    57,
1269       58,     0,     0,     0,     0,    59,    60,    61,    62,    63,
1270       64,    65,     0,     0,    66,    67,    68,     0,    69,    70,
1271       71,    72,    73,    74,    75,    76,    77,    78,    79,     4,
1272        0,     5,     6,     7,     8,     0,     0,    80,     9,    10,
1273        0,    11,     0,     0,     0,     0,     0,     0,    81,     0,
1274       82,    83,     0,    84,    85,    86,    87,     0,     0,     0,
1275        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1276        0,     0,     0,     0,     0,     0,    12,    13,     0,     0,
1277        0,    14,     0,    15,    16,    17,    18,    19,    20,    21,
1278       22,    23,     0,    24,     0,     0,     0,    25,    26,    27,
1279       28,    29,    30,    31,    32,     0,    33,     0,     0,    34,
1280       35,    36,    37,     0,    38,    39,    40,     0,    41,     0,
1281       42,     0,    43,     0,     0,    44,     0,     0,     0,    45,
1282       46,    47,    48,    49,    50,     0,    52,    53,     0,     0,
1283        0,     0,    55,    56,    57,    58,     0,     0,     0,     0,
1284       59,    60,    61,   477,    63,    64,    65,     0,     0,     0,
1285       67,    68,     0,    69,    70,    71,    72,    73,    74,    75,
1286       76,    77,    78,    79,     4,     0,     5,     6,     7,     8,
1287        0,     0,    80,     9,    10,     0,    11,     0,     0,     0,
1288        0,     0,     0,    81,     0,    82,    83,   478,    84,    85,
1289       86,    87,     0,     0,     0,     0,     0,     0,     0,     0,
1290        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1291        0,    12,    13,     0,     0,     0,    14,     0,    15,    16,
1292       17,    18,    19,    20,    21,    22,    23,     0,    24,     0,
1293        0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
1294        0,    33,     0,     0,    34,    35,    36,    37,     0,    38,
1295       39,    40,     0,    41,     0,    42,     0,    43,     0,     0,
1296       44,     0,     0,     0,    45,    46,    47,    48,    49,    50,
1297        0,    52,    53,     0,     0,     0,     0,    55,    56,    57,
1298       58,     0,     0,     0,     0,    59,    60,    61,   477,    63,
1299       64,    65,     0,     0,     0,    67,    68,     0,    69,    70,
1300       71,    72,    73,    74,    75,    76,    77,    78,    79,     4,
1301        0,     5,     6,     7,     8,     0,     0,    80,     9,    10,
1302        0,    11,     0,     0,     0,     0,     0,     0,    81,     0,
1303       82,    83,   618,    84,    85,    86,    87,     0,     0,     0,
1304        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1305        0,     0,     0,     0,     0,     0,    12,    13,     0,     0,
1306        0,    14,     0,    15,    16,    17,    18,    19,    20,    21,
1307       22,    23,     0,    24,     0,     0,     0,    25,    26,    27,
1308       28,    29,    30,    31,    32,     0,    33,     0,     0,    34,
1309       35,    36,    37,   747,    38,    39,    40,     0,    41,     0,
1310       42,     0,    43,     0,     0,    44,     0,     0,     0,    45,
1311       46,    47,    48,    49,    50,     0,    52,    53,     0,     0,
1312        0,     0,    55,    56,    57,    58,     0,     0,     0,     0,
1313       59,    60,    61,   477,    63,    64,    65,     0,     0,     0,
1314       67,    68,     0,    69,    70,    71,    72,    73,    74,    75,
1315       76,    77,    78,    79,     4,     0,     5,     6,     7,     8,
1316        0,     0,    80,     9,    10,     0,    11,     0,     0,     0,
1317        0,     0,     0,    81,     0,    82,    83,     0,    84,    85,
1318       86,    87,     0,     0,     0,     0,     0,     0,     0,     0,
1319        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1320        0,    12,    13,     0,     0,     0,    14,     0,    15,    16,
1321       17,    18,    19,    20,    21,    22,    23,     0,    24,     0,
1322        0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
1323        0,    33,     0,     0,    34,    35,    36,    37,     0,    38,
1324       39,    40,   825,    41,     0,    42,     0,    43,     0,     0,
1325       44,     0,     0,     0,    45,    46,    47,    48,    49,    50,
1326        0,    52,    53,     0,     0,     0,     0,    55,    56,    57,
1327       58,     0,     0,     0,     0,    59,    60,    61,   477,    63,
1328       64,    65,     0,     0,     0,    67,    68,     0,    69,    70,
1329       71,    72,    73,    74,    75,    76,    77,    78,    79,     4,
1330        0,     5,     6,     7,     8,     0,     0,    80,     9,    10,
1331        0,    11,     0,     0,     0,     0,     0,     0,    81,     0,
1332       82,    83,     0,    84,    85,    86,    87,     0,     0,     0,
1333        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1334        0,     0,     0,     0,     0,     0,    12,    13,     0,     0,
1335        0,    14,     0,    15,    16,    17,    18,    19,    20,    21,
1336       22,    23,     0,    24,     0,     0,     0,    25,    26,    27,
1337       28,    29,    30,    31,    32,     0,    33,     0,     0,    34,
1338       35,    36,    37,     0,    38,    39,    40,     0,    41,     0,
1339       42,     0,    43,   894,     0,    44,     0,     0,     0,    45,
1340       46,    47,    48,    49,    50,     0,    52,    53,     0,     0,
1341        0,     0,    55,    56,    57,    58,     0,     0,     0,     0,
1342       59,    60,    61,   477,    63,    64,    65,     0,     0,     0,
1343       67,    68,     0,    69,    70,    71,    72,    73,    74,    75,
1344       76,    77,    78,    79,     4,     0,     5,     6,     7,     8,
1345        0,     0,    80,     9,    10,     0,    11,     0,     0,     0,
1346        0,     0,     0,    81,     0,    82,    83,     0,    84,    85,
1347       86,    87,     0,     0,     0,     0,     0,     0,     0,     0,
1348        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1349        0,    12,    13,     0,     0,     0,    14,     0,    15,    16,
1350       17,    18,    19,    20,    21,    22,    23,     0,    24,     0,
1351        0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
1352        0,    33,     0,     0,    34,    35,    36,    37,     0,    38,
1353       39,    40,     0,    41,     0,    42,   939,    43,     0,     0,
1354       44,     0,     0,     0,    45,    46,    47,    48,    49,    50,
1355        0,    52,    53,     0,     0,     0,     0,    55,    56,    57,
1356       58,     0,     0,     0,     0,    59,    60,    61,   477,    63,
1357       64,    65,     0,     0,     0,    67,    68,     0,    69,    70,
1358       71,    72,    73,    74,    75,    76,    77,    78,    79,     4,
1359        0,     5,     6,     7,     8,     0,     0,    80,     9,    10,
1360        0,    11,     0,     0,     0,     0,     0,     0,    81,     0,
1361       82,    83,     0,    84,    85,    86,    87,     0,     0,     0,
1362        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1363        0,     0,     0,     0,     0,     0,    12,    13,     0,     0,
1364        0,    14,     0,    15,    16,    17,    18,    19,    20,    21,
1365       22,    23,     0,    24,     0,     0,     0,    25,    26,    27,
1366       28,    29,    30,    31,    32,     0,    33,     0,     0,    34,
1367       35,    36,    37,     0,    38,    39,    40,     0,    41,     0,
1368       42,     0,    43,     0,     0,    44,     0,     0,     0,    45,
1369       46,    47,    48,    49,    50,     0,    52,    53,     0,     0,
1370        0,     0,    55,    56,    57,    58,     0,     0,     0,     0,
1371       59,    60,    61,   477,    63,    64,    65,     0,     0,     0,
1372       67,    68,     0,    69,    70,    71,    72,    73,    74,    75,
1373       76,    77,    78,    79,     4,     0,     5,     6,     7,     8,
1374        0,     0,    80,     9,    10,     0,    11,     0,     0,     0,
1375        0,     0,     0,    81,     0,    82,    83,   949,    84,    85,
1376       86,    87,     0,     0,     0,     0,     0,     0,     0,     0,
1377        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1378        0,    12,    13,     0,     0,     0,    14,     0,    15,    16,
1379       17,    18,    19,    20,    21,    22,    23,     0,    24,     0,
1380        0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
1381        0,    33,     0,     0,    34,    35,    36,    37,     0,    38,
1382       39,    40,     0,    41,  1007,    42,     0,    43,     0,     0,
1383       44,     0,     0,     0,    45,    46,    47,    48,    49,    50,
1384        0,    52,    53,     0,     0,     0,     0,    55,    56,    57,
1385       58,     0,     0,     0,     0,    59,    60,    61,   477,    63,
1386       64,    65,     0,     0,     0,    67,    68,     0,    69,    70,
1387       71,    72,    73,    74,    75,    76,    77,    78,    79,     4,
1388        0,     5,     6,     7,     8,     0,     0,    80,     9,    10,
1389        0,    11,     0,     0,     0,     0,     0,     0,    81,     0,
1390       82,    83,     0,    84,    85,    86,    87,     0,     0,     0,
1391        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1392        0,     0,     0,     0,     0,     0,    12,    13,     0,     0,
1393        0,    14,     0,    15,    16,    17,    18,    19,    20,    21,
1394       22,    23,     0,    24,     0,     0,     0,    25,    26,    27,
1395       28,    29,    30,    31,    32,     0,    33,     0,     0,    34,
1396       35,    36,    37,     0,    38,    39,    40,     0,    41,     0,
1397       42,     0,    43,     0,     0,    44,     0,     0,     0,    45,
1398       46,    47,    48,    49,    50,     0,    52,    53,     0,     0,
1399        0,     0,    55,    56,    57,    58,     0,     0,     0,     0,
1400       59,    60,    61,   477,    63,    64,    65,     0,     0,     0,
1401       67,    68,     0,    69,    70,    71,    72,    73,    74,    75,
1402       76,    77,    78,    79,     4,     0,     5,     6,     7,     8,
1403        0,     0,    80,     9,    10,     0,    11,     0,     0,     0,
1404        0,     0,     0,    81,     0,    82,    83,  1039,    84,    85,
1405       86,    87,     0,     0,     0,     0,     0,     0,     0,     0,
1406        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1407        0,    12,    13,     0,     0,     0,    14,     0,    15,    16,
1408       17,    18,    19,    20,    21,    22,    23,     0,    24,     0,
1409        0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
1410        0,    33,     0,     0,    34,    35,    36,    37,     0,    38,
1411       39,    40,     0,    41,     0,    42,     0,    43,     0,     0,
1412       44,     0,     0,     0,    45,    46,    47,    48,    49,    50,
1413        0,    52,    53,     0,     0,     0,     0,    55,    56,    57,
1414       58,     0,     0,     0,     0,    59,    60,    61,   477,    63,
1415       64,    65,     0,     0,     0,    67,    68,     0,    69,    70,
1416       71,    72,    73,    74,    75,    76,    77,    78,    79,     4,
1417        0,     5,     6,     7,     8,     0,     0,    80,     9,    10,
1418        0,    11,     0,     0,     0,     0,     0,     0,    81,     0,
1419       82,    83,  1040,    84,    85,    86,    87,     0,     0,     0,
1420        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1421        0,     0,     0,     0,     0,     0,    12,    13,     0,     0,
1422        0,    14,     0,    15,    16,    17,    18,    19,    20,    21,
1423       22,    23,     0,    24,     0,     0,     0,    25,    26,    27,
1424       28,    29,    30,    31,    32,     0,    33,     0,     0,    34,
1425       35,    36,    37,     0,    38,    39,    40,     0,    41,     0,
1426       42,     0,    43,     0,     0,    44,     0,     0,     0,    45,
1427       46,    47,    48,    49,    50,     0,    52,    53,     0,     0,
1428        0,     0,    55,    56,    57,    58,     0,     0,     0,     0,
1429       59,    60,    61,   477,    63,    64,    65,     0,     0,     0,
1430       67,    68,     0,    69,    70,    71,    72,    73,    74,    75,
1431       76,    77,    78,    79,     4,     0,     5,     6,     7,     8,
1432        0,     0,    80,     9,    10,     0,    11,     0,     0,     0,
1433        0,     0,     0,    81,     0,    82,    83,  1041,    84,    85,
1434       86,    87,     0,     0,     0,     0,     0,     0,     0,     0,
1435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1436        0,    12,    13,     0,     0,     0,    14,     0,    15,    16,
1437       17,    18,    19,    20,    21,    22,    23,     0,    24,     0,
1438        0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
1439        0,    33,     0,     0,    34,    35,    36,    37,     0,    38,
1440       39,    40,     0,    41,     0,    42,     0,    43,     0,     0,
1441       44,     0,     0,     0,    45,    46,    47,    48,    49,    50,
1442        0,    52,    53,     0,     0,     0,     0,    55,    56,    57,
1443       58,     0,     0,     0,     0,    59,    60,    61,   477,    63,
1444       64,    65,     0,     0,     0,    67,    68,     0,    69,    70,
1445       71,    72,    73,    74,    75,    76,    77,    78,    79,     4,
1446        0,     5,     6,     7,     8,     0,     0,    80,     9,    10,
1447        0,    11,     0,     0,     0,     0,     0,     0,    81,     0,
1448       82,    83,  1054,    84,    85,    86,    87,     0,     0,     0,
1449        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1450        0,     0,     0,     0,     0,     0,    12,    13,     0,     0,
1451        0,    14,     0,    15,    16,    17,    18,    19,    20,    21,
1452       22,    23,     0,    24,     0,     0,     0,    25,    26,    27,
1453       28,    29,    30,    31,    32,     0,    33,     0,     0,    34,
1454       35,    36,    37,     0,    38,    39,    40,     0,    41,     0,
1455       42,     0,    43,     0,     0,    44,     0,     0,     0,    45,
1456       46,    47,    48,    49,    50,     0,    52,    53,     0,     0,
1457        0,     0,    55,    56,    57,    58,     0,     0,     0,     0,
1458       59,    60,    61,   477,    63,    64,    65,     0,     0,     0,
1459       67,    68,     0,    69,    70,    71,    72,    73,    74,    75,
1460       76,    77,    78,    79,     0,     0,     0,     0,     0,     0,
1461        0,   209,    80,   210,   211,   212,   213,   214,   215,   216,
1462      217,   218,     0,    81,     0,    82,    83,     0,    84,    85,
1463       86,    87,   343,     0,   344,   345,   346,   347,   348,   349,
1464      350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
1465      360,   361,   362,   363,   364,   365,   366,     0,   367,     0,
1466        0,     0,     0,     0,   219,     0,     0,     0,   368,     0,
1467        0,     0,     0,     0,     0,   220,     0,   221,   222,     0,
1468        0,   223,     0,     0,     0,    31,     0,     0,     0,     0,
1469        0,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1470      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1471      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1472      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1473      264,   265,   266,   267,   268,     0,   269,   270,   271,   272,
1474      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1475      283,   284,   285,     4,     0,     5,     6,     7,     8,     0,
1476        0,     0,     9,    10,     0,    11,     0,     0,     0,     0,
1477        0,     0,     0,     0,     0,     0,     0,     0,   566,     0,
1478        0,   693,     0,    87,     0,     0,     0,     0,     0,     0,
1479        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1480       12,    13,     0,     0,     0,    14,     0,    15,    16,    17,
1481       18,    19,    20,    21,    22,    23,     0,    24,     0,     0,
1482        0,    25,    26,    27,    28,    29,    30,    31,    32,     0,
1483       33,     0,     0,    34,    35,    36,    37,     0,    38,    39,
1484       40,     0,    41,     0,    42,     0,    43,     0,     0,    44,
1485        0,     0,     0,    45,    46,    47,    48,    49,    50,     0,
1486       52,    53,     0,     0,     0,     0,    55,    56,     0,     0,
1487        0,     0,     0,     0,    59,    60,    61,     0,     0,     0,
1488        0,     0,     0,     0,    67,    68,     0,    69,    70,    71,
1489       72,    73,    74,    75,    76,    77,    78,    79,     4,     0,
1490        5,     6,     7,     8,     0,     0,    80,     9,    10,     0,
1491       11,     0,     0,     0,     0,     0,     0,    81,     0,    82,
1492       83,     0,    84,    85,    86,    87,   696,     0,     0,     0,
1493        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1494        0,     0,     0,     0,     0,    12,    13,     0,     0,     0,
1495       14,     0,    15,    16,    17,    18,    19,    20,    21,    22,
1496       23,     0,    24,     0,     0,     0,    25,    26,    27,    28,
1497       29,    30,    31,    32,     0,    33,     0,     0,    34,    35,
1498       36,    37,     0,    38,    39,    40,     0,    41,     0,    42,
1499        0,    43,     0,     0,    44,     0,     0,     0,    45,    46,
1500       47,    48,    49,    50,     0,    52,    53,     0,     0,     0,
1501        0,    55,    56,     0,     0,     0,     0,     0,     0,    59,
1502       60,    61,     0,     0,     0,     0,     0,     0,     0,    67,
1503       68,     0,    69,    70,    71,    72,    73,    74,    75,    76,
1504       77,    78,    79,     4,     0,     5,     6,     7,     8,     0,
1505        0,    80,     9,    10,     0,    11,     0,     0,     0,     0,
1506        0,     0,    81,     0,    82,    83,     0,    84,    85,    86,
1507       87,   772,     0,     0,     0,     0,     0,     0,     0,     0,
1508        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1509       12,    13,     0,     0,     0,    14,     0,    15,    16,    17,
1510       18,    19,    20,    21,    22,    23,     0,    24,     0,     0,
1511        0,    25,    26,    27,    28,    29,    30,    31,    32,     0,
1512       33,     0,     0,    34,    35,    36,    37,     0,    38,    39,
1513       40,     0,    41,     0,    42,     0,    43,     0,     0,    44,
1514        0,     0,     0,    45,    46,    47,    48,    49,    50,     0,
1515       52,    53,     0,     0,     0,     0,    55,    56,     0,     0,
1516        0,     0,     0,     0,    59,    60,    61,     0,     0,     0,
1517        0,     0,     0,     0,    67,    68,     0,    69,    70,    71,
1518       72,    73,    74,    75,    76,    77,    78,    79,     4,     0,
1519        5,     6,     7,     8,     0,     0,    80,     9,    10,     0,
1520       11,     0,     0,     0,     0,     0,     0,    81,     0,    82,
1521       83,     0,    84,    85,    86,    87,   830,     0,     0,     0,
1522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1523        0,     0,     0,     0,     0,    12,    13,     0,     0,     0,
1524       14,     0,    15,    16,    17,    18,    19,    20,    21,    22,
1525       23,     0,    24,     0,     0,     0,    25,    26,    27,    28,
1526       29,    30,    31,    32,     0,    33,     0,     0,    34,    35,
1527       36,    37,     0,    38,    39,    40,     0,    41,     0,    42,
1528        0,    43,     0,     0,    44,     0,     0,     0,    45,    46,
1529       47,    48,    49,    50,     0,    52,    53,     0,     0,     0,
1530        0,    55,    56,     0,     0,     0,     0,     0,     0,    59,
1531       60,    61,     0,     0,     0,     0,     0,     0,     0,    67,
1532       68,     0,    69,    70,    71,    72,    73,    74,    75,    76,
1533       77,    78,    79,     4,     0,     5,     6,     7,     8,     0,
1534        0,    80,     9,    10,     0,    11,     0,     0,     0,     0,
1535        0,     0,    81,     0,    82,    83,     0,    84,    85,    86,
1536       87,   935,     0,     0,     0,     0,     0,     0,     0,     0,
1537        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1538       12,    13,     0,     0,     0,    14,     0,    15,    16,    17,
1539       18,    19,    20,    21,    22,    23,     0,    24,     0,     0,
1540        0,    25,    26,    27,    28,    29,    30,    31,    32,     0,
1541       33,     0,     0,    34,    35,    36,    37,     0,    38,    39,
1542       40,     0,    41,     0,    42,     0,    43,     0,     0,    44,
1543        0,     0,     0,    45,    46,    47,    48,    49,    50,     0,
1544       52,    53,     0,     0,     0,     0,    55,    56,     0,     0,
1545        0,     0,     0,     0,    59,    60,    61,     0,     0,     0,
1546        0,     0,     0,     0,    67,    68,     0,    69,    70,    71,
1547       72,    73,    74,    75,    76,    77,    78,    79,     4,     0,
1548        5,     6,     7,     8,     0,     0,    80,     9,    10,     0,
1549       11,     0,     0,     0,     0,     0,     0,    81,     0,    82,
1550       83,     0,    84,    85,    86,    87,     0,     0,     0,     0,
1551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1552        0,     0,     0,     0,     0,    12,    13,     0,     0,     0,
1553       14,     0,    15,    16,    17,    18,    19,    20,    21,    22,
1554       23,     0,    24,     0,     0,     0,    25,    26,    27,    28,
1555       29,    30,    31,    32,     0,    33,     0,     0,    34,    35,
1556       36,    37,     0,    38,    39,    40,     0,    41,     0,    42,
1557        0,    43,     0,     0,    44,     0,     0,     0,    45,    46,
1558       47,    48,    49,    50,     0,    52,    53,     0,     0,     0,
1559        0,    55,    56,     0,     0,     0,     0,     0,     0,    59,
1560       60,    61,     0,     0,     0,     0,     0,     0,     0,    67,
1561       68,     0,    69,    70,    71,    72,    73,    74,    75,    76,
1562       77,    78,    79,     4,     0,     5,     6,     7,     8,     0,
1563        0,    80,     9,    10,     0,    11,     0,     0,     0,     0,
1564        0,     0,    81,     0,    82,    83,     0,    84,    85,    86,
1565       87,     0,     0,     0,     0,     0,     0,   312,     0,     0,
1566        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1567       12,    13,     0,     0,     0,    14,     0,    15,    16,    17,
1568       18,    19,    20,    21,    22,    23,     0,    24,     0,     0,
1569        0,    25,    26,   125,    28,    29,    30,    31,     0,     0,
1570       33,     0,     0,    34,    35,    36,  -529,  -529,  -529,  -529,
1571     -529,   355,   356,   357,   358,   359,   360,   361,   362,   363,
1572      364,   365,   366,    45,   367,     0,     0,    49,    50,     0,
1573        0,     0,     0,     0,   368,     0,     0,   126,     0,     0,
1574        0,     0,     0,     0,     0,    60,    61,     0,     0,     0,
1575        0,     0,     0,     0,   313,    68,     0,    69,    70,    71,
1576       72,    73,    74,    75,    76,    77,    78,    79,     4,     0,
1577        5,     6,     7,     8,     0,     0,    80,     9,    10,     0,
1578       11,     0,   314,     0,     0,     0,     0,    81,     0,     0,
1579        0,     0,    84,    85,    86,    87,     0,     0,     0,     0,
1580        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1581        0,     0,     0,     0,     0,    12,    13,     0,     0,     0,
1582       14,     0,    15,    16,    17,    18,    19,    20,    21,    22,
1583       23,     0,    24,     0,     0,     0,    25,    26,   125,    28,
1584       29,    30,    31,     0,     0,    33,   470,     0,    34,    35,
1585       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1586        0,     0,     0,     0,     0,     0,     0,     0,    45,     0,
1587        0,     0,    49,    50,     0,     0,     0,     0,     0,     0,
1588        0,     0,   126,     0,     0,     0,     0,     0,     0,     0,
1589       60,    61,     0,     0,     0,     0,     0,     0,     0,    67,
1590       68,     0,    69,    70,    71,    72,    73,    74,    75,    76,
1591       77,    78,    79,     4,     0,     5,     6,     7,     8,     0,
1592        0,    80,     9,    10,     0,    11,     0,     0,     0,     0,
1593        0,     0,    81,     0,     0,     0,     0,    84,    85,    86,
1594       87,   536,     0,     0,     0,     0,     0,     0,     0,     0,
1595        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1596       12,    13,     0,     0,     0,    14,     0,    15,    16,    17,
1597       18,    19,    20,    21,    22,    23,     0,    24,     0,     0,
1598        0,    25,    26,   125,    28,    29,    30,    31,     0,     0,
1599       33,     0,     0,    34,    35,    36,     0,     0,     0,     0,
1600        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1601        0,     0,     0,    45,     0,     0,     0,    49,    50,     0,
1602        0,     0,     0,     0,     0,     0,     0,   126,     0,     0,
1603        0,     0,     0,     0,     0,    60,    61,     0,     0,     0,
1604        0,     0,     0,     0,    67,    68,     0,    69,    70,    71,
1605       72,    73,    74,    75,    76,    77,    78,    79,     4,     0,
1606        5,     6,     7,     8,     0,     0,    80,     9,    10,     0,
1607       11,     0,     0,     0,     0,     0,     0,    81,     0,     0,
1608        0,     0,    84,    85,    86,    87,     0,     0,     0,     0,
1609        0,     0,   580,     0,     0,     0,     0,     0,     0,     0,
1610        0,     0,     0,     0,     0,    12,    13,     0,     0,     0,
1611       14,     0,    15,    16,    17,    18,    19,    20,    21,    22,
1612       23,     0,    24,     0,     0,     0,    25,    26,   125,    28,
1613       29,    30,    31,     0,     0,    33,     0,     0,    34,    35,
1614       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1615        0,     0,     0,     0,     0,     0,     0,     0,    45,     0,
1616        0,     0,    49,    50,     0,     0,     0,     0,     0,     0,
1617        0,     0,   126,     0,     0,     0,     0,     0,     0,     0,
1618       60,    61,     0,     0,     0,     0,     0,     0,     0,    67,
1619       68,     0,    69,    70,    71,    72,    73,    74,    75,    76,
1620       77,    78,    79,     4,     0,     5,     6,     7,     8,     0,
1621        0,    80,     9,    10,     0,    11,     0,     0,     0,     0,
1622        0,     0,    81,     0,     0,     0,     0,    84,    85,    86,
1623       87,     0,     0,     0,     0,     0,     0,   662,     0,     0,
1624        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1625       12,    13,     0,     0,     0,    14,     0,    15,    16,    17,
1626       18,    19,    20,    21,    22,    23,     0,    24,     0,     0,
1627        0,    25,    26,   125,    28,    29,    30,    31,     0,     0,
1628       33,     0,     0,    34,    35,    36,     0,     0,     0,     0,
1629        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1630        0,     0,     0,    45,     0,     0,     0,    49,    50,     0,
1631        0,     0,     0,     0,     0,     0,     0,   126,     0,     0,
1632        0,     0,     0,     0,     0,    60,    61,     0,     0,     0,
1633        0,     0,     0,     0,   663,    68,     0,    69,    70,    71,
1634       72,    73,    74,    75,    76,    77,    78,    79,     4,     0,
1635        5,     6,     7,     8,     0,     0,    80,     9,    10,     0,
1636       11,     0,     0,     0,     0,     0,     0,    81,     0,     0,
1637        0,     0,    84,    85,    86,    87,   -47,     0,     0,     0,
1638        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1639        0,     0,     0,     0,     0,    12,    13,     0,     0,     0,
1640       14,     0,    15,    16,    17,    18,    19,    20,    21,    22,
1641       23,     0,    24,     0,     0,     0,    25,    26,   125,    28,
1642       29,    30,    31,     0,     0,    33,     0,     0,    34,    35,
1643       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1644        0,     0,     0,     0,     0,     0,     0,     0,    45,     0,
1645        0,     0,    49,    50,     0,     0,     0,     0,     0,     0,
1646        0,     0,   126,     0,     0,     0,     0,     0,     0,     0,
1647       60,    61,     0,     0,     0,     0,     0,     0,     0,    67,
1648       68,     0,    69,    70,    71,    72,    73,    74,    75,    76,
1649       77,    78,    79,     4,     0,     5,     6,     7,     8,     0,
1650        0,    80,     9,    10,     0,    11,     0,     0,     0,     0,
1651        0,     0,    81,     0,     0,     0,     0,    84,    85,    86,
1652       87,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1653        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1654       12,    13,     0,     0,     0,    14,     0,    15,    16,    17,
1655       18,    19,    20,    21,    22,    23,     0,    24,     0,     0,
1656        0,    25,    26,   125,    28,    29,    30,    31,     0,     0,
1657       33,     0,     0,    34,    35,    36,     0,     0,     0,     0,
1658        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1659        0,     0,   779,    45,     0,     0,     0,    49,    50,     0,
1660        0,     0,     0,     0,     0,     0,     0,   126,     0,     0,
1661        0,     0,     0,     0,     0,    60,    61,     0,     0,     0,
1662        0,     0,     0,     0,    67,    68,     0,    69,    70,    71,
1663       72,    73,    74,    75,    76,    77,    78,    79,     4,     0,
1664        5,     6,     7,     8,     0,     0,    80,     9,    10,     0,
1665       11,     0,     0,     0,     0,     0,     0,    81,     0,     0,
1666        0,     0,    84,    85,    86,    87,     0,     0,     0,     0,
1667        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668        0,     0,     0,     0,     0,    12,    13,     0,     0,     0,
1669       14,     0,    15,    16,    17,    18,    19,    20,    21,    22,
1670       23,     0,    24,     0,     0,     0,    25,    26,   125,    28,
1671       29,    30,    31,     0,     0,    33,     0,     0,    34,    35,
1672       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1673        0,     0,     0,     0,     0,     0,     0,     0,    45,     0,
1674        0,     0,    49,    50,     0,     0,     0,     0,     0,     0,
1675        0,     0,   126,     0,     0,     0,     0,     0,     0,     0,
1676       60,    61,     0,     0,     0,     0,     0,     0,     0,    67,
1677       68,     0,    69,    70,    71,    72,    73,    74,    75,    76,
1678       77,    78,    79,     0,     0,     0,     0,     0,     0,     0,
1679      209,    80,   210,   211,   212,   213,   214,   215,   216,   217,
1680      218,     0,    81,     0,     0,     0,     0,    84,    85,    86,
1681       87,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1682      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1683      363,   364,   365,   366,     0,   367,     0,     0,     0,     0,
1684        0,     0,     0,   219,     0,   368,     0,     0,     0,     0,
1685        0,     0,     0,     0,   220,     0,   221,   222,     0,     0,
1686      500,    28,    29,    30,     0,     0,     0,     0,     0,     0,
1687      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1688      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1689      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1690      255,   256,   257,   258,   979,   260,   261,   262,   263,   264,
1691      265,   266,   267,   268,     0,   269,   270,   271,   272,   273,
1692      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1693      284,   285,   209,     0,   210,   211,   212,   213,   214,   215,
1694      216,   217,   218,     0,     0,     0,     0,     0,     0,     0,
1695        0,     0,     0,     0,     0,     0,     0,     0,   980,   346,
1696      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
1697      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1698        0,   367,     0,     0,     0,   219,     0,     0,     0,     0,
1699        0,   368,     0,     0,     0,     0,   220,     0,   221,   222,
1700        0,     0,   500,    28,    29,    30,     0,     0,     0,     0,
1701        0,     0,   225,   226,   227,   228,   229,   230,   231,   232,
1702      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1703      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1704      253,   254,   255,   256,   257,   258,   979,   260,   261,   262,
1705      263,   264,   265,   266,   267,   268,     0,   269,   270,   271,
1706      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1707      282,   283,   284,   285,     0,     0,     0,     0,   340,   341,
1708      342,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1709        0,     0,     0,     0,     0,     0,     0,     0,     0,   343,
1710     1009,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1711      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1712      363,   364,   365,   366,     0,   367,   340,   341,   342,     0,
1713        0,     0,     0,     0,     0,   368,     0,     0,     0,     0,
1714        0,     0,     0,     0,     0,     0,     0,   343,     0,   344,
1715      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1716      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1717      365,   366,     0,   367,   340,   341,   342,     0,     0,     0,
1718        0,     0,     0,   368,     0,     0,     0,     0,     0,     0,
1719        0,     0,     0,     0,     0,   343,     0,   344,   345,   346,
1720      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
1721      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1722        0,   367,   340,   341,   342,     0,     0,     0,     0,     0,
1723        0,   368,     0,     0,     0,     0,     0,     0,     0,     0,
1724      657,     0,     0,   343,     0,   344,   345,   346,   347,   348,
1725      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1726      359,   360,   361,   362,   363,   364,   365,   366,     0,   367,
1727      340,   341,   342,     0,     0,     0,     0,     0,     0,   368,
1728        0,     0,     0,     0,     0,     0,     0,     0,   667,     0,
1729        0,   343,     0,   344,   345,   346,   347,   348,   349,   350,
1730      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1731      361,   362,   363,   364,   365,   366,     0,   367,   340,   341,
1732      342,     0,     0,     0,     0,     0,     0,   368,     0,     0,
1733        0,     0,     0,     0,     0,     0,   687,     0,     0,   343,
1734        0,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1735      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1736      363,   364,   365,   366,     0,   367,   340,   341,   342,     0,
1737        0,     0,     0,     0,     0,   368,     0,     0,     0,     0,
1738        0,     0,     0,     0,   691,     0,     0,   343,   898,   344,
1739      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1740      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1741      365,   366,     0,   367,   340,   341,   342,     0,     0,     0,
1742        0,     0,     0,   368,     0,     0,     0,     0,     0,     0,
1743        0,     0,   760,     0,     0,   343,     0,   344,   345,   346,
1744      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
1745      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1746        0,   367,   340,   341,   342,     0,     0,     0,     0,     0,
1747        0,   368,     0,     0,     0,     0,     0,     0,     0,     0,
1748      761,     0,     0,   343,     0,   344,   345,   346,   347,   348,
1749      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1750      359,   360,   361,   362,   363,   364,   365,   366,     0,   367,
1751      340,   341,   342,     0,     0,     0,     0,     0,     0,   368,
1752        0,     0,     0,     0,     0,     0,   899,     0,     0,     0,
1753        0,   343,     0,   344,   345,   346,   347,   348,   349,   350,
1754      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1755      361,   362,   363,   364,   365,   366,     0,   367,   340,   341,
1756      342,     0,     0,     0,     0,     0,     0,   368,     0,     0,
1757        0,     0,     0,     0,   369,     0,     0,     0,     0,   343,
1758        0,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1759      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1760      363,   364,   365,   366,     0,   367,   340,   341,   342,     0,
1761        0,     0,     0,     0,     0,   368,     0,     0,     0,     0,
1762        0,   596,     0,     0,     0,     0,     0,   343,     0,   344,
1763      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1764      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1765      365,   366,     0,   367,   340,   341,   342,     0,     0,     0,
1766        0,     0,     0,   368,     0,     0,     0,     0,     0,   598,
1767        0,     0,     0,     0,     0,   343,     0,   344,   345,   346,
1768      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
1769      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1770        0,   367,   340,   341,   342,     0,     0,     0,     0,     0,
1771        0,   368,     0,     0,     0,     0,     0,   606,     0,     0,
1772        0,     0,     0,   343,     0,   344,   345,   346,   347,   348,
1773      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1774      359,   360,   361,   362,   363,   364,   365,   366,     0,   367,
1775      340,   341,   342,     0,     0,     0,     0,     0,     0,   368,
1776        0,     0,     0,     0,     0,   609,     0,     0,     0,     0,
1777        0,   343,     0,   344,   345,   346,   347,   348,   349,   350,
1778      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1779      361,   362,   363,   364,   365,   366,     0,   367,   340,   341,
1780      342,     0,     0,     0,     0,     0,     0,   368,     0,     0,
1781        0,     0,     0,   614,     0,     0,     0,     0,     0,   343,
1782        0,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1783      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1784      363,   364,   365,   366,     0,   367,   340,   341,   342,     0,
1785        0,     0,     0,     0,     0,   368,     0,     0,     0,     0,
1786        0,   615,     0,     0,     0,     0,     0,   343,     0,   344,
1787      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1788      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1789      365,   366,     0,   367,   340,   341,   342,     0,     0,     0,
1790        0,     0,     0,   368,     0,     0,     0,     0,     0,   633,
1791        0,     0,     0,     0,     0,   343,     0,   344,   345,   346,
1792      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
1793      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1794        0,   367,   340,   341,   342,     0,     0,     0,     0,     0,
1795        0,   368,     0,     0,     0,     0,     0,   646,     0,     0,
1796        0,     0,     0,   343,     0,   344,   345,   346,   347,   348,
1797      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1798      359,   360,   361,   362,   363,   364,   365,   366,     0,   367,
1799      340,   341,   342,     0,   125,    28,    29,    30,    31,   368,
1800        0,    33,     0,     0,     0,   745,     0,     0,     0,     0,
1801        0,   343,     0,   344,   345,   346,   347,   348,   349,   350,
1802      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1803      361,   362,   363,   364,   365,   366,     0,   367,   152,     0,
1804        0,     0,     0,     0,     0,     0,     0,   368,     0,     0,
1805        0,     0,     0,   746,     0,     0,    68,     0,    69,    70,
1806       71,    72,    73,    74,    75,    76,     0,     0,   209,     0,
1807      210,   211,   212,   213,   214,   215,   216,   217,   218,     0,
1808        0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
1809        0,     0,     0,   297,     0,    86,    87,     0,     0,     0,
1810        0,   764,     0,     0,     0,     0,     0,     0,     0,     0,
1811        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1812        0,   219,     0,     0,     0,     0,     0,     0,     0,     0,
1813        0,     0,   220,     0,   221,   222,     0,     0,   223,     0,
1814        0,   224,     0,     0,     0,     0,     0,   802,   225,   226,
1815      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1816      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1817      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1818      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1819      267,   268,     0,   269,   270,   271,   272,   273,   274,   275,
1820      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1821      209,   342,   210,   211,   212,   213,   214,   215,   216,   217,
1822      218,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1823      343,     0,   344,   345,   346,   347,   348,   349,   350,   351,
1824      352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
1825      362,   363,   364,   365,   366,     0,   367,     0,     0,     0,
1826        0,     0,     0,   219,     0,     0,   368,     0,     0,     0,
1827        0,     0,     0,     0,   220,     0,   221,   222,     0,     0,
1828      223,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1829      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1830      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1831      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1832      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1833      265,   266,   267,   268,     0,   269,   270,   271,   272,   273,
1834      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1835      284,   285,   209,     0,   210,   211,   212,   213,   214,   215,
1836      216,   217,   218,   347,   348,   349,   350,   351,   352,   353,
1837      354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
1838      364,   365,   366,     0,   367,     0,     0,     0,     0,     0,
1839        0,     0,     0,     0,   368,     0,     0,     0,     0,     0,
1840        0,     0,     0,     0,     0,   219,     0,     0,     0,     0,
1841        0,     0,     0,     0,     0,     0,   220,     0,   221,   222,
1842        0,     0,  1029,     0,     0,     0,     0,     0,     0,     0,
1843        0,     0,   225,   226,   227,   228,   229,   230,   231,   232,
1844      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1845      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1846      253,   254,   255,   256,   257,   258,   856,   857,   858,   859,
1847      860,   861,   265,   266,   267,   268,     0,   269,   270,   271,
1848      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1849      282,   283,   284,   285,   340,   341,   342,     0,     0,     0,
1850        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1851        0,     0,     0,     0,     0,   343,     0,   344,   345,   346,
1852      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
1853      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1854        0,   367,     0,     0,     0,     0,     0,     0,     0,     0,
1855        0,   368,     0,     0,     0,     0,     0,     0,     0,     0,
1856        0,   340,   341,   342,     0,     0,   486,     0,     0,     0,
1857        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1858        0,     0,   343,   612,   344,   345,   346,   347,   348,   349,
1859      350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
1860      360,   361,   362,   363,   364,   365,   366,     0,   367,   340,
1861      341,   342,     0,     0,     0,     0,     0,     0,   368,     0,
1862        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1863      343,     0,   344,   345,   346,   347,   348,   349,   350,   351,
1864      352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
1865      362,   363,   364,   365,   366,     0,   367,   341,   342,     0,
1866        0,     0,     0,     0,     0,     0,   368,     0,     0,     0,
1867        0,     0,     0,     0,     0,     0,     0,   343,     0,   344,
1868      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1869      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1870      365,   366,   397,   367,     0,     0,     0,     0,     0,     0,
1871        0,     0,     0,   368,     0,     0,     0,     0,   343,     0,
1872      344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
1873      354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
1874      364,   365,   366,     0,   367,     0,     0,     0,     0,     0,
1875        0,     0,     0,     0,   368,   348,   349,   350,   351,   352,
1876      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1877      363,   364,   365,   366,     0,   367,     0,     0,     0,     0,
1878        0,     0,     0,     0,     0,   368,   349,   350,   351,   352,
1879      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1880      363,   364,   365,   366,     0,   367,     0,     0,     0,     0,
1881        0,     0,     0,     0,     0,   368
1882 };
1883 
1884 static const yytype_int16 yycheck[] =
1885 {
1886        2,     2,    35,   109,     2,   680,   724,   610,    90,   291,
1887      292,   371,     2,   191,   457,   297,   444,    66,    35,    31,
1888      448,   869,    31,   129,    77,    54,    56,    77,   714,    47,
1889        0,    31,   718,    35,    52,   885,    30,   887,    55,   799,
1890       14,    14,   920,   597,    77,   127,    78,    79,   931,    39,
1891      933,    14,    14,    77,    31,    79,   101,   102,    77,   167,
1892       90,   183,   690,   167,    77,    56,    79,    77,   167,    79,
1893       87,   107,   108,    98,   156,    66,    31,   118,   119,    73,
1894       74,    75,    76,   758,    88,   963,   964,   128,   167,    90,
1895      756,    98,    90,   453,   854,   523,   126,   127,    78,    79,
1896      167,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1897       25,    26,    27,    28,    29,   119,   744,    73,   672,    35,
1898      170,    77,   175,   117,   160,   175,   171,    77,   888,    79,
1899       77,   170,    79,   157,   158,   159,   161,   855,  1021,   158,
1900      159,   135,   136,    98,   162,   158,   159,   813,   158,   159,
1901       78,    79,    78,    79,   161,    77,  1039,  1040,   170,   919,
1902      169,    77,   191,   766,  1047,  1013,   852,   167,  1051,    77,
1903      202,   708,   167,     4,     5,     6,     7,     8,     9,    10,
1904       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1905       21,    22,    23,    24,   168,   168,  1046,   640,    30,   107,
1906      108,   867,   484,   167,   564,   168,   168,    38,   158,   159,
1907      157,   158,   159,   167,   170,    46,    47,   883,   884,   175,
1908       37,    52,   202,   165,   174,    77,   168,    79,   101,   102,
1909      128,   146,   147,   148,   149,   157,   158,   159,   775,    35,
1910      777,    73,    74,    75,    76,   160,   165,   145,   376,   168,
1911       81,    73,    74,    84,    76,   170,   616,   172,   114,   437,
1912       77,   117,   118,   119,   120,   121,   122,   123,    73,    74,
1913       75,    76,    77,   167,   202,   307,   202,   405,   406,   639,
1914      312,    77,    73,    74,    75,    76,    73,   715,   165,   145,
1915      160,   295,   169,   120,   121,   122,  1014,   167,   171,   329,
1916       73,    69,    70,   135,   136,   167,   158,   159,    73,   311,
1917      311,    76,   117,    73,    74,   171,    76,   165,   145,    87,
1918      151,   169,   170,   154,   373,   374,   754,   307,   148,   149,
1919      167,   162,   312,   164,   367,   107,    37,   109,   169,   170,
1920      171,   168,   173,   174,   135,   136,   336,   107,   167,   109,
1921      367,   779,   172,   781,   167,   783,   373,   374,   375,   376,
1922      378,  1036,   167,   165,   792,   725,   167,   169,   107,   108,
1923      175,   160,   203,   204,    73,    74,    75,    76,   117,   307,
1924      160,   307,   167,   165,   312,   402,   312,   169,   405,   406,
1925      407,   409,   120,   121,   122,   107,   108,   479,    73,    74,
1926       75,    76,   762,   160,    51,   167,   145,   114,   437,   531,
1927      117,   118,   119,   120,   121,   122,   123,   145,   117,   167,
1928       73,   703,   439,    76,    69,    70,    73,   460,   430,   430,
1929       77,   148,   149,   171,   172,    82,   135,   136,   145,   160,
1930      168,    66,   117,   160,    90,   805,   120,   121,   122,   479,
1931      167,   367,    16,   170,   107,   172,   109,   739,   169,   165,
1932      291,   292,    16,   169,   171,   296,   297,   169,   165,   502,
1933      165,   145,   169,   169,   169,   306,   169,   507,   479,   148,
1934      149,   479,   169,   314,   168,   502,   768,    73,   304,   165,
1935      169,   160,   308,   169,   325,   165,   327,    73,   167,   169,
1936      502,   170,    73,   172,   320,   170,   322,   323,   324,   340,
1937      341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
1938      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1939      361,   362,   363,   364,   365,   366,   165,   368,   165,   166,
1940      166,   168,   970,   167,   460,   167,   377,   378,   580,   380,
1941      381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
1942      391,   392,   393,   112,   113,   569,   397,   165,   572,   169,
1943      170,   693,   576,   577,   696,    85,    86,   408,   409,   173,
1944      612,   412,   165,   166,   114,   168,   502,   117,   118,   119,
1945      120,   121,   122,   123,   954,   426,    31,   629,   167,   167,
1946      580,    73,   635,   169,   167,   638,   966,   148,   149,   168,
1947      441,   148,   149,   169,   165,   145,   606,   170,    73,   609,
1948      117,   118,   119,   120,   121,   122,   123,   169,    77,   170,
1949      662,   172,   612,   170,   165,   172,   996,   165,   131,   641,
1950      641,   171,   169,   641,   100,   101,   102,   131,   145,   629,
1951      772,   641,   580,   484,   580,   486,  1016,   488,  1018,   148,
1952      149,   492,   493,   494,   495,   496,   497,   498,   499,   701,
1953      752,   160,   170,   675,   675,    73,   678,   168,   680,   166,
1954      168,   170,   662,   172,   612,   807,   612,   166,    73,   520,
1955      171,   724,    52,    53,    54,    16,    56,   528,   167,   530,
1956       31,   629,    31,   629,    31,   536,    66,    31,   830,    48,
1957       49,    50,    51,    52,    53,    54,   706,    56,    31,   635,
1958       31,   701,   638,   100,   101,   102,   848,    66,   730,   730,
1959      148,   149,   730,    31,   662,   566,   662,    31,   770,    31,
1960      730,    31,   160,   574,    31,   148,   149,    73,    74,    75,
1961       76,    77,   170,   165,   172,   745,   758,   160,    73,   167,
1962      167,   763,   763,   765,   765,   798,   167,   170,   167,   172,
1963      166,   166,    16,   701,   107,   701,   109,   608,   900,   610,
1964      611,   771,   864,   170,   117,   118,   119,   120,   121,   122,
1965      770,   117,   170,    98,   168,   797,   168,   132,   167,   170,
1966      631,    82,   128,   166,   168,   107,   108,   168,   724,   811,
1967      916,   167,   167,   935,   847,   117,   118,   119,   168,   145,
1968      942,   169,   855,   167,   169,   656,   128,   129,   130,   169,
1969       98,   833,   833,   165,   665,   169,    31,   165,   669,   670,
1970      756,   167,   770,   145,   770,   170,   677,   114,   168,   175,
1971      117,   118,   119,   120,   121,   122,   123,    50,    51,    52,
1972       53,    54,   169,    56,   165,   169,   915,   868,   168,   166,
1973      872,   167,   703,    66,   876,   876,   169,   165,   145,   710,
1974     1002,   165,   798,   165,  1006,   171,  1008,   170,    73,   165,
1975      170,   893,   893,   171,   171,   168,    31,   813,    37,    35,
1976      890,   732,   892,   952,   171,    35,   908,   908,   739,   911,
1977      168,   960,   114,   946,   170,   169,   168,   168,   168,   952,
1978      169,    14,    14,   171,   170,    14,   162,   167,  1050,    77,
1979      169,   847,   934,   982,   169,   766,    35,   768,    35,   855,
1980       77,   943,   943,   169,   168,   994,    16,    16,   170,   982,
1981       77,   867,   165,   170,   170,    37,   160,   169,   169,   961,
1982       98,   877,   115,   160,    16,   168,  1015,   883,   884,   169,
1983      168,   167,   974,   974,   976,   976,  1013,   460,    54,   790,
1984      114,  1014,  1031,   117,   118,   119,   120,   121,   122,   123,
1985      191,    73,    74,    75,    76,    77,   437,   172,    80,   629,
1986       96,   770,   892,   843,   920,   836,   897,   811,   752,   867,
1987      670,   145,   843,   439,   845,   442,   982,   864,   994,   991,
1988      412,  1023,  1023,   427,  1026,  1026,  1028,  1028,   156,  1004,
1989      946,   367,   399,   374,  1036,   117,   952,   171,   488,   631,
1990       -1,    -1,    -1,    -1,    -1,    -1,    -1,   963,   964,    -1,
1991     1052,  1052,   134,   135,    -1,   137,   138,   139,   140,   141,
1992      142,   143,   144,    -1,    -1,    -1,   982,    -1,    -1,    -1,
1993       -1,   902,    -1,    -1,   905,    -1,    -1,    -1,    -1,    -1,
1994        9,    10,    11,    -1,    -1,   167,    -1,    -1,    -1,    -1,
1995      172,    -1,   174,   175,    -1,    -1,    -1,    -1,  1014,    -1,
1996       -1,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1997       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1998       49,    50,    51,    52,    53,    54,     3,    56,     5,     6,
1999        7,     8,     9,    10,    11,    12,    13,    66,    15,    38,
2000       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2001       49,    50,    51,    52,    53,    54,    -1,    56,   989,    -1,
2002       -1,    -1,   993,    -1,    -1,    -1,    -1,    66,    -1,  1000,
2003       -1,    -1,    -1,    50,    51,    -1,    -1,    -1,    55,    56,
2004       57,    58,    59,    60,    61,    62,    63,    64,    65,    -1,
2005       67,  1022,    69,    70,    71,    72,    73,    74,    75,    76,
2006       77,    -1,    -1,    80,    -1,    -1,    83,    84,    85,    86,
2007       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2008       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2009      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2010      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2011       -1,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2012      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2013      147,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,
2014       -1,    -1,    -1,    -1,    -1,   162,    -1,    -1,    -1,    -1,
2015      167,   168,     9,    10,    11,   172,   173,   174,   175,     3,
2016       -1,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2017       -1,    15,    -1,    30,    -1,    32,    33,    34,    35,    36,
2018       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2019       47,    48,    49,    50,    51,    52,    53,    54,    -1,    56,
2020       -1,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    66,
2021       -1,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2022       64,    65,    -1,    67,    -1,    69,    70,    71,    72,    73,
2023       74,    75,    76,    77,    -1,    -1,    80,    -1,    -1,    83,
2024       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2025       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2026      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2027      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2028      124,   125,   126,    -1,   128,   129,   130,   131,   132,   133,
2029      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2030      144,   145,   146,   147,     3,    -1,     5,     6,     7,     8,
2031       -1,   168,   156,    12,    13,    -1,    15,    -1,   162,    -1,
2032       -1,    -1,    -1,   167,    -1,    -1,    -1,    -1,   172,   173,
2033      174,   175,    43,    44,    45,    46,    47,    48,    49,    50,
2034       51,    52,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,
2035       -1,    50,    51,    -1,    -1,    66,    55,    -1,    57,    58,
2036       59,    60,    61,    62,    63,    64,    65,    -1,    67,    -1,
2037       -1,    -1,    71,    72,    73,    74,    75,    76,    77,    78,
2038       -1,    80,    -1,    -1,    83,    84,    85,    86,    -1,    88,
2039       89,    90,    -1,    92,    -1,    94,    -1,    96,    -1,    -1,
2040       99,    -1,    -1,    -1,   103,   104,   105,   106,   107,   108,
2041      109,   110,   111,    -1,    -1,   114,    -1,   116,   117,   118,
2042      119,    -1,    -1,    -1,    -1,   124,   125,   126,   127,   128,
2043      129,   130,    -1,    -1,   133,   134,   135,    -1,   137,   138,
2044      139,   140,   141,   142,   143,   144,   145,   146,   147,     3,
2045       -1,     5,     6,     7,     8,    -1,    -1,   156,    12,    13,
2046       -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,
2047      169,   170,   171,   172,   173,   174,   175,    -1,    -1,    -1,
2048       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2049       -1,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,
2050       -1,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
2051       64,    65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
2052       74,    75,    76,    77,    78,    -1,    80,    -1,    -1,    83,
2053       84,    85,    86,    -1,    88,    89,    90,    -1,    92,    -1,
2054       94,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,
2055      104,   105,   106,   107,   108,   109,   110,   111,    -1,    -1,
2056      114,    -1,   116,   117,   118,   119,    -1,    -1,    -1,    -1,
2057      124,   125,   126,   127,   128,   129,   130,    -1,    -1,   133,
2058      134,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2059      144,   145,   146,   147,     3,    -1,     5,     6,     7,     8,
2060       -1,    -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,
2061       -1,    -1,    -1,   167,    -1,   169,   170,   171,   172,   173,
2062      174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2063       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2064       -1,    50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,
2065       59,    60,    61,    62,    63,    64,    65,    -1,    67,    -1,
2066       -1,    -1,    71,    72,    73,    74,    75,    76,    77,    78,
2067       -1,    80,    -1,    -1,    83,    84,    85,    86,    -1,    88,
2068       89,    90,    -1,    92,    -1,    94,    -1,    96,    -1,    -1,
2069       99,    -1,    -1,    -1,   103,   104,   105,   106,   107,   108,
2070      109,   110,   111,    -1,    -1,   114,    -1,   116,   117,   118,
2071      119,    -1,    -1,    -1,    -1,   124,   125,   126,   127,   128,
2072      129,   130,    -1,    -1,   133,   134,   135,    -1,   137,   138,
2073      139,   140,   141,   142,   143,   144,   145,   146,   147,     3,
2074       -1,     5,     6,     7,     8,    -1,    -1,   156,    12,    13,
2075       -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,
2076      169,   170,    -1,   172,   173,   174,   175,    -1,    -1,    -1,
2077       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2078       -1,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,
2079       -1,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
2080       64,    65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
2081       74,    75,    76,    77,    78,    -1,    80,    -1,    -1,    83,
2082       84,    85,    86,    -1,    88,    89,    90,    -1,    92,    -1,
2083       94,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,
2084      104,   105,   106,   107,   108,    -1,   110,   111,    -1,    -1,
2085       -1,    -1,   116,   117,   118,   119,    -1,    -1,    -1,    -1,
2086      124,   125,   126,   127,   128,   129,   130,    -1,    -1,    -1,
2087      134,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2088      144,   145,   146,   147,     3,    -1,     5,     6,     7,     8,
2089       -1,    -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,
2090       -1,    -1,    -1,   167,    -1,   169,   170,   171,   172,   173,
2091      174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2092       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2093       -1,    50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,
2094       59,    60,    61,    62,    63,    64,    65,    -1,    67,    -1,
2095       -1,    -1,    71,    72,    73,    74,    75,    76,    77,    78,
2096       -1,    80,    -1,    -1,    83,    84,    85,    86,    -1,    88,
2097       89,    90,    -1,    92,    -1,    94,    -1,    96,    -1,    -1,
2098       99,    -1,    -1,    -1,   103,   104,   105,   106,   107,   108,
2099       -1,   110,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
2100      119,    -1,    -1,    -1,    -1,   124,   125,   126,   127,   128,
2101      129,   130,    -1,    -1,    -1,   134,   135,    -1,   137,   138,
2102      139,   140,   141,   142,   143,   144,   145,   146,   147,     3,
2103       -1,     5,     6,     7,     8,    -1,    -1,   156,    12,    13,
2104       -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,
2105      169,   170,   171,   172,   173,   174,   175,    -1,    -1,    -1,
2106       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2107       -1,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,
2108       -1,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
2109       64,    65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
2110       74,    75,    76,    77,    78,    -1,    80,    -1,    -1,    83,
2111       84,    85,    86,    87,    88,    89,    90,    -1,    92,    -1,
2112       94,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,
2113      104,   105,   106,   107,   108,    -1,   110,   111,    -1,    -1,
2114       -1,    -1,   116,   117,   118,   119,    -1,    -1,    -1,    -1,
2115      124,   125,   126,   127,   128,   129,   130,    -1,    -1,    -1,
2116      134,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2117      144,   145,   146,   147,     3,    -1,     5,     6,     7,     8,
2118       -1,    -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,
2119       -1,    -1,    -1,   167,    -1,   169,   170,    -1,   172,   173,
2120      174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2121       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2122       -1,    50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,
2123       59,    60,    61,    62,    63,    64,    65,    -1,    67,    -1,
2124       -1,    -1,    71,    72,    73,    74,    75,    76,    77,    78,
2125       -1,    80,    -1,    -1,    83,    84,    85,    86,    -1,    88,
2126       89,    90,    91,    92,    -1,    94,    -1,    96,    -1,    -1,
2127       99,    -1,    -1,    -1,   103,   104,   105,   106,   107,   108,
2128       -1,   110,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
2129      119,    -1,    -1,    -1,    -1,   124,   125,   126,   127,   128,
2130      129,   130,    -1,    -1,    -1,   134,   135,    -1,   137,   138,
2131      139,   140,   141,   142,   143,   144,   145,   146,   147,     3,
2132       -1,     5,     6,     7,     8,    -1,    -1,   156,    12,    13,
2133       -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,
2134      169,   170,    -1,   172,   173,   174,   175,    -1,    -1,    -1,
2135       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2136       -1,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,
2137       -1,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
2138       64,    65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
2139       74,    75,    76,    77,    78,    -1,    80,    -1,    -1,    83,
2140       84,    85,    86,    -1,    88,    89,    90,    -1,    92,    -1,
2141       94,    -1,    96,    97,    -1,    99,    -1,    -1,    -1,   103,
2142      104,   105,   106,   107,   108,    -1,   110,   111,    -1,    -1,
2143       -1,    -1,   116,   117,   118,   119,    -1,    -1,    -1,    -1,
2144      124,   125,   126,   127,   128,   129,   130,    -1,    -1,    -1,
2145      134,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2146      144,   145,   146,   147,     3,    -1,     5,     6,     7,     8,
2147       -1,    -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,
2148       -1,    -1,    -1,   167,    -1,   169,   170,    -1,   172,   173,
2149      174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2150       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2151       -1,    50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,
2152       59,    60,    61,    62,    63,    64,    65,    -1,    67,    -1,
2153       -1,    -1,    71,    72,    73,    74,    75,    76,    77,    78,
2154       -1,    80,    -1,    -1,    83,    84,    85,    86,    -1,    88,
2155       89,    90,    -1,    92,    -1,    94,    95,    96,    -1,    -1,
2156       99,    -1,    -1,    -1,   103,   104,   105,   106,   107,   108,
2157       -1,   110,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
2158      119,    -1,    -1,    -1,    -1,   124,   125,   126,   127,   128,
2159      129,   130,    -1,    -1,    -1,   134,   135,    -1,   137,   138,
2160      139,   140,   141,   142,   143,   144,   145,   146,   147,     3,
2161       -1,     5,     6,     7,     8,    -1,    -1,   156,    12,    13,
2162       -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,
2163      169,   170,    -1,   172,   173,   174,   175,    -1,    -1,    -1,
2164       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2165       -1,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,
2166       -1,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
2167       64,    65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
2168       74,    75,    76,    77,    78,    -1,    80,    -1,    -1,    83,
2169       84,    85,    86,    -1,    88,    89,    90,    -1,    92,    -1,
2170       94,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,
2171      104,   105,   106,   107,   108,    -1,   110,   111,    -1,    -1,
2172       -1,    -1,   116,   117,   118,   119,    -1,    -1,    -1,    -1,
2173      124,   125,   126,   127,   128,   129,   130,    -1,    -1,    -1,
2174      134,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2175      144,   145,   146,   147,     3,    -1,     5,     6,     7,     8,
2176       -1,    -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,
2177       -1,    -1,    -1,   167,    -1,   169,   170,   171,   172,   173,
2178      174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2179       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2180       -1,    50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,
2181       59,    60,    61,    62,    63,    64,    65,    -1,    67,    -1,
2182       -1,    -1,    71,    72,    73,    74,    75,    76,    77,    78,
2183       -1,    80,    -1,    -1,    83,    84,    85,    86,    -1,    88,
2184       89,    90,    -1,    92,    93,    94,    -1,    96,    -1,    -1,
2185       99,    -1,    -1,    -1,   103,   104,   105,   106,   107,   108,
2186       -1,   110,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
2187      119,    -1,    -1,    -1,    -1,   124,   125,   126,   127,   128,
2188      129,   130,    -1,    -1,    -1,   134,   135,    -1,   137,   138,
2189      139,   140,   141,   142,   143,   144,   145,   146,   147,     3,
2190       -1,     5,     6,     7,     8,    -1,    -1,   156,    12,    13,
2191       -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,
2192      169,   170,    -1,   172,   173,   174,   175,    -1,    -1,    -1,
2193       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2194       -1,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,
2195       -1,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
2196       64,    65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
2197       74,    75,    76,    77,    78,    -1,    80,    -1,    -1,    83,
2198       84,    85,    86,    -1,    88,    89,    90,    -1,    92,    -1,
2199       94,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,
2200      104,   105,   106,   107,   108,    -1,   110,   111,    -1,    -1,
2201       -1,    -1,   116,   117,   118,   119,    -1,    -1,    -1,    -1,
2202      124,   125,   126,   127,   128,   129,   130,    -1,    -1,    -1,
2203      134,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2204      144,   145,   146,   147,     3,    -1,     5,     6,     7,     8,
2205       -1,    -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,
2206       -1,    -1,    -1,   167,    -1,   169,   170,   171,   172,   173,
2207      174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2208       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2209       -1,    50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,
2210       59,    60,    61,    62,    63,    64,    65,    -1,    67,    -1,
2211       -1,    -1,    71,    72,    73,    74,    75,    76,    77,    78,
2212       -1,    80,    -1,    -1,    83,    84,    85,    86,    -1,    88,
2213       89,    90,    -1,    92,    -1,    94,    -1,    96,    -1,    -1,
2214       99,    -1,    -1,    -1,   103,   104,   105,   106,   107,   108,
2215       -1,   110,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
2216      119,    -1,    -1,    -1,    -1,   124,   125,   126,   127,   128,
2217      129,   130,    -1,    -1,    -1,   134,   135,    -1,   137,   138,
2218      139,   140,   141,   142,   143,   144,   145,   146,   147,     3,
2219       -1,     5,     6,     7,     8,    -1,    -1,   156,    12,    13,
2220       -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,
2221      169,   170,   171,   172,   173,   174,   175,    -1,    -1,    -1,
2222       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2223       -1,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,
2224       -1,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
2225       64,    65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
2226       74,    75,    76,    77,    78,    -1,    80,    -1,    -1,    83,
2227       84,    85,    86,    -1,    88,    89,    90,    -1,    92,    -1,
2228       94,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,
2229      104,   105,   106,   107,   108,    -1,   110,   111,    -1,    -1,
2230       -1,    -1,   116,   117,   118,   119,    -1,    -1,    -1,    -1,
2231      124,   125,   126,   127,   128,   129,   130,    -1,    -1,    -1,
2232      134,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2233      144,   145,   146,   147,     3,    -1,     5,     6,     7,     8,
2234       -1,    -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,
2235       -1,    -1,    -1,   167,    -1,   169,   170,   171,   172,   173,
2236      174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2237       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2238       -1,    50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,
2239       59,    60,    61,    62,    63,    64,    65,    -1,    67,    -1,
2240       -1,    -1,    71,    72,    73,    74,    75,    76,    77,    78,
2241       -1,    80,    -1,    -1,    83,    84,    85,    86,    -1,    88,
2242       89,    90,    -1,    92,    -1,    94,    -1,    96,    -1,    -1,
2243       99,    -1,    -1,    -1,   103,   104,   105,   106,   107,   108,
2244       -1,   110,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
2245      119,    -1,    -1,    -1,    -1,   124,   125,   126,   127,   128,
2246      129,   130,    -1,    -1,    -1,   134,   135,    -1,   137,   138,
2247      139,   140,   141,   142,   143,   144,   145,   146,   147,     3,
2248       -1,     5,     6,     7,     8,    -1,    -1,   156,    12,    13,
2249       -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,
2250      169,   170,   171,   172,   173,   174,   175,    -1,    -1,    -1,
2251       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2252       -1,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,
2253       -1,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
2254       64,    65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
2255       74,    75,    76,    77,    78,    -1,    80,    -1,    -1,    83,
2256       84,    85,    86,    -1,    88,    89,    90,    -1,    92,    -1,
2257       94,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,
2258      104,   105,   106,   107,   108,    -1,   110,   111,    -1,    -1,
2259       -1,    -1,   116,   117,   118,   119,    -1,    -1,    -1,    -1,
2260      124,   125,   126,   127,   128,   129,   130,    -1,    -1,    -1,
2261      134,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2262      144,   145,   146,   147,    -1,    -1,    -1,    -1,    -1,    -1,
2263       -1,     3,   156,     5,     6,     7,     8,     9,    10,    11,
2264       12,    13,    -1,   167,    -1,   169,   170,    -1,   172,   173,
2265      174,   175,    30,    -1,    32,    33,    34,    35,    36,    37,
2266       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2267       48,    49,    50,    51,    52,    53,    54,    -1,    56,    -1,
2268       -1,    -1,    -1,    -1,    56,    -1,    -1,    -1,    66,    -1,
2269       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    70,    -1,
2270       -1,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
2271       -1,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2272       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2273      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2274      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2275      122,   123,   124,   125,   126,    -1,   128,   129,   130,   131,
2276      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2277      142,   143,   144,     3,    -1,     5,     6,     7,     8,    -1,
2278       -1,    -1,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
2279       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   170,    -1,
2280       -1,    31,    -1,   175,    -1,    -1,    -1,    -1,    -1,    -1,
2281       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2282       50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,    59,
2283       60,    61,    62,    63,    64,    65,    -1,    67,    -1,    -1,
2284       -1,    71,    72,    73,    74,    75,    76,    77,    78,    -1,
2285       80,    -1,    -1,    83,    84,    85,    86,    -1,    88,    89,
2286       90,    -1,    92,    -1,    94,    -1,    96,    -1,    -1,    99,
2287       -1,    -1,    -1,   103,   104,   105,   106,   107,   108,    -1,
2288      110,   111,    -1,    -1,    -1,    -1,   116,   117,    -1,    -1,
2289       -1,    -1,    -1,    -1,   124,   125,   126,    -1,    -1,    -1,
2290       -1,    -1,    -1,    -1,   134,   135,    -1,   137,   138,   139,
2291      140,   141,   142,   143,   144,   145,   146,   147,     3,    -1,
2292        5,     6,     7,     8,    -1,    -1,   156,    12,    13,    -1,
2293       15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,   169,
2294      170,    -1,   172,   173,   174,   175,    31,    -1,    -1,    -1,
2295       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2296       -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,    -1,
2297       55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
2298       65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,
2299       75,    76,    77,    78,    -1,    80,    -1,    -1,    83,    84,
2300       85,    86,    -1,    88,    89,    90,    -1,    92,    -1,    94,
2301       -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,   104,
2302      105,   106,   107,   108,    -1,   110,   111,    -1,    -1,    -1,
2303       -1,   116,   117,    -1,    -1,    -1,    -1,    -1,    -1,   124,
2304      125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2305      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2306      145,   146,   147,     3,    -1,     5,     6,     7,     8,    -1,
2307       -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
2308       -1,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
2309      175,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2310       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2311       50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,    59,
2312       60,    61,    62,    63,    64,    65,    -1,    67,    -1,    -1,
2313       -1,    71,    72,    73,    74,    75,    76,    77,    78,    -1,
2314       80,    -1,    -1,    83,    84,    85,    86,    -1,    88,    89,
2315       90,    -1,    92,    -1,    94,    -1,    96,    -1,    -1,    99,
2316       -1,    -1,    -1,   103,   104,   105,   106,   107,   108,    -1,
2317      110,   111,    -1,    -1,    -1,    -1,   116,   117,    -1,    -1,
2318       -1,    -1,    -1,    -1,   124,   125,   126,    -1,    -1,    -1,
2319       -1,    -1,    -1,    -1,   134,   135,    -1,   137,   138,   139,
2320      140,   141,   142,   143,   144,   145,   146,   147,     3,    -1,
2321        5,     6,     7,     8,    -1,    -1,   156,    12,    13,    -1,
2322       15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,   169,
2323      170,    -1,   172,   173,   174,   175,    31,    -1,    -1,    -1,
2324       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2325       -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,    -1,
2326       55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
2327       65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,
2328       75,    76,    77,    78,    -1,    80,    -1,    -1,    83,    84,
2329       85,    86,    -1,    88,    89,    90,    -1,    92,    -1,    94,
2330       -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,   104,
2331      105,   106,   107,   108,    -1,   110,   111,    -1,    -1,    -1,
2332       -1,   116,   117,    -1,    -1,    -1,    -1,    -1,    -1,   124,
2333      125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2334      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2335      145,   146,   147,     3,    -1,     5,     6,     7,     8,    -1,
2336       -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
2337       -1,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
2338      175,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2339       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2340       50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,    59,
2341       60,    61,    62,    63,    64,    65,    -1,    67,    -1,    -1,
2342       -1,    71,    72,    73,    74,    75,    76,    77,    78,    -1,
2343       80,    -1,    -1,    83,    84,    85,    86,    -1,    88,    89,
2344       90,    -1,    92,    -1,    94,    -1,    96,    -1,    -1,    99,
2345       -1,    -1,    -1,   103,   104,   105,   106,   107,   108,    -1,
2346      110,   111,    -1,    -1,    -1,    -1,   116,   117,    -1,    -1,
2347       -1,    -1,    -1,    -1,   124,   125,   126,    -1,    -1,    -1,
2348       -1,    -1,    -1,    -1,   134,   135,    -1,   137,   138,   139,
2349      140,   141,   142,   143,   144,   145,   146,   147,     3,    -1,
2350        5,     6,     7,     8,    -1,    -1,   156,    12,    13,    -1,
2351       15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,   169,
2352      170,    -1,   172,   173,   174,   175,    -1,    -1,    -1,    -1,
2353       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2354       -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,    -1,
2355       55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
2356       65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,
2357       75,    76,    77,    78,    -1,    80,    -1,    -1,    83,    84,
2358       85,    86,    -1,    88,    89,    90,    -1,    92,    -1,    94,
2359       -1,    96,    -1,    -1,    99,    -1,    -1,    -1,   103,   104,
2360      105,   106,   107,   108,    -1,   110,   111,    -1,    -1,    -1,
2361       -1,   116,   117,    -1,    -1,    -1,    -1,    -1,    -1,   124,
2362      125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2363      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2364      145,   146,   147,     3,    -1,     5,     6,     7,     8,    -1,
2365       -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
2366       -1,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
2367      175,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
2368       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2369       50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,    59,
2370       60,    61,    62,    63,    64,    65,    -1,    67,    -1,    -1,
2371       -1,    71,    72,    73,    74,    75,    76,    77,    -1,    -1,
2372       80,    -1,    -1,    83,    84,    85,    38,    39,    40,    41,
2373       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2374       52,    53,    54,   103,    56,    -1,    -1,   107,   108,    -1,
2375       -1,    -1,    -1,    -1,    66,    -1,    -1,   117,    -1,    -1,
2376       -1,    -1,    -1,    -1,    -1,   125,   126,    -1,    -1,    -1,
2377       -1,    -1,    -1,    -1,   134,   135,    -1,   137,   138,   139,
2378      140,   141,   142,   143,   144,   145,   146,   147,     3,    -1,
2379        5,     6,     7,     8,    -1,    -1,   156,    12,    13,    -1,
2380       15,    -1,   162,    -1,    -1,    -1,    -1,   167,    -1,    -1,
2381       -1,    -1,   172,   173,   174,   175,    -1,    -1,    -1,    -1,
2382       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2383       -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,    -1,
2384       55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
2385       65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,
2386       75,    76,    77,    -1,    -1,    80,    81,    -1,    83,    84,
2387       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2388       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
2389       -1,    -1,   107,   108,    -1,    -1,    -1,    -1,    -1,    -1,
2390       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2391      125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2392      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2393      145,   146,   147,     3,    -1,     5,     6,     7,     8,    -1,
2394       -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
2395       -1,    -1,   167,    -1,    -1,    -1,    -1,   172,   173,   174,
2396      175,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2397       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2398       50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,    59,
2399       60,    61,    62,    63,    64,    65,    -1,    67,    -1,    -1,
2400       -1,    71,    72,    73,    74,    75,    76,    77,    -1,    -1,
2401       80,    -1,    -1,    83,    84,    85,    -1,    -1,    -1,    -1,
2402       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2403       -1,    -1,    -1,   103,    -1,    -1,    -1,   107,   108,    -1,
2404       -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
2405       -1,    -1,    -1,    -1,    -1,   125,   126,    -1,    -1,    -1,
2406       -1,    -1,    -1,    -1,   134,   135,    -1,   137,   138,   139,
2407      140,   141,   142,   143,   144,   145,   146,   147,     3,    -1,
2408        5,     6,     7,     8,    -1,    -1,   156,    12,    13,    -1,
2409       15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,    -1,
2410       -1,    -1,   172,   173,   174,   175,    -1,    -1,    -1,    -1,
2411       -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2412       -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,    -1,
2413       55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
2414       65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,
2415       75,    76,    77,    -1,    -1,    80,    -1,    -1,    83,    84,
2416       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2417       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
2418       -1,    -1,   107,   108,    -1,    -1,    -1,    -1,    -1,    -1,
2419       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2420      125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2421      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2422      145,   146,   147,     3,    -1,     5,     6,     7,     8,    -1,
2423       -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
2424       -1,    -1,   167,    -1,    -1,    -1,    -1,   172,   173,   174,
2425      175,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
2426       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2427       50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,    59,
2428       60,    61,    62,    63,    64,    65,    -1,    67,    -1,    -1,
2429       -1,    71,    72,    73,    74,    75,    76,    77,    -1,    -1,
2430       80,    -1,    -1,    83,    84,    85,    -1,    -1,    -1,    -1,
2431       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2432       -1,    -1,    -1,   103,    -1,    -1,    -1,   107,   108,    -1,
2433       -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
2434       -1,    -1,    -1,    -1,    -1,   125,   126,    -1,    -1,    -1,
2435       -1,    -1,    -1,    -1,   134,   135,    -1,   137,   138,   139,
2436      140,   141,   142,   143,   144,   145,   146,   147,     3,    -1,
2437        5,     6,     7,     8,    -1,    -1,   156,    12,    13,    -1,
2438       15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,    -1,
2439       -1,    -1,   172,   173,   174,   175,    31,    -1,    -1,    -1,
2440       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2441       -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,    -1,
2442       55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
2443       65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,
2444       75,    76,    77,    -1,    -1,    80,    -1,    -1,    83,    84,
2445       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2446       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
2447       -1,    -1,   107,   108,    -1,    -1,    -1,    -1,    -1,    -1,
2448       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2449      125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2450      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2451      145,   146,   147,     3,    -1,     5,     6,     7,     8,    -1,
2452       -1,   156,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
2453       -1,    -1,   167,    -1,    -1,    -1,    -1,   172,   173,   174,
2454      175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2455       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2456       50,    51,    -1,    -1,    -1,    55,    -1,    57,    58,    59,
2457       60,    61,    62,    63,    64,    65,    -1,    67,    -1,    -1,
2458       -1,    71,    72,    73,    74,    75,    76,    77,    -1,    -1,
2459       80,    -1,    -1,    83,    84,    85,    -1,    -1,    -1,    -1,
2460       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2461       -1,    -1,   102,   103,    -1,    -1,    -1,   107,   108,    -1,
2462       -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
2463       -1,    -1,    -1,    -1,    -1,   125,   126,    -1,    -1,    -1,
2464       -1,    -1,    -1,    -1,   134,   135,    -1,   137,   138,   139,
2465      140,   141,   142,   143,   144,   145,   146,   147,     3,    -1,
2466        5,     6,     7,     8,    -1,    -1,   156,    12,    13,    -1,
2467       15,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,    -1,
2468       -1,    -1,   172,   173,   174,   175,    -1,    -1,    -1,    -1,
2469       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2470       -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    -1,    -1,
2471       55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
2472       65,    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,
2473       75,    76,    77,    -1,    -1,    80,    -1,    -1,    83,    84,
2474       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2475       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
2476       -1,    -1,   107,   108,    -1,    -1,    -1,    -1,    -1,    -1,
2477       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2478      125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2479      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2480      145,   146,   147,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2481        3,   156,     5,     6,     7,     8,     9,    10,    11,    12,
2482       13,    -1,   167,    -1,    -1,    -1,    -1,   172,   173,   174,
2483      175,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2484       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2485       51,    52,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,
2486       -1,    -1,    -1,    56,    -1,    66,    -1,    -1,    -1,    -1,
2487       -1,    -1,    -1,    -1,    67,    -1,    69,    70,    -1,    -1,
2488       73,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
2489       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2490       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2491      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2492      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2493      123,   124,   125,   126,    -1,   128,   129,   130,   131,   132,
2494      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2495      143,   144,     3,    -1,     5,     6,     7,     8,     9,    10,
2496       11,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2497       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   171,    34,
2498       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2499       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2500       -1,    56,    -1,    -1,    -1,    56,    -1,    -1,    -1,    -1,
2501       -1,    66,    -1,    -1,    -1,    -1,    67,    -1,    69,    70,
2502       -1,    -1,    73,    74,    75,    76,    -1,    -1,    -1,    -1,
2503       -1,    -1,    83,    84,    85,    86,    87,    88,    89,    90,
2504       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2505      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2506      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2507      121,   122,   123,   124,   125,   126,    -1,   128,   129,   130,
2508      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2509      141,   142,   143,   144,    -1,    -1,    -1,    -1,     9,    10,
2510       11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2511       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,
2512      171,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2513       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2514       51,    52,    53,    54,    -1,    56,     9,    10,    11,    -1,
2515       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2516       -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    -1,    32,
2517       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2518       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2519       53,    54,    -1,    56,     9,    10,    11,    -1,    -1,    -1,
2520       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
2521       -1,    -1,    -1,    -1,    -1,    30,    -1,    32,    33,    34,
2522       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2523       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2524       -1,    56,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
2525       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2526      171,    -1,    -1,    30,    -1,    32,    33,    34,    35,    36,
2527       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2528       47,    48,    49,    50,    51,    52,    53,    54,    -1,    56,
2529        9,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2530       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   171,    -1,
2531       -1,    30,    -1,    32,    33,    34,    35,    36,    37,    38,
2532       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2533       49,    50,    51,    52,    53,    54,    -1,    56,     9,    10,
2534       11,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2535       -1,    -1,    -1,    -1,    -1,    -1,   171,    -1,    -1,    30,
2536       -1,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2537       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2538       51,    52,    53,    54,    -1,    56,     9,    10,    11,    -1,
2539       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2540       -1,    -1,    -1,    -1,   171,    -1,    -1,    30,    31,    32,
2541       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2542       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2543       53,    54,    -1,    56,     9,    10,    11,    -1,    -1,    -1,
2544       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
2545       -1,    -1,   171,    -1,    -1,    30,    -1,    32,    33,    34,
2546       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2547       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2548       -1,    56,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
2549       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2550      171,    -1,    -1,    30,    -1,    32,    33,    34,    35,    36,
2551       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2552       47,    48,    49,    50,    51,    52,    53,    54,    -1,    56,
2553        9,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2554       -1,    -1,    -1,    -1,    -1,    -1,   169,    -1,    -1,    -1,
2555       -1,    30,    -1,    32,    33,    34,    35,    36,    37,    38,
2556       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2557       49,    50,    51,    52,    53,    54,    -1,    56,     9,    10,
2558       11,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2559       -1,    -1,    -1,    -1,   169,    -1,    -1,    -1,    -1,    30,
2560       -1,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2561       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2562       51,    52,    53,    54,    -1,    56,     9,    10,    11,    -1,
2563       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2564       -1,   168,    -1,    -1,    -1,    -1,    -1,    30,    -1,    32,
2565       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2566       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2567       53,    54,    -1,    56,     9,    10,    11,    -1,    -1,    -1,
2568       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,   168,
2569       -1,    -1,    -1,    -1,    -1,    30,    -1,    32,    33,    34,
2570       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2571       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2572       -1,    56,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
2573       -1,    66,    -1,    -1,    -1,    -1,    -1,   168,    -1,    -1,
2574       -1,    -1,    -1,    30,    -1,    32,    33,    34,    35,    36,
2575       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2576       47,    48,    49,    50,    51,    52,    53,    54,    -1,    56,
2577        9,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2578       -1,    -1,    -1,    -1,    -1,   168,    -1,    -1,    -1,    -1,
2579       -1,    30,    -1,    32,    33,    34,    35,    36,    37,    38,
2580       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2581       49,    50,    51,    52,    53,    54,    -1,    56,     9,    10,
2582       11,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2583       -1,    -1,    -1,   168,    -1,    -1,    -1,    -1,    -1,    30,
2584       -1,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2585       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2586       51,    52,    53,    54,    -1,    56,     9,    10,    11,    -1,
2587       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2588       -1,   168,    -1,    -1,    -1,    -1,    -1,    30,    -1,    32,
2589       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2590       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2591       53,    54,    -1,    56,     9,    10,    11,    -1,    -1,    -1,
2592       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,   168,
2593       -1,    -1,    -1,    -1,    -1,    30,    -1,    32,    33,    34,
2594       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2595       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2596       -1,    56,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
2597       -1,    66,    -1,    -1,    -1,    -1,    -1,   168,    -1,    -1,
2598       -1,    -1,    -1,    30,    -1,    32,    33,    34,    35,    36,
2599       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2600       47,    48,    49,    50,    51,    52,    53,    54,    -1,    56,
2601        9,    10,    11,    -1,    73,    74,    75,    76,    77,    66,
2602       -1,    80,    -1,    -1,    -1,   168,    -1,    -1,    -1,    -1,
2603       -1,    30,    -1,    32,    33,    34,    35,    36,    37,    38,
2604       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2605       49,    50,    51,    52,    53,    54,    -1,    56,   117,    -1,
2606       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2607       -1,    -1,    -1,   168,    -1,    -1,   135,    -1,   137,   138,
2608      139,   140,   141,   142,   143,   144,    -1,    -1,     3,    -1,
2609        5,     6,     7,     8,     9,    10,    11,    12,    13,    -1,
2610       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   167,    -1,
2611       -1,    -1,    -1,   172,    -1,   174,   175,    -1,    -1,    -1,
2612       -1,   168,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2613       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2614       -1,    56,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2615       -1,    -1,    67,    -1,    69,    70,    -1,    -1,    73,    -1,
2616       -1,    76,    -1,    -1,    -1,    -1,    -1,   166,    83,    84,
2617       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2618       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2619      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2620      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2621      125,   126,    -1,   128,   129,   130,   131,   132,   133,   134,
2622      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2623        3,    11,     5,     6,     7,     8,     9,    10,    11,    12,
2624       13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2625       30,    -1,    32,    33,    34,    35,    36,    37,    38,    39,
2626       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2627       50,    51,    52,    53,    54,    -1,    56,    -1,    -1,    -1,
2628       -1,    -1,    -1,    56,    -1,    -1,    66,    -1,    -1,    -1,
2629       -1,    -1,    -1,    -1,    67,    -1,    69,    70,    -1,    -1,
2630       73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2631       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2632       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2633      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2634      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2635      123,   124,   125,   126,    -1,   128,   129,   130,   131,   132,
2636      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2637      143,   144,     3,    -1,     5,     6,     7,     8,     9,    10,
2638       11,    12,    13,    35,    36,    37,    38,    39,    40,    41,
2639       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2640       52,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,    -1,
2641       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
2642       -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    -1,    -1,
2643       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    70,
2644       -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2645       -1,    -1,    83,    84,    85,    86,    87,    88,    89,    90,
2646       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2647      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2648      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2649      121,   122,   123,   124,   125,   126,    -1,   128,   129,   130,
2650      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2651      141,   142,   143,   144,     9,    10,    11,    -1,    -1,    -1,
2652       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2653       -1,    -1,    -1,    -1,    -1,    30,    -1,    32,    33,    34,
2654       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2655       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2656       -1,    56,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2657       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2658       -1,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
2659       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2660       -1,    -1,    30,    98,    32,    33,    34,    35,    36,    37,
2661       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2662       48,    49,    50,    51,    52,    53,    54,    -1,    56,     9,
2663       10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2664       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2665       30,    -1,    32,    33,    34,    35,    36,    37,    38,    39,
2666       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2667       50,    51,    52,    53,    54,    -1,    56,    10,    11,    -1,
2668       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2669       -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    -1,    32,
2670       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2671       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2672       53,    54,    14,    56,    -1,    -1,    -1,    -1,    -1,    -1,
2673       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    30,    -1,
2674       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2675       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2676       52,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,    -1,
2677       -1,    -1,    -1,    -1,    66,    36,    37,    38,    39,    40,
2678       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2679       51,    52,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,
2680       -1,    -1,    -1,    -1,    -1,    66,    37,    38,    39,    40,
2681       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2682       51,    52,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,
2683       -1,    -1,    -1,    -1,    -1,    66
2684 };
2685 
2686   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2687      symbol of state STATE-NUM.  */
2688 static const yytype_uint16 yystos[] =
2689 {
2690        0,   177,   181,     0,     3,     5,     6,     7,     8,    12,
2691       13,    15,    50,    51,    55,    57,    58,    59,    60,    61,
2692       62,    63,    64,    65,    67,    71,    72,    73,    74,    75,
2693       76,    77,    78,    80,    83,    84,    85,    86,    88,    89,
2694       90,    92,    94,    96,    99,   103,   104,   105,   106,   107,
2695      108,   109,   110,   111,   114,   116,   117,   118,   119,   124,
2696      125,   126,   127,   128,   129,   130,   133,   134,   135,   137,
2697      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2698      156,   167,   169,   170,   172,   173,   174,   175,   185,   188,
2699      189,   190,   191,   207,   215,   218,   221,   222,   223,   225,
2700      237,   243,   244,   245,   246,   294,   295,   296,   297,   298,
2701      306,   307,   312,   313,   314,   315,   317,   318,   319,   320,
2702      321,   322,   323,   324,   335,    73,   117,   189,   295,   298,
2703      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2704      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2705       31,   167,   117,   128,   167,   185,   189,   292,   307,   308,
2706      323,   325,   167,   309,   167,   288,   289,   295,   207,   167,
2707      167,   167,   167,   167,   167,   295,   316,   316,    73,    73,
2708      204,   287,   316,   170,    73,    74,    76,   107,   109,   183,
2709      184,   194,   196,   200,   203,   263,   264,   323,    77,   265,
2710      266,   296,   167,   167,   167,   167,   220,   224,   226,     3,
2711        5,     6,     7,     8,     9,    10,    11,    12,    13,    56,
2712       67,    69,    70,    73,    76,    83,    84,    85,    86,    87,
2713       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2714       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2715      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2716      118,   119,   120,   121,   122,   123,   124,   125,   126,   128,
2717      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2718      139,   140,   141,   142,   143,   144,   178,   179,   180,   182,
2719      193,   167,   167,   186,   187,   307,   167,   172,   312,   314,
2720      315,   322,   322,    77,    79,   157,   158,   159,   332,   333,
2721      295,   205,    37,   134,   162,   295,   328,   329,   330,   331,
2722       79,   310,   332,    79,   332,   170,   323,   167,   260,   117,
2723      188,   190,   296,   128,   222,    69,    70,    69,    70,    87,
2724        9,    10,    11,    30,    32,    33,    34,    35,    36,    37,
2725       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2726       48,    49,    50,    51,    52,    53,    54,    56,    66,   169,
2727       37,   302,   302,   160,   160,   148,   149,   170,   172,   260,
2728       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2729       26,    27,    28,    29,   146,   147,   302,    14,   295,   293,
2730      295,   292,   160,   260,   311,   148,   149,   160,   170,   172,
2731      316,   295,   165,   169,    90,   295,   290,   291,   295,   295,
2732      204,   295,   295,   169,   169,   169,    16,   165,   169,   169,
2733      205,    98,   161,   184,   195,   200,   169,   165,   169,   165,
2734      169,    16,   165,   169,   213,   214,   322,   295,   336,   337,
2735      295,   168,    73,    73,    73,   169,   192,   170,   328,   328,
2736      165,   197,   260,   295,   328,   148,   149,   172,   157,   333,
2737       81,   295,   322,    79,   157,   333,   168,   127,   171,   189,
2738      190,   206,   207,   322,   167,   295,    14,   166,   165,   173,
2739      174,   295,     3,     5,     6,     7,     8,    12,    13,    67,
2740       73,    83,    84,    85,   103,   107,   108,   117,   125,   126,
2741      134,   135,   137,   138,   139,   140,   141,   142,   143,   144,
2742      162,   168,   180,   261,   262,   295,   296,   219,   167,   207,
2743      167,    31,   169,   295,   295,   295,    31,   295,   295,   295,
2744      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2745      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2746      295,   308,   295,   299,    73,   299,   170,   180,   323,   326,
2747      180,   323,   326,    73,   170,   323,   327,   327,   295,   316,
2748       37,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2749      295,   295,   295,   295,   295,   295,   168,   311,   168,   323,
2750      327,   327,   323,   295,   316,   168,   168,   289,   167,   168,
2751      169,   165,    98,   168,   168,   168,   295,   287,   171,    73,
2752      170,   161,   169,   169,   184,   203,   264,   295,   266,   165,
2753      197,   165,   197,   168,   169,   131,   227,   299,   131,   228,
2754      170,   181,   168,   168,   186,   166,   168,   166,    73,    73,
2755       51,    73,    77,    82,   334,   171,   172,   171,   171,   167,
2756      190,   328,    37,   134,   295,    16,   329,   171,   295,    31,
2757      165,   197,    73,   295,   295,   205,   295,    31,   167,   299,
2758      167,   295,   260,   260,   295,   260,   260,   171,   166,   322,
2759      227,   171,   166,    31,   207,   295,    31,   207,   242,   290,
2760      295,    37,   134,   172,   230,   322,   208,    31,   170,   234,
2761      170,   299,   209,   183,   194,   198,   201,   202,   170,   214,
2762      168,   337,   168,   307,   132,   229,   170,   270,   307,   299,
2763      181,   171,    16,    82,   166,   295,   168,   168,   322,   167,
2764      295,   295,   262,   168,   227,   168,   168,    87,   295,   120,
2765      121,   122,   189,   247,   248,   249,   250,   251,   167,   247,
2766      171,   171,   229,   205,   168,   205,   169,   322,   167,   328,
2767       14,   168,    31,   207,   233,   169,   235,   169,   235,   102,
2768      238,   239,   240,   241,   295,   112,   113,   212,    98,   202,
2769      165,   197,   199,   202,   169,   270,   299,   267,   165,   170,
2770      171,   295,   166,   169,   328,   229,   207,    31,   169,   251,
2771      168,   165,   197,    30,   135,   136,   185,   252,   256,   257,
2772      258,   247,   168,   299,   169,    91,   290,   328,   166,   230,
2773       31,   207,   232,   205,   235,   100,   101,   102,   235,   171,
2774      165,   197,   171,   165,   197,   165,   197,   167,   170,    73,
2775      201,   171,   165,   197,   170,   114,   117,   118,   119,   120,
2776      121,   122,   123,   171,   189,   268,   269,   279,   280,   281,
2777      282,   307,   267,   171,   168,   299,   205,    31,   259,   249,
2778      257,    37,   216,    35,    35,   168,   114,   303,   170,   169,
2779      168,   168,   168,   205,    97,   100,   169,   295,    31,   169,
2780      236,   171,    14,   240,   295,    14,   210,   307,   205,   202,
2781      171,   267,   270,   268,   252,   109,   298,   282,   171,   170,
2782       30,   117,   253,   254,   255,   257,    14,   162,   217,   257,
2783      257,   259,   167,   259,   267,    31,   207,   231,   232,    95,
2784      169,   169,   236,   205,   295,   295,    35,    77,   211,   171,
2785      171,   169,   170,   271,    77,   283,   284,   180,   285,   286,
2786      302,   267,   254,    35,    35,   300,    77,   300,    37,    77,
2787      304,   305,   300,   171,   205,   169,   205,   307,   168,   117,
2788      171,   180,   272,   273,   274,   275,   276,   277,   307,    16,
2789      299,   165,   169,    16,   165,   169,   180,   171,   254,   254,
2790      301,   299,   170,    77,   165,   197,   170,    93,   170,   171,
2791      273,   169,   169,    98,   115,   160,   295,   284,   295,   286,
2792      299,   295,    16,   205,   305,   168,   205,   169,   205,    73,
2793      178,   282,   270,   180,   299,   299,   167,   300,   295,   171,
2794      171,   171,   180,   247,   300,   300,   168,   259,   300,   169,
2795      170,   278,   205,   300,   171
2796 };
2797 
2798   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2799 static const yytype_uint16 yyr1[] =
2800 {
2801        0,   176,   177,   178,   178,   178,   178,   178,   178,   178,
2802      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
2803      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
2804      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
2805      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
2806      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
2807      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
2808      178,   178,   179,   179,   179,   179,   179,   179,   179,   180,
2809      180,   181,   181,   182,   182,   183,   183,   184,   184,   185,
2810      185,   185,   185,   186,   186,   187,   187,   188,   189,   189,
2811      190,   190,   190,   190,   191,   191,   191,   191,   191,   192,
2812      191,   193,   191,   191,   191,   191,   191,   191,   194,   194,
2813      195,   196,   197,   197,   198,   198,   199,   199,   200,   200,
2814      201,   201,   202,   202,   203,   203,   204,   204,   205,   205,
2815      206,   206,   206,   206,   207,   207,   207,   207,   207,   207,
2816      207,   207,   207,   207,   207,   207,   207,   207,   207,   207,
2817      207,   207,   208,   207,   207,   207,   207,   207,   209,   209,
2818      210,   210,   211,   211,   212,   212,   213,   213,   214,   215,
2819      216,   216,   217,   217,   219,   218,   220,   218,   221,   221,
2820      222,   222,   224,   223,   226,   225,   227,   227,   228,   228,
2821      229,   229,   230,   230,   230,   230,   231,   231,   232,   232,
2822      233,   233,   234,   234,   234,   234,   235,   235,   235,   236,
2823      236,   237,   238,   238,   239,   239,   240,   240,   241,   241,
2824      242,   242,   243,   243,   244,   244,   245,   245,   246,   246,
2825      247,   247,   248,   248,   249,   249,   250,   250,   250,   250,
2826      251,   251,   252,   252,   253,   253,   253,   254,   254,   255,
2827      255,   256,   256,   256,   257,   257,   257,   258,   258,   259,
2828      259,   260,   260,   261,   261,   262,   262,   262,   263,   263,
2829      264,   265,   265,   266,   266,   267,   267,   268,   268,   268,
2830      269,   269,   269,   270,   270,   271,   271,   271,   272,   272,
2831      273,   273,   274,   275,   275,   275,   275,   276,   276,   277,
2832      278,   278,   279,   279,   280,   280,   281,   281,   282,   282,
2833      282,   282,   282,   282,   283,   283,   284,   284,   285,   285,
2834      286,   287,   288,   288,   289,   290,   290,   291,   291,   293,
2835      292,   294,   294,   294,   295,   295,   295,   295,   295,   295,
2836      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2837      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2838      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2839      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2840      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2841      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2842      295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
2843      295,   295,   295,   295,   295,   295,   296,   296,   297,   298,
2844      299,   300,   301,   302,   302,   303,   303,   304,   304,   305,
2845      305,   306,   306,   306,   306,   307,   307,   308,   308,   308,
2846      309,   309,   310,   310,   310,   311,   311,   312,   312,   312,
2847      312,   313,   313,   313,   313,   313,   313,   313,   313,   314,
2848      314,   314,   314,   314,   314,   314,   314,   314,   315,   315,
2849      316,   316,   317,   318,   318,   318,   318,   319,   319,   320,
2850      320,   320,   321,   321,   321,   321,   321,   321,   322,   322,
2851      322,   322,   323,   323,   323,   324,   324,   325,   325,   325,
2852      325,   325,   325,   325,   326,   326,   326,   327,   327,   327,
2853      328,   329,   329,   330,   330,   331,   331,   331,   331,   331,
2854      331,   331,   332,   332,   332,   332,   333,   333,   333,   333,
2855      333,   333,   333,   333,   334,   334,   334,   334,   335,   335,
2856      335,   335,   335,   335,   335,   336,   336,   337
2857 };
2858 
2859   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2860 static const yytype_uint8 yyr2[] =
2861 {
2862        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2863        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2864        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2865        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2866        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2867        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2868        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2869        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2870        1,     2,     0,     1,     1,     1,     1,     1,     1,     1,
2871        1,     1,     1,     1,     2,     1,     3,     4,     1,     2,
2872        1,     1,     1,     1,     1,     1,     2,     4,     3,     0,
2873        6,     0,     5,     3,     4,     3,     4,     3,     1,     1,
2874        6,     6,     0,     1,     3,     1,     3,     1,     3,     1,
2875        1,     2,     1,     3,     1,     3,     3,     1,     2,     0,
2876        1,     1,     2,     4,     3,     1,     1,     5,     7,     9,
2877        5,     3,     3,     3,     3,     3,     3,     1,     2,     6,
2878        7,     9,     0,     6,     1,     6,     3,     2,     0,     9,
2879        1,     3,     0,     1,     0,     4,     1,     3,     1,    13,
2880        0,     1,     0,     1,     0,    10,     0,     9,     1,     2,
2881        1,     1,     0,     7,     0,     8,     0,     2,     0,     2,
2882        0,     2,     1,     2,     4,     3,     1,     4,     1,     4,
2883        1,     4,     3,     4,     4,     5,     0,     5,     4,     1,
2884        1,     7,     0,     2,     1,     3,     4,     4,     1,     3,
2885        1,     4,     5,     6,     1,     3,     6,     7,     3,     6,
2886        2,     0,     1,     3,     2,     1,     0,     1,     1,     1,
2887        6,     8,     0,     1,     1,     2,     1,     1,     1,     3,
2888        3,     1,     2,     1,     1,     1,     1,     3,     3,     0,
2889        2,     2,     4,     1,     3,     1,     3,     2,     3,     1,
2890        1,     3,     1,     1,     3,     2,     0,     4,     4,    12,
2891        1,     2,     3,     1,     3,     1,     2,     3,     1,     2,
2892        2,     2,     3,     3,     3,     4,     3,     1,     1,     3,
2893        1,     3,     1,     1,     0,     1,     1,     2,     1,     1,
2894        1,     1,     1,     1,     3,     1,     2,     4,     3,     1,
2895        4,     4,     3,     1,     1,     0,     1,     3,     1,     0,
2896        9,     3,     2,     3,     1,     6,     5,     3,     4,     2,
2897        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2898        3,     3,     3,     2,     2,     2,     2,     3,     3,     3,
2899        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2900        3,     3,     3,     3,     2,     2,     2,     2,     3,     3,
2901        3,     3,     3,     3,     3,     3,     3,     3,     3,     1,
2902        5,     4,     3,     1,     2,     2,     2,     2,     2,     2,
2903        2,     2,     2,     1,     3,     2,     1,     2,     4,     2,
2904        2,     1,     2,     2,     3,     1,    13,    12,     1,     1,
2905        0,     0,     0,     0,     1,     0,     5,     3,     1,     1,
2906        2,     2,     4,     4,     2,     1,     1,     1,     1,     3,
2907        0,     3,     0,     1,     1,     0,     1,     4,     3,     1,
2908        3,     1,     1,     3,     2,     3,     1,     1,     1,     1,
2909        1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
2910        0,     1,     1,     1,     3,     1,     1,     1,     1,     1,
2911        3,     1,     1,     4,     4,     4,     4,     1,     1,     1,
2912        3,     3,     1,     4,     2,     3,     3,     1,     4,     4,
2913        3,     3,     3,     3,     1,     3,     1,     1,     3,     1,
2914        1,     0,     1,     3,     1,     3,     1,     4,     2,     2,
2915        6,     4,     2,     2,     1,     2,     1,     4,     3,     3,
2916        3,     3,     6,     3,     1,     1,     2,     1,     5,     4,
2917        2,     2,     4,     2,     2,     1,     3,     1
2918 };
2919 
2920 
2921 #define yyerrok         (yyerrstatus = 0)
2922 #define yyclearin       (yychar = YYEMPTY)
2923 #define YYEMPTY         (-2)
2924 #define YYEOF           0
2925 
2926 #define YYACCEPT        goto yyacceptlab
2927 #define YYABORT         goto yyabortlab
2928 #define YYERROR         goto yyerrorlab
2929 
2930 
2931 #define YYRECOVERING()  (!!yyerrstatus)
2932 
2933 #define YYBACKUP(Token, Value)                                  \
2934 do                                                              \
2935   if (yychar == YYEMPTY)                                        \
2936     {                                                           \
2937       yychar = (Token);                                         \
2938       yylval = (Value);                                         \
2939       YYPOPSTACK (yylen);                                       \
2940       yystate = *yyssp;                                         \
2941       goto yybackup;                                            \
2942     }                                                           \
2943   else                                                          \
2944     {                                                           \
2945       yyerror (YY_("syntax error: cannot back up")); \
2946       YYERROR;                                                  \
2947     }                                                           \
2948 while (0)
2949 
2950 /* Error token number */
2951 #define YYTERROR        1
2952 #define YYERRCODE       256
2953 
2954 
2955 
2956 /* Enable debugging if requested.  */
2957 #if ZENDDEBUG
2958 
2959 # ifndef YYFPRINTF
2960 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2961 #  define YYFPRINTF fprintf
2962 # endif
2963 
2964 # define YYDPRINTF(Args)                        \
2965 do {                                            \
2966   if (yydebug)                                  \
2967     YYFPRINTF Args;                             \
2968 } while (0)
2969 
2970 /* This macro is provided for backward compatibility. */
2971 #ifndef YY_LOCATION_PRINT
2972 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2973 #endif
2974 
2975 
2976 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2977 do {                                                                      \
2978   if (yydebug)                                                            \
2979     {                                                                     \
2980       YYFPRINTF (stderr, "%s ", Title);                                   \
2981       yy_symbol_print (stderr,                                            \
2982                   Type, Value); \
2983       YYFPRINTF (stderr, "\n");                                           \
2984     }                                                                     \
2985 } while (0)
2986 
2987 
2988 /*----------------------------------------.
2989 | Print this symbol's value on YYOUTPUT.  |
2990 `----------------------------------------*/
2991 
2992 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep)2993 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2994 {
2995   FILE *yyo = yyoutput;
2996   YYUSE (yyo);
2997   if (!yyvaluep)
2998     return;
2999 # ifdef YYPRINT
3000   if (yytype < YYNTOKENS)
3001     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3002 # endif
3003   YYUSE (yytype);
3004 }
3005 
3006 
3007 /*--------------------------------.
3008 | Print this symbol on YYOUTPUT.  |
3009 `--------------------------------*/
3010 
3011 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep)3012 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3013 {
3014   YYFPRINTF (yyoutput, "%s %s (",
3015              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3016 
3017   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
3018   YYFPRINTF (yyoutput, ")");
3019 }
3020 
3021 /*------------------------------------------------------------------.
3022 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3023 | TOP (included).                                                   |
3024 `------------------------------------------------------------------*/
3025 
3026 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)3027 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3028 {
3029   YYFPRINTF (stderr, "Stack now");
3030   for (; yybottom <= yytop; yybottom++)
3031     {
3032       int yybot = *yybottom;
3033       YYFPRINTF (stderr, " %d", yybot);
3034     }
3035   YYFPRINTF (stderr, "\n");
3036 }
3037 
3038 # define YY_STACK_PRINT(Bottom, Top)                            \
3039 do {                                                            \
3040   if (yydebug)                                                  \
3041     yy_stack_print ((Bottom), (Top));                           \
3042 } while (0)
3043 
3044 
3045 /*------------------------------------------------.
3046 | Report that the YYRULE is going to be reduced.  |
3047 `------------------------------------------------*/
3048 
3049 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule)3050 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
3051 {
3052   unsigned long int yylno = yyrline[yyrule];
3053   int yynrhs = yyr2[yyrule];
3054   int yyi;
3055   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3056              yyrule - 1, yylno);
3057   /* The symbols being reduced.  */
3058   for (yyi = 0; yyi < yynrhs; yyi++)
3059     {
3060       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3061       yy_symbol_print (stderr,
3062                        yystos[yyssp[yyi + 1 - yynrhs]],
3063                        &(yyvsp[(yyi + 1) - (yynrhs)])
3064                                               );
3065       YYFPRINTF (stderr, "\n");
3066     }
3067 }
3068 
3069 # define YY_REDUCE_PRINT(Rule)          \
3070 do {                                    \
3071   if (yydebug)                          \
3072     yy_reduce_print (yyssp, yyvsp, Rule); \
3073 } while (0)
3074 
3075 /* Nonzero means print parse trace.  It is left uninitialized so that
3076    multiple parsers can coexist.  */
3077 int yydebug;
3078 #else /* !ZENDDEBUG */
3079 # define YYDPRINTF(Args)
3080 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3081 # define YY_STACK_PRINT(Bottom, Top)
3082 # define YY_REDUCE_PRINT(Rule)
3083 #endif /* !ZENDDEBUG */
3084 
3085 
3086 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3087 #ifndef YYINITDEPTH
3088 # define YYINITDEPTH 200
3089 #endif
3090 
3091 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3092    if the built-in stack extension method is used).
3093 
3094    Do not make this value too large; the results are undefined if
3095    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3096    evaluated with infinite-precision integer arithmetic.  */
3097 
3098 #ifndef YYMAXDEPTH
3099 # define YYMAXDEPTH 10000
3100 #endif
3101 
3102 
3103 #if YYERROR_VERBOSE
3104 
3105 # ifndef yystrlen
3106 #  if defined __GLIBC__ && defined _STRING_H
3107 #   define yystrlen strlen
3108 #  else
3109 /* Return the length of YYSTR.  */
3110 static YYSIZE_T
yystrlen(const char * yystr)3111 yystrlen (const char *yystr)
3112 {
3113   YYSIZE_T yylen;
3114   for (yylen = 0; yystr[yylen]; yylen++)
3115     continue;
3116   return yylen;
3117 }
3118 #  endif
3119 # endif
3120 
3121 # ifndef yystpcpy
3122 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3123 #   define yystpcpy stpcpy
3124 #  else
3125 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3126    YYDEST.  */
3127 static char *
yystpcpy(char * yydest,const char * yysrc)3128 yystpcpy (char *yydest, const char *yysrc)
3129 {
3130   char *yyd = yydest;
3131   const char *yys = yysrc;
3132 
3133   while ((*yyd++ = *yys++) != '\0')
3134     continue;
3135 
3136   return yyd - 1;
3137 }
3138 #  endif
3139 # endif
3140 
3141 # ifndef yytnamerr
3142 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3143    quotes and backslashes, so that it's suitable for yyerror.  The
3144    heuristic is that double-quoting is unnecessary unless the string
3145    contains an apostrophe, a comma, or backslash (other than
3146    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3147    null, do not copy; instead, return the length of what the result
3148    would have been.  */
3149 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)3150 yytnamerr (char *yyres, const char *yystr)
3151 {
3152   if (*yystr == '"')
3153     {
3154       YYSIZE_T yyn = 0;
3155       char const *yyp = yystr;
3156 
3157       for (;;)
3158         switch (*++yyp)
3159           {
3160           case '\'':
3161           case ',':
3162             goto do_not_strip_quotes;
3163 
3164           case '\\':
3165             if (*++yyp != '\\')
3166               goto do_not_strip_quotes;
3167             /* Fall through.  */
3168           default:
3169             if (yyres)
3170               yyres[yyn] = *yyp;
3171             yyn++;
3172             break;
3173 
3174           case '"':
3175             if (yyres)
3176               yyres[yyn] = '\0';
3177             return yyn;
3178           }
3179     do_not_strip_quotes: ;
3180     }
3181 
3182   if (! yyres)
3183     return yystrlen (yystr);
3184 
3185   return yystpcpy (yyres, yystr) - yyres;
3186 }
3187 # endif
3188 
3189 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3190    about the unexpected token YYTOKEN for the state stack whose top is
3191    YYSSP.
3192 
3193    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
3194    not large enough to hold the message.  In that case, also set
3195    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
3196    required number of bytes is too large to store.  */
3197 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)3198 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3199                 yytype_int16 *yyssp, int yytoken)
3200 {
3201   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3202   YYSIZE_T yysize = yysize0;
3203   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3204   /* Internationalized format string. */
3205   const char *yyformat = YY_NULLPTR;
3206   /* Arguments of yyformat. */
3207   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3208   /* Number of reported tokens (one for the "unexpected", one per
3209      "expected"). */
3210   int yycount = 0;
3211 
3212   /* There are many possibilities here to consider:
3213      - If this state is a consistent state with a default action, then
3214        the only way this function was invoked is if the default action
3215        is an error action.  In that case, don't check for expected
3216        tokens because there are none.
3217      - The only way there can be no lookahead present (in yychar) is if
3218        this state is a consistent state with a default action.  Thus,
3219        detecting the absence of a lookahead is sufficient to determine
3220        that there is no unexpected or expected token to report.  In that
3221        case, just report a simple "syntax error".
3222      - Don't assume there isn't a lookahead just because this state is a
3223        consistent state with a default action.  There might have been a
3224        previous inconsistent state, consistent state with a non-default
3225        action, or user semantic action that manipulated yychar.
3226      - Of course, the expected token list depends on states to have
3227        correct lookahead information, and it depends on the parser not
3228        to perform extra reductions after fetching a lookahead from the
3229        scanner and before detecting a syntax error.  Thus, state merging
3230        (from LALR or IELR) and default reductions corrupt the expected
3231        token list.  However, the list is correct for canonical LR with
3232        one exception: it will still contain any token that will not be
3233        accepted due to an error action in a later state.
3234   */
3235   if (yytoken != YYEMPTY)
3236     {
3237       int yyn = yypact[*yyssp];
3238       yyarg[yycount++] = yytname[yytoken];
3239       if (!yypact_value_is_default (yyn))
3240         {
3241           /* Start YYX at -YYN if negative to avoid negative indexes in
3242              YYCHECK.  In other words, skip the first -YYN actions for
3243              this state because they are default actions.  */
3244           int yyxbegin = yyn < 0 ? -yyn : 0;
3245           /* Stay within bounds of both yycheck and yytname.  */
3246           int yychecklim = YYLAST - yyn + 1;
3247           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3248           int yyx;
3249 
3250           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3251             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3252                 && !yytable_value_is_error (yytable[yyx + yyn]))
3253               {
3254                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3255                   {
3256                     yycount = 1;
3257                     yysize = yysize0;
3258                     break;
3259                   }
3260                 yyarg[yycount++] = yytname[yyx];
3261                 {
3262                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3263                   if (! (yysize <= yysize1
3264                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3265                     return 2;
3266                   yysize = yysize1;
3267                 }
3268               }
3269         }
3270     }
3271 
3272   switch (yycount)
3273     {
3274 # define YYCASE_(N, S)                      \
3275       case N:                               \
3276         yyformat = S;                       \
3277       break
3278       YYCASE_(0, YY_("syntax error"));
3279       YYCASE_(1, YY_("syntax error, unexpected %s"));
3280       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3281       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3282       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3283       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3284 # undef YYCASE_
3285     }
3286 
3287   {
3288     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3289     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3290       return 2;
3291     yysize = yysize1;
3292   }
3293 
3294   if (*yymsg_alloc < yysize)
3295     {
3296       *yymsg_alloc = 2 * yysize;
3297       if (! (yysize <= *yymsg_alloc
3298              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3299         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3300       return 1;
3301     }
3302 
3303   /* Avoid sprintf, as that infringes on the user's name space.
3304      Don't have undefined behavior even if the translation
3305      produced a string with the wrong number of "%s"s.  */
3306   {
3307     char *yyp = *yymsg;
3308     int yyi = 0;
3309     while ((*yyp = *yyformat) != '\0')
3310       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3311         {
3312           yyp += yytnamerr (yyp, yyarg[yyi++]);
3313           yyformat += 2;
3314         }
3315       else
3316         {
3317           yyp++;
3318           yyformat++;
3319         }
3320   }
3321   return 0;
3322 }
3323 #endif /* YYERROR_VERBOSE */
3324 
3325 /*-----------------------------------------------.
3326 | Release the memory associated to this symbol.  |
3327 `-----------------------------------------------*/
3328 
3329 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep)3330 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3331 {
3332   YYUSE (yyvaluep);
3333   if (!yymsg)
3334     yymsg = "Deleting";
3335   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3336 
3337   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3338   switch (yytype)
3339     {
3340           case 71: /* "integer"  */
3341 
3342       { zend_ast_destroy(((*yyvaluep).ast)); }
3343 
3344         break;
3345 
3346     case 72: /* "floating-point number"  */
3347 
3348       { zend_ast_destroy(((*yyvaluep).ast)); }
3349 
3350         break;
3351 
3352     case 73: /* "identifier"  */
3353 
3354       { zend_ast_destroy(((*yyvaluep).ast)); }
3355 
3356         break;
3357 
3358     case 74: /* "fully qualified name"  */
3359 
3360       { zend_ast_destroy(((*yyvaluep).ast)); }
3361 
3362         break;
3363 
3364     case 75: /* "namespace-relative name"  */
3365 
3366       { zend_ast_destroy(((*yyvaluep).ast)); }
3367 
3368         break;
3369 
3370     case 76: /* "namespaced name"  */
3371 
3372       { zend_ast_destroy(((*yyvaluep).ast)); }
3373 
3374         break;
3375 
3376     case 77: /* "variable"  */
3377 
3378       { zend_ast_destroy(((*yyvaluep).ast)); }
3379 
3380         break;
3381 
3382     case 78: /* T_INLINE_HTML  */
3383 
3384       { zend_ast_destroy(((*yyvaluep).ast)); }
3385 
3386         break;
3387 
3388     case 79: /* "string content"  */
3389 
3390       { zend_ast_destroy(((*yyvaluep).ast)); }
3391 
3392         break;
3393 
3394     case 80: /* "quoted string"  */
3395 
3396       { zend_ast_destroy(((*yyvaluep).ast)); }
3397 
3398         break;
3399 
3400     case 81: /* "variable name"  */
3401 
3402       { zend_ast_destroy(((*yyvaluep).ast)); }
3403 
3404         break;
3405 
3406     case 82: /* "number"  */
3407 
3408       { zend_ast_destroy(((*yyvaluep).ast)); }
3409 
3410         break;
3411 
3412     case 180: /* identifier  */
3413 
3414       { zend_ast_destroy(((*yyvaluep).ast)); }
3415 
3416         break;
3417 
3418     case 181: /* top_statement_list  */
3419 
3420       { zend_ast_destroy(((*yyvaluep).ast)); }
3421 
3422         break;
3423 
3424     case 182: /* namespace_declaration_name  */
3425 
3426       { zend_ast_destroy(((*yyvaluep).ast)); }
3427 
3428         break;
3429 
3430     case 183: /* namespace_name  */
3431 
3432       { zend_ast_destroy(((*yyvaluep).ast)); }
3433 
3434         break;
3435 
3436     case 184: /* legacy_namespace_name  */
3437 
3438       { zend_ast_destroy(((*yyvaluep).ast)); }
3439 
3440         break;
3441 
3442     case 185: /* name  */
3443 
3444       { zend_ast_destroy(((*yyvaluep).ast)); }
3445 
3446         break;
3447 
3448     case 186: /* attribute_decl  */
3449 
3450       { zend_ast_destroy(((*yyvaluep).ast)); }
3451 
3452         break;
3453 
3454     case 187: /* attribute_group  */
3455 
3456       { zend_ast_destroy(((*yyvaluep).ast)); }
3457 
3458         break;
3459 
3460     case 188: /* attribute  */
3461 
3462       { zend_ast_destroy(((*yyvaluep).ast)); }
3463 
3464         break;
3465 
3466     case 189: /* attributes  */
3467 
3468       { zend_ast_destroy(((*yyvaluep).ast)); }
3469 
3470         break;
3471 
3472     case 190: /* attributed_statement  */
3473 
3474       { zend_ast_destroy(((*yyvaluep).ast)); }
3475 
3476         break;
3477 
3478     case 191: /* top_statement  */
3479 
3480       { zend_ast_destroy(((*yyvaluep).ast)); }
3481 
3482         break;
3483 
3484     case 195: /* group_use_declaration  */
3485 
3486       { zend_ast_destroy(((*yyvaluep).ast)); }
3487 
3488         break;
3489 
3490     case 196: /* mixed_group_use_declaration  */
3491 
3492       { zend_ast_destroy(((*yyvaluep).ast)); }
3493 
3494         break;
3495 
3496     case 198: /* inline_use_declarations  */
3497 
3498       { zend_ast_destroy(((*yyvaluep).ast)); }
3499 
3500         break;
3501 
3502     case 199: /* unprefixed_use_declarations  */
3503 
3504       { zend_ast_destroy(((*yyvaluep).ast)); }
3505 
3506         break;
3507 
3508     case 200: /* use_declarations  */
3509 
3510       { zend_ast_destroy(((*yyvaluep).ast)); }
3511 
3512         break;
3513 
3514     case 201: /* inline_use_declaration  */
3515 
3516       { zend_ast_destroy(((*yyvaluep).ast)); }
3517 
3518         break;
3519 
3520     case 202: /* unprefixed_use_declaration  */
3521 
3522       { zend_ast_destroy(((*yyvaluep).ast)); }
3523 
3524         break;
3525 
3526     case 203: /* use_declaration  */
3527 
3528       { zend_ast_destroy(((*yyvaluep).ast)); }
3529 
3530         break;
3531 
3532     case 204: /* const_list  */
3533 
3534       { zend_ast_destroy(((*yyvaluep).ast)); }
3535 
3536         break;
3537 
3538     case 205: /* inner_statement_list  */
3539 
3540       { zend_ast_destroy(((*yyvaluep).ast)); }
3541 
3542         break;
3543 
3544     case 206: /* inner_statement  */
3545 
3546       { zend_ast_destroy(((*yyvaluep).ast)); }
3547 
3548         break;
3549 
3550     case 207: /* statement  */
3551 
3552       { zend_ast_destroy(((*yyvaluep).ast)); }
3553 
3554         break;
3555 
3556     case 209: /* catch_list  */
3557 
3558       { zend_ast_destroy(((*yyvaluep).ast)); }
3559 
3560         break;
3561 
3562     case 210: /* catch_name_list  */
3563 
3564       { zend_ast_destroy(((*yyvaluep).ast)); }
3565 
3566         break;
3567 
3568     case 211: /* optional_variable  */
3569 
3570       { zend_ast_destroy(((*yyvaluep).ast)); }
3571 
3572         break;
3573 
3574     case 212: /* finally_statement  */
3575 
3576       { zend_ast_destroy(((*yyvaluep).ast)); }
3577 
3578         break;
3579 
3580     case 213: /* unset_variables  */
3581 
3582       { zend_ast_destroy(((*yyvaluep).ast)); }
3583 
3584         break;
3585 
3586     case 214: /* unset_variable  */
3587 
3588       { zend_ast_destroy(((*yyvaluep).ast)); }
3589 
3590         break;
3591 
3592     case 215: /* function_declaration_statement  */
3593 
3594       { zend_ast_destroy(((*yyvaluep).ast)); }
3595 
3596         break;
3597 
3598     case 218: /* class_declaration_statement  */
3599 
3600       { zend_ast_destroy(((*yyvaluep).ast)); }
3601 
3602         break;
3603 
3604     case 223: /* trait_declaration_statement  */
3605 
3606       { zend_ast_destroy(((*yyvaluep).ast)); }
3607 
3608         break;
3609 
3610     case 225: /* interface_declaration_statement  */
3611 
3612       { zend_ast_destroy(((*yyvaluep).ast)); }
3613 
3614         break;
3615 
3616     case 227: /* extends_from  */
3617 
3618       { zend_ast_destroy(((*yyvaluep).ast)); }
3619 
3620         break;
3621 
3622     case 228: /* interface_extends_list  */
3623 
3624       { zend_ast_destroy(((*yyvaluep).ast)); }
3625 
3626         break;
3627 
3628     case 229: /* implements_list  */
3629 
3630       { zend_ast_destroy(((*yyvaluep).ast)); }
3631 
3632         break;
3633 
3634     case 230: /* foreach_variable  */
3635 
3636       { zend_ast_destroy(((*yyvaluep).ast)); }
3637 
3638         break;
3639 
3640     case 231: /* for_statement  */
3641 
3642       { zend_ast_destroy(((*yyvaluep).ast)); }
3643 
3644         break;
3645 
3646     case 232: /* foreach_statement  */
3647 
3648       { zend_ast_destroy(((*yyvaluep).ast)); }
3649 
3650         break;
3651 
3652     case 233: /* declare_statement  */
3653 
3654       { zend_ast_destroy(((*yyvaluep).ast)); }
3655 
3656         break;
3657 
3658     case 234: /* switch_case_list  */
3659 
3660       { zend_ast_destroy(((*yyvaluep).ast)); }
3661 
3662         break;
3663 
3664     case 235: /* case_list  */
3665 
3666       { zend_ast_destroy(((*yyvaluep).ast)); }
3667 
3668         break;
3669 
3670     case 237: /* match  */
3671 
3672       { zend_ast_destroy(((*yyvaluep).ast)); }
3673 
3674         break;
3675 
3676     case 238: /* match_arm_list  */
3677 
3678       { zend_ast_destroy(((*yyvaluep).ast)); }
3679 
3680         break;
3681 
3682     case 239: /* non_empty_match_arm_list  */
3683 
3684       { zend_ast_destroy(((*yyvaluep).ast)); }
3685 
3686         break;
3687 
3688     case 240: /* match_arm  */
3689 
3690       { zend_ast_destroy(((*yyvaluep).ast)); }
3691 
3692         break;
3693 
3694     case 241: /* match_arm_cond_list  */
3695 
3696       { zend_ast_destroy(((*yyvaluep).ast)); }
3697 
3698         break;
3699 
3700     case 242: /* while_statement  */
3701 
3702       { zend_ast_destroy(((*yyvaluep).ast)); }
3703 
3704         break;
3705 
3706     case 243: /* if_stmt_without_else  */
3707 
3708       { zend_ast_destroy(((*yyvaluep).ast)); }
3709 
3710         break;
3711 
3712     case 244: /* if_stmt  */
3713 
3714       { zend_ast_destroy(((*yyvaluep).ast)); }
3715 
3716         break;
3717 
3718     case 245: /* alt_if_stmt_without_else  */
3719 
3720       { zend_ast_destroy(((*yyvaluep).ast)); }
3721 
3722         break;
3723 
3724     case 246: /* alt_if_stmt  */
3725 
3726       { zend_ast_destroy(((*yyvaluep).ast)); }
3727 
3728         break;
3729 
3730     case 247: /* parameter_list  */
3731 
3732       { zend_ast_destroy(((*yyvaluep).ast)); }
3733 
3734         break;
3735 
3736     case 248: /* non_empty_parameter_list  */
3737 
3738       { zend_ast_destroy(((*yyvaluep).ast)); }
3739 
3740         break;
3741 
3742     case 249: /* attributed_parameter  */
3743 
3744       { zend_ast_destroy(((*yyvaluep).ast)); }
3745 
3746         break;
3747 
3748     case 251: /* parameter  */
3749 
3750       { zend_ast_destroy(((*yyvaluep).ast)); }
3751 
3752         break;
3753 
3754     case 252: /* optional_type_without_static  */
3755 
3756       { zend_ast_destroy(((*yyvaluep).ast)); }
3757 
3758         break;
3759 
3760     case 253: /* type_expr  */
3761 
3762       { zend_ast_destroy(((*yyvaluep).ast)); }
3763 
3764         break;
3765 
3766     case 254: /* type  */
3767 
3768       { zend_ast_destroy(((*yyvaluep).ast)); }
3769 
3770         break;
3771 
3772     case 255: /* union_type  */
3773 
3774       { zend_ast_destroy(((*yyvaluep).ast)); }
3775 
3776         break;
3777 
3778     case 256: /* type_expr_without_static  */
3779 
3780       { zend_ast_destroy(((*yyvaluep).ast)); }
3781 
3782         break;
3783 
3784     case 257: /* type_without_static  */
3785 
3786       { zend_ast_destroy(((*yyvaluep).ast)); }
3787 
3788         break;
3789 
3790     case 258: /* union_type_without_static  */
3791 
3792       { zend_ast_destroy(((*yyvaluep).ast)); }
3793 
3794         break;
3795 
3796     case 259: /* return_type  */
3797 
3798       { zend_ast_destroy(((*yyvaluep).ast)); }
3799 
3800         break;
3801 
3802     case 260: /* argument_list  */
3803 
3804       { zend_ast_destroy(((*yyvaluep).ast)); }
3805 
3806         break;
3807 
3808     case 261: /* non_empty_argument_list  */
3809 
3810       { zend_ast_destroy(((*yyvaluep).ast)); }
3811 
3812         break;
3813 
3814     case 262: /* argument  */
3815 
3816       { zend_ast_destroy(((*yyvaluep).ast)); }
3817 
3818         break;
3819 
3820     case 263: /* global_var_list  */
3821 
3822       { zend_ast_destroy(((*yyvaluep).ast)); }
3823 
3824         break;
3825 
3826     case 264: /* global_var  */
3827 
3828       { zend_ast_destroy(((*yyvaluep).ast)); }
3829 
3830         break;
3831 
3832     case 265: /* static_var_list  */
3833 
3834       { zend_ast_destroy(((*yyvaluep).ast)); }
3835 
3836         break;
3837 
3838     case 266: /* static_var  */
3839 
3840       { zend_ast_destroy(((*yyvaluep).ast)); }
3841 
3842         break;
3843 
3844     case 267: /* class_statement_list  */
3845 
3846       { zend_ast_destroy(((*yyvaluep).ast)); }
3847 
3848         break;
3849 
3850     case 268: /* attributed_class_statement  */
3851 
3852       { zend_ast_destroy(((*yyvaluep).ast)); }
3853 
3854         break;
3855 
3856     case 269: /* class_statement  */
3857 
3858       { zend_ast_destroy(((*yyvaluep).ast)); }
3859 
3860         break;
3861 
3862     case 270: /* class_name_list  */
3863 
3864       { zend_ast_destroy(((*yyvaluep).ast)); }
3865 
3866         break;
3867 
3868     case 271: /* trait_adaptations  */
3869 
3870       { zend_ast_destroy(((*yyvaluep).ast)); }
3871 
3872         break;
3873 
3874     case 272: /* trait_adaptation_list  */
3875 
3876       { zend_ast_destroy(((*yyvaluep).ast)); }
3877 
3878         break;
3879 
3880     case 273: /* trait_adaptation  */
3881 
3882       { zend_ast_destroy(((*yyvaluep).ast)); }
3883 
3884         break;
3885 
3886     case 274: /* trait_precedence  */
3887 
3888       { zend_ast_destroy(((*yyvaluep).ast)); }
3889 
3890         break;
3891 
3892     case 275: /* trait_alias  */
3893 
3894       { zend_ast_destroy(((*yyvaluep).ast)); }
3895 
3896         break;
3897 
3898     case 276: /* trait_method_reference  */
3899 
3900       { zend_ast_destroy(((*yyvaluep).ast)); }
3901 
3902         break;
3903 
3904     case 277: /* absolute_trait_method_reference  */
3905 
3906       { zend_ast_destroy(((*yyvaluep).ast)); }
3907 
3908         break;
3909 
3910     case 278: /* method_body  */
3911 
3912       { zend_ast_destroy(((*yyvaluep).ast)); }
3913 
3914         break;
3915 
3916     case 283: /* property_list  */
3917 
3918       { zend_ast_destroy(((*yyvaluep).ast)); }
3919 
3920         break;
3921 
3922     case 284: /* property  */
3923 
3924       { zend_ast_destroy(((*yyvaluep).ast)); }
3925 
3926         break;
3927 
3928     case 285: /* class_const_list  */
3929 
3930       { zend_ast_destroy(((*yyvaluep).ast)); }
3931 
3932         break;
3933 
3934     case 286: /* class_const_decl  */
3935 
3936       { zend_ast_destroy(((*yyvaluep).ast)); }
3937 
3938         break;
3939 
3940     case 287: /* const_decl  */
3941 
3942       { zend_ast_destroy(((*yyvaluep).ast)); }
3943 
3944         break;
3945 
3946     case 288: /* echo_expr_list  */
3947 
3948       { zend_ast_destroy(((*yyvaluep).ast)); }
3949 
3950         break;
3951 
3952     case 289: /* echo_expr  */
3953 
3954       { zend_ast_destroy(((*yyvaluep).ast)); }
3955 
3956         break;
3957 
3958     case 290: /* for_exprs  */
3959 
3960       { zend_ast_destroy(((*yyvaluep).ast)); }
3961 
3962         break;
3963 
3964     case 291: /* non_empty_for_exprs  */
3965 
3966       { zend_ast_destroy(((*yyvaluep).ast)); }
3967 
3968         break;
3969 
3970     case 292: /* anonymous_class  */
3971 
3972       { zend_ast_destroy(((*yyvaluep).ast)); }
3973 
3974         break;
3975 
3976     case 294: /* new_expr  */
3977 
3978       { zend_ast_destroy(((*yyvaluep).ast)); }
3979 
3980         break;
3981 
3982     case 295: /* expr  */
3983 
3984       { zend_ast_destroy(((*yyvaluep).ast)); }
3985 
3986         break;
3987 
3988     case 296: /* inline_function  */
3989 
3990       { zend_ast_destroy(((*yyvaluep).ast)); }
3991 
3992         break;
3993 
3994     case 299: /* backup_doc_comment  */
3995 
3996       { if (((*yyvaluep).str)) zend_string_release_ex(((*yyvaluep).str), 0); }
3997 
3998         break;
3999 
4000     case 303: /* lexical_vars  */
4001 
4002       { zend_ast_destroy(((*yyvaluep).ast)); }
4003 
4004         break;
4005 
4006     case 304: /* lexical_var_list  */
4007 
4008       { zend_ast_destroy(((*yyvaluep).ast)); }
4009 
4010         break;
4011 
4012     case 305: /* lexical_var  */
4013 
4014       { zend_ast_destroy(((*yyvaluep).ast)); }
4015 
4016         break;
4017 
4018     case 306: /* function_call  */
4019 
4020       { zend_ast_destroy(((*yyvaluep).ast)); }
4021 
4022         break;
4023 
4024     case 307: /* class_name  */
4025 
4026       { zend_ast_destroy(((*yyvaluep).ast)); }
4027 
4028         break;
4029 
4030     case 308: /* class_name_reference  */
4031 
4032       { zend_ast_destroy(((*yyvaluep).ast)); }
4033 
4034         break;
4035 
4036     case 309: /* exit_expr  */
4037 
4038       { zend_ast_destroy(((*yyvaluep).ast)); }
4039 
4040         break;
4041 
4042     case 310: /* backticks_expr  */
4043 
4044       { zend_ast_destroy(((*yyvaluep).ast)); }
4045 
4046         break;
4047 
4048     case 311: /* ctor_arguments  */
4049 
4050       { zend_ast_destroy(((*yyvaluep).ast)); }
4051 
4052         break;
4053 
4054     case 312: /* dereferencable_scalar  */
4055 
4056       { zend_ast_destroy(((*yyvaluep).ast)); }
4057 
4058         break;
4059 
4060     case 313: /* scalar  */
4061 
4062       { zend_ast_destroy(((*yyvaluep).ast)); }
4063 
4064         break;
4065 
4066     case 314: /* constant  */
4067 
4068       { zend_ast_destroy(((*yyvaluep).ast)); }
4069 
4070         break;
4071 
4072     case 315: /* class_constant  */
4073 
4074       { zend_ast_destroy(((*yyvaluep).ast)); }
4075 
4076         break;
4077 
4078     case 316: /* optional_expr  */
4079 
4080       { zend_ast_destroy(((*yyvaluep).ast)); }
4081 
4082         break;
4083 
4084     case 317: /* variable_class_name  */
4085 
4086       { zend_ast_destroy(((*yyvaluep).ast)); }
4087 
4088         break;
4089 
4090     case 318: /* fully_dereferencable  */
4091 
4092       { zend_ast_destroy(((*yyvaluep).ast)); }
4093 
4094         break;
4095 
4096     case 319: /* array_object_dereferencable  */
4097 
4098       { zend_ast_destroy(((*yyvaluep).ast)); }
4099 
4100         break;
4101 
4102     case 320: /* callable_expr  */
4103 
4104       { zend_ast_destroy(((*yyvaluep).ast)); }
4105 
4106         break;
4107 
4108     case 321: /* callable_variable  */
4109 
4110       { zend_ast_destroy(((*yyvaluep).ast)); }
4111 
4112         break;
4113 
4114     case 322: /* variable  */
4115 
4116       { zend_ast_destroy(((*yyvaluep).ast)); }
4117 
4118         break;
4119 
4120     case 323: /* simple_variable  */
4121 
4122       { zend_ast_destroy(((*yyvaluep).ast)); }
4123 
4124         break;
4125 
4126     case 324: /* static_member  */
4127 
4128       { zend_ast_destroy(((*yyvaluep).ast)); }
4129 
4130         break;
4131 
4132     case 325: /* new_variable  */
4133 
4134       { zend_ast_destroy(((*yyvaluep).ast)); }
4135 
4136         break;
4137 
4138     case 326: /* member_name  */
4139 
4140       { zend_ast_destroy(((*yyvaluep).ast)); }
4141 
4142         break;
4143 
4144     case 327: /* property_name  */
4145 
4146       { zend_ast_destroy(((*yyvaluep).ast)); }
4147 
4148         break;
4149 
4150     case 328: /* array_pair_list  */
4151 
4152       { zend_ast_destroy(((*yyvaluep).ast)); }
4153 
4154         break;
4155 
4156     case 329: /* possible_array_pair  */
4157 
4158       { zend_ast_destroy(((*yyvaluep).ast)); }
4159 
4160         break;
4161 
4162     case 330: /* non_empty_array_pair_list  */
4163 
4164       { zend_ast_destroy(((*yyvaluep).ast)); }
4165 
4166         break;
4167 
4168     case 331: /* array_pair  */
4169 
4170       { zend_ast_destroy(((*yyvaluep).ast)); }
4171 
4172         break;
4173 
4174     case 332: /* encaps_list  */
4175 
4176       { zend_ast_destroy(((*yyvaluep).ast)); }
4177 
4178         break;
4179 
4180     case 333: /* encaps_var  */
4181 
4182       { zend_ast_destroy(((*yyvaluep).ast)); }
4183 
4184         break;
4185 
4186     case 334: /* encaps_var_offset  */
4187 
4188       { zend_ast_destroy(((*yyvaluep).ast)); }
4189 
4190         break;
4191 
4192     case 335: /* internal_functions_in_yacc  */
4193 
4194       { zend_ast_destroy(((*yyvaluep).ast)); }
4195 
4196         break;
4197 
4198     case 336: /* isset_variables  */
4199 
4200       { zend_ast_destroy(((*yyvaluep).ast)); }
4201 
4202         break;
4203 
4204     case 337: /* isset_variable  */
4205 
4206       { zend_ast_destroy(((*yyvaluep).ast)); }
4207 
4208         break;
4209 
4210 
4211       default:
4212         break;
4213     }
4214   YY_IGNORE_MAYBE_UNINITIALIZED_END
4215 }
4216 
4217 
4218 
4219 
4220 /*----------.
4221 | yyparse.  |
4222 `----------*/
4223 
4224 int
yyparse(void)4225 yyparse (void)
4226 {
4227 /* The lookahead symbol.  */
4228 int yychar;
4229 
4230 
4231 /* The semantic value of the lookahead symbol.  */
4232 /* Default value used for initialization, for pacifying older GCCs
4233    or non-GCC compilers.  */
4234 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
4235 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
4236 
4237     /* Number of syntax errors so far.  */
4238     int yynerrs;
4239 
4240     int yystate;
4241     /* Number of tokens to shift before error messages enabled.  */
4242     int yyerrstatus;
4243 
4244     /* The stacks and their tools:
4245        'yyss': related to states.
4246        'yyvs': related to semantic values.
4247 
4248        Refer to the stacks through separate pointers, to allow yyoverflow
4249        to reallocate them elsewhere.  */
4250 
4251     /* The state stack.  */
4252     yytype_int16 yyssa[YYINITDEPTH];
4253     yytype_int16 *yyss;
4254     yytype_int16 *yyssp;
4255 
4256     /* The semantic value stack.  */
4257     YYSTYPE yyvsa[YYINITDEPTH];
4258     YYSTYPE *yyvs;
4259     YYSTYPE *yyvsp;
4260 
4261     YYSIZE_T yystacksize;
4262 
4263   int yyn;
4264   int yyresult;
4265   /* Lookahead token as an internal (translated) token number.  */
4266   int yytoken = 0;
4267   /* The variables used to return semantic value and location from the
4268      action routines.  */
4269   YYSTYPE yyval;
4270 
4271 #if YYERROR_VERBOSE
4272   /* Buffer for error messages, and its allocated size.  */
4273   char yymsgbuf[128];
4274   char *yymsg = yymsgbuf;
4275   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4276 #endif
4277 
4278 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
4279 
4280   /* The number of symbols on the RHS of the reduced rule.
4281      Keep to zero when no symbol should be popped.  */
4282   int yylen = 0;
4283 
4284   yyssp = yyss = yyssa;
4285   yyvsp = yyvs = yyvsa;
4286   yystacksize = YYINITDEPTH;
4287 
4288   YYDPRINTF ((stderr, "Starting parse\n"));
4289 
4290   yystate = 0;
4291   yyerrstatus = 0;
4292   yynerrs = 0;
4293   yychar = YYEMPTY; /* Cause a token to be read.  */
4294   goto yysetstate;
4295 
4296 /*------------------------------------------------------------.
4297 | yynewstate -- Push a new state, which is found in yystate.  |
4298 `------------------------------------------------------------*/
4299  yynewstate:
4300   /* In all cases, when you get here, the value and location stacks
4301      have just been pushed.  So pushing a state here evens the stacks.  */
4302   yyssp++;
4303 
4304  yysetstate:
4305   *yyssp = yystate;
4306 
4307   if (yyss + yystacksize - 1 <= yyssp)
4308     {
4309       /* Get the current used size of the three stacks, in elements.  */
4310       YYSIZE_T yysize = yyssp - yyss + 1;
4311 
4312 #ifdef yyoverflow
4313       {
4314         /* Give user a chance to reallocate the stack.  Use copies of
4315            these so that the &'s don't force the real ones into
4316            memory.  */
4317         YYSTYPE *yyvs1 = yyvs;
4318         yytype_int16 *yyss1 = yyss;
4319 
4320         /* Each stack pointer address is followed by the size of the
4321            data in use in that stack, in bytes.  This used to be a
4322            conditional around just the two extra args, but that might
4323            be undefined if yyoverflow is a macro.  */
4324         yyoverflow (YY_("memory exhausted"),
4325                     &yyss1, yysize * sizeof (*yyssp),
4326                     &yyvs1, yysize * sizeof (*yyvsp),
4327                     &yystacksize);
4328 
4329         yyss = yyss1;
4330         yyvs = yyvs1;
4331       }
4332 #else /* no yyoverflow */
4333 # ifndef YYSTACK_RELOCATE
4334       goto yyexhaustedlab;
4335 # else
4336       /* Extend the stack our own way.  */
4337       if (YYMAXDEPTH <= yystacksize)
4338         goto yyexhaustedlab;
4339       yystacksize *= 2;
4340       if (YYMAXDEPTH < yystacksize)
4341         yystacksize = YYMAXDEPTH;
4342 
4343       {
4344         yytype_int16 *yyss1 = yyss;
4345         union yyalloc *yyptr =
4346           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4347         if (! yyptr)
4348           goto yyexhaustedlab;
4349         YYSTACK_RELOCATE (yyss_alloc, yyss);
4350         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4351 #  undef YYSTACK_RELOCATE
4352         if (yyss1 != yyssa)
4353           YYSTACK_FREE (yyss1);
4354       }
4355 # endif
4356 #endif /* no yyoverflow */
4357 
4358       yyssp = yyss + yysize - 1;
4359       yyvsp = yyvs + yysize - 1;
4360 
4361       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4362                   (unsigned long int) yystacksize));
4363 
4364       if (yyss + yystacksize - 1 <= yyssp)
4365         YYABORT;
4366     }
4367 
4368   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4369 
4370   if (yystate == YYFINAL)
4371     YYACCEPT;
4372 
4373   goto yybackup;
4374 
4375 /*-----------.
4376 | yybackup.  |
4377 `-----------*/
4378 yybackup:
4379 
4380   /* Do appropriate processing given the current state.  Read a
4381      lookahead token if we need one and don't already have one.  */
4382 
4383   /* First try to decide what to do without reference to lookahead token.  */
4384   yyn = yypact[yystate];
4385   if (yypact_value_is_default (yyn))
4386     goto yydefault;
4387 
4388   /* Not known => get a lookahead token if don't already have one.  */
4389 
4390   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4391   if (yychar == YYEMPTY)
4392     {
4393       YYDPRINTF ((stderr, "Reading a token: "));
4394       yychar = yylex (&yylval);
4395     }
4396 
4397   if (yychar <= YYEOF)
4398     {
4399       yychar = yytoken = YYEOF;
4400       YYDPRINTF ((stderr, "Now at end of input.\n"));
4401     }
4402   else
4403     {
4404       yytoken = YYTRANSLATE (yychar);
4405       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4406     }
4407 
4408   /* If the proper action on seeing token YYTOKEN is to reduce or to
4409      detect an error, take that action.  */
4410   yyn += yytoken;
4411   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4412     goto yydefault;
4413   yyn = yytable[yyn];
4414   if (yyn <= 0)
4415     {
4416       if (yytable_value_is_error (yyn))
4417         goto yyerrlab;
4418       yyn = -yyn;
4419       goto yyreduce;
4420     }
4421 
4422   /* Count tokens shifted since error; after three, turn off error
4423      status.  */
4424   if (yyerrstatus)
4425     yyerrstatus--;
4426 
4427   /* Shift the lookahead token.  */
4428   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4429 
4430   /* Discard the shifted token.  */
4431   yychar = YYEMPTY;
4432 
4433   yystate = yyn;
4434   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4435   *++yyvsp = yylval;
4436   YY_IGNORE_MAYBE_UNINITIALIZED_END
4437 
4438   goto yynewstate;
4439 
4440 
4441 /*-----------------------------------------------------------.
4442 | yydefault -- do the default action for the current state.  |
4443 `-----------------------------------------------------------*/
4444 yydefault:
4445   yyn = yydefact[yystate];
4446   if (yyn == 0)
4447     goto yyerrlab;
4448   goto yyreduce;
4449 
4450 
4451 /*-----------------------------.
4452 | yyreduce -- Do a reduction.  |
4453 `-----------------------------*/
4454 yyreduce:
4455   /* yyn is the number of a rule to reduce with.  */
4456   yylen = yyr2[yyn];
4457 
4458   /* If YYLEN is nonzero, implement the default value of the action:
4459      '$$ = $1'.
4460 
4461      Otherwise, the following line sets YYVAL to garbage.
4462      This behavior is undocumented and Bison
4463      users should not rely upon it.  Assigning to YYVAL
4464      unconditionally makes the parser a bit smaller, and it avoids a
4465      GCC warning that YYVAL may be used uninitialized.  */
4466   yyval = yyvsp[1-yylen];
4467 
4468 
4469   YY_REDUCE_PRINT (yyn);
4470   switch (yyn)
4471     {
4472         case 2:
4473 
4474     { CG(ast) = (yyvsp[0].ast); }
4475 
4476     break;
4477 
4478   case 79:
4479 
4480     { (yyval.ast) = (yyvsp[0].ast); }
4481 
4482     break;
4483 
4484   case 80:
4485 
4486     {
4487 			zval zv;
4488 			if (zend_lex_tstring(&zv, (yyvsp[0].ident)) == FAILURE) { YYABORT; }
4489 			(yyval.ast) = zend_ast_create_zval(&zv);
4490 		}
4491 
4492     break;
4493 
4494   case 81:
4495 
4496     { (yyval.ast) = zend_ast_list_add((yyvsp[-1].ast), (yyvsp[0].ast)); }
4497 
4498     break;
4499 
4500   case 82:
4501 
4502     { (yyval.ast) = zend_ast_create_list(0, ZEND_AST_STMT_LIST); }
4503 
4504     break;
4505 
4506   case 83:
4507 
4508     { (yyval.ast) = (yyvsp[0].ast); }
4509 
4510     break;
4511 
4512   case 84:
4513 
4514     { (yyval.ast) = (yyvsp[0].ast); }
4515 
4516     break;
4517 
4518   case 85:
4519 
4520     { (yyval.ast) = (yyvsp[0].ast); }
4521 
4522     break;
4523 
4524   case 86:
4525 
4526     { (yyval.ast) = (yyvsp[0].ast); }
4527 
4528     break;
4529 
4530   case 87:
4531 
4532     { (yyval.ast) = (yyvsp[0].ast); }
4533 
4534     break;
4535 
4536   case 88:
4537 
4538     { (yyval.ast) = (yyvsp[0].ast); }
4539 
4540     break;
4541 
4542   case 89:
4543 
4544     { (yyval.ast) = (yyvsp[0].ast); (yyval.ast)->attr = ZEND_NAME_NOT_FQ; }
4545 
4546     break;
4547 
4548   case 90:
4549 
4550     { (yyval.ast) = (yyvsp[0].ast); (yyval.ast)->attr = ZEND_NAME_NOT_FQ; }
4551 
4552     break;
4553 
4554   case 91:
4555 
4556     { (yyval.ast) = (yyvsp[0].ast); (yyval.ast)->attr = ZEND_NAME_FQ; }
4557 
4558     break;
4559 
4560   case 92:
4561 
4562     { (yyval.ast) = (yyvsp[0].ast); (yyval.ast)->attr = ZEND_NAME_RELATIVE; }
4563 
4564     break;
4565 
4566   case 93:
4567 
4568     { (yyval.ast) = zend_ast_create(ZEND_AST_ATTRIBUTE, (yyvsp[0].ast), NULL); }
4569 
4570     break;
4571 
4572   case 94:
4573 
4574     { (yyval.ast) = zend_ast_create(ZEND_AST_ATTRIBUTE, (yyvsp[-1].ast), (yyvsp[0].ast)); }
4575 
4576     break;
4577 
4578   case 95:
4579 
4580     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_ATTRIBUTE_GROUP, (yyvsp[0].ast)); }
4581 
4582     break;
4583 
4584   case 96:
4585 
4586     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
4587 
4588     break;
4589 
4590   case 97:
4591 
4592     { (yyval.ast) = (yyvsp[-2].ast); }
4593 
4594     break;
4595 
4596   case 98:
4597 
4598     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_ATTRIBUTE_LIST, (yyvsp[0].ast)); }
4599 
4600     break;
4601 
4602   case 99:
4603 
4604     { (yyval.ast) = zend_ast_list_add((yyvsp[-1].ast), (yyvsp[0].ast)); }
4605 
4606     break;
4607 
4608   case 100:
4609 
4610     { (yyval.ast) = (yyvsp[0].ast); }
4611 
4612     break;
4613 
4614   case 101:
4615 
4616     { (yyval.ast) = (yyvsp[0].ast); }
4617 
4618     break;
4619 
4620   case 102:
4621 
4622     { (yyval.ast) = (yyvsp[0].ast); }
4623 
4624     break;
4625 
4626   case 103:
4627 
4628     { (yyval.ast) = (yyvsp[0].ast); }
4629 
4630     break;
4631 
4632   case 104:
4633 
4634     { (yyval.ast) = (yyvsp[0].ast); }
4635 
4636     break;
4637 
4638   case 105:
4639 
4640     { (yyval.ast) = (yyvsp[0].ast); }
4641 
4642     break;
4643 
4644   case 106:
4645 
4646     { (yyval.ast) = zend_ast_with_attributes((yyvsp[0].ast), (yyvsp[-1].ast)); }
4647 
4648     break;
4649 
4650   case 107:
4651 
4652     { (yyval.ast) = zend_ast_create(ZEND_AST_HALT_COMPILER,
4653 			      zend_ast_create_zval_from_long(zend_get_scanned_file_offset()));
4654 			  zend_stop_lexing(); }
4655 
4656     break;
4657 
4658   case 108:
4659 
4660     { (yyval.ast) = zend_ast_create(ZEND_AST_NAMESPACE, (yyvsp[-1].ast), NULL);
4661 			  RESET_DOC_COMMENT(); }
4662 
4663     break;
4664 
4665   case 109:
4666 
4667     { RESET_DOC_COMMENT(); }
4668 
4669     break;
4670 
4671   case 110:
4672 
4673     { (yyval.ast) = zend_ast_create(ZEND_AST_NAMESPACE, (yyvsp[-4].ast), (yyvsp[-1].ast)); }
4674 
4675     break;
4676 
4677   case 111:
4678 
4679     { RESET_DOC_COMMENT(); }
4680 
4681     break;
4682 
4683   case 112:
4684 
4685     { (yyval.ast) = zend_ast_create(ZEND_AST_NAMESPACE, NULL, (yyvsp[-1].ast)); }
4686 
4687     break;
4688 
4689   case 113:
4690 
4691     { (yyval.ast) = (yyvsp[-1].ast); }
4692 
4693     break;
4694 
4695   case 114:
4696 
4697     { (yyval.ast) = (yyvsp[-1].ast); (yyval.ast)->attr = (yyvsp[-2].num); }
4698 
4699     break;
4700 
4701   case 115:
4702 
4703     { (yyval.ast) = (yyvsp[-1].ast); (yyval.ast)->attr = ZEND_SYMBOL_CLASS; }
4704 
4705     break;
4706 
4707   case 116:
4708 
4709     { (yyval.ast) = (yyvsp[-1].ast); (yyval.ast)->attr = (yyvsp[-2].num); }
4710 
4711     break;
4712 
4713   case 117:
4714 
4715     { (yyval.ast) = (yyvsp[-1].ast); }
4716 
4717     break;
4718 
4719   case 118:
4720 
4721     { (yyval.num) = ZEND_SYMBOL_FUNCTION; }
4722 
4723     break;
4724 
4725   case 119:
4726 
4727     { (yyval.num) = ZEND_SYMBOL_CONST; }
4728 
4729     break;
4730 
4731   case 120:
4732 
4733     { (yyval.ast) = zend_ast_create(ZEND_AST_GROUP_USE, (yyvsp[-5].ast), (yyvsp[-2].ast)); }
4734 
4735     break;
4736 
4737   case 121:
4738 
4739     { (yyval.ast) = zend_ast_create(ZEND_AST_GROUP_USE, (yyvsp[-5].ast), (yyvsp[-2].ast));}
4740 
4741     break;
4742 
4743   case 124:
4744 
4745     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
4746 
4747     break;
4748 
4749   case 125:
4750 
4751     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_USE, (yyvsp[0].ast)); }
4752 
4753     break;
4754 
4755   case 126:
4756 
4757     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
4758 
4759     break;
4760 
4761   case 127:
4762 
4763     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_USE, (yyvsp[0].ast)); }
4764 
4765     break;
4766 
4767   case 128:
4768 
4769     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
4770 
4771     break;
4772 
4773   case 129:
4774 
4775     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_USE, (yyvsp[0].ast)); }
4776 
4777     break;
4778 
4779   case 130:
4780 
4781     { (yyval.ast) = (yyvsp[0].ast); (yyval.ast)->attr = ZEND_SYMBOL_CLASS; }
4782 
4783     break;
4784 
4785   case 131:
4786 
4787     { (yyval.ast) = (yyvsp[0].ast); (yyval.ast)->attr = (yyvsp[-1].num); }
4788 
4789     break;
4790 
4791   case 132:
4792 
4793     { (yyval.ast) = zend_ast_create(ZEND_AST_USE_ELEM, (yyvsp[0].ast), NULL); }
4794 
4795     break;
4796 
4797   case 133:
4798 
4799     { (yyval.ast) = zend_ast_create(ZEND_AST_USE_ELEM, (yyvsp[-2].ast), (yyvsp[0].ast)); }
4800 
4801     break;
4802 
4803   case 134:
4804 
4805     { (yyval.ast) = zend_ast_create(ZEND_AST_USE_ELEM, (yyvsp[0].ast), NULL); }
4806 
4807     break;
4808 
4809   case 135:
4810 
4811     { (yyval.ast) = zend_ast_create(ZEND_AST_USE_ELEM, (yyvsp[-2].ast), (yyvsp[0].ast)); }
4812 
4813     break;
4814 
4815   case 136:
4816 
4817     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
4818 
4819     break;
4820 
4821   case 137:
4822 
4823     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_CONST_DECL, (yyvsp[0].ast)); }
4824 
4825     break;
4826 
4827   case 138:
4828 
4829     { (yyval.ast) = zend_ast_list_add((yyvsp[-1].ast), (yyvsp[0].ast)); }
4830 
4831     break;
4832 
4833   case 139:
4834 
4835     { (yyval.ast) = zend_ast_create_list(0, ZEND_AST_STMT_LIST); }
4836 
4837     break;
4838 
4839   case 140:
4840 
4841     { (yyval.ast) = (yyvsp[0].ast); }
4842 
4843     break;
4844 
4845   case 141:
4846 
4847     { (yyval.ast) = (yyvsp[0].ast); }
4848 
4849     break;
4850 
4851   case 142:
4852 
4853     { (yyval.ast) = zend_ast_with_attributes((yyvsp[0].ast), (yyvsp[-1].ast)); }
4854 
4855     break;
4856 
4857   case 143:
4858 
4859     { (yyval.ast) = NULL; zend_throw_exception(zend_ce_compile_error,
4860 			      "__HALT_COMPILER() can only be used from the outermost scope", 0); YYERROR; }
4861 
4862     break;
4863 
4864   case 144:
4865 
4866     { (yyval.ast) = (yyvsp[-1].ast); }
4867 
4868     break;
4869 
4870   case 145:
4871 
4872     { (yyval.ast) = (yyvsp[0].ast); }
4873 
4874     break;
4875 
4876   case 146:
4877 
4878     { (yyval.ast) = (yyvsp[0].ast); }
4879 
4880     break;
4881 
4882   case 147:
4883 
4884     { (yyval.ast) = zend_ast_create(ZEND_AST_WHILE, (yyvsp[-2].ast), (yyvsp[0].ast)); }
4885 
4886     break;
4887 
4888   case 148:
4889 
4890     { (yyval.ast) = zend_ast_create(ZEND_AST_DO_WHILE, (yyvsp[-5].ast), (yyvsp[-2].ast)); }
4891 
4892     break;
4893 
4894   case 149:
4895 
4896     { (yyval.ast) = zend_ast_create(ZEND_AST_FOR, (yyvsp[-6].ast), (yyvsp[-4].ast), (yyvsp[-2].ast), (yyvsp[0].ast)); }
4897 
4898     break;
4899 
4900   case 150:
4901 
4902     { (yyval.ast) = zend_ast_create(ZEND_AST_SWITCH, (yyvsp[-2].ast), (yyvsp[0].ast)); }
4903 
4904     break;
4905 
4906   case 151:
4907 
4908     { (yyval.ast) = zend_ast_create(ZEND_AST_BREAK, (yyvsp[-1].ast)); }
4909 
4910     break;
4911 
4912   case 152:
4913 
4914     { (yyval.ast) = zend_ast_create(ZEND_AST_CONTINUE, (yyvsp[-1].ast)); }
4915 
4916     break;
4917 
4918   case 153:
4919 
4920     { (yyval.ast) = zend_ast_create(ZEND_AST_RETURN, (yyvsp[-1].ast)); }
4921 
4922     break;
4923 
4924   case 154:
4925 
4926     { (yyval.ast) = (yyvsp[-1].ast); }
4927 
4928     break;
4929 
4930   case 155:
4931 
4932     { (yyval.ast) = (yyvsp[-1].ast); }
4933 
4934     break;
4935 
4936   case 156:
4937 
4938     { (yyval.ast) = (yyvsp[-1].ast); }
4939 
4940     break;
4941 
4942   case 157:
4943 
4944     { (yyval.ast) = zend_ast_create(ZEND_AST_ECHO, (yyvsp[0].ast)); }
4945 
4946     break;
4947 
4948   case 158:
4949 
4950     { (yyval.ast) = (yyvsp[-1].ast); }
4951 
4952     break;
4953 
4954   case 159:
4955 
4956     { (yyval.ast) = (yyvsp[-3].ast); }
4957 
4958     break;
4959 
4960   case 160:
4961 
4962     { (yyval.ast) = zend_ast_create(ZEND_AST_FOREACH, (yyvsp[-4].ast), (yyvsp[-2].ast), NULL, (yyvsp[0].ast)); }
4963 
4964     break;
4965 
4966   case 161:
4967 
4968     { (yyval.ast) = zend_ast_create(ZEND_AST_FOREACH, (yyvsp[-6].ast), (yyvsp[-2].ast), (yyvsp[-4].ast), (yyvsp[0].ast)); }
4969 
4970     break;
4971 
4972   case 162:
4973 
4974     { if (!zend_handle_encoding_declaration((yyvsp[-1].ast))) { YYERROR; } }
4975 
4976     break;
4977 
4978   case 163:
4979 
4980     { (yyval.ast) = zend_ast_create(ZEND_AST_DECLARE, (yyvsp[-3].ast), (yyvsp[0].ast)); }
4981 
4982     break;
4983 
4984   case 164:
4985 
4986     { (yyval.ast) = NULL; }
4987 
4988     break;
4989 
4990   case 165:
4991 
4992     { (yyval.ast) = zend_ast_create(ZEND_AST_TRY, (yyvsp[-3].ast), (yyvsp[-1].ast), (yyvsp[0].ast)); }
4993 
4994     break;
4995 
4996   case 166:
4997 
4998     { (yyval.ast) = zend_ast_create(ZEND_AST_GOTO, (yyvsp[-1].ast)); }
4999 
5000     break;
5001 
5002   case 167:
5003 
5004     { (yyval.ast) = zend_ast_create(ZEND_AST_LABEL, (yyvsp[-1].ast)); }
5005 
5006     break;
5007 
5008   case 168:
5009 
5010     { (yyval.ast) = zend_ast_create_list(0, ZEND_AST_CATCH_LIST); }
5011 
5012     break;
5013 
5014   case 169:
5015 
5016     { (yyval.ast) = zend_ast_list_add((yyvsp[-8].ast), zend_ast_create(ZEND_AST_CATCH, (yyvsp[-5].ast), (yyvsp[-4].ast), (yyvsp[-1].ast))); }
5017 
5018     break;
5019 
5020   case 170:
5021 
5022     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_NAME_LIST, (yyvsp[0].ast)); }
5023 
5024     break;
5025 
5026   case 171:
5027 
5028     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5029 
5030     break;
5031 
5032   case 172:
5033 
5034     { (yyval.ast) = NULL; }
5035 
5036     break;
5037 
5038   case 173:
5039 
5040     { (yyval.ast) = (yyvsp[0].ast); }
5041 
5042     break;
5043 
5044   case 174:
5045 
5046     { (yyval.ast) = NULL; }
5047 
5048     break;
5049 
5050   case 175:
5051 
5052     { (yyval.ast) = (yyvsp[-1].ast); }
5053 
5054     break;
5055 
5056   case 176:
5057 
5058     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_STMT_LIST, (yyvsp[0].ast)); }
5059 
5060     break;
5061 
5062   case 177:
5063 
5064     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5065 
5066     break;
5067 
5068   case 178:
5069 
5070     { (yyval.ast) = zend_ast_create(ZEND_AST_UNSET, (yyvsp[0].ast)); }
5071 
5072     break;
5073 
5074   case 179:
5075 
5076     { (yyval.ast) = zend_ast_create_decl(ZEND_AST_FUNC_DECL, (yyvsp[-11].num) | (yyvsp[0].num), (yyvsp[-12].num), (yyvsp[-9].str),
5077 		      zend_ast_get_str((yyvsp[-10].ast)), (yyvsp[-7].ast), NULL, (yyvsp[-2].ast), (yyvsp[-5].ast), NULL); CG(extra_fn_flags) = (yyvsp[-4].num); }
5078 
5079     break;
5080 
5081   case 180:
5082 
5083     { (yyval.num) = 0; }
5084 
5085     break;
5086 
5087   case 181:
5088 
5089     { (yyval.num) = ZEND_PARAM_REF; }
5090 
5091     break;
5092 
5093   case 182:
5094 
5095     { (yyval.num) = 0; }
5096 
5097     break;
5098 
5099   case 183:
5100 
5101     { (yyval.num) = ZEND_PARAM_VARIADIC; }
5102 
5103     break;
5104 
5105   case 184:
5106 
5107     { (yyval.num) = CG(zend_lineno); }
5108 
5109     break;
5110 
5111   case 185:
5112 
5113     { (yyval.ast) = zend_ast_create_decl(ZEND_AST_CLASS, (yyvsp[-9].num), (yyvsp[-7].num), (yyvsp[-3].str), zend_ast_get_str((yyvsp[-6].ast)), (yyvsp[-5].ast), (yyvsp[-4].ast), (yyvsp[-1].ast), NULL, NULL); }
5114 
5115     break;
5116 
5117   case 186:
5118 
5119     { (yyval.num) = CG(zend_lineno); }
5120 
5121     break;
5122 
5123   case 187:
5124 
5125     { (yyval.ast) = zend_ast_create_decl(ZEND_AST_CLASS, 0, (yyvsp[-7].num), (yyvsp[-3].str), zend_ast_get_str((yyvsp[-6].ast)), (yyvsp[-5].ast), (yyvsp[-4].ast), (yyvsp[-1].ast), NULL, NULL); }
5126 
5127     break;
5128 
5129   case 188:
5130 
5131     { (yyval.num) = (yyvsp[0].num); }
5132 
5133     break;
5134 
5135   case 189:
5136 
5137     { (yyval.num) = zend_add_class_modifier((yyvsp[-1].num), (yyvsp[0].num)); if (!(yyval.num)) { YYERROR; } }
5138 
5139     break;
5140 
5141   case 190:
5142 
5143     { (yyval.num) = ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; }
5144 
5145     break;
5146 
5147   case 191:
5148 
5149     { (yyval.num) = ZEND_ACC_FINAL; }
5150 
5151     break;
5152 
5153   case 192:
5154 
5155     { (yyval.num) = CG(zend_lineno); }
5156 
5157     break;
5158 
5159   case 193:
5160 
5161     { (yyval.ast) = zend_ast_create_decl(ZEND_AST_CLASS, ZEND_ACC_TRAIT, (yyvsp[-5].num), (yyvsp[-3].str), zend_ast_get_str((yyvsp[-4].ast)), NULL, NULL, (yyvsp[-1].ast), NULL, NULL); }
5162 
5163     break;
5164 
5165   case 194:
5166 
5167     { (yyval.num) = CG(zend_lineno); }
5168 
5169     break;
5170 
5171   case 195:
5172 
5173     { (yyval.ast) = zend_ast_create_decl(ZEND_AST_CLASS, ZEND_ACC_INTERFACE, (yyvsp[-6].num), (yyvsp[-3].str), zend_ast_get_str((yyvsp[-5].ast)), NULL, (yyvsp[-4].ast), (yyvsp[-1].ast), NULL, NULL); }
5174 
5175     break;
5176 
5177   case 196:
5178 
5179     { (yyval.ast) = NULL; }
5180 
5181     break;
5182 
5183   case 197:
5184 
5185     { (yyval.ast) = (yyvsp[0].ast); }
5186 
5187     break;
5188 
5189   case 198:
5190 
5191     { (yyval.ast) = NULL; }
5192 
5193     break;
5194 
5195   case 199:
5196 
5197     { (yyval.ast) = (yyvsp[0].ast); }
5198 
5199     break;
5200 
5201   case 200:
5202 
5203     { (yyval.ast) = NULL; }
5204 
5205     break;
5206 
5207   case 201:
5208 
5209     { (yyval.ast) = (yyvsp[0].ast); }
5210 
5211     break;
5212 
5213   case 202:
5214 
5215     { (yyval.ast) = (yyvsp[0].ast); }
5216 
5217     break;
5218 
5219   case 203:
5220 
5221     { (yyval.ast) = zend_ast_create(ZEND_AST_REF, (yyvsp[0].ast)); }
5222 
5223     break;
5224 
5225   case 204:
5226 
5227     { (yyval.ast) = (yyvsp[-1].ast); (yyval.ast)->attr = ZEND_ARRAY_SYNTAX_LIST; }
5228 
5229     break;
5230 
5231   case 205:
5232 
5233     { (yyval.ast) = (yyvsp[-1].ast); (yyval.ast)->attr = ZEND_ARRAY_SYNTAX_SHORT; }
5234 
5235     break;
5236 
5237   case 206:
5238 
5239     { (yyval.ast) = (yyvsp[0].ast); }
5240 
5241     break;
5242 
5243   case 207:
5244 
5245     { (yyval.ast) = (yyvsp[-2].ast); }
5246 
5247     break;
5248 
5249   case 208:
5250 
5251     { (yyval.ast) = (yyvsp[0].ast); }
5252 
5253     break;
5254 
5255   case 209:
5256 
5257     { (yyval.ast) = (yyvsp[-2].ast); }
5258 
5259     break;
5260 
5261   case 210:
5262 
5263     { (yyval.ast) = (yyvsp[0].ast); }
5264 
5265     break;
5266 
5267   case 211:
5268 
5269     { (yyval.ast) = (yyvsp[-2].ast); }
5270 
5271     break;
5272 
5273   case 212:
5274 
5275     { (yyval.ast) = (yyvsp[-1].ast); }
5276 
5277     break;
5278 
5279   case 213:
5280 
5281     { (yyval.ast) = (yyvsp[-1].ast); }
5282 
5283     break;
5284 
5285   case 214:
5286 
5287     { (yyval.ast) = (yyvsp[-2].ast); }
5288 
5289     break;
5290 
5291   case 215:
5292 
5293     { (yyval.ast) = (yyvsp[-2].ast); }
5294 
5295     break;
5296 
5297   case 216:
5298 
5299     { (yyval.ast) = zend_ast_create_list(0, ZEND_AST_SWITCH_LIST); }
5300 
5301     break;
5302 
5303   case 217:
5304 
5305     { (yyval.ast) = zend_ast_list_add((yyvsp[-4].ast), zend_ast_create(ZEND_AST_SWITCH_CASE, (yyvsp[-2].ast), (yyvsp[0].ast))); }
5306 
5307     break;
5308 
5309   case 218:
5310 
5311     { (yyval.ast) = zend_ast_list_add((yyvsp[-3].ast), zend_ast_create(ZEND_AST_SWITCH_CASE, NULL, (yyvsp[0].ast))); }
5312 
5313     break;
5314 
5315   case 221:
5316 
5317     { (yyval.ast) = zend_ast_create(ZEND_AST_MATCH, (yyvsp[-4].ast), (yyvsp[-1].ast)); }
5318 
5319     break;
5320 
5321   case 222:
5322 
5323     { (yyval.ast) = zend_ast_create_list(0, ZEND_AST_MATCH_ARM_LIST); }
5324 
5325     break;
5326 
5327   case 223:
5328 
5329     { (yyval.ast) = (yyvsp[-1].ast); }
5330 
5331     break;
5332 
5333   case 224:
5334 
5335     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_MATCH_ARM_LIST, (yyvsp[0].ast)); }
5336 
5337     break;
5338 
5339   case 225:
5340 
5341     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5342 
5343     break;
5344 
5345   case 226:
5346 
5347     { (yyval.ast) = zend_ast_create(ZEND_AST_MATCH_ARM, (yyvsp[-3].ast), (yyvsp[0].ast)); }
5348 
5349     break;
5350 
5351   case 227:
5352 
5353     { (yyval.ast) = zend_ast_create(ZEND_AST_MATCH_ARM, NULL, (yyvsp[0].ast)); }
5354 
5355     break;
5356 
5357   case 228:
5358 
5359     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_EXPR_LIST, (yyvsp[0].ast)); }
5360 
5361     break;
5362 
5363   case 229:
5364 
5365     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5366 
5367     break;
5368 
5369   case 230:
5370 
5371     { (yyval.ast) = (yyvsp[0].ast); }
5372 
5373     break;
5374 
5375   case 231:
5376 
5377     { (yyval.ast) = (yyvsp[-2].ast); }
5378 
5379     break;
5380 
5381   case 232:
5382 
5383     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_IF,
5384 			      zend_ast_create(ZEND_AST_IF_ELEM, (yyvsp[-2].ast), (yyvsp[0].ast))); }
5385 
5386     break;
5387 
5388   case 233:
5389 
5390     { (yyval.ast) = zend_ast_list_add((yyvsp[-5].ast),
5391 			      zend_ast_create(ZEND_AST_IF_ELEM, (yyvsp[-2].ast), (yyvsp[0].ast))); }
5392 
5393     break;
5394 
5395   case 234:
5396 
5397     { (yyval.ast) = (yyvsp[0].ast); }
5398 
5399     break;
5400 
5401   case 235:
5402 
5403     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), zend_ast_create(ZEND_AST_IF_ELEM, NULL, (yyvsp[0].ast))); }
5404 
5405     break;
5406 
5407   case 236:
5408 
5409     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_IF,
5410 			      zend_ast_create(ZEND_AST_IF_ELEM, (yyvsp[-3].ast), (yyvsp[0].ast))); }
5411 
5412     break;
5413 
5414   case 237:
5415 
5416     { (yyval.ast) = zend_ast_list_add((yyvsp[-6].ast),
5417 			      zend_ast_create(ZEND_AST_IF_ELEM, (yyvsp[-3].ast), (yyvsp[0].ast))); }
5418 
5419     break;
5420 
5421   case 238:
5422 
5423     { (yyval.ast) = (yyvsp[-2].ast); }
5424 
5425     break;
5426 
5427   case 239:
5428 
5429     { (yyval.ast) = zend_ast_list_add((yyvsp[-5].ast),
5430 			      zend_ast_create(ZEND_AST_IF_ELEM, NULL, (yyvsp[-2].ast))); }
5431 
5432     break;
5433 
5434   case 240:
5435 
5436     { (yyval.ast) = (yyvsp[-1].ast); }
5437 
5438     break;
5439 
5440   case 241:
5441 
5442     { (yyval.ast) = zend_ast_create_list(0, ZEND_AST_PARAM_LIST); }
5443 
5444     break;
5445 
5446   case 242:
5447 
5448     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_PARAM_LIST, (yyvsp[0].ast)); }
5449 
5450     break;
5451 
5452   case 243:
5453 
5454     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5455 
5456     break;
5457 
5458   case 244:
5459 
5460     { (yyval.ast) = zend_ast_with_attributes((yyvsp[0].ast), (yyvsp[-1].ast)); }
5461 
5462     break;
5463 
5464   case 245:
5465 
5466     { (yyval.ast) = (yyvsp[0].ast); }
5467 
5468     break;
5469 
5470   case 246:
5471 
5472     { (yyval.num) = 0; }
5473 
5474     break;
5475 
5476   case 247:
5477 
5478     { (yyval.num) = ZEND_ACC_PUBLIC; }
5479 
5480     break;
5481 
5482   case 248:
5483 
5484     { (yyval.num) = ZEND_ACC_PROTECTED; }
5485 
5486     break;
5487 
5488   case 249:
5489 
5490     { (yyval.num) = ZEND_ACC_PRIVATE; }
5491 
5492     break;
5493 
5494   case 250:
5495 
5496     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_PARAM, (yyvsp[-5].num) | (yyvsp[-3].num) | (yyvsp[-2].num), (yyvsp[-4].ast), (yyvsp[-1].ast), NULL,
5497 					NULL, (yyvsp[0].str) ? zend_ast_create_zval_from_str((yyvsp[0].str)) : NULL); }
5498 
5499     break;
5500 
5501   case 251:
5502 
5503     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_PARAM, (yyvsp[-7].num) | (yyvsp[-5].num) | (yyvsp[-4].num), (yyvsp[-6].ast), (yyvsp[-3].ast), (yyvsp[0].ast),
5504 					NULL, (yyvsp[-2].str) ? zend_ast_create_zval_from_str((yyvsp[-2].str)) : NULL); }
5505 
5506     break;
5507 
5508   case 252:
5509 
5510     { (yyval.ast) = NULL; }
5511 
5512     break;
5513 
5514   case 253:
5515 
5516     { (yyval.ast) = (yyvsp[0].ast); }
5517 
5518     break;
5519 
5520   case 254:
5521 
5522     { (yyval.ast) = (yyvsp[0].ast); }
5523 
5524     break;
5525 
5526   case 255:
5527 
5528     { (yyval.ast) = (yyvsp[0].ast); (yyval.ast)->attr |= ZEND_TYPE_NULLABLE; }
5529 
5530     break;
5531 
5532   case 256:
5533 
5534     { (yyval.ast) = (yyvsp[0].ast); }
5535 
5536     break;
5537 
5538   case 257:
5539 
5540     { (yyval.ast) = (yyvsp[0].ast); }
5541 
5542     break;
5543 
5544   case 258:
5545 
5546     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_TYPE, IS_STATIC); }
5547 
5548     break;
5549 
5550   case 259:
5551 
5552     { (yyval.ast) = zend_ast_create_list(2, ZEND_AST_TYPE_UNION, (yyvsp[-2].ast), (yyvsp[0].ast)); }
5553 
5554     break;
5555 
5556   case 260:
5557 
5558     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5559 
5560     break;
5561 
5562   case 261:
5563 
5564     { (yyval.ast) = (yyvsp[0].ast); }
5565 
5566     break;
5567 
5568   case 262:
5569 
5570     { (yyval.ast) = (yyvsp[0].ast); (yyval.ast)->attr |= ZEND_TYPE_NULLABLE; }
5571 
5572     break;
5573 
5574   case 263:
5575 
5576     { (yyval.ast) = (yyvsp[0].ast); }
5577 
5578     break;
5579 
5580   case 264:
5581 
5582     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_TYPE, IS_ARRAY); }
5583 
5584     break;
5585 
5586   case 265:
5587 
5588     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_TYPE, IS_CALLABLE); }
5589 
5590     break;
5591 
5592   case 266:
5593 
5594     { (yyval.ast) = (yyvsp[0].ast); }
5595 
5596     break;
5597 
5598   case 267:
5599 
5600     { (yyval.ast) = zend_ast_create_list(2, ZEND_AST_TYPE_UNION, (yyvsp[-2].ast), (yyvsp[0].ast)); }
5601 
5602     break;
5603 
5604   case 268:
5605 
5606     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5607 
5608     break;
5609 
5610   case 269:
5611 
5612     { (yyval.ast) = NULL; }
5613 
5614     break;
5615 
5616   case 270:
5617 
5618     { (yyval.ast) = (yyvsp[0].ast); }
5619 
5620     break;
5621 
5622   case 271:
5623 
5624     { (yyval.ast) = zend_ast_create_list(0, ZEND_AST_ARG_LIST); }
5625 
5626     break;
5627 
5628   case 272:
5629 
5630     { (yyval.ast) = (yyvsp[-2].ast); }
5631 
5632     break;
5633 
5634   case 273:
5635 
5636     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_ARG_LIST, (yyvsp[0].ast)); }
5637 
5638     break;
5639 
5640   case 274:
5641 
5642     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5643 
5644     break;
5645 
5646   case 275:
5647 
5648     { (yyval.ast) = (yyvsp[0].ast); }
5649 
5650     break;
5651 
5652   case 276:
5653 
5654     { (yyval.ast) = zend_ast_create(ZEND_AST_NAMED_ARG, (yyvsp[-2].ast), (yyvsp[0].ast)); }
5655 
5656     break;
5657 
5658   case 277:
5659 
5660     { (yyval.ast) = zend_ast_create(ZEND_AST_UNPACK, (yyvsp[0].ast)); }
5661 
5662     break;
5663 
5664   case 278:
5665 
5666     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5667 
5668     break;
5669 
5670   case 279:
5671 
5672     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_STMT_LIST, (yyvsp[0].ast)); }
5673 
5674     break;
5675 
5676   case 280:
5677 
5678     { (yyval.ast) = zend_ast_create(ZEND_AST_GLOBAL, zend_ast_create(ZEND_AST_VAR, (yyvsp[0].ast))); }
5679 
5680     break;
5681 
5682   case 281:
5683 
5684     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5685 
5686     break;
5687 
5688   case 282:
5689 
5690     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_STMT_LIST, (yyvsp[0].ast)); }
5691 
5692     break;
5693 
5694   case 283:
5695 
5696     { (yyval.ast) = zend_ast_create(ZEND_AST_STATIC, (yyvsp[0].ast), NULL); }
5697 
5698     break;
5699 
5700   case 284:
5701 
5702     { (yyval.ast) = zend_ast_create(ZEND_AST_STATIC, (yyvsp[-2].ast), (yyvsp[0].ast)); }
5703 
5704     break;
5705 
5706   case 285:
5707 
5708     { (yyval.ast) = zend_ast_list_add((yyvsp[-1].ast), (yyvsp[0].ast)); }
5709 
5710     break;
5711 
5712   case 286:
5713 
5714     { (yyval.ast) = zend_ast_create_list(0, ZEND_AST_STMT_LIST); }
5715 
5716     break;
5717 
5718   case 287:
5719 
5720     { (yyval.ast) = zend_ast_create(ZEND_AST_PROP_GROUP, (yyvsp[-2].ast), (yyvsp[-1].ast), NULL);
5721 			  (yyval.ast)->attr = (yyvsp[-3].num); }
5722 
5723     break;
5724 
5725   case 288:
5726 
5727     { (yyval.ast) = zend_ast_create(ZEND_AST_CLASS_CONST_GROUP, (yyvsp[-1].ast), NULL);
5728 			  (yyval.ast)->attr = (yyvsp[-3].num); }
5729 
5730     break;
5731 
5732   case 289:
5733 
5734     { (yyval.ast) = zend_ast_create_decl(ZEND_AST_METHOD, (yyvsp[-9].num) | (yyvsp[-11].num) | (yyvsp[0].num), (yyvsp[-10].num), (yyvsp[-7].str),
5735 				  zend_ast_get_str((yyvsp[-8].ast)), (yyvsp[-5].ast), NULL, (yyvsp[-1].ast), (yyvsp[-3].ast), NULL); CG(extra_fn_flags) = (yyvsp[-2].num); }
5736 
5737     break;
5738 
5739   case 290:
5740 
5741     { (yyval.ast) = (yyvsp[0].ast); }
5742 
5743     break;
5744 
5745   case 291:
5746 
5747     { (yyval.ast) = zend_ast_with_attributes((yyvsp[0].ast), (yyvsp[-1].ast)); }
5748 
5749     break;
5750 
5751   case 292:
5752 
5753     { (yyval.ast) = zend_ast_create(ZEND_AST_USE_TRAIT, (yyvsp[-1].ast), (yyvsp[0].ast)); }
5754 
5755     break;
5756 
5757   case 293:
5758 
5759     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_NAME_LIST, (yyvsp[0].ast)); }
5760 
5761     break;
5762 
5763   case 294:
5764 
5765     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5766 
5767     break;
5768 
5769   case 295:
5770 
5771     { (yyval.ast) = NULL; }
5772 
5773     break;
5774 
5775   case 296:
5776 
5777     { (yyval.ast) = NULL; }
5778 
5779     break;
5780 
5781   case 297:
5782 
5783     { (yyval.ast) = (yyvsp[-1].ast); }
5784 
5785     break;
5786 
5787   case 298:
5788 
5789     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_TRAIT_ADAPTATIONS, (yyvsp[0].ast)); }
5790 
5791     break;
5792 
5793   case 299:
5794 
5795     { (yyval.ast) = zend_ast_list_add((yyvsp[-1].ast), (yyvsp[0].ast)); }
5796 
5797     break;
5798 
5799   case 300:
5800 
5801     { (yyval.ast) = (yyvsp[-1].ast); }
5802 
5803     break;
5804 
5805   case 301:
5806 
5807     { (yyval.ast) = (yyvsp[-1].ast); }
5808 
5809     break;
5810 
5811   case 302:
5812 
5813     { (yyval.ast) = zend_ast_create(ZEND_AST_TRAIT_PRECEDENCE, (yyvsp[-2].ast), (yyvsp[0].ast)); }
5814 
5815     break;
5816 
5817   case 303:
5818 
5819     { (yyval.ast) = zend_ast_create(ZEND_AST_TRAIT_ALIAS, (yyvsp[-2].ast), (yyvsp[0].ast)); }
5820 
5821     break;
5822 
5823   case 304:
5824 
5825     { zval zv;
5826 			  if (zend_lex_tstring(&zv, (yyvsp[0].ident)) == FAILURE) { YYABORT; }
5827 			  (yyval.ast) = zend_ast_create(ZEND_AST_TRAIT_ALIAS, (yyvsp[-2].ast), zend_ast_create_zval(&zv)); }
5828 
5829     break;
5830 
5831   case 305:
5832 
5833     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_TRAIT_ALIAS, (yyvsp[-1].num), (yyvsp[-3].ast), (yyvsp[0].ast)); }
5834 
5835     break;
5836 
5837   case 306:
5838 
5839     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_TRAIT_ALIAS, (yyvsp[0].num), (yyvsp[-2].ast), NULL); }
5840 
5841     break;
5842 
5843   case 307:
5844 
5845     { (yyval.ast) = zend_ast_create(ZEND_AST_METHOD_REFERENCE, NULL, (yyvsp[0].ast)); }
5846 
5847     break;
5848 
5849   case 308:
5850 
5851     { (yyval.ast) = (yyvsp[0].ast); }
5852 
5853     break;
5854 
5855   case 309:
5856 
5857     { (yyval.ast) = zend_ast_create(ZEND_AST_METHOD_REFERENCE, (yyvsp[-2].ast), (yyvsp[0].ast)); }
5858 
5859     break;
5860 
5861   case 310:
5862 
5863     { (yyval.ast) = NULL; }
5864 
5865     break;
5866 
5867   case 311:
5868 
5869     { (yyval.ast) = (yyvsp[-1].ast); }
5870 
5871     break;
5872 
5873   case 312:
5874 
5875     { (yyval.num) = (yyvsp[0].num); }
5876 
5877     break;
5878 
5879   case 313:
5880 
5881     { (yyval.num) = ZEND_ACC_PUBLIC; }
5882 
5883     break;
5884 
5885   case 314:
5886 
5887     { (yyval.num) = ZEND_ACC_PUBLIC; }
5888 
5889     break;
5890 
5891   case 315:
5892 
5893     { (yyval.num) = (yyvsp[0].num); if (!((yyval.num) & ZEND_ACC_PPP_MASK)) { (yyval.num) |= ZEND_ACC_PUBLIC; } }
5894 
5895     break;
5896 
5897   case 316:
5898 
5899     { (yyval.num) = (yyvsp[0].num); }
5900 
5901     break;
5902 
5903   case 317:
5904 
5905     { (yyval.num) = zend_add_member_modifier((yyvsp[-1].num), (yyvsp[0].num)); if (!(yyval.num)) { YYERROR; } }
5906 
5907     break;
5908 
5909   case 318:
5910 
5911     { (yyval.num) = ZEND_ACC_PUBLIC; }
5912 
5913     break;
5914 
5915   case 319:
5916 
5917     { (yyval.num) = ZEND_ACC_PROTECTED; }
5918 
5919     break;
5920 
5921   case 320:
5922 
5923     { (yyval.num) = ZEND_ACC_PRIVATE; }
5924 
5925     break;
5926 
5927   case 321:
5928 
5929     { (yyval.num) = ZEND_ACC_STATIC; }
5930 
5931     break;
5932 
5933   case 322:
5934 
5935     { (yyval.num) = ZEND_ACC_ABSTRACT; }
5936 
5937     break;
5938 
5939   case 323:
5940 
5941     { (yyval.num) = ZEND_ACC_FINAL; }
5942 
5943     break;
5944 
5945   case 324:
5946 
5947     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5948 
5949     break;
5950 
5951   case 325:
5952 
5953     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_PROP_DECL, (yyvsp[0].ast)); }
5954 
5955     break;
5956 
5957   case 326:
5958 
5959     { (yyval.ast) = zend_ast_create(ZEND_AST_PROP_ELEM, (yyvsp[-1].ast), NULL, ((yyvsp[0].str) ? zend_ast_create_zval_from_str((yyvsp[0].str)) : NULL)); }
5960 
5961     break;
5962 
5963   case 327:
5964 
5965     { (yyval.ast) = zend_ast_create(ZEND_AST_PROP_ELEM, (yyvsp[-3].ast), (yyvsp[-1].ast), ((yyvsp[0].str) ? zend_ast_create_zval_from_str((yyvsp[0].str)) : NULL)); }
5966 
5967     break;
5968 
5969   case 328:
5970 
5971     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5972 
5973     break;
5974 
5975   case 329:
5976 
5977     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_CLASS_CONST_DECL, (yyvsp[0].ast)); }
5978 
5979     break;
5980 
5981   case 330:
5982 
5983     { (yyval.ast) = zend_ast_create(ZEND_AST_CONST_ELEM, (yyvsp[-3].ast), (yyvsp[-1].ast), ((yyvsp[0].str) ? zend_ast_create_zval_from_str((yyvsp[0].str)) : NULL)); }
5984 
5985     break;
5986 
5987   case 331:
5988 
5989     { (yyval.ast) = zend_ast_create(ZEND_AST_CONST_ELEM, (yyvsp[-3].ast), (yyvsp[-1].ast), ((yyvsp[0].str) ? zend_ast_create_zval_from_str((yyvsp[0].str)) : NULL)); }
5990 
5991     break;
5992 
5993   case 332:
5994 
5995     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
5996 
5997     break;
5998 
5999   case 333:
6000 
6001     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_STMT_LIST, (yyvsp[0].ast)); }
6002 
6003     break;
6004 
6005   case 334:
6006 
6007     { (yyval.ast) = zend_ast_create(ZEND_AST_ECHO, (yyvsp[0].ast)); }
6008 
6009     break;
6010 
6011   case 335:
6012 
6013     { (yyval.ast) = NULL; }
6014 
6015     break;
6016 
6017   case 336:
6018 
6019     { (yyval.ast) = (yyvsp[0].ast); }
6020 
6021     break;
6022 
6023   case 337:
6024 
6025     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
6026 
6027     break;
6028 
6029   case 338:
6030 
6031     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_EXPR_LIST, (yyvsp[0].ast)); }
6032 
6033     break;
6034 
6035   case 339:
6036 
6037     { (yyval.num) = CG(zend_lineno); }
6038 
6039     break;
6040 
6041   case 340:
6042 
6043     {
6044 			zend_ast *decl = zend_ast_create_decl(
6045 				ZEND_AST_CLASS, ZEND_ACC_ANON_CLASS, (yyvsp[-7].num), (yyvsp[-3].str), NULL,
6046 				(yyvsp[-5].ast), (yyvsp[-4].ast), (yyvsp[-1].ast), NULL, NULL);
6047 			(yyval.ast) = zend_ast_create(ZEND_AST_NEW, decl, (yyvsp[-6].ast));
6048 		}
6049 
6050     break;
6051 
6052   case 341:
6053 
6054     { (yyval.ast) = zend_ast_create(ZEND_AST_NEW, (yyvsp[-1].ast), (yyvsp[0].ast)); }
6055 
6056     break;
6057 
6058   case 342:
6059 
6060     { (yyval.ast) = (yyvsp[0].ast); }
6061 
6062     break;
6063 
6064   case 343:
6065 
6066     { zend_ast_with_attributes((yyvsp[0].ast)->child[0], (yyvsp[-1].ast)); (yyval.ast) = (yyvsp[0].ast); }
6067 
6068     break;
6069 
6070   case 344:
6071 
6072     { (yyval.ast) = (yyvsp[0].ast); }
6073 
6074     break;
6075 
6076   case 345:
6077 
6078     { (yyvsp[-3].ast)->attr = ZEND_ARRAY_SYNTAX_LIST; (yyval.ast) = zend_ast_create(ZEND_AST_ASSIGN, (yyvsp[-3].ast), (yyvsp[0].ast)); }
6079 
6080     break;
6081 
6082   case 346:
6083 
6084     { (yyvsp[-3].ast)->attr = ZEND_ARRAY_SYNTAX_SHORT; (yyval.ast) = zend_ast_create(ZEND_AST_ASSIGN, (yyvsp[-3].ast), (yyvsp[0].ast)); }
6085 
6086     break;
6087 
6088   case 347:
6089 
6090     { (yyval.ast) = zend_ast_create(ZEND_AST_ASSIGN, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6091 
6092     break;
6093 
6094   case 348:
6095 
6096     { (yyval.ast) = zend_ast_create(ZEND_AST_ASSIGN_REF, (yyvsp[-3].ast), (yyvsp[0].ast)); }
6097 
6098     break;
6099 
6100   case 349:
6101 
6102     { (yyval.ast) = zend_ast_create(ZEND_AST_CLONE, (yyvsp[0].ast)); }
6103 
6104     break;
6105 
6106   case 350:
6107 
6108     { (yyval.ast) = zend_ast_create_assign_op(ZEND_ADD, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6109 
6110     break;
6111 
6112   case 351:
6113 
6114     { (yyval.ast) = zend_ast_create_assign_op(ZEND_SUB, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6115 
6116     break;
6117 
6118   case 352:
6119 
6120     { (yyval.ast) = zend_ast_create_assign_op(ZEND_MUL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6121 
6122     break;
6123 
6124   case 353:
6125 
6126     { (yyval.ast) = zend_ast_create_assign_op(ZEND_POW, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6127 
6128     break;
6129 
6130   case 354:
6131 
6132     { (yyval.ast) = zend_ast_create_assign_op(ZEND_DIV, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6133 
6134     break;
6135 
6136   case 355:
6137 
6138     { (yyval.ast) = zend_ast_create_assign_op(ZEND_CONCAT, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6139 
6140     break;
6141 
6142   case 356:
6143 
6144     { (yyval.ast) = zend_ast_create_assign_op(ZEND_MOD, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6145 
6146     break;
6147 
6148   case 357:
6149 
6150     { (yyval.ast) = zend_ast_create_assign_op(ZEND_BW_AND, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6151 
6152     break;
6153 
6154   case 358:
6155 
6156     { (yyval.ast) = zend_ast_create_assign_op(ZEND_BW_OR, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6157 
6158     break;
6159 
6160   case 359:
6161 
6162     { (yyval.ast) = zend_ast_create_assign_op(ZEND_BW_XOR, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6163 
6164     break;
6165 
6166   case 360:
6167 
6168     { (yyval.ast) = zend_ast_create_assign_op(ZEND_SL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6169 
6170     break;
6171 
6172   case 361:
6173 
6174     { (yyval.ast) = zend_ast_create_assign_op(ZEND_SR, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6175 
6176     break;
6177 
6178   case 362:
6179 
6180     { (yyval.ast) = zend_ast_create(ZEND_AST_ASSIGN_COALESCE, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6181 
6182     break;
6183 
6184   case 363:
6185 
6186     { (yyval.ast) = zend_ast_create(ZEND_AST_POST_INC, (yyvsp[-1].ast)); }
6187 
6188     break;
6189 
6190   case 364:
6191 
6192     { (yyval.ast) = zend_ast_create(ZEND_AST_PRE_INC, (yyvsp[0].ast)); }
6193 
6194     break;
6195 
6196   case 365:
6197 
6198     { (yyval.ast) = zend_ast_create(ZEND_AST_POST_DEC, (yyvsp[-1].ast)); }
6199 
6200     break;
6201 
6202   case 366:
6203 
6204     { (yyval.ast) = zend_ast_create(ZEND_AST_PRE_DEC, (yyvsp[0].ast)); }
6205 
6206     break;
6207 
6208   case 367:
6209 
6210     { (yyval.ast) = zend_ast_create(ZEND_AST_OR, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6211 
6212     break;
6213 
6214   case 368:
6215 
6216     { (yyval.ast) = zend_ast_create(ZEND_AST_AND, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6217 
6218     break;
6219 
6220   case 369:
6221 
6222     { (yyval.ast) = zend_ast_create(ZEND_AST_OR, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6223 
6224     break;
6225 
6226   case 370:
6227 
6228     { (yyval.ast) = zend_ast_create(ZEND_AST_AND, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6229 
6230     break;
6231 
6232   case 371:
6233 
6234     { (yyval.ast) = zend_ast_create_binary_op(ZEND_BOOL_XOR, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6235 
6236     break;
6237 
6238   case 372:
6239 
6240     { (yyval.ast) = zend_ast_create_binary_op(ZEND_BW_OR, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6241 
6242     break;
6243 
6244   case 373:
6245 
6246     { (yyval.ast) = zend_ast_create_binary_op(ZEND_BW_AND, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6247 
6248     break;
6249 
6250   case 374:
6251 
6252     { (yyval.ast) = zend_ast_create_binary_op(ZEND_BW_XOR, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6253 
6254     break;
6255 
6256   case 375:
6257 
6258     { (yyval.ast) = zend_ast_create_binary_op(ZEND_CONCAT, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6259 
6260     break;
6261 
6262   case 376:
6263 
6264     { (yyval.ast) = zend_ast_create_binary_op(ZEND_ADD, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6265 
6266     break;
6267 
6268   case 377:
6269 
6270     { (yyval.ast) = zend_ast_create_binary_op(ZEND_SUB, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6271 
6272     break;
6273 
6274   case 378:
6275 
6276     { (yyval.ast) = zend_ast_create_binary_op(ZEND_MUL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6277 
6278     break;
6279 
6280   case 379:
6281 
6282     { (yyval.ast) = zend_ast_create_binary_op(ZEND_POW, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6283 
6284     break;
6285 
6286   case 380:
6287 
6288     { (yyval.ast) = zend_ast_create_binary_op(ZEND_DIV, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6289 
6290     break;
6291 
6292   case 381:
6293 
6294     { (yyval.ast) = zend_ast_create_binary_op(ZEND_MOD, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6295 
6296     break;
6297 
6298   case 382:
6299 
6300     { (yyval.ast) = zend_ast_create_binary_op(ZEND_SL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6301 
6302     break;
6303 
6304   case 383:
6305 
6306     { (yyval.ast) = zend_ast_create_binary_op(ZEND_SR, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6307 
6308     break;
6309 
6310   case 384:
6311 
6312     { (yyval.ast) = zend_ast_create(ZEND_AST_UNARY_PLUS, (yyvsp[0].ast)); }
6313 
6314     break;
6315 
6316   case 385:
6317 
6318     { (yyval.ast) = zend_ast_create(ZEND_AST_UNARY_MINUS, (yyvsp[0].ast)); }
6319 
6320     break;
6321 
6322   case 386:
6323 
6324     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_UNARY_OP, ZEND_BOOL_NOT, (yyvsp[0].ast)); }
6325 
6326     break;
6327 
6328   case 387:
6329 
6330     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_UNARY_OP, ZEND_BW_NOT, (yyvsp[0].ast)); }
6331 
6332     break;
6333 
6334   case 388:
6335 
6336     { (yyval.ast) = zend_ast_create_binary_op(ZEND_IS_IDENTICAL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6337 
6338     break;
6339 
6340   case 389:
6341 
6342     { (yyval.ast) = zend_ast_create_binary_op(ZEND_IS_NOT_IDENTICAL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6343 
6344     break;
6345 
6346   case 390:
6347 
6348     { (yyval.ast) = zend_ast_create_binary_op(ZEND_IS_EQUAL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6349 
6350     break;
6351 
6352   case 391:
6353 
6354     { (yyval.ast) = zend_ast_create_binary_op(ZEND_IS_NOT_EQUAL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6355 
6356     break;
6357 
6358   case 392:
6359 
6360     { (yyval.ast) = zend_ast_create_binary_op(ZEND_IS_SMALLER, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6361 
6362     break;
6363 
6364   case 393:
6365 
6366     { (yyval.ast) = zend_ast_create_binary_op(ZEND_IS_SMALLER_OR_EQUAL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6367 
6368     break;
6369 
6370   case 394:
6371 
6372     { (yyval.ast) = zend_ast_create(ZEND_AST_GREATER, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6373 
6374     break;
6375 
6376   case 395:
6377 
6378     { (yyval.ast) = zend_ast_create(ZEND_AST_GREATER_EQUAL, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6379 
6380     break;
6381 
6382   case 396:
6383 
6384     { (yyval.ast) = zend_ast_create_binary_op(ZEND_SPACESHIP, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6385 
6386     break;
6387 
6388   case 397:
6389 
6390     { (yyval.ast) = zend_ast_create(ZEND_AST_INSTANCEOF, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6391 
6392     break;
6393 
6394   case 398:
6395 
6396     {
6397 			(yyval.ast) = (yyvsp[-1].ast);
6398 			if ((yyval.ast)->kind == ZEND_AST_CONDITIONAL) (yyval.ast)->attr = ZEND_PARENTHESIZED_CONDITIONAL;
6399 		}
6400 
6401     break;
6402 
6403   case 399:
6404 
6405     { (yyval.ast) = (yyvsp[0].ast); }
6406 
6407     break;
6408 
6409   case 400:
6410 
6411     { (yyval.ast) = zend_ast_create(ZEND_AST_CONDITIONAL, (yyvsp[-4].ast), (yyvsp[-2].ast), (yyvsp[0].ast)); }
6412 
6413     break;
6414 
6415   case 401:
6416 
6417     { (yyval.ast) = zend_ast_create(ZEND_AST_CONDITIONAL, (yyvsp[-3].ast), NULL, (yyvsp[0].ast)); }
6418 
6419     break;
6420 
6421   case 402:
6422 
6423     { (yyval.ast) = zend_ast_create(ZEND_AST_COALESCE, (yyvsp[-2].ast), (yyvsp[0].ast)); }
6424 
6425     break;
6426 
6427   case 403:
6428 
6429     { (yyval.ast) = (yyvsp[0].ast); }
6430 
6431     break;
6432 
6433   case 404:
6434 
6435     { (yyval.ast) = zend_ast_create_cast(IS_LONG, (yyvsp[0].ast)); }
6436 
6437     break;
6438 
6439   case 405:
6440 
6441     { (yyval.ast) = zend_ast_create_cast(IS_DOUBLE, (yyvsp[0].ast)); }
6442 
6443     break;
6444 
6445   case 406:
6446 
6447     { (yyval.ast) = zend_ast_create_cast(IS_STRING, (yyvsp[0].ast)); }
6448 
6449     break;
6450 
6451   case 407:
6452 
6453     { (yyval.ast) = zend_ast_create_cast(IS_ARRAY, (yyvsp[0].ast)); }
6454 
6455     break;
6456 
6457   case 408:
6458 
6459     { (yyval.ast) = zend_ast_create_cast(IS_OBJECT, (yyvsp[0].ast)); }
6460 
6461     break;
6462 
6463   case 409:
6464 
6465     { (yyval.ast) = zend_ast_create_cast(_IS_BOOL, (yyvsp[0].ast)); }
6466 
6467     break;
6468 
6469   case 410:
6470 
6471     { (yyval.ast) = zend_ast_create_cast(IS_NULL, (yyvsp[0].ast)); }
6472 
6473     break;
6474 
6475   case 411:
6476 
6477     { (yyval.ast) = zend_ast_create(ZEND_AST_EXIT, (yyvsp[0].ast)); }
6478 
6479     break;
6480 
6481   case 412:
6482 
6483     { (yyval.ast) = zend_ast_create(ZEND_AST_SILENCE, (yyvsp[0].ast)); }
6484 
6485     break;
6486 
6487   case 413:
6488 
6489     { (yyval.ast) = (yyvsp[0].ast); }
6490 
6491     break;
6492 
6493   case 414:
6494 
6495     { (yyval.ast) = zend_ast_create(ZEND_AST_SHELL_EXEC, (yyvsp[-1].ast)); }
6496 
6497     break;
6498 
6499   case 415:
6500 
6501     { (yyval.ast) = zend_ast_create(ZEND_AST_PRINT, (yyvsp[0].ast)); }
6502 
6503     break;
6504 
6505   case 416:
6506 
6507     { (yyval.ast) = zend_ast_create(ZEND_AST_YIELD, NULL, NULL); CG(extra_fn_flags) |= ZEND_ACC_GENERATOR; }
6508 
6509     break;
6510 
6511   case 417:
6512 
6513     { (yyval.ast) = zend_ast_create(ZEND_AST_YIELD, (yyvsp[0].ast), NULL); CG(extra_fn_flags) |= ZEND_ACC_GENERATOR; }
6514 
6515     break;
6516 
6517   case 418:
6518 
6519     { (yyval.ast) = zend_ast_create(ZEND_AST_YIELD, (yyvsp[0].ast), (yyvsp[-2].ast)); CG(extra_fn_flags) |= ZEND_ACC_GENERATOR; }
6520 
6521     break;
6522 
6523   case 419:
6524 
6525     { (yyval.ast) = zend_ast_create(ZEND_AST_YIELD_FROM, (yyvsp[0].ast)); CG(extra_fn_flags) |= ZEND_ACC_GENERATOR; }
6526 
6527     break;
6528 
6529   case 420:
6530 
6531     { (yyval.ast) = zend_ast_create(ZEND_AST_THROW, (yyvsp[0].ast)); }
6532 
6533     break;
6534 
6535   case 421:
6536 
6537     { (yyval.ast) = (yyvsp[0].ast); }
6538 
6539     break;
6540 
6541   case 422:
6542 
6543     { (yyval.ast) = zend_ast_with_attributes((yyvsp[0].ast), (yyvsp[-1].ast)); }
6544 
6545     break;
6546 
6547   case 423:
6548 
6549     { (yyval.ast) = (yyvsp[0].ast); ((zend_ast_decl *) (yyval.ast))->flags |= ZEND_ACC_STATIC; }
6550 
6551     break;
6552 
6553   case 424:
6554 
6555     { (yyval.ast) = zend_ast_with_attributes((yyvsp[0].ast), (yyvsp[-2].ast)); ((zend_ast_decl *) (yyval.ast))->flags |= ZEND_ACC_STATIC; }
6556 
6557     break;
6558 
6559   case 425:
6560 
6561     { (yyval.ast) = (yyvsp[0].ast); }
6562 
6563     break;
6564 
6565   case 426:
6566 
6567     { (yyval.ast) = zend_ast_create_decl(ZEND_AST_CLOSURE, (yyvsp[-11].num) | (yyvsp[0].num), (yyvsp[-12].num), (yyvsp[-10].str),
6568 				  zend_string_init("{closure}", sizeof("{closure}") - 1, 0),
6569 				  (yyvsp[-8].ast), (yyvsp[-6].ast), (yyvsp[-2].ast), (yyvsp[-5].ast), NULL); CG(extra_fn_flags) = (yyvsp[-4].num); }
6570 
6571     break;
6572 
6573   case 427:
6574 
6575     { (yyval.ast) = zend_ast_create_decl(ZEND_AST_ARROW_FUNC, (yyvsp[-10].num) | (yyvsp[0].num), (yyvsp[-11].num), (yyvsp[-9].str),
6576 				  zend_string_init("{closure}", sizeof("{closure}") - 1, 0), (yyvsp[-7].ast), NULL,
6577 				  zend_ast_create(ZEND_AST_RETURN, (yyvsp[-1].ast)), (yyvsp[-5].ast), NULL);
6578 				  ((zend_ast_decl *) (yyval.ast))->lex_pos = (yyvsp[-2].ptr);
6579 				  CG(extra_fn_flags) = (yyvsp[-3].num); }
6580 
6581     break;
6582 
6583   case 428:
6584 
6585     { (yyval.num) = CG(zend_lineno); }
6586 
6587     break;
6588 
6589   case 429:
6590 
6591     { (yyval.num) = CG(zend_lineno); }
6592 
6593     break;
6594 
6595   case 430:
6596 
6597     { (yyval.str) = CG(doc_comment); CG(doc_comment) = NULL; }
6598 
6599     break;
6600 
6601   case 431:
6602 
6603     { (yyval.num) = CG(extra_fn_flags); CG(extra_fn_flags) = 0; }
6604 
6605     break;
6606 
6607   case 432:
6608 
6609     { (yyval.ptr) = LANG_SCNG(yy_text); }
6610 
6611     break;
6612 
6613   case 433:
6614 
6615     { (yyval.num) = 0; }
6616 
6617     break;
6618 
6619   case 434:
6620 
6621     { (yyval.num) = ZEND_ACC_RETURN_REFERENCE; }
6622 
6623     break;
6624 
6625   case 435:
6626 
6627     { (yyval.ast) = NULL; }
6628 
6629     break;
6630 
6631   case 436:
6632 
6633     { (yyval.ast) = (yyvsp[-2].ast); }
6634 
6635     break;
6636 
6637   case 437:
6638 
6639     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
6640 
6641     break;
6642 
6643   case 438:
6644 
6645     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_CLOSURE_USES, (yyvsp[0].ast)); }
6646 
6647     break;
6648 
6649   case 439:
6650 
6651     { (yyval.ast) = (yyvsp[0].ast); }
6652 
6653     break;
6654 
6655   case 440:
6656 
6657     { (yyval.ast) = (yyvsp[0].ast); (yyval.ast)->attr = ZEND_BIND_REF; }
6658 
6659     break;
6660 
6661   case 441:
6662 
6663     { (yyval.ast) = zend_ast_create(ZEND_AST_CALL, (yyvsp[-1].ast), (yyvsp[0].ast)); }
6664 
6665     break;
6666 
6667   case 442:
6668 
6669     { (yyval.ast) = zend_ast_create(ZEND_AST_STATIC_CALL, (yyvsp[-3].ast), (yyvsp[-1].ast), (yyvsp[0].ast)); }
6670 
6671     break;
6672 
6673   case 443:
6674 
6675     { (yyval.ast) = zend_ast_create(ZEND_AST_STATIC_CALL, (yyvsp[-3].ast), (yyvsp[-1].ast), (yyvsp[0].ast)); }
6676 
6677     break;
6678 
6679   case 444:
6680 
6681     { (yyval.ast) = zend_ast_create(ZEND_AST_CALL, (yyvsp[-1].ast), (yyvsp[0].ast)); }
6682 
6683     break;
6684 
6685   case 445:
6686 
6687     { zval zv; ZVAL_INTERNED_STR(&zv, ZSTR_KNOWN(ZEND_STR_STATIC));
6688 			  (yyval.ast) = zend_ast_create_zval_ex(&zv, ZEND_NAME_NOT_FQ); }
6689 
6690     break;
6691 
6692   case 446:
6693 
6694     { (yyval.ast) = (yyvsp[0].ast); }
6695 
6696     break;
6697 
6698   case 447:
6699 
6700     { (yyval.ast) = (yyvsp[0].ast); }
6701 
6702     break;
6703 
6704   case 448:
6705 
6706     { (yyval.ast) = (yyvsp[0].ast); }
6707 
6708     break;
6709 
6710   case 449:
6711 
6712     { (yyval.ast) = (yyvsp[-1].ast); }
6713 
6714     break;
6715 
6716   case 450:
6717 
6718     { (yyval.ast) = NULL; }
6719 
6720     break;
6721 
6722   case 451:
6723 
6724     { (yyval.ast) = (yyvsp[-1].ast); }
6725 
6726     break;
6727 
6728   case 452:
6729 
6730     { (yyval.ast) = zend_ast_create_zval_from_str(ZSTR_EMPTY_ALLOC()); }
6731 
6732     break;
6733 
6734   case 453:
6735 
6736     { (yyval.ast) = (yyvsp[0].ast); }
6737 
6738     break;
6739 
6740   case 454:
6741 
6742     { (yyval.ast) = (yyvsp[0].ast); }
6743 
6744     break;
6745 
6746   case 455:
6747 
6748     { (yyval.ast) = zend_ast_create_list(0, ZEND_AST_ARG_LIST); }
6749 
6750     break;
6751 
6752   case 456:
6753 
6754     { (yyval.ast) = (yyvsp[0].ast); }
6755 
6756     break;
6757 
6758   case 457:
6759 
6760     { (yyval.ast) = (yyvsp[-1].ast); (yyval.ast)->attr = ZEND_ARRAY_SYNTAX_LONG; }
6761 
6762     break;
6763 
6764   case 458:
6765 
6766     { (yyval.ast) = (yyvsp[-1].ast); (yyval.ast)->attr = ZEND_ARRAY_SYNTAX_SHORT; }
6767 
6768     break;
6769 
6770   case 459:
6771 
6772     { (yyval.ast) = (yyvsp[0].ast); }
6773 
6774     break;
6775 
6776   case 460:
6777 
6778     { (yyval.ast) = (yyvsp[-1].ast); }
6779 
6780     break;
6781 
6782   case 461:
6783 
6784     { (yyval.ast) = (yyvsp[0].ast); }
6785 
6786     break;
6787 
6788   case 462:
6789 
6790     { (yyval.ast) = (yyvsp[0].ast); }
6791 
6792     break;
6793 
6794   case 463:
6795 
6796     { (yyval.ast) = (yyvsp[-1].ast); }
6797 
6798     break;
6799 
6800   case 464:
6801 
6802     { (yyval.ast) = zend_ast_create_zval_from_str(ZSTR_EMPTY_ALLOC()); }
6803 
6804     break;
6805 
6806   case 465:
6807 
6808     { (yyval.ast) = (yyvsp[-1].ast); }
6809 
6810     break;
6811 
6812   case 466:
6813 
6814     { (yyval.ast) = (yyvsp[0].ast); }
6815 
6816     break;
6817 
6818   case 467:
6819 
6820     { (yyval.ast) = (yyvsp[0].ast); }
6821 
6822     break;
6823 
6824   case 468:
6825 
6826     { (yyval.ast) = (yyvsp[0].ast); }
6827 
6828     break;
6829 
6830   case 469:
6831 
6832     { (yyval.ast) = zend_ast_create(ZEND_AST_CONST, (yyvsp[0].ast)); }
6833 
6834     break;
6835 
6836   case 470:
6837 
6838     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_MAGIC_CONST, T_LINE); }
6839 
6840     break;
6841 
6842   case 471:
6843 
6844     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_MAGIC_CONST, T_FILE); }
6845 
6846     break;
6847 
6848   case 472:
6849 
6850     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_MAGIC_CONST, T_DIR); }
6851 
6852     break;
6853 
6854   case 473:
6855 
6856     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_MAGIC_CONST, T_TRAIT_C); }
6857 
6858     break;
6859 
6860   case 474:
6861 
6862     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_MAGIC_CONST, T_METHOD_C); }
6863 
6864     break;
6865 
6866   case 475:
6867 
6868     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_MAGIC_CONST, T_FUNC_C); }
6869 
6870     break;
6871 
6872   case 476:
6873 
6874     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_MAGIC_CONST, T_NS_C); }
6875 
6876     break;
6877 
6878   case 477:
6879 
6880     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_MAGIC_CONST, T_CLASS_C); }
6881 
6882     break;
6883 
6884   case 478:
6885 
6886     { (yyval.ast) = zend_ast_create_class_const_or_name((yyvsp[-2].ast), (yyvsp[0].ast)); }
6887 
6888     break;
6889 
6890   case 479:
6891 
6892     { (yyval.ast) = zend_ast_create_class_const_or_name((yyvsp[-2].ast), (yyvsp[0].ast)); }
6893 
6894     break;
6895 
6896   case 480:
6897 
6898     { (yyval.ast) = NULL; }
6899 
6900     break;
6901 
6902   case 481:
6903 
6904     { (yyval.ast) = (yyvsp[0].ast); }
6905 
6906     break;
6907 
6908   case 482:
6909 
6910     { (yyval.ast) = (yyvsp[0].ast); }
6911 
6912     break;
6913 
6914   case 483:
6915 
6916     { (yyval.ast) = (yyvsp[0].ast); }
6917 
6918     break;
6919 
6920   case 484:
6921 
6922     { (yyval.ast) = (yyvsp[-1].ast); }
6923 
6924     break;
6925 
6926   case 485:
6927 
6928     { (yyval.ast) = (yyvsp[0].ast); }
6929 
6930     break;
6931 
6932   case 486:
6933 
6934     { (yyval.ast) = (yyvsp[0].ast); }
6935 
6936     break;
6937 
6938   case 487:
6939 
6940     { (yyval.ast) = (yyvsp[0].ast); }
6941 
6942     break;
6943 
6944   case 488:
6945 
6946     { (yyval.ast) = (yyvsp[0].ast); }
6947 
6948     break;
6949 
6950   case 489:
6951 
6952     { (yyval.ast) = (yyvsp[0].ast); }
6953 
6954     break;
6955 
6956   case 490:
6957 
6958     { (yyval.ast) = (yyvsp[-1].ast); }
6959 
6960     break;
6961 
6962   case 491:
6963 
6964     { (yyval.ast) = (yyvsp[0].ast); }
6965 
6966     break;
6967 
6968   case 492:
6969 
6970     { (yyval.ast) = zend_ast_create(ZEND_AST_VAR, (yyvsp[0].ast)); }
6971 
6972     break;
6973 
6974   case 493:
6975 
6976     { (yyval.ast) = zend_ast_create(ZEND_AST_DIM, (yyvsp[-3].ast), (yyvsp[-1].ast)); }
6977 
6978     break;
6979 
6980   case 494:
6981 
6982     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_DIM, ZEND_DIM_ALTERNATIVE_SYNTAX, (yyvsp[-3].ast), (yyvsp[-1].ast)); }
6983 
6984     break;
6985 
6986   case 495:
6987 
6988     { (yyval.ast) = zend_ast_create(ZEND_AST_METHOD_CALL, (yyvsp[-3].ast), (yyvsp[-1].ast), (yyvsp[0].ast)); }
6989 
6990     break;
6991 
6992   case 496:
6993 
6994     { (yyval.ast) = zend_ast_create(ZEND_AST_NULLSAFE_METHOD_CALL, (yyvsp[-3].ast), (yyvsp[-1].ast), (yyvsp[0].ast)); }
6995 
6996     break;
6997 
6998   case 497:
6999 
7000     { (yyval.ast) = (yyvsp[0].ast); }
7001 
7002     break;
7003 
7004   case 498:
7005 
7006     { (yyval.ast) = (yyvsp[0].ast); }
7007 
7008     break;
7009 
7010   case 499:
7011 
7012     { (yyval.ast) = (yyvsp[0].ast); }
7013 
7014     break;
7015 
7016   case 500:
7017 
7018     { (yyval.ast) = zend_ast_create(ZEND_AST_PROP, (yyvsp[-2].ast), (yyvsp[0].ast)); }
7019 
7020     break;
7021 
7022   case 501:
7023 
7024     { (yyval.ast) = zend_ast_create(ZEND_AST_NULLSAFE_PROP, (yyvsp[-2].ast), (yyvsp[0].ast)); }
7025 
7026     break;
7027 
7028   case 502:
7029 
7030     { (yyval.ast) = (yyvsp[0].ast); }
7031 
7032     break;
7033 
7034   case 503:
7035 
7036     { (yyval.ast) = (yyvsp[-1].ast); }
7037 
7038     break;
7039 
7040   case 504:
7041 
7042     { (yyval.ast) = zend_ast_create(ZEND_AST_VAR, (yyvsp[0].ast)); }
7043 
7044     break;
7045 
7046   case 505:
7047 
7048     { (yyval.ast) = zend_ast_create(ZEND_AST_STATIC_PROP, (yyvsp[-2].ast), (yyvsp[0].ast)); }
7049 
7050     break;
7051 
7052   case 506:
7053 
7054     { (yyval.ast) = zend_ast_create(ZEND_AST_STATIC_PROP, (yyvsp[-2].ast), (yyvsp[0].ast)); }
7055 
7056     break;
7057 
7058   case 507:
7059 
7060     { (yyval.ast) = zend_ast_create(ZEND_AST_VAR, (yyvsp[0].ast)); }
7061 
7062     break;
7063 
7064   case 508:
7065 
7066     { (yyval.ast) = zend_ast_create(ZEND_AST_DIM, (yyvsp[-3].ast), (yyvsp[-1].ast)); }
7067 
7068     break;
7069 
7070   case 509:
7071 
7072     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_DIM, ZEND_DIM_ALTERNATIVE_SYNTAX, (yyvsp[-3].ast), (yyvsp[-1].ast)); }
7073 
7074     break;
7075 
7076   case 510:
7077 
7078     { (yyval.ast) = zend_ast_create(ZEND_AST_PROP, (yyvsp[-2].ast), (yyvsp[0].ast)); }
7079 
7080     break;
7081 
7082   case 511:
7083 
7084     { (yyval.ast) = zend_ast_create(ZEND_AST_NULLSAFE_PROP, (yyvsp[-2].ast), (yyvsp[0].ast)); }
7085 
7086     break;
7087 
7088   case 512:
7089 
7090     { (yyval.ast) = zend_ast_create(ZEND_AST_STATIC_PROP, (yyvsp[-2].ast), (yyvsp[0].ast)); }
7091 
7092     break;
7093 
7094   case 513:
7095 
7096     { (yyval.ast) = zend_ast_create(ZEND_AST_STATIC_PROP, (yyvsp[-2].ast), (yyvsp[0].ast)); }
7097 
7098     break;
7099 
7100   case 514:
7101 
7102     { (yyval.ast) = (yyvsp[0].ast); }
7103 
7104     break;
7105 
7106   case 515:
7107 
7108     { (yyval.ast) = (yyvsp[-1].ast); }
7109 
7110     break;
7111 
7112   case 516:
7113 
7114     { (yyval.ast) = zend_ast_create(ZEND_AST_VAR, (yyvsp[0].ast)); }
7115 
7116     break;
7117 
7118   case 517:
7119 
7120     { (yyval.ast) = (yyvsp[0].ast); }
7121 
7122     break;
7123 
7124   case 518:
7125 
7126     { (yyval.ast) = (yyvsp[-1].ast); }
7127 
7128     break;
7129 
7130   case 519:
7131 
7132     { (yyval.ast) = zend_ast_create(ZEND_AST_VAR, (yyvsp[0].ast)); }
7133 
7134     break;
7135 
7136   case 520:
7137 
7138     { /* allow single trailing comma */ (yyval.ast) = zend_ast_list_rtrim((yyvsp[0].ast)); }
7139 
7140     break;
7141 
7142   case 521:
7143 
7144     { (yyval.ast) = NULL; }
7145 
7146     break;
7147 
7148   case 522:
7149 
7150     { (yyval.ast) = (yyvsp[0].ast); }
7151 
7152     break;
7153 
7154   case 523:
7155 
7156     { (yyval.ast) = zend_ast_list_add((yyvsp[-2].ast), (yyvsp[0].ast)); }
7157 
7158     break;
7159 
7160   case 524:
7161 
7162     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_ARRAY, (yyvsp[0].ast)); }
7163 
7164     break;
7165 
7166   case 525:
7167 
7168     { (yyval.ast) = zend_ast_create(ZEND_AST_ARRAY_ELEM, (yyvsp[0].ast), (yyvsp[-2].ast)); }
7169 
7170     break;
7171 
7172   case 526:
7173 
7174     { (yyval.ast) = zend_ast_create(ZEND_AST_ARRAY_ELEM, (yyvsp[0].ast), NULL); }
7175 
7176     break;
7177 
7178   case 527:
7179 
7180     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_ARRAY_ELEM, 1, (yyvsp[0].ast), (yyvsp[-3].ast)); }
7181 
7182     break;
7183 
7184   case 528:
7185 
7186     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_ARRAY_ELEM, 1, (yyvsp[0].ast), NULL); }
7187 
7188     break;
7189 
7190   case 529:
7191 
7192     { (yyval.ast) = zend_ast_create(ZEND_AST_UNPACK, (yyvsp[0].ast)); }
7193 
7194     break;
7195 
7196   case 530:
7197 
7198     { (yyvsp[-1].ast)->attr = ZEND_ARRAY_SYNTAX_LIST;
7199 			  (yyval.ast) = zend_ast_create(ZEND_AST_ARRAY_ELEM, (yyvsp[-1].ast), (yyvsp[-5].ast)); }
7200 
7201     break;
7202 
7203   case 531:
7204 
7205     { (yyvsp[-1].ast)->attr = ZEND_ARRAY_SYNTAX_LIST;
7206 			  (yyval.ast) = zend_ast_create(ZEND_AST_ARRAY_ELEM, (yyvsp[-1].ast), NULL); }
7207 
7208     break;
7209 
7210   case 532:
7211 
7212     { (yyval.ast) = zend_ast_list_add((yyvsp[-1].ast), (yyvsp[0].ast)); }
7213 
7214     break;
7215 
7216   case 533:
7217 
7218     { (yyval.ast) = zend_ast_list_add((yyvsp[-1].ast), (yyvsp[0].ast)); }
7219 
7220     break;
7221 
7222   case 534:
7223 
7224     { (yyval.ast) = zend_ast_create_list(1, ZEND_AST_ENCAPS_LIST, (yyvsp[0].ast)); }
7225 
7226     break;
7227 
7228   case 535:
7229 
7230     { (yyval.ast) = zend_ast_create_list(2, ZEND_AST_ENCAPS_LIST, (yyvsp[-1].ast), (yyvsp[0].ast)); }
7231 
7232     break;
7233 
7234   case 536:
7235 
7236     { (yyval.ast) = zend_ast_create(ZEND_AST_VAR, (yyvsp[0].ast)); }
7237 
7238     break;
7239 
7240   case 537:
7241 
7242     { (yyval.ast) = zend_ast_create(ZEND_AST_DIM,
7243 			      zend_ast_create(ZEND_AST_VAR, (yyvsp[-3].ast)), (yyvsp[-1].ast)); }
7244 
7245     break;
7246 
7247   case 538:
7248 
7249     { (yyval.ast) = zend_ast_create(ZEND_AST_PROP,
7250 			      zend_ast_create(ZEND_AST_VAR, (yyvsp[-2].ast)), (yyvsp[0].ast)); }
7251 
7252     break;
7253 
7254   case 539:
7255 
7256     { (yyval.ast) = zend_ast_create(ZEND_AST_NULLSAFE_PROP,
7257 			      zend_ast_create(ZEND_AST_VAR, (yyvsp[-2].ast)), (yyvsp[0].ast)); }
7258 
7259     break;
7260 
7261   case 540:
7262 
7263     { (yyval.ast) = zend_ast_create(ZEND_AST_VAR, (yyvsp[-1].ast)); }
7264 
7265     break;
7266 
7267   case 541:
7268 
7269     { (yyval.ast) = zend_ast_create(ZEND_AST_VAR, (yyvsp[-1].ast)); }
7270 
7271     break;
7272 
7273   case 542:
7274 
7275     { (yyval.ast) = zend_ast_create(ZEND_AST_DIM,
7276 			      zend_ast_create(ZEND_AST_VAR, (yyvsp[-4].ast)), (yyvsp[-2].ast)); }
7277 
7278     break;
7279 
7280   case 543:
7281 
7282     { (yyval.ast) = (yyvsp[-1].ast); }
7283 
7284     break;
7285 
7286   case 544:
7287 
7288     { (yyval.ast) = (yyvsp[0].ast); }
7289 
7290     break;
7291 
7292   case 545:
7293 
7294     { (yyval.ast) = (yyvsp[0].ast); }
7295 
7296     break;
7297 
7298   case 546:
7299 
7300     { (yyval.ast) = zend_negate_num_string((yyvsp[0].ast)); }
7301 
7302     break;
7303 
7304   case 547:
7305 
7306     { (yyval.ast) = zend_ast_create(ZEND_AST_VAR, (yyvsp[0].ast)); }
7307 
7308     break;
7309 
7310   case 548:
7311 
7312     { (yyval.ast) = (yyvsp[-2].ast); }
7313 
7314     break;
7315 
7316   case 549:
7317 
7318     { (yyval.ast) = zend_ast_create(ZEND_AST_EMPTY, (yyvsp[-1].ast)); }
7319 
7320     break;
7321 
7322   case 550:
7323 
7324     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_INCLUDE_OR_EVAL, ZEND_INCLUDE, (yyvsp[0].ast)); }
7325 
7326     break;
7327 
7328   case 551:
7329 
7330     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_INCLUDE_OR_EVAL, ZEND_INCLUDE_ONCE, (yyvsp[0].ast)); }
7331 
7332     break;
7333 
7334   case 552:
7335 
7336     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_INCLUDE_OR_EVAL, ZEND_EVAL, (yyvsp[-1].ast)); }
7337 
7338     break;
7339 
7340   case 553:
7341 
7342     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_INCLUDE_OR_EVAL, ZEND_REQUIRE, (yyvsp[0].ast)); }
7343 
7344     break;
7345 
7346   case 554:
7347 
7348     { (yyval.ast) = zend_ast_create_ex(ZEND_AST_INCLUDE_OR_EVAL, ZEND_REQUIRE_ONCE, (yyvsp[0].ast)); }
7349 
7350     break;
7351 
7352   case 555:
7353 
7354     { (yyval.ast) = (yyvsp[0].ast); }
7355 
7356     break;
7357 
7358   case 556:
7359 
7360     { (yyval.ast) = zend_ast_create(ZEND_AST_AND, (yyvsp[-2].ast), (yyvsp[0].ast)); }
7361 
7362     break;
7363 
7364   case 557:
7365 
7366     { (yyval.ast) = zend_ast_create(ZEND_AST_ISSET, (yyvsp[0].ast)); }
7367 
7368     break;
7369 
7370 
7371 
7372       default: break;
7373     }
7374   /* User semantic actions sometimes alter yychar, and that requires
7375      that yytoken be updated with the new translation.  We take the
7376      approach of translating immediately before every use of yytoken.
7377      One alternative is translating here after every semantic action,
7378      but that translation would be missed if the semantic action invokes
7379      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
7380      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
7381      incorrect destructor might then be invoked immediately.  In the
7382      case of YYERROR or YYBACKUP, subsequent parser actions might lead
7383      to an incorrect destructor call or verbose syntax error message
7384      before the lookahead is translated.  */
7385   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7386 
7387   YYPOPSTACK (yylen);
7388   yylen = 0;
7389   YY_STACK_PRINT (yyss, yyssp);
7390 
7391   *++yyvsp = yyval;
7392 
7393   /* Now 'shift' the result of the reduction.  Determine what state
7394      that goes to, based on the state we popped back to and the rule
7395      number reduced by.  */
7396 
7397   yyn = yyr1[yyn];
7398 
7399   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7400   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7401     yystate = yytable[yystate];
7402   else
7403     yystate = yydefgoto[yyn - YYNTOKENS];
7404 
7405   goto yynewstate;
7406 
7407 
7408 /*--------------------------------------.
7409 | yyerrlab -- here on detecting error.  |
7410 `--------------------------------------*/
7411 yyerrlab:
7412   /* Make sure we have latest lookahead translation.  See comments at
7413      user semantic actions for why this is necessary.  */
7414   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
7415 
7416   /* If not already recovering from an error, report this error.  */
7417   if (!yyerrstatus)
7418     {
7419       ++yynerrs;
7420 #if ! YYERROR_VERBOSE
7421       yyerror (YY_("syntax error"));
7422 #else
7423 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
7424                                         yyssp, yytoken)
7425       {
7426         char const *yymsgp = YY_("syntax error");
7427         int yysyntax_error_status;
7428         yysyntax_error_status = YYSYNTAX_ERROR;
7429         if (yysyntax_error_status == 0)
7430           yymsgp = yymsg;
7431         else if (yysyntax_error_status == 1)
7432           {
7433             if (yymsg != yymsgbuf)
7434               YYSTACK_FREE (yymsg);
7435             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
7436             if (!yymsg)
7437               {
7438                 yymsg = yymsgbuf;
7439                 yymsg_alloc = sizeof yymsgbuf;
7440                 yysyntax_error_status = 2;
7441               }
7442             else
7443               {
7444                 yysyntax_error_status = YYSYNTAX_ERROR;
7445                 yymsgp = yymsg;
7446               }
7447           }
7448         yyerror (yymsgp);
7449         if (yysyntax_error_status == 2)
7450           goto yyexhaustedlab;
7451       }
7452 # undef YYSYNTAX_ERROR
7453 #endif
7454     }
7455 
7456 
7457 
7458   if (yyerrstatus == 3)
7459     {
7460       /* If just tried and failed to reuse lookahead token after an
7461          error, discard it.  */
7462 
7463       if (yychar <= YYEOF)
7464         {
7465           /* Return failure if at end of input.  */
7466           if (yychar == YYEOF)
7467             YYABORT;
7468         }
7469       else
7470         {
7471           yydestruct ("Error: discarding",
7472                       yytoken, &yylval);
7473           yychar = YYEMPTY;
7474         }
7475     }
7476 
7477   /* Else will try to reuse lookahead token after shifting the error
7478      token.  */
7479   goto yyerrlab1;
7480 
7481 
7482 /*---------------------------------------------------.
7483 | yyerrorlab -- error raised explicitly by YYERROR.  |
7484 `---------------------------------------------------*/
7485 yyerrorlab:
7486 
7487   /* Pacify compilers like GCC when the user code never invokes
7488      YYERROR and the label yyerrorlab therefore never appears in user
7489      code.  */
7490   if (/*CONSTCOND*/ 0)
7491      goto yyerrorlab;
7492 
7493   /* Do not reclaim the symbols of the rule whose action triggered
7494      this YYERROR.  */
7495   YYPOPSTACK (yylen);
7496   yylen = 0;
7497   YY_STACK_PRINT (yyss, yyssp);
7498   yystate = *yyssp;
7499   goto yyerrlab1;
7500 
7501 
7502 /*-------------------------------------------------------------.
7503 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
7504 `-------------------------------------------------------------*/
7505 yyerrlab1:
7506   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
7507 
7508   for (;;)
7509     {
7510       yyn = yypact[yystate];
7511       if (!yypact_value_is_default (yyn))
7512         {
7513           yyn += YYTERROR;
7514           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7515             {
7516               yyn = yytable[yyn];
7517               if (0 < yyn)
7518                 break;
7519             }
7520         }
7521 
7522       /* Pop the current state because it cannot handle the error token.  */
7523       if (yyssp == yyss)
7524         YYABORT;
7525 
7526 
7527       yydestruct ("Error: popping",
7528                   yystos[yystate], yyvsp);
7529       YYPOPSTACK (1);
7530       yystate = *yyssp;
7531       YY_STACK_PRINT (yyss, yyssp);
7532     }
7533 
7534   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7535   *++yyvsp = yylval;
7536   YY_IGNORE_MAYBE_UNINITIALIZED_END
7537 
7538 
7539   /* Shift the error token.  */
7540   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7541 
7542   yystate = yyn;
7543   goto yynewstate;
7544 
7545 
7546 /*-------------------------------------.
7547 | yyacceptlab -- YYACCEPT comes here.  |
7548 `-------------------------------------*/
7549 yyacceptlab:
7550   yyresult = 0;
7551   goto yyreturn;
7552 
7553 /*-----------------------------------.
7554 | yyabortlab -- YYABORT comes here.  |
7555 `-----------------------------------*/
7556 yyabortlab:
7557   yyresult = 1;
7558   goto yyreturn;
7559 
7560 #if !defined yyoverflow || YYERROR_VERBOSE
7561 /*-------------------------------------------------.
7562 | yyexhaustedlab -- memory exhaustion comes here.  |
7563 `-------------------------------------------------*/
7564 yyexhaustedlab:
7565   yyerror (YY_("memory exhausted"));
7566   yyresult = 2;
7567   /* Fall through.  */
7568 #endif
7569 
7570 yyreturn:
7571   if (yychar != YYEMPTY)
7572     {
7573       /* Make sure we have latest lookahead translation.  See comments at
7574          user semantic actions for why this is necessary.  */
7575       yytoken = YYTRANSLATE (yychar);
7576       yydestruct ("Cleanup: discarding lookahead",
7577                   yytoken, &yylval);
7578     }
7579   /* Do not reclaim the symbols of the rule whose action triggered
7580      this YYABORT or YYACCEPT.  */
7581   YYPOPSTACK (yylen);
7582   YY_STACK_PRINT (yyss, yyssp);
7583   while (yyssp != yyss)
7584     {
7585       yydestruct ("Cleanup: popping",
7586                   yystos[*yyssp], yyvsp);
7587       YYPOPSTACK (1);
7588     }
7589 #ifndef yyoverflow
7590   if (yyss != yyssa)
7591     YYSTACK_FREE (yyss);
7592 #endif
7593 #if YYERROR_VERBOSE
7594   if (yymsg != yymsgbuf)
7595     YYSTACK_FREE (yymsg);
7596 #endif
7597   return yyresult;
7598 }
7599 
7600 
7601 
7602 /* Over-ride Bison formatting routine to give better token descriptions.
7603    Copy to YYRES the contents of YYSTR for use in yyerror.
7604    YYSTR is taken from yytname, from the %token declaration.
7605    If YYRES is null, do not copy; instead, return the length of what
7606    the result would have been.  */
zend_yytnamerr(char * yyres,const char * yystr)7607 static YYSIZE_T zend_yytnamerr(char *yyres, const char *yystr)
7608 {
7609 	const char *toktype = yystr;
7610 	size_t toktype_len = strlen(toktype);
7611 
7612 	/* CG(parse_error) states:
7613 	 * 0 => yyres = NULL, yystr is the unexpected token
7614 	 * 1 => yyres = NULL, yystr is one of the expected tokens
7615 	 * 2 => yyres != NULL, yystr is the unexpected token
7616 	 * 3 => yyres != NULL, yystr is one of the expected tokens
7617 	 */
7618 	if (yyres && CG(parse_error) < 2) {
7619 		CG(parse_error) = 2;
7620 	}
7621 
7622 	if (CG(parse_error) % 2 == 0) {
7623 		/* The unexpected token */
7624 		char buffer[120];
7625 		const unsigned char *tokcontent, *tokcontent_end;
7626 		size_t tokcontent_len;
7627 
7628 		CG(parse_error)++;
7629 
7630 		if (LANG_SCNG(yy_text)[0] == 0 &&
7631 			LANG_SCNG(yy_leng) == 1 &&
7632 			strcmp(toktype, "\"end of file\"") == 0) {
7633 			if (yyres) {
7634 				yystpcpy(yyres, "end of file");
7635 			}
7636 			return sizeof("end of file")-1;
7637 		}
7638 
7639 		/* Prevent the backslash getting doubled in the output (eugh) */
7640 		if (strcmp(toktype, "\"'\\\\'\"") == 0) {
7641 			if (yyres) {
7642 				yystpcpy(yyres, "token \"\\\"");
7643 			}
7644 			return sizeof("token \"\\\"")-1;
7645 		}
7646 
7647 		/* Avoid unreadable """ */
7648 		/* "'" would theoretically be just as bad, but is never currently parsed as a separate token */
7649 		if (strcmp(toktype, "'\"'") == 0) {
7650 			if (yyres) {
7651 				yystpcpy(yyres, "double-quote mark");
7652 			}
7653 			return sizeof("double-quote mark")-1;
7654 		}
7655 
7656 		/* Strip off the outer quote marks */
7657 		if (toktype_len >= 2 && *toktype == '"') {
7658 			toktype++;
7659 			toktype_len -= 2;
7660 		}
7661 
7662 		/* If the token always has one form, the %token line should have a single-quoted name */
7663 		/* The parser rules also include single-character un-named tokens which will be single-quoted here */
7664 		/* We re-format this with double quotes here to ensure everything's consistent */
7665 		if (toktype_len > 0 && *toktype == '\'') {
7666 			if (yyres) {
7667 				snprintf(buffer, sizeof(buffer), "token \"%.*s\"", (int)toktype_len-2, toktype+1);
7668 				yystpcpy(yyres, buffer);
7669 			}
7670 			return toktype_len + sizeof("token ")-1;
7671 		}
7672 
7673 		/* Fetch the content of the last seen token from global lexer state */
7674 		tokcontent = LANG_SCNG(yy_text);
7675 		tokcontent_len = LANG_SCNG(yy_leng);
7676 
7677 		/* For T_BAD_CHARACTER, the content probably won't be a printable char */
7678 		/* Also, "unexpected invalid character" sounds a bit redundant */
7679 		if (tokcontent_len == 1 && strcmp(yystr, "\"invalid character\"") == 0) {
7680 			if (yyres) {
7681 				snprintf(buffer, sizeof(buffer), "character 0x%02hhX", *tokcontent);
7682 				yystpcpy(yyres, buffer);
7683 			}
7684 			return sizeof("character 0x00")-1;
7685 		}
7686 
7687 		/* Truncate at line end to avoid messing up log formats */
7688 		tokcontent_end = memchr(tokcontent, '\n', tokcontent_len);
7689 		if (tokcontent_end != NULL) {
7690 			tokcontent_len = (tokcontent_end - tokcontent);
7691 		}
7692 
7693 		/* Try to be helpful about what kind of string was found, before stripping the quotes */
7694 		if (tokcontent_len > 0 && strcmp(yystr, "\"quoted string\"") == 0) {
7695 			if (*tokcontent == '"') {
7696 				toktype = "double-quoted string";
7697 				toktype_len = sizeof("double-quoted string")-1;
7698 			}
7699 			else if (*tokcontent == '\'') {
7700 				toktype = "single-quoted string";
7701 				toktype_len = sizeof("single-quoted string")-1;
7702 			}
7703 		}
7704 
7705 		/* For quoted strings, strip off another layer of quotes to avoid putting quotes inside quotes */
7706 		if (tokcontent_len > 0 && (*tokcontent == '\'' || *tokcontent=='"'))  {
7707 			tokcontent++;
7708 			tokcontent_len--;
7709 		}
7710 		if (tokcontent_len > 0 && (tokcontent[tokcontent_len-1] == '\'' || tokcontent[tokcontent_len-1] == '"'))  {
7711 			tokcontent_len--;
7712 		}
7713 
7714 		/* Truncate to 30 characters and add a ... */
7715 		if (tokcontent_len > 30 + sizeof("...")-1) {
7716 			if (yyres) {
7717 				snprintf(buffer, sizeof(buffer), "%.*s \"%.*s...\"", (int)toktype_len, toktype, 30, tokcontent);
7718 				yystpcpy(yyres, buffer);
7719 			}
7720 			return toktype_len + 30 + sizeof(" \"...\"")-1;
7721 		}
7722 
7723 		if (yyres) {
7724 			snprintf(buffer, sizeof(buffer), "%.*s \"%.*s\"", (int)toktype_len, toktype, (int)tokcontent_len, tokcontent);
7725 			yystpcpy(yyres, buffer);
7726 		}
7727 		return toktype_len + tokcontent_len + sizeof(" \"\"")-1;
7728 	}
7729 
7730 	/* One of the expected tokens */
7731 
7732 	/* Prevent the backslash getting doubled in the output (eugh) */
7733 	if (strcmp(toktype, "\"'\\\\'\"") == 0) {
7734 		if (yyres) {
7735 			yystpcpy(yyres, "\"\\\"");
7736 		}
7737 		return sizeof("\"\\\"")-1;
7738 	}
7739 
7740 	/* Strip off the outer quote marks */
7741 	if (toktype_len >= 2 && *toktype == '"') {
7742 		toktype++;
7743 		toktype_len -= 2;
7744 	}
7745 
7746 	if (yyres) {
7747 		YYSIZE_T yyn = 0;
7748 
7749 		for (; yyn < toktype_len; ++yyn) {
7750 			/* Replace single quotes with double for consistency */
7751 			if (toktype[yyn] == '\'') {
7752 				yyres[yyn] = '"';
7753 			}
7754 			else {
7755 				yyres[yyn] = toktype[yyn];
7756 			}
7757 		}
7758 		yyres[toktype_len] = '\0';
7759 	}
7760 
7761 	return toktype_len;
7762 }
7763