47 #define YYBISON_VERSION "2.5"
50 #define YYSKELETON_NAME "yacc.c"
62 #define YYLSP_NEEDED 0
73 #define PARSER_DEBUG 0
76 #define YYERROR_VERBOSE 1
77 #define YYSTACK_USE_ALLOCA 0
92 #define YYMALLOC(size) rb_parser_malloc(parser, (size))
93 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
94 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
95 #define YYFREE(ptr) rb_parser_free(parser, (ptr))
96 #define malloc YYMALLOC
97 #define realloc YYREALLOC
98 #define calloc YYCALLOC
104 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
108 #define is_notop_id(id) ((id)>tLAST_OP_ID)
109 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
110 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
111 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
112 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
113 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
114 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
115 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
116 #define id_type(id) (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1)
118 #define is_asgn_or_id(id) ((is_notop_id(id)) && \
119 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
120 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
121 ((id)&ID_SCOPE_MASK) == ID_CLASS))
140 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)
153 EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS | EXPR_LABELARG),
157 #define IS_lex_state_for(x, ls) ((x) & (ls))
158 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls))
161 static const char *lex_state_name(
enum lex_state_e state);
166 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
167 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
168 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
169 # define BITSTACK_SET_P(stack) ((stack)&1)
171 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
172 #define COND_POP() BITSTACK_POP(cond_stack)
173 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
174 #define COND_P() BITSTACK_SET_P(cond_stack)
176 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
177 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
178 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
179 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
196 #define DVARS_INHERIT ((void*)1)
197 #define DVARS_TOPSCOPE NULL
198 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
199 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
222 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
229 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
242 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
259 for (i = 0; i < tbl->
pos; i++) {
260 if (tbl->
tbl[i] ==
id) {
356 VALUE parsing_thread;
361 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc)
362 #define STR_NEW0() rb_enc_str_new(0,0,current_enc)
363 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc)
364 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc)
365 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
366 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), current_enc)
369 #define yyerror(msg) parser_yyerror(parser, (msg))
371 #define lex_strterm (parser->parser_lex_strterm)
372 #define lex_state (parser->parser_lex_state)
373 #define cond_stack (parser->parser_cond_stack)
374 #define cmdarg_stack (parser->parser_cmdarg_stack)
375 #define class_nest (parser->parser_class_nest)
376 #define paren_nest (parser->parser_paren_nest)
377 #define lpar_beg (parser->parser_lpar_beg)
378 #define brace_nest (parser->parser_brace_nest)
379 #define in_single (parser->parser_in_single)
380 #define in_def (parser->parser_in_def)
381 #define compile_for_eval (parser->parser_compile_for_eval)
382 #define cur_mid (parser->parser_cur_mid)
383 #define in_defined (parser->parser_in_defined)
384 #define tokenbuf (parser->parser_tokenbuf)
385 #define tokidx (parser->parser_tokidx)
386 #define toksiz (parser->parser_toksiz)
387 #define tokline (parser->parser_tokline)
388 #define lex_input (parser->parser_lex_input)
389 #define lex_lastline (parser->parser_lex_lastline)
390 #define lex_nextline (parser->parser_lex_nextline)
391 #define lex_pbeg (parser->parser_lex_pbeg)
392 #define lex_p (parser->parser_lex_p)
393 #define lex_pend (parser->parser_lex_pend)
394 #define heredoc_end (parser->parser_heredoc_end)
395 #define command_start (parser->parser_command_start)
396 #define deferred_nodes (parser->parser_deferred_nodes)
397 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
398 #define lex_gets (parser->parser_lex_gets)
399 #define lvtbl (parser->parser_lvtbl)
400 #define ruby__end__seen (parser->parser_ruby__end__seen)
401 #define ruby_sourceline (parser->parser_ruby_sourceline)
402 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
403 #define ruby_sourcefile_string (parser->parser_ruby_sourcefile_string)
404 #define current_enc (parser->enc)
405 #define yydebug (parser->parser_yydebug)
408 #define ruby_eval_tree (parser->parser_eval_tree)
409 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
410 #define ruby_debug_lines (parser->debug_lines)
411 #define ruby_coverage (parser->coverage)
415 static int yylex(
void*,
void*);
417 static int yylex(
void*);
421 #define yyparse ruby_yyparse
424 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
427 #define cond(node) cond_gen(parser, (node))
429 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
438 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
439 #define void_expr0(node) void_expr_gen(parser, (node))
440 #define void_expr(node) void_expr0((node) = remove_begin(node))
442 #define void_stmts(node) void_stmts_gen(parser, (node))
444 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
446 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
449 #define block_append(h,t) block_append_gen(parser,(h),(t))
451 #define list_append(l,i) list_append_gen(parser,(l),(i))
453 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
455 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
457 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
459 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
462 #define new_evstr(n) new_evstr_gen(parser,(n))
464 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
468 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
470 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
473 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
475 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
479 #define ret_args(node) ret_args_gen(parser, (node))
482 #define new_yield(node) new_yield_gen(parser, (node))
484 #define dsym_node(node) dsym_node_gen(parser, (node))
487 #define gettable(id) gettable_gen(parser,(id))
489 #define assignable(id,node) assignable_gen(parser, (id), (node))
492 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
494 #define attrset(node,id) attrset_gen(parser, (node), (id))
497 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
499 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
503 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs))
505 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs))
507 #define new_defined(expr) NEW_DEFINED(remove_begin_all(expr))
510 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
513 #define local_tbl() local_tbl_gen(parser)
518 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
520 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
522 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
524 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
526 #define get_id(id) (id)
527 #define get_value(val) (val)
529 #define value_expr(node) ((void)(node))
530 #define remove_begin(node) (node)
531 #define rb_dvar_defined(id) 0
532 #define rb_local_defined(id) 0
533 static ID ripper_get_id(
VALUE);
534 #define get_id(id) ripper_get_id(id)
536 #define get_value(val) ripper_get_value(val)
538 #define assignable(lhs,node) assignable_gen(parser, (lhs))
540 #define id_is_var(id) id_is_var_gen(parser, (id))
542 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2))
546 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs))
550 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs))
553 #define formal_argument(id) formal_argument_gen(parser, (id))
555 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
557 #define new_bv(id) new_bv_gen(parser, (id))
560 #define local_push(top) local_push_gen(parser,(top))
562 #define local_pop() local_pop_gen(parser)
564 #define local_var(id) local_var_gen(parser, (id))
566 #define arg_var(id) arg_var_gen(parser, (id))
568 #define local_id(id) local_id_gen(parser, (id))
570 #define internal_id() internal_id_gen(parser)
573 #define dyna_push() dyna_push_gen(parser)
575 #define dyna_pop(node) dyna_pop_gen(parser, (node))
577 #define dyna_in_block() dyna_in_block_gen(parser)
578 #define dyna_var(id) local_var(id)
580 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
581 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
583 #define dvar_curr(id) dvar_curr_gen(parser, (id))
586 #define lvar_defined(id) lvar_defined_gen(parser, (id))
588 #define RE_OPTION_ONCE (1<<16)
589 #define RE_OPTION_ENCODING_SHIFT 8
590 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
591 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
592 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
593 #define RE_OPTION_MASK 0xff
594 #define RE_OPTION_ARG_ENCODING_NONE 32
596 #define NODE_STRTERM NODE_ZARRAY
597 #define NODE_HEREDOC NODE_ARRAY
598 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
599 #define nd_func u1.id
600 #if SIZEOF_SHORT == 2
601 #define nd_term(node) ((signed short)(node)->u2.id)
603 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
605 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
606 #define nd_nest u3.cnt
611 #define RIPPER_VERSION "0.1.0"
624 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
625 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
626 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
627 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
628 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
629 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
630 #define dispatch7(n,a,b,c,d,e,f,g) ripper_dispatch7(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e), (f), (g))
632 #define yyparse ripper_yyparse
634 #define ripper_intern(s) ID2SYM(rb_intern(s))
635 static VALUE ripper_id2sym(
ID);
637 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
638 ID2SYM(id) : ripper_id2sym(id))
641 #define arg_new() dispatch0(args_new)
642 #define arg_add(l,a) dispatch2(args_add, (l), (a))
643 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
644 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
645 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
646 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
647 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
649 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
650 #define mrhs_new() dispatch0(mrhs_new)
651 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
652 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
654 #define mlhs_new() dispatch0(mlhs_new)
655 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
656 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
658 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \
659 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk))
661 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
662 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
663 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
665 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
666 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
667 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
669 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
676 return params_new(f, o, r, p, k, kr, escape_Qundef(b));
678 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
685 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
687 #define new_defined(expr) dispatch1(defined, (expr))
695 # define ifndef_ripper(x) (x)
698 # define ifndef_ripper(x)
702 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
703 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
704 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
705 # define rb_warn4S(file,line,fmt,a) rb_compile_warn((file), (line), (fmt), (a))
706 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
707 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
709 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
710 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
711 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
712 # define rb_warn4S(file,line,fmt,a) ripper_warnS(parser, (fmt), (a))
713 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
714 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
715 static void ripper_warn0(
struct parser_params*,
const char*);
716 static void ripper_warnI(
struct parser_params*,
const char*,
int);
717 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
718 static void ripper_warning0(
struct parser_params*,
const char*);
719 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
723 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
724 # define rb_compile_error ripper_compile_error
725 # define compile_error ripper_compile_error
726 # define PARSER_ARG parser,
728 # define rb_compile_error rb_compile_error_with_enc
729 # define compile_error parser->nerr++,rb_compile_error_with_enc
730 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
738 #define YYMAXDEPTH 10000
745 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
746 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
748 #define token_info_push(token)
749 #define token_info_pop(token)
762 #ifdef YYERROR_VERBOSE
763 # undef YYERROR_VERBOSE
764 # define YYERROR_VERBOSE 1
766 # define YYERROR_VERBOSE 0
770 #ifndef YYTOKEN_TABLE
771 # define YYTOKEN_TABLE 0
901 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
919 # define YYSTYPE_IS_TRIVIAL 1
920 # define yystype YYSTYPE
921 # define YYSTYPE_IS_DECLARED 1
943 #elif (defined __STDC__ || defined __C99__FUNC__ \
944 || defined __cplusplus || defined _MSC_VER)
963 # ifdef __SIZE_TYPE__
964 # define YYSIZE_T __SIZE_TYPE__
965 # elif defined size_t
966 # define YYSIZE_T size_t
967 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
968 || defined __cplusplus || defined _MSC_VER)
970 # define YYSIZE_T size_t
972 # define YYSIZE_T unsigned int
976 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
979 # if defined YYENABLE_NLS && YYENABLE_NLS
981 # include <libintl.h>
982 # define YY_(msgid) dgettext ("bison-runtime", msgid)
986 # define YY_(msgid) msgid
991 #if ! defined lint || defined __GNUC__
992 # define YYUSE(e) ((void) (e))
1001 #if (defined __STDC__ || defined __C99__FUNC__ \
1002 || defined __cplusplus || defined _MSC_VER)
1015 #if ! defined yyoverflow || YYERROR_VERBOSE
1019 # ifdef YYSTACK_USE_ALLOCA
1020 # if YYSTACK_USE_ALLOCA
1022 # define YYSTACK_ALLOC __builtin_alloca
1023 # elif defined __BUILTIN_VA_ARG_INCR
1024 # include <alloca.h>
1026 # define YYSTACK_ALLOC __alloca
1027 # elif defined _MSC_VER
1028 # include <malloc.h>
1029 # define alloca _alloca
1031 # define YYSTACK_ALLOC alloca
1032 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1033 || defined __cplusplus || defined _MSC_VER)
1034 # include <stdlib.h>
1035 # ifndef EXIT_SUCCESS
1036 # define EXIT_SUCCESS 0
1043 # ifdef YYSTACK_ALLOC
1045 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1046 # ifndef YYSTACK_ALLOC_MAXIMUM
1051 # define YYSTACK_ALLOC_MAXIMUM 4032
1054 # define YYSTACK_ALLOC YYMALLOC
1055 # define YYSTACK_FREE YYFREE
1056 # ifndef YYSTACK_ALLOC_MAXIMUM
1057 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1059 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1060 && ! ((defined YYMALLOC || defined malloc) \
1061 && (defined YYFREE || defined free)))
1062 # include <stdlib.h>
1063 # ifndef EXIT_SUCCESS
1064 # define EXIT_SUCCESS 0
1068 # define YYMALLOC malloc
1069 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1070 || defined __cplusplus || defined _MSC_VER)
1075 # define YYFREE free
1076 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1077 || defined __cplusplus || defined _MSC_VER)
1085 #if (! defined yyoverflow \
1086 && (! defined __cplusplus \
1087 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1097 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1101 # define YYSTACK_BYTES(N) \
1102 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1103 + YYSTACK_GAP_MAXIMUM)
1105 # define YYCOPY_NEEDED 1
1112 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1115 YYSIZE_T yynewbytes; \
1116 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1117 Stack = &yyptr->Stack_alloc; \
1118 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1119 yyptr += yynewbytes / sizeof (*yyptr); \
1125 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1129 # if defined __GNUC__ && 1 < __GNUC__
1130 # define YYCOPY(To, From, Count) \
1131 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1133 # define YYCOPY(To, From, Count) \
1137 for (yyi = 0; yyi < (Count); yyi++) \
1138 (To)[yyi] = (From)[yyi]; \
1148 #define YYLAST 11071
1151 #define YYNTOKENS 144
1155 #define YYNRULES 626
1157 #define YYNSTATES 1059
1160 #define YYUNDEFTOK 2
1161 #define YYMAXUTOK 354
1163 #define YYTRANSLATE(YYX) \
1164 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1169 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1170 143, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1172 2, 2, 142, 129, 2, 2, 2, 127, 122, 2,
1173 138, 139, 125, 123, 136, 124, 135, 126, 2, 2,
1174 2, 2, 2, 2, 2, 2, 2, 2, 117, 141,
1175 119, 115, 118, 116, 2, 2, 2, 2, 2, 2,
1176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1178 2, 134, 2, 140, 121, 2, 137, 2, 2, 2,
1179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1181 2, 2, 2, 132, 120, 133, 130, 2, 81, 82,
1182 68, 69, 70, 2, 71, 85, 86, 76, 75, 72,
1183 73, 74, 79, 80, 83, 84, 2, 2, 2, 2,
1184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1194 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1195 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1196 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1197 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1198 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1199 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1200 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1201 65, 66, 67, 77, 78, 87, 88, 89, 90, 91,
1202 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1203 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1204 112, 113, 114, 128, 131
1212 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1213 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1214 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1215 91, 95, 99, 104, 106, 110, 114, 121, 127, 133,
1216 139, 145, 149, 153, 157, 159, 163, 167, 169, 173,
1217 177, 181, 184, 186, 188, 190, 192, 194, 199, 200,
1218 206, 208, 211, 215, 220, 226, 231, 237, 240, 243,
1219 246, 249, 252, 254, 258, 260, 264, 266, 269, 273,
1220 279, 282, 287, 290, 295, 297, 301, 303, 307, 310,
1221 314, 316, 320, 322, 324, 329, 333, 337, 341, 345,
1222 348, 350, 352, 354, 359, 363, 367, 371, 375, 378,
1223 380, 382, 384, 387, 389, 393, 395, 397, 399, 401,
1224 403, 405, 407, 409, 411, 413, 414, 419, 421, 423,
1225 425, 427, 429, 431, 433, 435, 437, 439, 441, 443,
1226 445, 447, 449, 451, 453, 455, 457, 459, 461, 463,
1227 465, 467, 469, 471, 473, 475, 477, 479, 481, 483,
1228 485, 487, 489, 491, 493, 495, 497, 499, 501, 503,
1229 505, 507, 509, 511, 513, 515, 517, 519, 521, 523,
1230 525, 527, 529, 531, 533, 535, 537, 539, 541, 543,
1231 545, 547, 549, 551, 553, 555, 557, 559, 561, 565,
1232 571, 575, 581, 588, 594, 600, 606, 612, 617, 621,
1233 625, 629, 633, 637, 641, 645, 649, 653, 658, 661,
1234 664, 668, 672, 676, 680, 684, 688, 692, 696, 700,
1235 704, 708, 712, 716, 719, 722, 726, 730, 734, 738,
1236 739, 744, 751, 753, 755, 757, 760, 765, 768, 772,
1237 774, 776, 778, 780, 783, 788, 791, 793, 796, 799,
1238 804, 806, 807, 810, 813, 816, 818, 820, 823, 827,
1239 832, 834, 836, 840, 845, 848, 850, 852, 854, 856,
1240 858, 860, 862, 864, 866, 868, 870, 871, 876, 877,
1241 881, 882, 883, 889, 893, 897, 900, 904, 908, 910,
1242 915, 919, 921, 922, 929, 934, 938, 941, 943, 946,
1243 949, 956, 963, 964, 965, 973, 974, 975, 983, 989,
1244 994, 995, 996, 1006, 1007, 1014, 1015, 1016, 1025, 1026,
1245 1032, 1033, 1040, 1041, 1042, 1052, 1054, 1056, 1058, 1060,
1246 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, 1078, 1080,
1247 1082, 1084, 1086, 1088, 1091, 1093, 1095, 1097, 1103, 1105,
1248 1108, 1110, 1112, 1114, 1118, 1120, 1124, 1126, 1131, 1138,
1249 1142, 1148, 1151, 1156, 1158, 1162, 1167, 1170, 1173, 1175,
1250 1178, 1179, 1186, 1195, 1200, 1207, 1212, 1215, 1222, 1225,
1251 1230, 1237, 1240, 1245, 1248, 1253, 1255, 1257, 1259, 1263,
1252 1265, 1270, 1272, 1277, 1279, 1283, 1285, 1287, 1288, 1289,
1253 1290, 1296, 1301, 1303, 1307, 1311, 1312, 1318, 1321, 1326,
1254 1332, 1338, 1341, 1342, 1348, 1349, 1355, 1359, 1360, 1365,
1255 1366, 1371, 1374, 1376, 1381, 1382, 1388, 1389, 1395, 1401,
1256 1403, 1405, 1412, 1414, 1416, 1418, 1420, 1423, 1425, 1428,
1257 1430, 1432, 1434, 1436, 1438, 1440, 1442, 1445, 1449, 1453,
1258 1457, 1461, 1465, 1466, 1470, 1472, 1475, 1479, 1483, 1484,
1259 1488, 1492, 1496, 1500, 1504, 1505, 1509, 1510, 1514, 1515,
1260 1518, 1519, 1522, 1523, 1526, 1528, 1529, 1533, 1534, 1535,
1261 1536, 1543, 1545, 1547, 1549, 1551, 1554, 1556, 1558, 1560,
1262 1562, 1566, 1568, 1571, 1573, 1575, 1577, 1579, 1581, 1583,
1263 1585, 1587, 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603,
1264 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1618, 1623, 1626,
1265 1630, 1631, 1635, 1640, 1643, 1646, 1648, 1651, 1652, 1659,
1266 1668, 1673, 1680, 1685, 1692, 1695, 1700, 1707, 1710, 1715,
1267 1718, 1723, 1725, 1726, 1728, 1730, 1732, 1734, 1736, 1738,
1268 1740, 1744, 1746, 1750, 1752, 1755, 1757, 1760, 1762, 1764,
1269 1768, 1770, 1774, 1776, 1778, 1781, 1783, 1787, 1791, 1793,
1270 1797, 1799, 1803, 1805, 1807, 1810, 1812, 1814, 1816, 1819,
1271 1822, 1824, 1826, 1827, 1832, 1834, 1837, 1839, 1843, 1847,
1272 1850, 1853, 1855, 1857, 1859, 1861, 1863, 1865, 1867, 1869,
1273 1871, 1873, 1875, 1877, 1878, 1880, 1881, 1883, 1886, 1889,
1274 1890, 1892, 1894, 1896, 1898, 1900, 1903
1280 145, 0, -1, -1, 146, 147, -1, 148, 339, -1,
1281 346, -1, 149, -1, 148, 345, 149, -1, 1, 149,
1282 -1, 156, -1, -1, 47, 150, 132, 147, 133, -1,
1283 152, 265, 233, 268, -1, 153, 339, -1, 346, -1,
1284 154, -1, 153, 345, 154, -1, 1, 156, -1, 156,
1285 -1, -1, 47, 155, 132, 147, 133, -1, -1, 45,
1286 179, 157, 179, -1, 45, 54, 54, -1, 45, 54,
1287 66, -1, 45, 54, 65, -1, 6, 180, -1, 156,
1288 40, 160, -1, 156, 41, 160, -1, 156, 42, 160,
1289 -1, 156, 43, 160, -1, 156, 44, 156, -1, 48,
1290 132, 152, 133, -1, 158, -1, 167, 115, 161, -1,
1291 301, 89, 161, -1, 218, 134, 190, 342, 89, 161,
1292 -1, 218, 135, 52, 89, 161, -1, 218, 135, 56,
1293 89, 161, -1, 218, 87, 56, 89, 161, -1, 218,
1294 87, 52, 89, 161, -1, 302, 89, 161, -1, 174,
1295 115, 198, -1, 167, 115, 197, -1, 159, -1, 174,
1296 115, 161, -1, 174, 115, 158, -1, 161, -1, 159,
1297 37, 159, -1, 159, 38, 159, -1, 39, 340, 159,
1298 -1, 129, 161, -1, 184, -1, 159, -1, 166, -1,
1299 162, -1, 254, -1, 254, 338, 336, 192, -1, -1,
1300 96, 164, 241, 152, 133, -1, 335, -1, 165, 192,
1301 -1, 165, 192, 163, -1, 218, 135, 336, 192, -1,
1302 218, 135, 336, 192, 163, -1, 218, 87, 336, 192,
1303 -1, 218, 87, 336, 192, 163, -1, 32, 192, -1,
1304 31, 192, -1, 30, 191, -1, 21, 191, -1, 22,
1305 191, -1, 169, -1, 91, 168, 341, -1, 169, -1,
1306 91, 168, 341, -1, 171, -1, 171, 170, -1, 171,
1307 97, 173, -1, 171, 97, 173, 136, 172, -1, 171,
1308 97, -1, 171, 97, 136, 172, -1, 97, 173, -1,
1309 97, 173, 136, 172, -1, 97, -1, 97, 136, 172,
1310 -1, 173, -1, 91, 168, 341, -1, 170, 136, -1,
1311 171, 170, 136, -1, 170, -1, 172, 136, 170, -1,
1312 298, -1, 299, -1, 218, 134, 190, 342, -1, 218,
1313 135, 52, -1, 218, 87, 52, -1, 218, 135, 56,
1314 -1, 218, 87, 56, -1, 88, 56, -1, 302, -1,
1315 298, -1, 299, -1, 218, 134, 190, 342, -1, 218,
1316 135, 52, -1, 218, 87, 52, -1, 218, 135, 56,
1317 -1, 218, 87, 56, -1, 88, 56, -1, 302, -1,
1318 52, -1, 56, -1, 88, 175, -1, 175, -1, 218,
1319 87, 175, -1, 52, -1, 56, -1, 53, -1, 182,
1320 -1, 183, -1, 177, -1, 293, -1, 178, -1, 295,
1321 -1, 179, -1, -1, 180, 136, 181, 179, -1, 120,
1322 -1, 121, -1, 122, -1, 71, -1, 72, -1, 73,
1323 -1, 79, -1, 80, -1, 118, -1, 75, -1, 119,
1324 -1, 76, -1, 74, -1, 85, -1, 86, -1, 123,
1325 -1, 124, -1, 125, -1, 97, -1, 126, -1, 127,
1326 -1, 70, -1, 98, -1, 129, -1, 130, -1, 68,
1327 -1, 69, -1, 83, -1, 84, -1, 137, -1, 49,
1328 -1, 50, -1, 51, -1, 47, -1, 48, -1, 45,
1329 -1, 37, -1, 7, -1, 21, -1, 16, -1, 3,
1330 -1, 5, -1, 46, -1, 26, -1, 15, -1, 14,
1331 -1, 10, -1, 9, -1, 36, -1, 20, -1, 25,
1332 -1, 4, -1, 22, -1, 34, -1, 39, -1, 38,
1333 -1, 23, -1, 8, -1, 24, -1, 30, -1, 33,
1334 -1, 32, -1, 13, -1, 35, -1, 6, -1, 17,
1335 -1, 31, -1, 11, -1, 12, -1, 18, -1, 19,
1336 -1, 174, 115, 184, -1, 174, 115, 184, 44, 184,
1337 -1, 301, 89, 184, -1, 301, 89, 184, 44, 184,
1338 -1, 218, 134, 190, 342, 89, 184, -1, 218, 135,
1339 52, 89, 184, -1, 218, 135, 56, 89, 184, -1,
1340 218, 87, 52, 89, 184, -1, 218, 87, 56, 89,
1341 184, -1, 88, 56, 89, 184, -1, 302, 89, 184,
1342 -1, 184, 81, 184, -1, 184, 82, 184, -1, 184,
1343 123, 184, -1, 184, 124, 184, -1, 184, 125, 184,
1344 -1, 184, 126, 184, -1, 184, 127, 184, -1, 184,
1345 70, 184, -1, 128, 297, 70, 184, -1, 68, 184,
1346 -1, 69, 184, -1, 184, 120, 184, -1, 184, 121,
1347 184, -1, 184, 122, 184, -1, 184, 71, 184, -1,
1348 184, 118, 184, -1, 184, 75, 184, -1, 184, 119,
1349 184, -1, 184, 76, 184, -1, 184, 72, 184, -1,
1350 184, 73, 184, -1, 184, 74, 184, -1, 184, 79,
1351 184, -1, 184, 80, 184, -1, 129, 184, -1, 130,
1352 184, -1, 184, 85, 184, -1, 184, 86, 184, -1,
1353 184, 77, 184, -1, 184, 78, 184, -1, -1, 46,
1354 340, 185, 184, -1, 184, 116, 184, 340, 117, 184,
1355 -1, 199, -1, 184, -1, 346, -1, 196, 343, -1,
1356 196, 136, 333, 343, -1, 333, 343, -1, 138, 190,
1357 341, -1, 346, -1, 188, -1, 346, -1, 191, -1,
1358 196, 136, -1, 196, 136, 333, 136, -1, 333, 136,
1359 -1, 166, -1, 196, 195, -1, 333, 195, -1, 196,
1360 136, 333, 195, -1, 194, -1, -1, 193, 191, -1,
1361 99, 186, -1, 136, 194, -1, 346, -1, 186, -1,
1362 97, 186, -1, 196, 136, 186, -1, 196, 136, 97,
1363 186, -1, 198, -1, 186, -1, 196, 136, 186, -1,
1364 196, 136, 97, 186, -1, 97, 186, -1, 269, -1,
1365 270, -1, 273, -1, 274, -1, 275, -1, 280, -1,
1366 278, -1, 281, -1, 300, -1, 302, -1, 53, -1,
1367 -1, 219, 200, 151, 229, -1, -1, 92, 201, 341,
1368 -1, -1, -1, 92, 202, 159, 203, 341, -1, 91,
1369 152, 139, -1, 218, 87, 56, -1, 88, 56, -1,
1370 94, 187, 140, -1, 95, 332, 133, -1, 30, -1,
1371 31, 138, 191, 341, -1, 31, 138, 341, -1, 31,
1372 -1, -1, 46, 340, 138, 204, 159, 341, -1, 39,
1373 138, 159, 341, -1, 39, 138, 341, -1, 165, 260,
1374 -1, 255, -1, 255, 260, -1, 100, 246, -1, 220,
1375 160, 230, 152, 232, 229, -1, 221, 160, 230, 152,
1376 233, 229, -1, -1, -1, 222, 205, 160, 231, 206,
1377 152, 229, -1, -1, -1, 223, 207, 160, 231, 208,
1378 152, 229, -1, 224, 160, 339, 263, 229, -1, 224,
1379 339, 263, 229, -1, -1, -1, 225, 234, 25, 209,
1380 160, 231, 210, 152, 229, -1, -1, 226, 176, 303,
1381 211, 151, 229, -1, -1, -1, 226, 85, 159, 212,
1382 344, 213, 151, 229, -1, -1, 227, 176, 214, 151,
1383 229, -1, -1, 228, 177, 215, 305, 151, 229, -1,
1384 -1, -1, 228, 330, 338, 216, 177, 217, 305, 151,
1385 229, -1, 21, -1, 22, -1, 23, -1, 24, -1,
1386 199, -1, 7, -1, 11, -1, 12, -1, 18, -1,
1387 19, -1, 16, -1, 20, -1, 3, -1, 4, -1,
1388 5, -1, 10, -1, 344, -1, 13, -1, 344, 13,
1389 -1, 344, -1, 27, -1, 233, -1, 14, 160, 230,
1390 152, 232, -1, 346, -1, 15, 152, -1, 174, -1,
1391 167, -1, 311, -1, 91, 237, 341, -1, 235, -1,
1392 236, 136, 235, -1, 236, -1, 236, 136, 97, 311,
1393 -1, 236, 136, 97, 311, 136, 236, -1, 236, 136,
1394 97, -1, 236, 136, 97, 136, 236, -1, 97, 311,
1395 -1, 97, 311, 136, 236, -1, 97, -1, 97, 136,
1396 236, -1, 317, 136, 320, 329, -1, 317, 329, -1,
1397 320, 329, -1, 328, -1, 136, 238, -1, -1, 313,
1398 136, 323, 136, 326, 239, -1, 313, 136, 323, 136,
1399 326, 136, 313, 239, -1, 313, 136, 323, 239, -1,
1400 313, 136, 323, 136, 313, 239, -1, 313, 136, 326,
1401 239, -1, 313, 136, -1, 313, 136, 326, 136, 313,
1402 239, -1, 313, 239, -1, 323, 136, 326, 239, -1,
1403 323, 136, 326, 136, 313, 239, -1, 323, 239, -1,
1404 323, 136, 313, 239, -1, 326, 239, -1, 326, 136,
1405 313, 239, -1, 238, -1, 346, -1, 242, -1, 120,
1406 243, 120, -1, 78, -1, 120, 240, 243, 120, -1,
1407 340, -1, 340, 141, 244, 340, -1, 245, -1, 244,
1408 136, 245, -1, 52, -1, 310, -1, -1, -1, -1,
1409 247, 248, 250, 249, 251, -1, 138, 309, 243, 139,
1410 -1, 309, -1, 113, 152, 133, -1, 29, 152, 10,
1411 -1, -1, 28, 253, 241, 152, 10, -1, 166, 252,
1412 -1, 254, 338, 336, 189, -1, 254, 338, 336, 189,
1413 260, -1, 254, 338, 336, 192, 252, -1, 165, 188,
1414 -1, -1, 218, 135, 336, 256, 189, -1, -1, 218,
1415 87, 336, 257, 188, -1, 218, 87, 337, -1, -1,
1416 218, 135, 258, 188, -1, -1, 218, 87, 259, 188,
1417 -1, 32, 188, -1, 32, -1, 218, 134, 190, 342,
1418 -1, -1, 132, 261, 241, 152, 133, -1, -1, 26,
1419 262, 241, 152, 10, -1, 17, 196, 230, 152, 264,
1420 -1, 233, -1, 263, -1, 8, 266, 267, 230, 152,
1421 265, -1, 346, -1, 186, -1, 198, -1, 346, -1,
1422 90, 174, -1, 346, -1, 9, 152, -1, 346, -1,
1423 296, -1, 293, -1, 295, -1, 271, -1, 64, -1,
1424 272, -1, 271, 272, -1, 102, 284, 112, -1, 103,
1425 285, 112, -1, 104, 286, 67, -1, 105, 142, 112,
1426 -1, 105, 276, 112, -1, -1, 276, 277, 142, -1,
1427 287, -1, 277, 287, -1, 107, 142, 112, -1, 107,
1428 279, 112, -1, -1, 279, 277, 142, -1, 106, 142,
1429 112, -1, 106, 282, 112, -1, 108, 142, 112, -1,
1430 108, 283, 112, -1, -1, 282, 63, 142, -1, -1,
1431 283, 63, 142, -1, -1, 284, 287, -1, -1, 285,
1432 287, -1, -1, 286, 287, -1, 63, -1, -1, 111,
1433 288, 292, -1, -1, -1, -1, 109, 289, 290, 291,
1434 152, 110, -1, 54, -1, 55, -1, 57, -1, 302,
1435 -1, 101, 294, -1, 177, -1, 55, -1, 54, -1,
1436 57, -1, 101, 285, 112, -1, 297, -1, 128, 297,
1437 -1, 59, -1, 60, -1, 61, -1, 62, -1, 52,
1438 -1, 55, -1, 54, -1, 56, -1, 57, -1, 34,
1439 -1, 33, -1, 35, -1, 36, -1, 50, -1, 49,
1440 -1, 51, -1, 298, -1, 299, -1, 298, -1, 299,
1441 -1, 65, -1, 66, -1, 344, -1, -1, 119, 304,
1442 160, 344, -1, 1, 344, -1, 138, 309, 341, -1,
1443 -1, 306, 309, 344, -1, 318, 136, 320, 329, -1,
1444 318, 329, -1, 320, 329, -1, 328, -1, 136, 307,
1445 -1, -1, 313, 136, 324, 136, 326, 308, -1, 313,
1446 136, 324, 136, 326, 136, 313, 308, -1, 313, 136,
1447 324, 308, -1, 313, 136, 324, 136, 313, 308, -1,
1448 313, 136, 326, 308, -1, 313, 136, 326, 136, 313,
1449 308, -1, 313, 308, -1, 324, 136, 326, 308, -1,
1450 324, 136, 326, 136, 313, 308, -1, 324, 308, -1,
1451 324, 136, 313, 308, -1, 326, 308, -1, 326, 136,
1452 313, 308, -1, 307, -1, -1, 56, -1, 55, -1,
1453 54, -1, 57, -1, 310, -1, 52, -1, 311, -1,
1454 91, 237, 341, -1, 312, -1, 313, 136, 312, -1,
1455 58, -1, 314, 186, -1, 314, -1, 314, 218, -1,
1456 314, -1, 316, -1, 317, 136, 316, -1, 315, -1,
1457 318, 136, 315, -1, 70, -1, 98, -1, 319, 52,
1458 -1, 319, -1, 311, 115, 186, -1, 311, 115, 218,
1459 -1, 322, -1, 323, 136, 322, -1, 321, -1, 324,
1460 136, 321, -1, 125, -1, 97, -1, 325, 52, -1,
1461 325, -1, 122, -1, 99, -1, 327, 52, -1, 136,
1462 328, -1, 346, -1, 300, -1, -1, 138, 331, 159,
1463 341, -1, 346, -1, 333, 343, -1, 334, -1, 333,
1464 136, 334, -1, 186, 90, 186, -1, 58, 186, -1,
1465 98, 186, -1, 52, -1, 56, -1, 53, -1, 52,
1466 -1, 56, -1, 53, -1, 182, -1, 52, -1, 53,
1467 -1, 182, -1, 135, -1, 87, -1, -1, 345, -1,
1468 -1, 143, -1, 340, 139, -1, 340, 140, -1, -1,
1469 143, -1, 136, -1, 141, -1, 143, -1, 344, -1,
1476 0, 863, 863, 863, 894, 905, 914, 922, 930, 936,
1477 938, 937, 958, 991, 1002, 1011, 1019, 1027, 1033, 1038,
1478 1037, 1058, 1058, 1066, 1074, 1085, 1095, 1103, 1112, 1121,
1479 1134, 1147, 1156, 1168, 1169, 1179, 1184, 1205, 1210, 1215,
1480 1225, 1230, 1240, 1249, 1258, 1261, 1270, 1282, 1283, 1291,
1481 1299, 1307, 1315, 1318, 1330, 1331, 1334, 1335, 1347, 1346,
1482 1368, 1378, 1387, 1400, 1409, 1421, 1430, 1442, 1451, 1460,
1483 1468, 1476, 1486, 1487, 1497, 1498, 1508, 1516, 1524, 1532,
1484 1541, 1549, 1558, 1566, 1575, 1583, 1594, 1595, 1605, 1613,
1485 1623, 1631, 1641, 1645, 1649, 1657, 1665, 1673, 1681, 1693,
1486 1703, 1715, 1724, 1733, 1741, 1749, 1757, 1765, 1778, 1791,
1487 1802, 1810, 1813, 1821, 1829, 1839, 1840, 1841, 1842, 1847,
1488 1858, 1859, 1862, 1870, 1873, 1881, 1881, 1891, 1892, 1893,
1489 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,
1490 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
1491 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1923, 1923, 1923,
1492 1924, 1924, 1925, 1925, 1925, 1926, 1926, 1926, 1926, 1927,
1493 1927, 1927, 1927, 1928, 1928, 1928, 1929, 1929, 1929, 1929,
1494 1930, 1930, 1930, 1930, 1931, 1931, 1931, 1931, 1932, 1932,
1495 1932, 1932, 1933, 1933, 1933, 1933, 1934, 1934, 1937, 1946,
1496 1956, 1961, 1971, 1997, 2002, 2007, 2012, 2022, 2032, 2043,
1497 2057, 2071, 2079, 2087, 2095, 2103, 2111, 2119, 2128, 2136,
1498 2144, 2152, 2160, 2168, 2176, 2184, 2192, 2200, 2208, 2216,
1499 2224, 2232, 2243, 2251, 2259, 2267, 2275, 2283, 2291, 2299,
1500 2299, 2309, 2319, 2325, 2337, 2338, 2342, 2350, 2360, 2370,
1501 2371, 2374, 2375, 2376, 2380, 2388, 2398, 2407, 2415, 2425,
1502 2434, 2443, 2443, 2455, 2465, 2469, 2475, 2483, 2491, 2505,
1503 2521, 2522, 2525, 2539, 2554, 2564, 2565, 2566, 2567, 2568,
1504 2569, 2570, 2571, 2572, 2573, 2574, 2583, 2582, 2610, 2610,
1505 2619, 2623, 2618, 2632, 2640, 2648, 2656, 2669, 2677, 2685,
1506 2693, 2701, 2709, 2709, 2719, 2727, 2735, 2745, 2746, 2756,
1507 2760, 2772, 2784, 2784, 2784, 2795, 2795, 2795, 2806, 2817,
1508 2826, 2828, 2825, 2892, 2891, 2913, 2918, 2912, 2937, 2936,
1509 2958, 2957, 2980, 2981, 2980, 3001, 3009, 3017, 3025, 3035,
1510 3047, 3053, 3059, 3065, 3071, 3077, 3083, 3089, 3095, 3101,
1511 3111, 3117, 3122, 3123, 3130, 3135, 3138, 3139, 3152, 3153,
1512 3163, 3164, 3167, 3175, 3185, 3193, 3203, 3211, 3220, 3229,
1513 3237, 3245, 3254, 3266, 3274, 3285, 3289, 3293, 3297, 3303,
1514 3308, 3313, 3317, 3321, 3325, 3329, 3333, 3341, 3345, 3349,
1515 3353, 3357, 3361, 3365, 3369, 3373, 3379, 3380, 3386, 3395,
1516 3404, 3415, 3419, 3429, 3436, 3445, 3453, 3459, 3462, 3467,
1517 3459, 3483, 3491, 3497, 3501, 3508, 3507, 3528, 3544, 3553,
1518 3565, 3579, 3589, 3588, 3605, 3604, 3620, 3629, 3628, 3646,
1519 3645, 3662, 3670, 3678, 3693, 3692, 3712, 3711, 3732, 3744,
1520 3745, 3748, 3767, 3770, 3778, 3786, 3789, 3793, 3796, 3804,
1521 3807, 3808, 3816, 3819, 3836, 3837, 3838, 3848, 3858, 3885,
1522 3950, 3959, 3970, 3977, 3987, 3995, 4005, 4014, 4025, 4032,
1523 4044, 4053, 4063, 4072, 4083, 4090, 4101, 4108, 4123, 4130,
1524 4141, 4148, 4159, 4166, 4195, 4197, 4196, 4213, 4219, 4224,
1525 4212, 4243, 4251, 4259, 4267, 4270, 4281, 4282, 4283, 4284,
1526 4287, 4298, 4299, 4309, 4310, 4311, 4312, 4315, 4316, 4317,
1527 4318, 4319, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4331,
1528 4344, 4354, 4362, 4372, 4373, 4376, 4385, 4384, 4393, 4405,
1529 4415, 4415, 4428, 4432, 4436, 4440, 4446, 4451, 4456, 4460,
1530 4464, 4468, 4472, 4476, 4480, 4484, 4488, 4492, 4496, 4500,
1531 4504, 4508, 4513, 4519, 4528, 4537, 4546, 4557, 4558, 4565,
1532 4574, 4593, 4600, 4614, 4621, 4630, 4641, 4650, 4661, 4669,
1533 4686, 4694, 4710, 4711, 4714, 4719, 4725, 4737, 4749, 4757,
1534 4773, 4781, 4797, 4798, 4801, 4814, 4825, 4826, 4829, 4846,
1535 4850, 4860, 4870, 4870, 4899, 4900, 4910, 4917, 4927, 4939,
1536 4947, 4959, 4960, 4961, 4964, 4965, 4966, 4967, 4970, 4971,
1537 4972, 4975, 4980, 4987, 4988, 4991, 4992, 4995, 4998, 5001,
1538 5002, 5003, 5006, 5007, 5010, 5011, 5015
1542 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1547 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1548 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1549 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1550 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1551 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1552 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1553 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1554 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1555 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1556 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1557 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1558 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1559 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1560 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1561 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tRATIONAL",
1562 "tIMAGINARY",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
"tBACK_REF",
1563 "tREGEXP_END",
"\"unary+\"",
"\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
1564 "\"===\"",
"\"!=\"",
"\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
1565 "\"!~\"",
"\"..\"",
"\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
1566 "\"::\"",
"\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
1567 "\"( arg\"",
"\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
1568 "\"**arg\"",
"\"&\"",
"\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
1569 "tREGEXP_BEG",
"tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
1570 "tQSYMBOLS_BEG",
"tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
1571 "tSTRING_END",
"tLAMBEG",
"tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
1572 "'|'",
"'^'",
"'&'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
1573 "'!'",
"'~'",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"'.'",
"','",
"'`'",
1574 "'('",
"')'",
"']'",
"';'",
"' '",
"'\\n'",
"$accept",
"program",
"$@1",
1575 "top_compstmt",
"top_stmts",
"top_stmt",
"$@2",
"bodystmt",
"compstmt",
1576 "stmts",
"stmt_or_begin",
"$@3",
"stmt",
"$@4",
"command_asgn",
"expr",
1577 "expr_value",
"command_call",
"block_command",
"cmd_brace_block",
"@5",
1578 "fcall",
"command",
"mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
1579 "mlhs_head",
"mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
1580 "fsym",
"fitem",
"undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
1581 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1582 "opt_call_args",
"call_args",
"command_args",
"@8",
"block_arg",
1583 "opt_block_arg",
"args",
"mrhs_arg",
"mrhs",
"primary",
"@9",
"$@10",
1584 "$@11",
"$@12",
"$@13",
"$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"$@19",
1585 "@20",
"@21",
"@22",
"@23",
"@24",
"$@25",
"$@26",
"primary_value",
1586 "k_begin",
"k_if",
"k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
1587 "k_class",
"k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
1588 "opt_else",
"for_var",
"f_marg",
"f_marg_list",
"f_margs",
1589 "block_args_tail",
"opt_block_args_tail",
"block_param",
1590 "opt_block_param",
"block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
1591 "lambda",
"@27",
"@28",
"@29",
"f_larglist",
"lambda_body",
"do_block",
1592 "@30",
"block_call",
"method_call",
"@31",
"@32",
"@33",
"@34",
1593 "brace_block",
"@35",
"@36",
"case_body",
"cases",
"opt_rescue",
1594 "exc_list",
"exc_var",
"opt_ensure",
"literal",
"strings",
"string",
1595 "string1",
"xstring",
"regexp",
"words",
"word_list",
"word",
"symbols",
1596 "symbol_list",
"qwords",
"qsymbols",
"qword_list",
"qsym_list",
1597 "string_contents",
"xstring_contents",
"regexp_contents",
1598 "string_content",
"@37",
"@38",
"@39",
"@40",
"string_dvar",
"symbol",
1599 "sym",
"dsym",
"numeric",
"simple_numeric",
"user_variable",
1600 "keyword_variable",
"var_ref",
"var_lhs",
"backref",
"superclass",
1601 "$@41",
"f_arglist",
"@42",
"args_tail",
"opt_args_tail",
"f_args",
1602 "f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_label",
"f_kw",
1603 "f_block_kw",
"f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
1604 "f_opt",
"f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1605 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1606 "singleton",
"$@43",
"assoc_list",
"assocs",
"assoc",
"operation",
1607 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1608 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1615 static const yytype_uint16 yytoknum[] =
1617 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1618 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1619 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1620 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1621 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1622 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1623 315, 316, 317, 318, 319, 320, 321, 322, 130, 131,
1624 132, 134, 139, 140, 141, 138, 137, 323, 324, 142,
1625 143, 128, 129, 144, 145, 135, 136, 325, 326, 327,
1626 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1627 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1628 348, 349, 350, 351, 352, 61, 63, 58, 62, 60,
1629 124, 94, 38, 43, 45, 42, 47, 37, 353, 33,
1630 126, 354, 123, 125, 91, 46, 44, 96, 40, 41,
1636 static const yytype_uint16
yyr1[] =
1638 0, 144, 146, 145, 147, 148, 148, 148, 148, 149,
1639 150, 149, 151, 152, 153, 153, 153, 153, 154, 155,
1640 154, 157, 156, 156, 156, 156, 156, 156, 156, 156,
1641 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1642 156, 156, 156, 156, 156, 158, 158, 159, 159, 159,
1643 159, 159, 159, 160, 161, 161, 162, 162, 164, 163,
1644 165, 166, 166, 166, 166, 166, 166, 166, 166, 166,
1645 166, 166, 167, 167, 168, 168, 169, 169, 169, 169,
1646 169, 169, 169, 169, 169, 169, 170, 170, 171, 171,
1647 172, 172, 173, 173, 173, 173, 173, 173, 173, 173,
1648 173, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1649 175, 175, 176, 176, 176, 177, 177, 177, 177, 177,
1650 178, 178, 179, 179, 180, 181, 180, 182, 182, 182,
1651 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1652 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1653 182, 182, 182, 182, 182, 182, 182, 183, 183, 183,
1654 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1655 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1656 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1657 183, 183, 183, 183, 183, 183, 183, 183, 184, 184,
1658 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1659 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1660 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1661 184, 184, 184, 184, 184, 184, 184, 184, 184, 185,
1662 184, 184, 184, 186, 187, 187, 187, 187, 188, 189,
1663 189, 190, 190, 190, 190, 190, 191, 191, 191, 191,
1664 191, 193, 192, 194, 195, 195, 196, 196, 196, 196,
1665 197, 197, 198, 198, 198, 199, 199, 199, 199, 199,
1666 199, 199, 199, 199, 199, 199, 200, 199, 201, 199,
1667 202, 203, 199, 199, 199, 199, 199, 199, 199, 199,
1668 199, 199, 204, 199, 199, 199, 199, 199, 199, 199,
1669 199, 199, 205, 206, 199, 207, 208, 199, 199, 199,
1670 209, 210, 199, 211, 199, 212, 213, 199, 214, 199,
1671 215, 199, 216, 217, 199, 199, 199, 199, 199, 218,
1672 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
1673 229, 230, 230, 230, 231, 231, 232, 232, 233, 233,
1674 234, 234, 235, 235, 236, 236, 237, 237, 237, 237,
1675 237, 237, 237, 237, 237, 238, 238, 238, 238, 239,
1676 239, 240, 240, 240, 240, 240, 240, 240, 240, 240,
1677 240, 240, 240, 240, 240, 240, 241, 241, 242, 242,
1678 242, 243, 243, 244, 244, 245, 245, 247, 248, 249,
1679 246, 250, 250, 251, 251, 253, 252, 254, 254, 254,
1680 254, 255, 256, 255, 257, 255, 255, 258, 255, 259,
1681 255, 255, 255, 255, 261, 260, 262, 260, 263, 264,
1682 264, 265, 265, 266, 266, 266, 267, 267, 268, 268,
1683 269, 269, 269, 270, 271, 271, 271, 272, 273, 274,
1684 275, 275, 276, 276, 277, 277, 278, 278, 279, 279,
1685 280, 280, 281, 281, 282, 282, 283, 283, 284, 284,
1686 285, 285, 286, 286, 287, 288, 287, 289, 290, 291,
1687 287, 292, 292, 292, 292, 293, 294, 294, 294, 294,
1688 295, 296, 296, 297, 297, 297, 297, 298, 298, 298,
1689 298, 298, 299, 299, 299, 299, 299, 299, 299, 300,
1690 300, 301, 301, 302, 302, 303, 304, 303, 303, 305,
1691 306, 305, 307, 307, 307, 307, 308, 308, 309, 309,
1692 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1693 309, 309, 309, 310, 310, 310, 310, 311, 311, 312,
1694 312, 313, 313, 314, 315, 315, 316, 316, 317, 317,
1695 318, 318, 319, 319, 320, 320, 321, 322, 323, 323,
1696 324, 324, 325, 325, 326, 326, 327, 327, 328, 329,
1697 329, 330, 331, 330, 332, 332, 333, 333, 334, 334,
1698 334, 335, 335, 335, 336, 336, 336, 336, 337, 337,
1699 337, 338, 338, 339, 339, 340, 340, 341, 342, 343,
1700 343, 343, 344, 344, 345, 345, 346
1706 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1707 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1708 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1709 3, 3, 4, 1, 3, 3, 6, 5, 5, 5,
1710 5, 3, 3, 3, 1, 3, 3, 1, 3, 3,
1711 3, 2, 1, 1, 1, 1, 1, 4, 0, 5,
1712 1, 2, 3, 4, 5, 4, 5, 2, 2, 2,
1713 2, 2, 1, 3, 1, 3, 1, 2, 3, 5,
1714 2, 4, 2, 4, 1, 3, 1, 3, 2, 3,
1715 1, 3, 1, 1, 4, 3, 3, 3, 3, 2,
1716 1, 1, 1, 4, 3, 3, 3, 3, 2, 1,
1717 1, 1, 2, 1, 3, 1, 1, 1, 1, 1,
1718 1, 1, 1, 1, 1, 0, 4, 1, 1, 1,
1719 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1720 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1721 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1722 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1723 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1724 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1725 1, 1, 1, 1, 1, 1, 1, 1, 3, 5,
1726 3, 5, 6, 5, 5, 5, 5, 4, 3, 3,
1727 3, 3, 3, 3, 3, 3, 3, 4, 2, 2,
1728 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1729 3, 3, 3, 2, 2, 3, 3, 3, 3, 0,
1730 4, 6, 1, 1, 1, 2, 4, 2, 3, 1,
1731 1, 1, 1, 2, 4, 2, 1, 2, 2, 4,
1732 1, 0, 2, 2, 2, 1, 1, 2, 3, 4,
1733 1, 1, 3, 4, 2, 1, 1, 1, 1, 1,
1734 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1735 0, 0, 5, 3, 3, 2, 3, 3, 1, 4,
1736 3, 1, 0, 6, 4, 3, 2, 1, 2, 2,
1737 6, 6, 0, 0, 7, 0, 0, 7, 5, 4,
1738 0, 0, 9, 0, 6, 0, 0, 8, 0, 5,
1739 0, 6, 0, 0, 9, 1, 1, 1, 1, 1,
1740 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1741 1, 1, 1, 2, 1, 1, 1, 5, 1, 2,
1742 1, 1, 1, 3, 1, 3, 1, 4, 6, 3,
1743 5, 2, 4, 1, 3, 4, 2, 2, 1, 2,
1744 0, 6, 8, 4, 6, 4, 2, 6, 2, 4,
1745 6, 2, 4, 2, 4, 1, 1, 1, 3, 1,
1746 4, 1, 4, 1, 3, 1, 1, 0, 0, 0,
1747 5, 4, 1, 3, 3, 0, 5, 2, 4, 5,
1748 5, 2, 0, 5, 0, 5, 3, 0, 4, 0,
1749 4, 2, 1, 4, 0, 5, 0, 5, 5, 1,
1750 1, 6, 1, 1, 1, 1, 2, 1, 2, 1,
1751 1, 1, 1, 1, 1, 1, 2, 3, 3, 3,
1752 3, 3, 0, 3, 1, 2, 3, 3, 0, 3,
1753 3, 3, 3, 3, 0, 3, 0, 3, 0, 2,
1754 0, 2, 0, 2, 1, 0, 3, 0, 0, 0,
1755 6, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1756 3, 1, 2, 1, 1, 1, 1, 1, 1, 1,
1757 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1758 1, 1, 1, 1, 1, 1, 0, 4, 2, 3,
1759 0, 3, 4, 2, 2, 1, 2, 0, 6, 8,
1760 4, 6, 4, 6, 2, 4, 6, 2, 4, 2,
1761 4, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1762 3, 1, 3, 1, 2, 1, 2, 1, 1, 3,
1763 1, 3, 1, 1, 2, 1, 3, 3, 1, 3,
1764 1, 3, 1, 1, 2, 1, 1, 1, 2, 2,
1765 1, 1, 0, 4, 1, 2, 1, 3, 3, 2,
1766 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1767 1, 1, 1, 0, 1, 0, 1, 2, 2, 0,
1776 2, 0, 0, 1, 0, 347, 348, 349, 0, 340,
1777 341, 342, 345, 343, 344, 346, 335, 336, 337, 338,
1778 298, 261, 261, 513, 512, 514, 515, 615, 0, 615,
1779 10, 0, 517, 516, 518, 601, 603, 509, 508, 602,
1780 511, 503, 504, 505, 506, 454, 523, 524, 0, 0,
1781 0, 0, 290, 626, 626, 84, 407, 480, 478, 480,
1782 482, 462, 474, 468, 476, 0, 0, 0, 3, 613,
1783 6, 9, 33, 44, 47, 55, 261, 54, 0, 72,
1784 0, 76, 86, 0, 52, 242, 0, 286, 0, 0,
1785 312, 315, 613, 0, 0, 0, 0, 56, 307, 275,
1786 276, 453, 455, 277, 278, 279, 281, 280, 282, 451,
1787 452, 450, 501, 519, 520, 283, 0, 284, 60, 5,
1788 8, 167, 178, 168, 191, 164, 184, 174, 173, 194,
1789 195, 189, 172, 171, 166, 192, 196, 197, 176, 165,
1790 179, 183, 185, 177, 170, 186, 193, 188, 187, 180,
1791 190, 175, 163, 182, 181, 162, 169, 160, 161, 157,
1792 158, 159, 115, 117, 116, 152, 153, 148, 130, 131,
1793 132, 139, 136, 138, 133, 134, 154, 155, 140, 141,
1794 145, 149, 135, 137, 127, 128, 129, 142, 143, 144,
1795 146, 147, 150, 151, 156, 120, 122, 124, 26, 118,
1796 119, 121, 123, 0, 0, 0, 0, 0, 0, 0,
1797 0, 256, 0, 243, 266, 70, 260, 626, 0, 519,
1798 520, 0, 284, 626, 596, 71, 69, 615, 68, 0,
1799 626, 431, 67, 615, 616, 0, 0, 21, 239, 0,
1800 0, 335, 336, 298, 301, 432, 0, 218, 0, 219,
1801 295, 0, 19, 0, 0, 613, 15, 18, 615, 74,
1802 14, 615, 0, 0, 619, 619, 244, 0, 0, 619,
1803 594, 615, 0, 0, 0, 82, 339, 0, 92, 93,
1804 100, 309, 408, 498, 497, 499, 496, 0, 495, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 502, 51, 233, 234, 622, 623, 4, 624, 614, 0,
1807 0, 0, 0, 0, 0, 0, 436, 434, 421, 61,
1808 306, 415, 417, 0, 88, 0, 80, 77, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 429, 626, 427, 0, 53,
1812 0, 0, 0, 0, 613, 0, 614, 0, 361, 360,
1813 0, 0, 519, 520, 284, 110, 111, 0, 0, 113,
1814 0, 0, 519, 520, 284, 328, 187, 180, 190, 175,
1815 157, 158, 159, 115, 116, 592, 330, 591, 0, 612,
1816 611, 0, 308, 456, 0, 0, 125, 599, 295, 267,
1817 600, 263, 0, 0, 0, 257, 265, 429, 626, 427,
1818 0, 0, 0, 258, 615, 0, 300, 262, 615, 252,
1819 626, 626, 251, 615, 305, 50, 23, 25, 24, 0,
1820 302, 0, 0, 0, 429, 427, 0, 17, 0, 615,
1821 293, 13, 614, 73, 289, 291, 296, 621, 620, 245,
1822 621, 247, 297, 595, 0, 99, 502, 90, 85, 0,
1823 429, 626, 427, 552, 484, 487, 485, 500, 481, 457,
1824 479, 458, 459, 483, 460, 461, 0, 464, 470, 0,
1825 471, 466, 467, 0, 472, 0, 473, 0, 625, 7,
1826 27, 28, 29, 30, 31, 48, 49, 626, 626, 58,
1827 62, 626, 0, 34, 271, 0, 43, 270, 615, 0,
1828 78, 89, 46, 45, 0, 198, 266, 42, 216, 223,
1829 228, 229, 230, 225, 227, 237, 238, 231, 232, 209,
1830 210, 235, 236, 615, 224, 226, 220, 221, 222, 211,
1831 212, 213, 214, 215, 604, 606, 605, 607, 0, 261,
1832 426, 615, 604, 606, 605, 607, 0, 261, 0, 626,
1833 352, 0, 351, 0, 0, 0, 0, 0, 0, 295,
1834 429, 626, 427, 320, 325, 110, 111, 112, 0, 526,
1835 323, 525, 429, 626, 427, 0, 0, 530, 332, 604,
1836 605, 261, 35, 200, 41, 208, 0, 198, 598, 0,
1837 268, 264, 626, 604, 605, 615, 604, 605, 597, 299,
1838 617, 248, 253, 255, 304, 22, 0, 240, 0, 32,
1839 424, 422, 207, 0, 75, 16, 615, 619, 0, 83,
1840 96, 98, 615, 604, 605, 558, 555, 554, 553, 556,
1841 563, 572, 0, 583, 573, 587, 586, 582, 552, 409,
1842 551, 412, 557, 559, 561, 537, 565, 570, 626, 575,
1843 626, 580, 537, 585, 537, 0, 535, 488, 0, 463,
1844 465, 475, 469, 477, 217, 399, 615, 0, 397, 396,
1845 0, 626, 0, 274, 0, 87, 81, 0, 0, 0,
1846 0, 0, 0, 430, 65, 0, 0, 433, 0, 0,
1847 428, 63, 626, 350, 287, 626, 626, 442, 626, 353,
1848 626, 355, 313, 354, 316, 0, 0, 319, 608, 294,
1849 615, 604, 605, 0, 0, 528, 0, 0, 110, 111,
1850 114, 615, 0, 615, 552, 0, 552, 0, 250, 418,
1851 57, 249, 0, 126, 269, 259, 0, 0, 433, 0,
1852 0, 626, 615, 11, 0, 292, 246, 91, 94, 0,
1853 373, 364, 366, 615, 362, 615, 0, 0, 0, 544,
1854 564, 0, 533, 590, 574, 0, 534, 0, 547, 584,
1855 0, 549, 588, 489, 491, 492, 493, 486, 494, 395,
1856 615, 0, 559, 380, 567, 568, 626, 626, 578, 380,
1857 380, 378, 401, 0, 0, 0, 0, 0, 272, 79,
1858 199, 0, 40, 205, 39, 206, 66, 425, 618, 0,
1859 37, 203, 38, 204, 64, 423, 443, 444, 626, 445,
1860 0, 626, 358, 0, 0, 356, 0, 0, 0, 318,
1861 0, 0, 433, 0, 326, 0, 0, 433, 329, 593,
1862 615, 0, 0, 333, 419, 420, 201, 0, 254, 303,
1863 20, 615, 0, 371, 0, 560, 0, 0, 0, 410,
1864 576, 536, 562, 537, 537, 571, 626, 589, 537, 581,
1865 537, 559, 537, 0, 0, 398, 0, 386, 388, 0,
1866 566, 0, 376, 377, 0, 391, 0, 393, 0, 437,
1867 435, 0, 416, 273, 241, 36, 202, 0, 0, 447,
1868 359, 0, 12, 449, 0, 310, 311, 0, 0, 268,
1869 626, 321, 0, 527, 324, 529, 331, 531, 530, 363,
1870 374, 0, 369, 365, 411, 0, 0, 0, 540, 0,
1871 542, 532, 0, 548, 0, 545, 550, 0, 400, 577,
1872 379, 380, 380, 295, 429, 569, 626, 380, 579, 380,
1873 380, 405, 615, 403, 406, 59, 0, 446, 0, 101,
1874 102, 109, 0, 448, 0, 314, 317, 439, 440, 438,
1875 0, 0, 0, 0, 372, 0, 367, 414, 413, 537,
1876 537, 537, 537, 490, 0, 383, 0, 385, 608, 294,
1877 375, 0, 392, 0, 389, 394, 0, 402, 108, 429,
1878 626, 427, 626, 626, 0, 327, 0, 370, 0, 541,
1879 0, 538, 543, 546, 380, 380, 380, 380, 404, 608,
1880 107, 615, 604, 605, 441, 357, 322, 334, 368, 537,
1881 384, 0, 381, 387, 390, 433, 539, 380, 382
1887 -1, 1, 2, 68, 69, 70, 239, 568, 569, 255,
1888 256, 448, 257, 439, 72, 73, 360, 74, 75, 510,
1889 691, 246, 77, 78, 258, 79, 80, 81, 468, 82,
1890 212, 379, 380, 195, 196, 197, 198, 606, 557, 200,
1891 84, 441, 214, 263, 231, 749, 428, 429, 228, 229,
1892 216, 415, 430, 516, 517, 85, 358, 261, 262, 636,
1893 626, 362, 847, 363, 848, 733, 990, 737, 734, 932,
1894 595, 597, 747, 938, 248, 87, 88, 89, 90, 91,
1895 92, 93, 94, 95, 96, 714, 571, 722, 844, 845,
1896 371, 771, 772, 773, 960, 898, 800, 687, 688, 801,
1897 972, 973, 281, 282, 473, 776, 659, 879, 322, 511,
1898 97, 98, 712, 705, 566, 558, 320, 508, 507, 578,
1899 989, 716, 838, 918, 922, 99, 100, 101, 102, 103,
1900 104, 105, 293, 486, 106, 297, 107, 108, 295, 299,
1901 289, 287, 291, 478, 678, 677, 793, 893, 797, 109,
1902 288, 110, 111, 112, 219, 220, 115, 221, 222, 590,
1903 736, 745, 746, 881, 779, 661, 662, 891, 664, 665,
1904 666, 667, 805, 806, 668, 669, 670, 671, 808, 809,
1905 672, 673, 674, 675, 676, 782, 398, 596, 268, 431,
1906 224, 118, 630, 560, 401, 306, 425, 426, 707, 459,
1912 #define YYPACT_NINF -816
1915 -816, 132, 2698, -816, 7384, -816, -816, -816, 6899, -816,
1916 -816, -816, -816, -816, -816, -816, 7499, 7499, -816, -816,
1917 7499, 4040, 3629, -816, -816, -816, -816, 140, 6764, 0,
1918 -816, 27, -816, -816, -816, 2944, 3766, -816, -816, 3081,
1919 -816, -816, -816, -816, -816, -816, -816, -816, 8879, 8879,
1920 166, 5108, 288, 7844, 8189, 7162, -816, 6629, -816, -816,
1921 -816, 105, 123, 177, 196, 941, 8994, 8879, -816, 17,
1922 -816, 867, -816, 484, -816, -816, 76, 294, 226, -816,
1923 210, 9224, -816, 237, 3060, 285, 311, -816, 9109, 9109,
1924 -816, -816, 6009, 9335, 9446, 9557, 6493, 30, 62, -816,
1925 -816, 256, -816, -816, -816, -816, -816, -816, -816, -816,
1926 -816, -816, -816, 491, 593, -816, 303, 616, -816, -816,
1927 -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
1928 -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
1929 -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
1930 -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
1931 -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
1932 -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
1933 -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
1934 -816, -816, -816, -816, -816, -816, -816, -816, 229, -816,
1935 -816, -816, -816, 270, 8879, 359, 5249, 8879, 8879, 8879,
1936 8879, -816, 310, 3060, 349, -816, -816, 322, 393, 34,
1937 38, 365, 63, 325, -816, -816, -816, 5894, -816, 7499,
1938 7499, -816, -816, 6124, -816, 9109, 679, -816, 309, 332,
1939 5390, -816, -816, -816, 328, 361, 76, -816, 421, 402,
1940 736, 7614, -816, 5108, 362, 17, -816, 867, 0, 408,
1941 -816, 0, 9109, 398, -15, 180, -816, 349, 429, 180,
1942 -816, 0, 502, 941, 9668, 440, -816, 466, 563, 601,
1943 645, -816, -816, -816, -816, -816, -816, 425, -816, 506,
1944 540, 545, 453, 575, 469, 101, 474, 658, 476, 222,
1945 522, -816, -816, -816, -816, -816, -816, -816, 6239, 9109,
1946 9109, 9109, 9109, 7614, 9109, 9109, -816, -816, -816, 498,
1947 -816, -816, -816, 8304, -816, 5108, 7273, 460, 8304, 8879,
1948 8879, 8879, 8879, 8879, 8879, 8879, 8879, 8879, 8879, 8879,
1949 8879, 8879, 8879, 8879, 8879, 8879, 8879, 8879, 8879, 8879,
1950 8879, 8879, 8879, 8879, 8879, 9951, 7499, 10030, 4455, 484,
1951 113, 113, 9109, 9109, 17, 585, 472, 551, -816, -816,
1952 651, 595, 67, 88, 93, 487, 542, 9109, 78, -816,
1953 114, 686, -816, -816, -816, -816, 48, 50, 60, 266,
1954 276, 289, 347, 380, 416, -816, -816, -816, 30, -816,
1955 -816, 10109, -816, -816, 8994, 8994, -816, -816, 240, -816,
1956 -816, -816, 8879, 8879, 7729, -816, -816, 10188, 7499, 10267,
1957 8879, 8879, 7959, -816, 0, 494, -816, -816, 0, -816,
1958 490, 500, -816, 136, -816, -816, -816, -816, -816, 6899,
1959 -816, 8879, 5523, 497, 10188, 10267, 8879, 867, 512, 0,
1960 -816, -816, 6354, 528, -816, 484, -816, 8074, -816, -816,
1961 8189, -816, -816, -816, 309, 703, -816, -816, 529, 9668,
1962 10346, 7499, 10425, 1091, -816, -816, -816, -816, -816, -816,
1963 -816, -816, -816, -816, -816, -816, 35, -816, -816, 481,
1964 -816, -816, -816, 45, -816, 521, -816, 8879, -816, -816,
1965 -816, -816, -816, -816, -816, -816, -816, 70, 70, -816,
1966 -816, 70, 8879, -816, 536, 537, -816, -816, 0, 9668,
1967 557, -816, -816, -816, 566, 3197, -816, -816, 402, 2451,
1968 2451, 2451, 2451, 1100, 1100, 2544, 2079, 2451, 2451, 3334,
1969 3334, 708, 708, 10928, 1100, 1100, 849, 849, 944, 385,
1970 385, 402, 402, 402, 4177, 3218, 4314, 3355, 361, 558,
1971 -816, 0, 760, -816, 768, -816, 361, 3903, 685, 693,
1972 -816, 4596, 689, 4878, 59, 59, 585, 8419, 685, 106,
1973 10504, 7499, 10583, -816, 484, -816, 703, -816, 17, -816,
1974 -816, -816, 10662, 7499, 10109, 4455, 9109, 565, -816, -816,
1975 -816, 1231, -816, 2786, -816, 3060, 6899, 2923, -816, 8879,
1976 349, -816, 325, 2807, 3492, 0, 241, 306, -816, -816,
1977 -816, -816, 7729, 7959, -816, -816, 9109, 3060, 576, -816,
1978 -816, -816, 3060, 5523, 278, -816, 0, 180, 9668, 529,
1979 588, 351, 0, 334, 348, -816, -816, -816, -816, -816,
1980 -816, -816, 893, -816, -816, -816, -816, -816, 1256, -816,
1981 -816, -816, -816, 596, -816, 581, 8879, -816, 583, 672,
1982 589, -816, 591, 682, 603, 702, -816, -816, 858, -816,
1983 -816, -816, -816, -816, 402, -816, 1059, 5664, -816, -816,
1984 5390, 70, 5664, 620, 8534, -816, 529, 9668, 8994, 8879,
1985 646, 8994, 8994, -816, 498, 361, 625, 770, 8994, 8994,
1986 -816, 498, 361, -816, -816, 8649, 766, -816, 527, -816,
1987 766, -816, -816, -816, -816, 685, 228, -816, 71, 89,
1988 0, 116, 125, 9109, 17, -816, 9109, 4455, 588, 351,
1989 -816, 0, 685, 136, 1256, 4455, 1256, 7034, -816, 62,
1990 294, -816, 8879, -816, -816, -816, 8879, 8879, 415, 8879,
1991 8879, 653, 136, -816, 654, -816, -816, -816, 318, 893,
1992 441, -816, 659, 0, -816, 0, 297, 8879, 1256, -816,
1993 -816, 742, -816, -816, -816, 58, -816, 1256, -816, -816,
1994 772, -816, -816, -816, -816, -816, -816, -816, -816, -816,
1995 0, 674, 683, 666, 9779, -816, 667, 589, -816, 673,
1996 677, -816, 675, 807, 690, 5390, 812, 8879, 710, 529,
1997 3060, 8879, -816, 3060, -816, 3060, -816, -816, -816, 8994,
1998 -816, 3060, -816, 3060, -816, -816, 536, -816, 757, -816,
1999 4993, 845, -816, 9109, 685, -816, 685, 5664, 5664, -816,
2000 8764, 4737, 126, 59, -816, 17, 685, -816, -816, -816,
2001 0, 685, 17, -816, -816, -816, 3060, 8879, 7959, -816,
2002 -816, 0, 942, 725, 1005, -816, 723, 5664, 5390, -816,
2003 -816, -816, -816, 733, 738, -816, 589, -816, 740, -816,
2004 743, -816, 740, 5779, 761, -816, 9779, 1256, -816, 830,
2005 709, 742, -816, -816, 1256, -816, 772, -816, 1080, -816,
2006 -816, 754, -816, 752, 3060, -816, 3060, 9890, 113, -816,
2007 -816, 5664, -816, -816, 113, -816, -816, 685, 685, -816,
2008 171, -816, 4455, -816, -816, -816, -816, -816, 565, -816,
2009 756, 942, 492, -816, -816, 880, 762, 1256, -816, 772,
2010 -816, -816, 772, -816, 772, -816, -816, 789, -816, 709,
2011 -816, 780, 782, -816, 10741, -816, 589, 784, -816, 790,
2012 784, -816, 225, -816, -816, -816, 874, -816, 721, 563,
2013 601, 645, 4455, -816, 4596, -816, -816, -816, -816, -816,
2014 5664, 685, 4455, 942, 756, 942, 797, -816, -816, 740,
2015 800, 740, 740, -816, 1256, -816, 772, -816, 764, 799,
2016 -816, 772, -816, 772, -816, -816, 1080, -816, 703, 10820,
2017 7499, 10899, 693, 527, 685, -816, 685, 756, 942, -816,
2018 772, -816, -816, -816, 784, 808, 784, 784, -816, 253,
2019 351, 0, 148, 159, -816, -816, -816, -816, 756, 740,
2020 -816, 772, -816, -816, -816, 169, -816, 784, -816
2026 -816, -816, -816, -380, -816, 23, -816, -566, 358, -816,
2027 505, -816, 20, -816, -308, -42, -75, 39, -816, -330,
2028 -816, 726, -11, 850, -141, 7, -63, -816, -416, 16,
2029 1705, -294, 859, -55, -816, -16, -816, -816, 3, -816,
2030 1056, -816, 1763, -816, -6, 246, -349, 122, 4, -816,
2031 -374, -200, 47, -816, -312, -51, -816, -816, -816, -816,
2032 -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
2033 -816, -816, -816, -816, 74, -816, -816, -816, -816, -816,
2034 -816, -816, -816, -816, -816, -550, -346, -536, -61, -648,
2035 -816, -787, -765, 191, 277, 43, -816, -392, -816, -655,
2036 -816, -48, -816, -816, -816, -816, -816, -816, 215, -816,
2037 -816, -816, -816, -816, -816, -816, -90, -816, -816, -551,
2038 -816, -53, -816, -816, -816, -816, -816, -816, 877, -816,
2039 -816, -816, -816, 684, -816, -816, -816, -816, -816, -816,
2040 -816, 924, -816, -196, -816, -816, -816, -816, -816, 26,
2041 -816, 51, -816, -9, 846, 1250, 889, 1597, 1618, -816,
2042 -816, 54, -816, -407, -359, -311, -804, 957, -693, -447,
2043 -113, 205, 92, -816, -816, -816, -24, -730, -815, 110,
2044 230, -816, -654, -816, -146, -609, -816, -816, -816, 57,
2045 -385, -816, -336, -816, 613, -59, -26, -223, -560, -220,
2052 #define YYTABLE_NINF -627
2055 119, 235, 286, 238, 276, 211, 211, 561, 402, 211,
2056 434, 199, 237, 307, 361, 573, 527, 364, 327, 559,
2057 522, 567, 71, 423, 71, 725, 232, 120, 727, 742,
2058 276, 199, 810, 365, 201, 453, 307, 618, 454, 724,
2059 611, 396, 276, 276, 276, 461, 359, 359, 611, 463,
2060 359, 266, 270, 639, 201, 758, 300, 889, 259, 202,
2061 199, 786, 628, 217, 217, 601, 660, 217, 841, 615,
2062 318, 275, 846, 223, 223, 618, 86, 223, 86, 202,
2063 319, 559, 768, 567, 587, 882, 721, 943, 316, 968,
2064 218, 218, -101, 480, 218, 483, -105, 487, 474, 199,
2065 264, 487, 316, 696, 974, 301, 308, 940, 474, 631,
2066 265, 269, 449, -102, -107, 588, 690, 399, -109, 692,
2067 876, 457, 642, -521, 884, 86, 570, -522, 458, 277,
2068 585, -108, 3, 890, 586, -513, 631, -512, 215, 225,
2069 218, -104, 226, 234, 475, 894, 476, -514, 685, -101,
2070 -106, -103, 421, -102, 475, 277, 476, 655, 304, 240,
2071 305, -104, 218, 218, 489, 400, 218, 370, 381, 381,
2072 852, 856, -106, 314, 315, 849, 994, 679, -109, 861,
2073 656, 857, -103, -513, 518, -512, 840, 682, 577, 968,
2074 686, 433, 858, 435, 317, -514, 451, 902, 903, 307,
2075 304, 619, 305, -92, 882, 621, 943, -96, 317, -604,
2076 624, 467, 974, 490, 230, 416, 211, 889, 211, 211,
2077 455, 416, 250, 276, -93, -98, 634, -605, 432, -100,
2078 1027, 423, 730, 589, 500, 501, 502, 503, 618, 803,
2079 318, 570, -99, 962, 741, 464, 631, 292, 611, 611,
2080 969, 660, -95, 764, 304, 304, 305, 305, 631, 882,
2081 259, -97, -94, 1048, 466, 294, -105, 359, 359, 359,
2082 359, 447, 505, 506, 217, 276, 217, 951, 233, 234,
2083 86, 819, 987, 234, 223, 495, 223, 574, 575, -104,
2084 680, -104, 452, 1000, 925, 695, 926, 680, 740, 815,
2085 -106, 218, -106, 218, 218, 576, 934, 218, 307, 218,
2086 -103, 936, -103, 788, 86, 791, 460, 931, 882, 296,
2087 359, 359, 321, 458, 591, 86, 877, 86, 71, 446,
2088 759, 499, 259, 504, 496, 584, 218, 660, 298, 660,
2089 888, 323, 520, 892, -433, 211, 324, 775, 277, 424,
2090 1035, 427, 328, -515, 432, -108, -104, 1010, 58, -95,
2091 565, 1016, 513, -517, 850, 406, 991, 523, 234, 304,
2092 515, 305, -339, -97, 826, 515, -516, 985, 986, 988,
2093 851, 834, 86, 218, 218, 218, 218, 86, 218, 218,
2094 522, -604, 404, -73, -105, 760, -105, 218, 355, 86,
2095 277, -515, 218, 837, 565, -433, 467, 211, 233, 254,
2096 878, -517, 755, 765, -87, 408, 432, 766, 276, -339,
2097 -339, -106, 565, 625, -516, 412, 1026, -288, 416, 416,
2098 218, -288, 86, 860, -518, 862, 218, 218, -294, 413,
2099 119, 1025, 199, 602, 604, 356, 357, 440, 565, -95,
2100 -433, 218, -433, -433, 420, 329, 467, 967, 414, 970,
2101 211, 422, 71, -97, 442, 201, 227, -507, 276, 432,
2102 -95, 612, 329, -95, 1046, 565, 1047, -95, 218, 218,
2103 417, 1055, -518, 618, -97, -294, -294, -97, 474, -605,
2104 202, -97, 218, 645, 611, 646, 647, 648, 649, 230,
2105 999, 450, 1001, -510, 867, 689, 689, 1002, 444, 689,
2106 352, 353, 354, -601, 637, -507, 86, 700, 723, 723,
2107 859, 314, 315, -72, 948, 950, 86, 418, 419, 953,
2108 -103, 955, 735, 956, 475, 706, 476, 477, 456, 869,
2109 811, 843, 840, 277, 645, 218, 646, 647, 648, 649,
2110 875, -510, 703, 470, 743, 418, 445, 1034, 465, 1036,
2111 710, 755, 462, 704, 254, 484, 1037, 717, -602, 474,
2112 211, 711, 982, 804, -507, 767, 469, 872, 984, 432,
2113 -521, 488, 211, 1049, 762, 565, 491, 276, 494, 706,
2114 753, 432, 497, 277, 509, 748, 521, 565, 443, 751,
2115 471, 472, 577, 474, 1057, 750, -101, 579, 474, 199,
2116 416, 254, 482, 498, -608, 475, 706, 476, 479, -601,
2117 583, -507, -507, 681, 726, -601, 622, -92, 995, -510,
2118 629, 119, 201, 620, 467, 887, 623, 935, 474, 887,
2119 1029, 1031, 1032, 1033, 633, 86, 276, 86, 939, 475,
2120 -519, 476, 481, 71, 475, 218, 476, 202, 853, 864,
2121 812, 855, 807, 683, -87, 638, 783, 218, 783, 86,
2122 218, 1041, -266, 694, -602, -608, -510, -510, 854, 761,
2123 -602, 698, -522, 254, 475, 631, 476, 485, -520, 689,
2124 1056, 359, 863, 697, 359, 713, -424, -519, -519, 827,
2125 218, 715, 719, 744, 706, 405, 748, 86, -102, 763,
2126 751, 777, 277, 839, 842, 706, 842, 778, 842, 781,
2127 -608, 474, -608, -608, 784, 785, -604, 787, 76, -93,
2128 76, -109, -284, 436, 789, -520, -520, 523, 580, 790,
2129 822, 824, 76, 76, 437, 438, 76, 830, 832, 812,
2130 199, 811, -100, 276, 792, 887, -267, 886, 811, 416,
2131 811, 86, 515, 821, 86, 828, 86, 475, 924, 476,
2132 492, 277, 218, 592, 812, 218, 218, 76, 329, -284,
2133 -284, 840, 218, 218, 804, 581, 582, 870, 804, 868,
2134 -295, 804, 76, 804, 895, 874, 964, 723, 896, 933,
2135 650, 359, 897, 901, 783, 783, 937, 218, 1019, 904,
2136 218, 86, 651, 906, 76, 76, 908, 909, 76, 86,
2137 593, 594, 912, 910, 645, 446, 646, 647, 648, 649,
2138 650, 350, 351, 352, 353, 354, 919, -295, -295, 923,
2139 654, 655, 651, 593, 594, 276, -268, 917, 113, 708,
2140 113, -108, 905, 907, 921, 1020, 1021, 709, 811, 829,
2141 811, 941, 944, 652, 656, 811, 276, 811, 915, 947,
2142 654, 655, -99, 807, 949, -104, 952, 966, 900, 954,
2143 807, 958, 807, -106, 783, -103, 963, 975, -269, 86,
2144 997, 804, 993, 804, 656, 998, -95, 113, 804, 1003,
2145 804, 278, -604, 218, -97, 811, -94, 309, 310, 311,
2146 312, 313, 794, 795, 86, 796, 1004, 218, 1006, 329,
2147 1011, 86, 86, 46, 47, 86, 1013, 278, 842, 718,
2148 1018, 720, 76, 1028, 342, 343, 1030, -605, 804, 372,
2149 382, 382, 382, 368, 1051, 645, 1017, 646, 647, 648,
2150 649, 86, 86, 76, 385, 76, 76, 635, 835, 76,
2151 871, 76, 1045, 799, 783, 865, 76, 86, 1038, 1044,
2152 959, 349, 350, 351, 352, 353, 354, 76, 403, 76,
2153 807, 493, 807, 290, 769, 397, 885, 807, 76, 807,
2154 770, 978, 992, 965, 645, 86, 646, 647, 648, 649,
2155 41, 42, 43, 44, 1005, 1007, 86, 961, 883, 211,
2156 1012, 598, 1014, 1015, 329, 706, 0, 0, 432, 0,
2157 717, 842, 0, 0, 565, 0, 0, 807, 0, 342,
2158 343, 0, 0, 769, 76, 76, 76, 76, 76, 76,
2159 76, 76, 0, 0, 0, 813, 0, 0, 814, 76,
2160 816, 76, 113, 0, 76, 0, 86, 645, 86, 646,
2161 647, 648, 649, 0, 86, 0, 86, 350, 351, 352,
2162 353, 354, 213, 213, 0, 0, 213, 1050, 1052, 1053,
2163 1054, 0, 76, 0, 76, 0, 113, 0, 76, 76,
2164 0, 0, 0, 0, 218, 0, 769, 113, 0, 113,
2165 1058, 0, 942, 76, 247, 249, 0, 0, 0, 213,
2166 213, 645, 0, 646, 647, 648, 649, 650, 0, 0,
2167 278, 0, 302, 303, 0, 0, 0, 0, 0, 651,
2168 76, 76, 971, 0, 646, 647, 648, 649, 0, 0,
2169 0, 0, 0, 645, 76, 646, 647, 648, 649, 650,
2170 652, 0, 0, 0, 113, 0, 653, 654, 655, 113,
2171 0, 651, 0, 0, 0, 0, 0, 0, 76, 0,
2172 329, 113, 278, 911, 0, 0, 0, 0, 76, 0,
2173 0, 656, 652, 0, 657, 342, 343, 0, 653, 654,
2174 655, 0, 0, 0, 0, 0, 0, 76, 920, 0,
2175 0, 0, 234, 0, 113, 927, 928, 0, 0, 930,
2176 0, 0, 0, 656, 0, 0, 657, 0, 0, 0,
2177 347, 348, 349, 350, 351, 352, 353, 354, 0, 658,
2178 0, -626, 0, 0, 0, 945, 946, 0, 0, -626,
2179 -626, -626, 0, 0, -626, -626, -626, 0, -626, 0,
2180 0, 957, 114, 0, 114, 0, 0, -626, -626, 0,
2181 213, 0, 0, 213, 213, 213, 302, 0, -626, -626,
2182 0, -626, -626, -626, -626, -626, 0, 0, 0, 983,
2183 0, 0, 0, 213, 0, 213, 213, 0, 113, 0,
2184 0, 0, 0, 0, 0, 0, 0, 76, 113, 76,
2185 0, 114, 0, 0, 0, 279, 0, 76, 645, 0,
2186 646, 647, 648, 649, 650, 278, 0, 0, -626, 76,
2187 0, 76, 76, 0, 0, 0, 651, 0, 0, 0,
2188 0, 279, 0, 0, 0, 0, 0, 0, 0, 0,
2189 1022, -626, 1023, 373, 383, 383, 383, 652, 1024, 0,
2190 0, 0, 76, 653, 654, 655, 0, 0, 0, 76,
2191 0, 0, 0, -626, -626, 278, -626, 0, 0, 230,
2192 -626, 0, -626, 0, -626, 0, 0, 0, 656, 213,
2193 0, 657, 0, 0, 525, 528, 529, 530, 531, 532,
2194 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
2195 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
2196 553, 0, 213, 76, 0, 0, 76, 113, 76, 113,
2197 0, 0, 0, 0, 76, 0, 0, 76, 76, 0,
2198 663, 0, 0, 0, 76, 76, 0, 0, 0, 0,
2199 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2200 0, 0, 0, 0, 0, 0, 114, 0, 0, 76,
2201 603, 605, 76, 76, 0, 0, 0, 0, 607, 213,
2202 213, 76, 0, 0, 213, 0, 603, 605, 213, 113,
2203 0, 0, 0, 0, 278, 0, 0, 0, 0, 0,
2204 114, 0, 0, 0, 0, 0, 0, 627, 0, 0,
2205 0, 114, 632, 114, 0, 0, 0, 0, 0, 0,
2206 0, 0, 0, 213, 0, 0, 213, 0, 0, 0,
2207 0, 0, 0, 0, 279, 0, 0, 213, 0, 0,
2208 0, 0, 0, 113, 0, 0, 113, 0, 113, 0,
2209 0, 76, 0, 278, 0, 0, 0, 0, 0, 0,
2210 0, 0, 0, 684, 0, 76, 0, 0, 114, 0,
2211 0, 0, 0, 114, 0, 0, 76, 0, 213, 76,
2212 0, 0, 0, 76, 76, 114, 279, 76, 0, 0,
2213 0, 0, 0, 113, 0, 0, 0, 0, 0, 0,
2214 0, 113, 0, 0, 0, 0, 0, 0, 0, 116,
2215 0, 116, 0, 76, 76, 0, 0, 0, 114, 774,
2216 0, 0, 0, 0, 0, 663, 0, 0, 0, 76,
2217 117, 0, 117, 0, 0, 0, 0, 0, 0, 0,
2218 0, 0, 0, 213, 0, 0, 0, 213, 0, 0,
2219 0, 0, 0, 802, 0, 0, 0, 76, 116, 213,
2220 382, 0, 0, 0, 0, 0, 0, 0, 76, 0,
2221 0, 113, 0, 0, 0, 213, 0, 0, 0, 117,
2222 0, 0, 0, 280, 0, 0, 0, 0, 213, 213,
2223 0, 0, 0, 0, 0, 0, 113, 0, 0, 0,
2224 0, 0, 114, 113, 113, 0, 0, 113, 0, 280,
2225 0, 663, 114, 663, 0, 0, 0, 83, 76, 83,
2226 76, 374, 384, 384, 0, 0, 76, 0, 76, 279,
2227 0, 0, 213, 113, 113, 0, 774, 873, 0, 0,
2228 0, 0, 0, 0, 0, 663, 0, 0, 0, 113,
2229 0, 0, 382, 0, 663, 0, 76, 0, 0, 0,
2230 213, 0, 0, 0, 607, 820, 83, 823, 825, 0,
2231 0, 0, 0, 979, 831, 833, 0, 113, 0, 279,
2232 0, 213, 0, 0, 0, 0, 0, 0, 113, 0,
2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 0, 0, 0, 0, 0, 0, 0, 0, 369, 0,
2235 0, 0, 0, 116, 0, 0, 0, 0, 866, 0,
2236 0, 0, 823, 825, 0, 831, 833, 267, 0, 0,
2237 0, 114, 0, 114, 117, 0, 0, 0, 113, 774,
2238 113, 774, 0, 213, 0, 0, 113, 116, 113, 0,
2239 0, 0, 0, 0, 0, 114, 0, 0, 116, 0,
2240 116, 0, 0, 0, 802, 0, 0, 0, 117, 0,
2241 0, 802, 0, 0, 0, 0, 0, 0, 0, 117,
2242 0, 117, 0, 213, 0, 0, 0, 914, 0, 0,
2243 0, 0, 0, 114, 0, 916, 0, 0, 279, 0,
2244 0, 0, 280, 0, 0, 0, 0, 0, 774, 996,
2245 0, 0, 0, 0, 663, 116, 213, 0, 0, 0,
2246 116, 83, 0, 0, 0, 0, 0, 0, 0, 0,
2247 0, 0, 116, 916, 213, 0, 117, 0, 0, 0,
2248 0, 117, 0, 0, 0, 0, 0, 114, 0, 0,
2249 114, 0, 114, 117, 280, 83, 0, 279, 0, 0,
2250 774, 0, 774, 0, 0, 116, 83, 0, 83, 0,
2251 0, 802, 0, 0, 0, 0, 0, 407, 0, 0,
2252 409, 410, 411, 0, 0, 0, 117, 0, 0, 0,
2253 0, 0, 0, 0, 0, 774, 0, 114, 0, 0,
2254 0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
2255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2256 0, 0, 0, 83, 0, 0, 0, 0, 83, 0,
2257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2258 83, 0, 0, 524, 0, 0, 0, 0, 0, 116,
2259 0, 0, 0, 0, 0, 0, 0, 0, 0, 116,
2260 0, 0, 0, 0, 383, 0, 0, 0, 0, 0,
2261 117, 0, 0, 83, 0, 114, 0, 0, 0, 0,
2262 117, 0, 0, 0, 0, 0, 213, 0, 0, 0,
2263 0, 0, 0, 0, 0, 0, 514, 280, 0, 0,
2264 114, 526, 0, 0, 0, 0, 0, 114, 114, 0,
2265 0, 114, 0, 0, 0, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2267 0, 0, 0, 0, 0, 0, 0, 114, 114, 0,
2268 0, 0, 0, 0, 0, 0, 0, 280, 0, 0,
2269 0, 0, 0, 114, 0, 0, 383, 83, 0, 329,
2270 330, 331, 332, 333, 334, 335, 336, 83, 338, 339,
2271 0, 0, 0, 0, 342, 343, 0, 980, 116, 0,
2272 116, 114, 0, 0, 0, 0, 608, 610, 0, 0,
2273 0, 0, 114, 0, 0, 267, 0, 0, 0, 117,
2274 0, 117, 116, 0, 0, 0, 0, 345, 346, 347,
2275 348, 349, 350, 351, 352, 353, 354, 0, 0, 0,
2276 0, 0, 0, 117, 0, 0, 0, 0, 0, 0,
2277 610, 0, 0, 267, 0, 0, 0, 0, 0, 0,
2278 116, 0, 114, 0, 114, 0, 0, 0, 0, 0,
2279 114, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2280 0, 117, 0, 0, 0, 0, 280, 0, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2282 0, 0, 0, 0, 0, 693, 83, 0, 83, 0,
2283 0, 0, 0, 0, 116, 0, 0, 116, 0, 116,
2284 0, 0, 0, 0, 0, 0, 798, 0, 0, 0,
2285 83, 0, 0, 0, 0, 117, 0, 0, 117, 0,
2286 117, 0, 0, 0, 0, 280, 0, 0, 0, 0,
2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2288 0, 0, 0, 0, 116, 0, 0, 0, 83, 0,
2289 526, 0, 116, 0, 0, 0, 0, 0, 0, 0,
2290 0, 0, 0, 0, 0, 117, 0, 0, 0, 0,
2291 0, 0, 0, 117, 0, 0, 0, 0, 0, 0,
2292 0, 0, 754, 0, 0, 0, 0, 0, 0, 0,
2293 0, 0, 0, 0, 0, 610, 267, 0, 0, 0,
2294 0, 0, 83, 0, 0, 83, 0, 83, 0, 0,
2295 0, 0, 0, 524, 0, 0, 0, 0, 0, 0,
2296 0, 0, 116, 0, 0, 0, 0, 0, 0, 0,
2297 0, 0, 384, 0, 0, 0, 0, 0, 0, 780,
2298 0, 0, 0, 117, 0, 0, 0, 116, 0, 0,
2299 0, 0, 83, 0, 116, 116, 0, 0, 116, 0,
2300 83, 0, 0, 0, 0, 0, 0, 818, 117, 0,
2301 0, 0, 0, 0, 0, 117, 117, 0, 0, 117,
2302 0, 0, 0, 0, 116, 116, 0, 0, 836, 0,
2303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2304 116, 0, 0, 0, 0, 117, 117, 0, 0, 0,
2305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2306 0, 117, 0, 0, 384, 0, 0, 0, 116, 0,
2307 83, 329, -627, -627, -627, -627, 334, 335, 0, 116,
2308 -627, -627, 0, 0, 0, 981, 342, 343, 0, 117,
2309 880, 0, 0, 0, 0, 83, 0, 0, 0, 0,
2310 117, 0, 83, 83, 0, 0, 83, 0, 0, 0,
2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 345,
2312 346, 347, 348, 349, 350, 351, 352, 353, 354, 116,
2313 913, 116, 83, 83, 0, 0, 0, 116, 0, 116,
2314 0, 0, 0, 0, 0, 0, 0, 0, 83, 0,
2315 117, 0, 117, 0, 0, 0, 0, 0, 117, 0,
2316 117, 0, 0, 929, 329, 330, 331, 332, 333, 334,
2317 335, 0, 977, 338, 339, 0, 83, 0, 0, 342,
2318 343, 267, 0, 0, 0, 0, 0, 83, 0, 0,
2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2321 0, 0, 345, 346, 347, 348, 349, 350, 351, 352,
2322 353, 354, 0, 0, 0, 0, 0, 0, 0, 0,
2323 0, 0, 0, 0, 0, 0, 0, 83, 0, 83,
2324 0, 0, 0, 0, 0, 83, 0, 83, -626, 4,
2325 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2326 11, 0, 0, 0, 12, 0, 13, 14, 15, 16,
2327 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2328 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2329 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2330 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2331 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2333 0, 0, 0, 0, 0, 0, 50, 0, 0, 51,
2334 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
2335 58, 59, 60, 61, 62, 63, 64, -608, 0, 0,
2336 0, 0, 0, 0, 0, -608, -608, -608, 0, 0,
2337 -608, -608, -608, 0, -608, 0, 65, 66, 67, 0,
2338 752, 0, 0, -608, -608, -608, -608, 0, 0, -626,
2339 0, -626, 0, 0, -608, -608, 0, -608, -608, -608,
2340 -608, -608, 0, 0, 0, 0, 329, 330, 331, 332,
2341 333, 334, 335, 336, 337, 338, 339, 340, 341, 0,
2342 0, 342, 343, 0, 0, 0, 0, -608, -608, -608,
2343 -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
2344 0, 0, -608, -608, -608, 0, 756, -608, 0, 0,
2345 0, 0, 344, -608, 345, 346, 347, 348, 349, 350,
2346 351, 352, 353, 354, 0, 0, 0, -608, 0, 0,
2347 -608, 0, -105, -608, -608, -608, -608, -608, -608, -608,
2348 -608, -608, -608, -608, -608, 0, 0, 0, 0, -608,
2349 -608, -608, -608, -608, -507, 0, -608, -608, -608, 0,
2350 -608, 0, -507, -507, -507, 0, 0, -507, -507, -507,
2351 0, -507, 0, 0, 0, 0, 0, 699, 0, -507,
2352 0, -507, -507, -507, 0, 0, 0, 0, 0, 0,
2353 0, -507, -507, 0, -507, -507, -507, -507, -507, 0,
2354 0, 0, 0, 329, 330, 331, 332, 333, 334, 335,
2355 336, 337, 338, 339, 340, 341, 0, 0, 342, 343,
2356 0, 0, 0, 0, -507, -507, -507, -507, -507, -507,
2357 -507, -507, -507, -507, -507, -507, -507, 0, 0, -507,
2358 -507, -507, 0, -507, -507, 0, 0, 0, 0, 344,
2359 -507, 345, 346, 347, 348, 349, 350, 351, 352, 353,
2360 354, 0, 0, 0, -507, 0, 0, -507, 0, -507,
2361 -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
2362 -507, -507, 0, 0, 0, 0, 0, -507, -507, -507,
2363 -507, -510, 0, -507, -507, -507, 0, -507, 0, -510,
2364 -510, -510, 0, 0, -510, -510, -510, 0, -510, 0,
2365 0, 0, 0, 0, 0, 0, -510, 0, -510, -510,
2366 -510, 0, 0, 0, 0, 0, 0, 0, -510, -510,
2367 0, -510, -510, -510, -510, -510, 0, 0, 0, 0,
2368 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
2369 339, 340, 341, 0, 0, 342, 343, 0, 0, 0,
2370 0, -510, -510, -510, -510, -510, -510, -510, -510, -510,
2371 -510, -510, -510, -510, 0, 0, -510, -510, -510, 0,
2372 -510, -510, 0, 0, 0, 0, 344, -510, 345, 346,
2373 347, 348, 349, 350, 351, 352, 353, 354, 0, 0,
2374 0, -510, 0, 0, -510, 0, -510, -510, -510, -510,
2375 -510, -510, -510, -510, -510, -510, -510, -510, -510, 0,
2376 0, 0, 0, 0, -510, -510, -510, -510, -609, 0,
2377 -510, -510, -510, 0, -510, 0, -609, -609, -609, 0,
2378 0, -609, -609, -609, 0, -609, 0, 0, 0, 0,
2379 0, 699, 0, 0, -609, -609, -609, -609, 0, 0,
2380 0, 0, 0, 0, 0, -609, -609, 0, -609, -609,
2381 -609, -609, -609, 0, 0, 0, 0, 329, 330, 331,
2382 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
2383 0, 0, 342, 343, 0, 0, 0, 0, -609, -609,
2384 -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
2385 -609, 0, 0, -609, -609, -609, 0, 0, -609, 0,
2386 0, 0, 0, 344, -609, 345, 346, 347, 348, 349,
2387 350, 351, 352, 353, 354, 0, 0, 0, -609, 0,
2388 0, -609, 0, -243, -609, -609, -609, -609, -609, -609,
2389 -609, -609, -609, -609, -609, -609, 0, 0, 0, 0,
2390 -609, -609, -609, -609, -609, -610, 0, -609, -609, -609,
2391 0, -609, 0, -610, -610, -610, 0, 0, -610, -610,
2392 -610, 0, -610, 0, 0, 0, 0, 0, 0, 0,
2393 0, -610, -610, -610, -610, 0, 0, 0, 0, 0,
2394 0, 0, -610, -610, 0, -610, -610, -610, -610, -610,
2395 0, 0, 0, 0, 329, 330, 331, 332, 333, 334,
2396 335, 336, 337, 338, 339, -627, -627, 0, 0, 342,
2397 343, 0, 0, 0, 0, -610, -610, -610, -610, -610,
2398 -610, -610, -610, -610, -610, -610, -610, -610, 0, 0,
2399 -610, -610, -610, 0, 0, -610, 0, 0, 0, 0,
2400 0, -610, 345, 346, 347, 348, 349, 350, 351, 352,
2401 353, 354, 0, 0, 0, -610, 0, 0, -610, 0,
2402 0, -610, -610, -610, -610, -610, -610, -610, -610, -610,
2403 -610, -610, -610, 0, 0, 0, 0, -610, -610, -610,
2404 -610, -610, -294, 0, -610, -610, -610, 0, -610, 0,
2405 -294, -294, -294, 0, 0, -294, -294, -294, 0, -294,
2406 0, 0, 0, 0, 0, 0, 0, 0, 0, -294,
2407 -294, -294, 0, 0, 0, 0, 0, 0, 0, -294,
2408 -294, 0, -294, -294, -294, -294, -294, 0, 0, 0,
2409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2411 0, 0, -294, -294, -294, -294, -294, -294, -294, -294,
2412 -294, -294, -294, -294, -294, 0, 0, -294, -294, -294,
2413 0, 757, -294, 0, 0, 0, 0, 0, -294, 0,
2414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2415 0, 0, -294, 0, 0, -294, 0, -107, -294, -294,
2416 -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
2417 0, 0, 0, 0, 0, -294, -294, -294, -294, -432,
2418 0, -294, -294, -294, 0, -294, 0, -432, -432, -432,
2419 0, 0, -432, -432, -432, 0, -432, 0, 0, 0,
2420 0, 0, 0, 0, 0, -432, -432, -432, 0, 0,
2421 0, 0, 0, 0, 0, 0, -432, -432, 0, -432,
2422 -432, -432, -432, -432, 0, 0, 0, 0, 0, 0,
2423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2424 0, 0, 0, 0, 0, 0, 0, 0, 0, -432,
2425 -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
2426 -432, -432, 0, 0, -432, -432, -432, 0, 0, -432,
2427 0, 0, 0, 0, 0, -432, 0, 0, 0, 0,
2428 0, 0, 0, 0, 0, 0, 0, 0, 0, -432,
2429 0, 0, 0, 0, 0, -432, 0, -432, -432, -432,
2430 -432, -432, -432, -432, -432, -432, -432, 0, 0, 0,
2431 0, -432, -432, -432, -432, -432, -285, 230, -432, -432,
2432 -432, 0, -432, 0, -285, -285, -285, 0, 0, -285,
2433 -285, -285, 0, -285, 0, 0, 0, 0, 0, 0,
2434 0, 0, 0, -285, -285, -285, 0, 0, 0, 0,
2435 0, 0, 0, -285, -285, 0, -285, -285, -285, -285,
2436 -285, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2438 0, 0, 0, 0, 0, 0, -285, -285, -285, -285,
2439 -285, -285, -285, -285, -285, -285, -285, -285, -285, 0,
2440 0, -285, -285, -285, 0, 0, -285, 0, 0, 0,
2441 0, 0, -285, 0, 0, 0, 0, 0, 0, 0,
2442 0, 0, 0, 0, 0, 0, -285, 0, 0, -285,
2443 0, 0, -285, -285, -285, -285, -285, -285, -285, -285,
2444 -285, -285, -285, -285, 0, 0, 0, 0, 0, -285,
2445 -285, -285, -285, -422, 0, -285, -285, -285, 0, -285,
2446 0, -422, -422, -422, 0, 0, -422, -422, -422, 0,
2447 -422, 0, 0, 0, 0, 0, 0, 0, 0, -422,
2448 -422, -422, 0, 0, 0, 0, 0, 0, 0, 0,
2449 -422, -422, 0, -422, -422, -422, -422, -422, 0, 0,
2450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2452 0, 0, 0, -422, -422, -422, -422, -422, -422, -422,
2453 -422, -422, -422, -422, -422, -422, 0, 0, -422, -422,
2454 -422, 0, 0, -422, 0, 0, 0, 0, 0, -422,
2455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2456 0, 0, 0, -422, 0, 0, 0, 0, 0, -422,
2457 0, -422, -422, -422, -422, -422, -422, -422, -422, -422,
2458 -422, 0, 0, 0, 0, -422, -422, -422, -422, -422,
2459 -301, -422, -422, -422, -422, 0, -422, 0, -301, -301,
2460 -301, 0, 0, -301, -301, -301, 0, -301, 0, 0,
2461 0, 0, 0, 0, 0, 0, 0, -301, -301, 0,
2462 0, 0, 0, 0, 0, 0, 0, -301, -301, 0,
2463 -301, -301, -301, -301, -301, 0, 0, 0, 0, 0,
2464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2466 -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
2467 -301, -301, -301, 0, 0, -301, -301, -301, 0, 0,
2468 -301, 0, 0, 0, 0, 0, -301, 0, 0, 0,
2469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2470 -301, 0, 0, 0, 0, 0, -301, 0, -301, -301,
2471 -301, -301, -301, -301, -301, -301, -301, -301, 0, 0,
2472 0, 0, 0, -301, -301, -301, -301, -608, 227, -301,
2473 -301, -301, 0, -301, 0, -608, -608, -608, 0, 0,
2474 0, -608, -608, 0, -608, 0, 0, 0, 0, 0,
2475 0, 0, 0, -608, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, -608, -608, 0, -608, -608, -608,
2477 -608, -608, 0, 0, 0, 0, 0, 0, 0, 0,
2478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2479 0, 0, 0, 0, 0, 0, 0, -608, -608, -608,
2480 -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
2481 0, 0, -608, -608, -608, 0, 701, 0, 0, 0,
2482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2483 0, 0, 0, 0, 0, 0, 0, -608, 0, 0,
2484 0, 0, -105, -608, 0, -608, -608, -608, -608, -608,
2485 -608, -608, -608, -608, -608, 0, 0, 0, 0, -608,
2486 -608, -608, -608, -96, -294, 0, -608, 0, -608, 0,
2487 -608, 0, -294, -294, -294, 0, 0, 0, -294, -294,
2488 0, -294, 0, 0, 0, 0, 0, 0, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2490 0, -294, -294, 0, -294, -294, -294, -294, -294, 0,
2491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2493 0, 0, 0, 0, -294, -294, -294, -294, -294, -294,
2494 -294, -294, -294, -294, -294, -294, -294, 0, 0, -294,
2495 -294, -294, 0, 702, 0, 0, 0, 0, 0, 0,
2496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2497 0, 0, 0, 0, -294, 0, 0, 0, 0, -107,
2498 -294, 0, -294, -294, -294, -294, -294, -294, -294, -294,
2499 -294, -294, 0, 0, 0, 0, 0, -294, -294, -294,
2500 -98, 0, 0, -294, 0, -294, 251, -294, 5, 6,
2501 7, 8, 9, -626, -626, -626, 10, 11, 0, 0,
2502 -626, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2503 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2504 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2505 28, 29, 252, 31, 32, 33, 34, 35, 36, 37,
2506 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2507 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2509 0, 0, 0, 50, 0, 0, 51, 52, 0, 53,
2510 54, 0, 55, 0, 0, 56, 57, 58, 59, 60,
2511 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
2512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2513 0, 0, 0, 65, 66, 67, 0, 0, 0, 0,
2514 0, 0, 0, 0, 0, 0, -626, 251, -626, 5,
2515 6, 7, 8, 9, 0, 0, -626, 10, 11, 0,
2516 -626, -626, 12, 0, 13, 14, 15, 16, 17, 18,
2517 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2518 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2519 0, 28, 29, 252, 31, 32, 33, 34, 35, 36,
2520 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2521 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2523 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2524 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2525 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2527 0, 0, 0, 0, 65, 66, 67, 0, 0, 0,
2528 0, 0, 0, 0, 0, 0, 0, -626, 251, -626,
2529 5, 6, 7, 8, 9, 0, 0, -626, 10, 11,
2530 0, 0, -626, 12, -626, 13, 14, 15, 16, 17,
2531 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2532 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2533 0, 0, 28, 29, 252, 31, 32, 33, 34, 35,
2534 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2535 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
2536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2537 0, 0, 0, 0, 0, 50, 0, 0, 51, 52,
2538 0, 53, 54, 0, 55, 0, 0, 56, 57, 58,
2539 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
2540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2541 0, 0, 0, 0, 0, 65, 66, 67, 0, 0,
2542 0, 0, 0, 0, 0, 0, 0, 0, -626, 251,
2543 -626, 5, 6, 7, 8, 9, 0, 0, -626, 10,
2544 11, 0, 0, -626, 12, 0, 13, 14, 15, 16,
2545 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2546 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2547 0, 0, 0, 28, 29, 252, 31, 32, 33, 34,
2548 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2549 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2551 0, 0, 0, 0, 0, 0, 50, 0, 0, 51,
2552 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
2553 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
2554 0, 0, 0, 0, 251, 0, 5, 6, 7, 8,
2555 9, 0, -626, -626, 10, 11, 65, 66, 67, 12,
2556 0, 13, 14, 15, 16, 17, 18, 19, 0, -626,
2557 0, -626, 0, 20, 21, 22, 23, 24, 25, 26,
2558 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2559 252, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2560 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
2561 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2563 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
2564 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
2565 63, 64, 0, 0, 0, 0, 0, 0, 0, 251,
2566 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2567 11, 65, 66, 67, 12, 0, 13, 14, 15, 16,
2568 17, 18, 19, 0, -626, 0, -626, 0, 20, 21,
2569 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2570 0, 0, 0, 28, 29, 252, 31, 32, 33, 34,
2571 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2572 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2574 0, 0, 0, 0, 0, 0, 50, 0, 0, 253,
2575 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
2576 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
2577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2578 0, 0, 0, 0, 0, 0, 65, 66, 67, 0,
2579 0, 0, 0, 0, 0, 0, 0, -626, 0, -626,
2580 251, -626, 5, 6, 7, 8, 9, 0, 0, 0,
2581 10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
2582 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2583 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2584 0, 0, 0, 0, 28, 29, 252, 31, 32, 33,
2585 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2586 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2588 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2589 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
2590 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2592 0, 0, 0, 0, 0, 0, 0, 65, 66, 67,
2593 0, 0, 0, 0, 0, 0, 0, 0, -626, 0,
2594 -626, 251, -626, 5, 6, 7, 8, 9, 0, 0,
2595 0, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2596 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2597 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2598 0, 0, 0, 0, 0, 28, 29, 252, 31, 32,
2599 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2600 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
2601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2602 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,
2603 0, 51, 52, 0, 53, 54, 0, 55, 0, 0,
2604 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2606 0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
2607 67, 0, 0, -626, 4, 0, 5, 6, 7, 8,
2608 9, -626, 0, -626, 10, 11, 0, 0, 0, 12,
2609 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2610 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2611 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2612 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2613 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
2614 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2616 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
2617 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
2618 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2620 0, 65, 66, 67, 0, 0, -626, 0, 0, 0,
2621 0, 0, 0, 0, -626, 251, -626, 5, 6, 7,
2622 8, 9, 0, 0, -626, 10, 11, 0, 0, 0,
2623 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2624 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2625 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2626 29, 252, 31, 32, 33, 34, 35, 36, 37, 38,
2627 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2628 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2630 0, 0, 50, 0, 0, 51, 52, 0, 53, 54,
2631 0, 55, 0, 0, 56, 57, 58, 59, 60, 61,
2632 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2633 251, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2634 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
2635 16, 17, 18, 19, 0, -626, 0, -626, 0, 20,
2636 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2637 0, 0, 0, 0, 28, 29, 252, 31, 32, 33,
2638 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2639 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2641 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2642 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
2643 57, 58, 59, 60, 61, 62, 63, 64, 0, -626,
2644 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2645 0, 9, 0, 0, 0, 10, 11, 65, 66, 67,
2646 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2647 -626, 0, -626, 0, 20, 21, 22, 23, 24, 25,
2648 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
2649 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2650 39, 40, 204, 41, 42, 43, 44, 0, 45, 46,
2651 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2654 0, 207, 208, 209, 56, 57, 58, 59, 60, 61,
2655 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2657 10, 11, 65, 210, 67, 12, 0, 13, 14, 15,
2658 16, 17, 18, 19, 0, 0, 0, 234, 0, 20,
2659 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2660 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2661 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2662 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2664 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2665 206, 52, 0, 53, 54, 0, 0, 0, 0, 56,
2666 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2667 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2668 0, 9, 0, 0, 0, 10, 11, 65, 66, 67,
2669 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2670 304, 0, 305, 0, 20, 21, 22, 23, 24, 25,
2671 26, 0, 0, 27, 0, 0, 0, 0, 0, 0,
2672 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2673 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2674 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2677 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
2678 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2679 0, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2680 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
2681 16, 17, 18, 19, 0, 0, 0, 234, 0, 20,
2682 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2683 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
2684 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2685 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2688 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
2689 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2690 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2691 8, 9, 0, 0, 0, 10, 11, 65, 66, 67,
2692 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2693 498, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2694 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2695 29, 252, 31, 32, 33, 34, 35, 36, 37, 38,
2696 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2697 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2699 0, 0, 50, 0, 0, 51, 52, 0, 53, 54,
2700 0, 55, 0, 0, 56, 57, 58, 59, 60, 61,
2701 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2703 0, 0, 65, 66, 67, 0, 0, 0, 0, 0,
2704 0, 0, 0, 0, 0, 498, 121, 122, 123, 124,
2705 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2706 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2707 0, 0, 0, 145, 146, 147, 386, 387, 388, 389,
2708 152, 153, 154, 0, 0, 0, 0, 0, 155, 156,
2709 157, 158, 390, 391, 392, 393, 163, 37, 38, 394,
2710 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711 0, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2712 0, 0, 174, 175, 0, 0, 176, 177, 178, 179,
2713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2714 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2716 0, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2717 191, 0, 192, 193, 0, 0, 0, 0, 0, 0,
2718 194, 395, 121, 122, 123, 124, 125, 126, 127, 128,
2719 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2720 139, 140, 141, 142, 143, 144, 0, 0, 0, 145,
2721 146, 147, 148, 149, 150, 151, 152, 153, 154, 0,
2722 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
2723 161, 162, 163, 283, 284, 164, 285, 0, 0, 0,
2724 0, 0, 0, 0, 0, 0, 0, 165, 166, 167,
2725 168, 169, 170, 171, 172, 173, 0, 0, 174, 175,
2726 0, 0, 176, 177, 178, 179, 0, 0, 0, 0,
2727 0, 0, 0, 0, 0, 0, 180, 181, 0, 0,
2728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2729 0, 0, 0, 0, 0, 0, 0, 182, 183, 184,
2730 185, 186, 187, 188, 189, 190, 191, 0, 192, 193,
2731 0, 0, 0, 0, 0, 0, 194, 121, 122, 123,
2732 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2733 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2734 144, 0, 0, 0, 145, 146, 147, 148, 149, 150,
2735 151, 152, 153, 154, 0, 0, 0, 0, 0, 155,
2736 156, 157, 158, 159, 160, 161, 162, 163, 236, 0,
2737 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2738 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
2739 173, 0, 0, 174, 175, 0, 0, 176, 177, 178,
2740 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2741 0, 180, 181, 0, 0, 57, 0, 0, 0, 0,
2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2743 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
2744 190, 191, 0, 192, 193, 0, 0, 0, 0, 0,
2745 0, 194, 121, 122, 123, 124, 125, 126, 127, 128,
2746 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2747 139, 140, 141, 142, 143, 144, 0, 0, 0, 145,
2748 146, 147, 148, 149, 150, 151, 152, 153, 154, 0,
2749 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
2750 161, 162, 163, 0, 0, 164, 0, 0, 0, 0,
2751 0, 0, 0, 0, 0, 0, 0, 165, 166, 167,
2752 168, 169, 170, 171, 172, 173, 0, 0, 174, 175,
2753 0, 0, 176, 177, 178, 179, 0, 0, 0, 0,
2754 0, 0, 0, 0, 0, 0, 180, 181, 0, 0,
2755 57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2756 0, 0, 0, 0, 0, 0, 0, 182, 183, 184,
2757 185, 186, 187, 188, 189, 190, 191, 0, 192, 193,
2758 0, 0, 0, 0, 0, 0, 194, 121, 122, 123,
2759 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2760 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2761 144, 0, 0, 0, 145, 146, 147, 148, 149, 150,
2762 151, 152, 153, 154, 0, 0, 0, 0, 0, 155,
2763 156, 157, 158, 159, 160, 161, 162, 163, 0, 0,
2764 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
2766 173, 0, 0, 174, 175, 0, 0, 176, 177, 178,
2767 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768 0, 180, 181, 0, 0, 0, 0, 0, 0, 0,
2769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2770 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
2771 190, 191, 0, 192, 193, 5, 6, 7, 0, 9,
2772 0, 194, 0, 10, 11, 0, 0, 0, 12, 0,
2773 13, 14, 15, 241, 242, 18, 19, 0, 0, 0,
2774 0, 0, 243, 244, 245, 23, 24, 25, 26, 0,
2775 0, 203, 0, 0, 0, 0, 0, 0, 271, 0,
2776 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2777 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
2778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 272, 0, 0, 206, 52, 0, 53, 54, 0, 0,
2781 0, 0, 56, 57, 58, 59, 60, 61, 62, 63,
2782 64, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2783 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2784 273, 13, 14, 15, 241, 242, 18, 19, 274, 0,
2785 0, 0, 0, 243, 244, 245, 23, 24, 25, 26,
2786 0, 0, 203, 0, 0, 0, 0, 0, 0, 271,
2787 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2788 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 272, 0, 0, 206, 52, 0, 53, 54, 0,
2792 0, 0, 0, 56, 57, 58, 59, 60, 61, 62,
2793 63, 64, 0, 0, 0, 0, 0, 5, 6, 7,
2794 8, 9, 0, 0, 0, 10, 11, 0, 0, 0,
2795 12, 273, 13, 14, 15, 16, 17, 18, 19, 519,
2796 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2797 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2798 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2799 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2800 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2802 0, 0, 50, 0, 0, 51, 52, 0, 53, 54,
2803 0, 55, 0, 0, 56, 57, 58, 59, 60, 61,
2804 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2805 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2806 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
2807 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2808 21, 22, 23, 24, 25, 26, 0, 0, 203, 0,
2809 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2810 34, 35, 36, 37, 38, 39, 40, 204, 41, 42,
2811 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2814 206, 52, 0, 53, 54, 0, 207, 208, 209, 56,
2815 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2816 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2817 8, 9, 0, 0, 0, 10, 11, 65, 210, 67,
2818 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2819 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2820 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2821 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2822 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2823 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2825 0, 0, 50, 0, 0, 51, 52, 0, 53, 54,
2826 0, 55, 0, 0, 56, 57, 58, 59, 60, 61,
2827 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2829 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
2830 241, 242, 18, 19, 0, 0, 0, 0, 0, 243,
2831 244, 245, 23, 24, 25, 26, 0, 0, 203, 0,
2832 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2833 34, 35, 36, 37, 38, 39, 40, 204, 41, 42,
2834 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2836 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2837 206, 52, 0, 53, 54, 0, 609, 208, 209, 56,
2838 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2839 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2840 0, 9, 0, 0, 0, 10, 11, 65, 210, 67,
2841 12, 0, 13, 14, 15, 241, 242, 18, 19, 0,
2842 0, 0, 0, 0, 243, 244, 245, 23, 24, 25,
2843 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
2844 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2845 39, 40, 204, 41, 42, 43, 44, 0, 45, 46,
2846 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2849 0, 207, 208, 0, 56, 57, 58, 59, 60, 61,
2850 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2852 10, 11, 65, 210, 67, 12, 0, 13, 14, 15,
2853 241, 242, 18, 19, 0, 0, 0, 0, 0, 243,
2854 244, 245, 23, 24, 25, 26, 0, 0, 203, 0,
2855 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2856 34, 35, 36, 37, 38, 39, 40, 204, 41, 42,
2857 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2860 206, 52, 0, 53, 54, 0, 0, 208, 209, 56,
2861 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2862 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2863 0, 9, 0, 0, 0, 10, 11, 65, 210, 67,
2864 12, 0, 13, 14, 15, 241, 242, 18, 19, 0,
2865 0, 0, 0, 0, 243, 244, 245, 23, 24, 25,
2866 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
2867 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2868 39, 40, 204, 41, 42, 43, 44, 0, 45, 46,
2869 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2871 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2872 0, 609, 208, 0, 56, 57, 58, 59, 60, 61,
2873 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2874 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2875 10, 11, 65, 210, 67, 12, 0, 13, 14, 15,
2876 241, 242, 18, 19, 0, 0, 0, 0, 0, 243,
2877 244, 245, 23, 24, 25, 26, 0, 0, 203, 0,
2878 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2879 34, 35, 36, 37, 38, 39, 40, 204, 41, 42,
2880 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2882 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2883 206, 52, 0, 53, 54, 0, 0, 208, 0, 56,
2884 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2885 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2886 0, 9, 0, 0, 0, 10, 11, 65, 210, 67,
2887 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2888 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2889 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
2890 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2891 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2892 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2894 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2895 0, 512, 0, 0, 56, 57, 58, 59, 60, 61,
2896 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2897 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2898 10, 11, 65, 210, 67, 12, 0, 13, 14, 15,
2899 241, 242, 18, 19, 0, 0, 0, 0, 0, 243,
2900 244, 245, 23, 24, 25, 26, 0, 0, 203, 0,
2901 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2902 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2903 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2906 206, 52, 0, 53, 54, 0, 207, 0, 0, 56,
2907 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2908 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2909 0, 9, 0, 0, 0, 10, 11, 65, 210, 67,
2910 12, 0, 13, 14, 15, 241, 242, 18, 19, 0,
2911 0, 0, 0, 0, 243, 244, 245, 23, 24, 25,
2912 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
2913 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2914 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2915 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2918 0, 817, 0, 0, 56, 57, 58, 59, 60, 61,
2919 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2920 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2921 10, 11, 65, 210, 67, 12, 0, 13, 14, 15,
2922 241, 242, 18, 19, 0, 0, 0, 0, 0, 243,
2923 244, 245, 23, 24, 25, 26, 0, 0, 203, 0,
2924 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2925 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2926 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2929 206, 52, 0, 53, 54, 0, 512, 0, 0, 56,
2930 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2931 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2932 0, 9, 0, 0, 0, 10, 11, 65, 210, 67,
2933 12, 0, 13, 14, 15, 241, 242, 18, 19, 0,
2934 0, 0, 0, 0, 243, 244, 245, 23, 24, 25,
2935 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
2936 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2937 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2938 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2940 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2941 0, 609, 0, 0, 56, 57, 58, 59, 60, 61,
2942 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2944 10, 11, 65, 210, 67, 12, 0, 13, 14, 15,
2945 241, 242, 18, 19, 0, 0, 0, 0, 0, 243,
2946 244, 245, 23, 24, 25, 26, 0, 0, 203, 0,
2947 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2948 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2949 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2952 206, 52, 0, 53, 54, 0, 0, 0, 0, 56,
2953 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2954 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2955 0, 9, 0, 0, 0, 10, 11, 65, 210, 67,
2956 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2957 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2958 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
2959 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2960 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2961 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2963 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2964 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
2965 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2967 10, 11, 65, 210, 67, 12, 0, 13, 14, 15,
2968 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2969 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2970 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2971 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2972 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2975 206, 52, 0, 53, 54, 0, 0, 0, 0, 56,
2976 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2977 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2978 0, 9, 0, 0, 0, 10, 11, 65, 66, 67,
2979 12, 0, 13, 14, 15, 241, 242, 18, 19, 0,
2980 0, 0, 0, 0, 243, 244, 245, 23, 24, 25,
2981 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
2982 271, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2983 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2984 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2986 0, 0, 272, 0, 0, 325, 52, 0, 53, 54,
2987 0, 326, 0, 0, 56, 57, 58, 59, 60, 61,
2988 62, 63, 64, 0, 0, 0, 0, 0, 5, 6,
2989 7, 0, 9, 0, 0, 0, 10, 11, 0, 0,
2990 0, 12, 273, 13, 14, 15, 241, 242, 18, 19,
2991 0, 0, 0, 0, 0, 243, 244, 245, 23, 24,
2992 25, 26, 0, 0, 203, 0, 0, 0, 0, 0,
2993 0, 271, 0, 0, 32, 33, 34, 35, 36, 37,
2994 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2995 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 0, 0, 0, 367, 0, 0, 51, 52, 0, 53,
2998 54, 0, 55, 0, 0, 56, 57, 58, 59, 60,
2999 61, 62, 63, 64, 0, 0, 0, 0, 0, 5,
3000 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
3001 0, 0, 12, 273, 13, 14, 15, 241, 242, 18,
3002 19, 0, 0, 0, 0, 0, 243, 244, 245, 23,
3003 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
3004 0, 0, 271, 0, 0, 32, 33, 34, 375, 36,
3005 37, 38, 376, 40, 0, 41, 42, 43, 44, 0,
3006 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 0, 377, 0, 0, 378, 0, 0, 206, 52, 0,
3009 53, 54, 0, 0, 0, 0, 56, 57, 58, 59,
3010 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
3011 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3012 0, 0, 0, 12, 273, 13, 14, 15, 241, 242,
3013 18, 19, 0, 0, 0, 0, 0, 243, 244, 245,
3014 23, 24, 25, 26, 0, 0, 203, 0, 0, 0,
3015 0, 0, 0, 271, 0, 0, 32, 33, 34, 375,
3016 36, 37, 38, 376, 40, 0, 41, 42, 43, 44,
3017 0, 45, 46, 47, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 0, 0, 0, 0, 378, 0, 0, 206, 52,
3020 0, 53, 54, 0, 0, 0, 0, 56, 57, 58,
3021 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3022 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3023 11, 0, 0, 0, 12, 273, 13, 14, 15, 241,
3024 242, 18, 19, 0, 0, 0, 0, 0, 243, 244,
3025 245, 23, 24, 25, 26, 0, 0, 203, 0, 0,
3026 0, 0, 0, 0, 271, 0, 0, 32, 33, 34,
3027 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3028 44, 0, 45, 46, 47, 0, 0, 0, 0, 0,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 0, 0, 0, 0, 0, 0, 272, 0, 0, 325,
3031 52, 0, 53, 54, 0, 0, 0, 0, 56, 57,
3032 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
3033 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3034 10, 11, 0, 0, 0, 12, 273, 13, 14, 15,
3035 241, 242, 18, 19, 0, 0, 0, 0, 0, 243,
3036 244, 245, 23, 24, 25, 26, 0, 0, 203, 0,
3037 0, 0, 0, 0, 0, 271, 0, 0, 32, 33,
3038 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3039 43, 44, 0, 45, 46, 47, 0, 0, 0, 0,
3040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3041 0, 0, 0, 0, 0, 0, 0, 899, 0, 0,
3042 206, 52, 0, 53, 54, 0, 0, 0, 0, 56,
3043 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3044 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3045 0, 10, 11, 0, 0, 0, 12, 273, 13, 14,
3046 15, 241, 242, 18, 19, 0, 0, 0, 0, 0,
3047 243, 244, 245, 23, 24, 25, 26, 0, 0, 203,
3048 0, 0, 0, 0, 0, 0, 271, 0, 0, 32,
3049 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3050 42, 43, 44, 0, 45, 46, 47, 0, 0, 0,
3051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3052 0, 0, 0, 0, 0, 0, 0, 0, 976, 0,
3053 0, 206, 52, 0, 53, 54, 0, 0, 0, 0,
3054 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
3055 0, 0, 0, 554, 555, 0, 0, 556, 0, 0,
3056 0, 0, 0, 0, 0, 0, 0, 0, 273, 165,
3057 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
3058 174, 175, 0, 0, 176, 177, 178, 179, 0, 0,
3059 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
3060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3061 0, 0, 0, 0, 0, 0, 0, 0, 0, 182,
3062 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
3063 192, 193, 562, 563, 0, 0, 564, 0, 194, 0,
3064 0, 0, 0, 0, 0, 0, 0, 0, 165, 166,
3065 167, 168, 169, 170, 171, 172, 173, 0, 0, 174,
3066 175, 0, 0, 176, 177, 178, 179, 0, 0, 0,
3067 0, 0, 0, 0, 0, 0, 0, 180, 181, 0,
3068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3069 0, 0, 0, 0, 0, 0, 0, 0, 182, 183,
3070 184, 185, 186, 187, 188, 189, 190, 191, 0, 192,
3071 193, 599, 563, 0, 0, 600, 0, 194, 0, 0,
3072 0, 0, 0, 0, 0, 0, 0, 165, 166, 167,
3073 168, 169, 170, 171, 172, 173, 0, 0, 174, 175,
3074 0, 0, 176, 177, 178, 179, 0, 0, 0, 0,
3075 0, 0, 0, 0, 0, 0, 180, 181, 0, 0,
3076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 0, 0, 182, 183, 184,
3078 185, 186, 187, 188, 189, 190, 191, 0, 192, 193,
3079 613, 555, 0, 0, 614, 0, 194, 0, 0, 0,
3080 0, 0, 0, 0, 0, 0, 165, 166, 167, 168,
3081 169, 170, 171, 172, 173, 0, 0, 174, 175, 0,
3082 0, 176, 177, 178, 179, 0, 0, 0, 0, 0,
3083 0, 0, 0, 0, 0, 180, 181, 0, 0, 0,
3084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3085 0, 0, 0, 0, 0, 0, 182, 183, 184, 185,
3086 186, 187, 188, 189, 190, 191, 0, 192, 193, 616,
3087 563, 0, 0, 617, 0, 194, 0, 0, 0, 0,
3088 0, 0, 0, 0, 0, 165, 166, 167, 168, 169,
3089 170, 171, 172, 173, 0, 0, 174, 175, 0, 0,
3090 176, 177, 178, 179, 0, 0, 0, 0, 0, 0,
3091 0, 0, 0, 0, 180, 181, 0, 0, 0, 0,
3092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3093 0, 0, 0, 0, 0, 182, 183, 184, 185, 186,
3094 187, 188, 189, 190, 191, 0, 192, 193, 640, 555,
3095 0, 0, 641, 0, 194, 0, 0, 0, 0, 0,
3096 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
3097 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
3098 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
3099 0, 0, 0, 180, 181, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3101 0, 0, 0, 0, 182, 183, 184, 185, 186, 187,
3102 188, 189, 190, 191, 0, 192, 193, 643, 563, 0,
3103 0, 644, 0, 194, 0, 0, 0, 0, 0, 0,
3104 0, 0, 0, 165, 166, 167, 168, 169, 170, 171,
3105 172, 173, 0, 0, 174, 175, 0, 0, 176, 177,
3106 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
3107 0, 0, 180, 181, 0, 0, 0, 0, 0, 0,
3108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3109 0, 0, 0, 182, 183, 184, 185, 186, 187, 188,
3110 189, 190, 191, 0, 192, 193, 728, 555, 0, 0,
3111 729, 0, 194, 0, 0, 0, 0, 0, 0, 0,
3112 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
3113 173, 0, 0, 174, 175, 0, 0, 176, 177, 178,
3114 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3115 0, 180, 181, 0, 0, 0, 0, 0, 0, 0,
3116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3117 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
3118 190, 191, 0, 192, 193, 731, 563, 0, 0, 732,
3119 0, 194, 0, 0, 0, 0, 0, 0, 0, 0,
3120 0, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3121 0, 0, 174, 175, 0, 0, 176, 177, 178, 179,
3122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3123 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
3124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3125 0, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3126 191, 0, 192, 193, 738, 555, 0, 0, 739, 0,
3127 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3128 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
3129 0, 174, 175, 0, 0, 176, 177, 178, 179, 0,
3130 0, 0, 0, 0, 0, 0, 0, 0, 0, 180,
3131 181, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3133 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3134 0, 192, 193, 1008, 555, 0, 0, 1009, 0, 194,
3135 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
3136 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
3137 174, 175, 0, 0, 176, 177, 178, 179, 0, 0,
3138 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
3139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3140 0, 0, 0, 0, 0, 0, 0, 0, 0, 182,
3141 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
3142 192, 193, 1039, 555, 0, 0, 1040, 0, 194, 0,
3143 0, 0, 0, 0, 0, 0, 0, 0, 165, 166,
3144 167, 168, 169, 170, 171, 172, 173, 0, 0, 174,
3145 175, 0, 0, 176, 177, 178, 179, 0, 0, 0,
3146 0, 0, 0, 0, 0, 0, 0, 180, 181, 0,
3147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3148 0, 0, 0, 0, 0, 0, 0, 0, 182, 183,
3149 184, 185, 186, 187, 188, 189, 190, 191, 0, 192,
3150 193, 1042, 563, 0, 0, 1043, 0, 194, 0, 0,
3151 0, 0, 0, 0, 0, 0, 0, 165, 166, 167,
3152 168, 169, 170, 171, 172, 173, 0, 0, 174, 175,
3153 0, 0, 176, 177, 178, 179, 0, 0, 0, 0,
3154 0, 0, 0, 0, 0, 0, 180, 181, 329, 330,
3155 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
3156 341, 0, 0, 342, 343, 0, 0, 182, 183, 184,
3157 185, 186, 187, 188, 189, 190, 191, 0, 192, 193,
3158 0, 0, 0, 0, 0, 0, 194, 0, 0, 0,
3159 0, 0, 0, 0, 344, 0, 345, 346, 347, 348,
3160 349, 350, 351, 352, 353, 354, 0, 0, 0, 0,
3161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3165 #define yypact_value_is_default(yystate) \
3166 ((yystate) == (-816))
3168 #define yytable_value_is_error(yytable_value) \
3169 ((yytable_value) == (-627))
3173 2, 27, 57, 29, 55, 16, 17, 356, 98, 20,
3174 233, 8, 28, 69, 89, 361, 328, 92, 81, 355,
3175 328, 357, 2, 223, 4, 576, 22, 4, 578, 595,
3176 81, 28, 686, 92, 8, 258, 92, 422, 261, 575,
3177 414, 96, 93, 94, 95, 265, 88, 89, 422, 269,
3178 92, 53, 54, 469, 28, 615, 65, 787, 51, 8,
3179 57, 670, 442, 16, 17, 401, 473, 20, 716, 418,
3180 76, 55, 720, 16, 17, 460, 2, 20, 4, 28,
3181 76, 417, 642, 419, 378, 778, 27, 874, 26, 904,
3182 16, 17, 25, 289, 20, 291, 25, 293, 63, 96,
3183 53, 297, 26, 519, 908, 66, 69, 872, 63, 445,
3184 53, 54, 253, 25, 25, 1, 508, 87, 25, 511,
3185 775, 136, 471, 89, 778, 51, 13, 89, 143, 55,
3186 52, 25, 0, 787, 56, 87, 472, 87, 16, 17,
3187 66, 25, 20, 143, 109, 800, 111, 87, 78, 115,
3188 25, 25, 89, 115, 109, 81, 111, 99, 141, 132,
3189 143, 13, 88, 89, 63, 135, 92, 93, 94, 95,
3190 730, 737, 13, 37, 38, 725, 941, 142, 115, 745,
3191 122, 741, 13, 135, 325, 135, 15, 142, 17, 1004,
3192 120, 233, 742, 235, 132, 135, 255, 806, 807, 255,
3193 141, 424, 143, 136, 897, 428, 993, 136, 132, 138,
3194 433, 274, 1016, 112, 138, 217, 227, 947, 229, 230,
3195 262, 223, 56, 274, 136, 136, 449, 138, 230, 136,
3196 995, 431, 581, 119, 309, 310, 311, 312, 623, 686,
3197 246, 13, 136, 897, 593, 271, 582, 142, 622, 623,
3198 904, 658, 136, 633, 141, 141, 143, 143, 594, 952,
3199 253, 136, 136, 1028, 273, 142, 13, 309, 310, 311,
3200 312, 251, 314, 315, 227, 326, 229, 886, 138, 143,
3201 206, 697, 930, 143, 227, 63, 229, 362, 363, 141,
3202 486, 143, 255, 947, 844, 518, 846, 493, 592, 691,
3203 141, 227, 143, 229, 230, 364, 856, 233, 364, 235,
3204 141, 861, 143, 672, 240, 674, 136, 853, 1011, 142,
3205 362, 363, 28, 143, 380, 251, 29, 253, 308, 89,
3206 89, 308, 325, 313, 112, 377, 262, 744, 142, 746,
3207 787, 115, 326, 790, 26, 356, 136, 658, 274, 227,
3208 1004, 229, 115, 87, 356, 115, 115, 966, 102, 25,
3209 357, 136, 323, 87, 136, 136, 932, 328, 143, 141,
3210 323, 143, 87, 25, 704, 328, 87, 927, 928, 930,
3211 726, 711, 308, 309, 310, 311, 312, 313, 314, 315,
3212 698, 138, 89, 115, 141, 89, 143, 323, 87, 325,
3213 326, 135, 328, 715, 401, 87, 469, 418, 138, 51,
3214 113, 135, 612, 636, 136, 56, 418, 637, 469, 134,
3215 135, 115, 419, 439, 135, 115, 992, 139, 430, 431,
3216 356, 143, 358, 744, 87, 746, 362, 363, 87, 90,
3217 442, 991, 439, 404, 405, 134, 135, 138, 445, 115,
3218 132, 377, 134, 135, 89, 70, 519, 904, 136, 906,
3219 471, 136, 442, 115, 132, 439, 138, 87, 519, 471,
3220 136, 414, 70, 139, 1024, 472, 1026, 143, 404, 405,
3221 87, 1041, 135, 868, 136, 134, 135, 139, 63, 138,
3222 439, 143, 418, 52, 868, 54, 55, 56, 57, 138,
3223 947, 139, 949, 87, 89, 507, 508, 954, 87, 511,
3224 125, 126, 127, 26, 457, 135, 442, 543, 574, 575,
3225 743, 37, 38, 115, 883, 884, 452, 134, 135, 888,
3226 115, 890, 588, 892, 109, 561, 111, 112, 140, 762,
3227 686, 14, 15, 469, 52, 471, 54, 55, 56, 57,
3228 773, 135, 558, 87, 596, 134, 135, 1004, 56, 1006,
3229 566, 761, 133, 559, 206, 112, 1013, 569, 26, 63,
3230 581, 567, 918, 686, 87, 638, 136, 136, 924, 581,
3231 89, 112, 593, 1030, 626, 582, 112, 638, 112, 615,
3232 606, 593, 70, 519, 96, 601, 136, 594, 240, 601,
3233 134, 135, 17, 63, 1051, 601, 115, 56, 63, 606,
3234 612, 253, 67, 141, 26, 109, 642, 111, 112, 132,
3235 25, 134, 135, 142, 577, 138, 136, 136, 136, 87,
3236 133, 633, 606, 139, 697, 781, 136, 860, 63, 785,
3237 999, 1000, 1001, 1002, 132, 571, 697, 573, 871, 109,
3238 87, 111, 112, 633, 109, 581, 111, 606, 733, 749,
3239 686, 736, 686, 142, 136, 136, 668, 593, 670, 595,
3240 596, 1020, 136, 136, 132, 87, 134, 135, 734, 622,
3241 138, 115, 89, 325, 109, 1021, 111, 112, 87, 691,
3242 1049, 733, 747, 136, 736, 10, 138, 134, 135, 705,
3243 626, 8, 13, 138, 730, 89, 712, 633, 115, 133,
3244 712, 115, 638, 715, 716, 741, 718, 136, 720, 136,
3245 132, 63, 134, 135, 52, 136, 138, 136, 2, 136,
3246 4, 115, 87, 54, 52, 134, 135, 698, 87, 136,
3247 701, 702, 16, 17, 65, 66, 20, 708, 709, 775,
3248 747, 897, 136, 804, 52, 901, 136, 781, 904, 761,
3249 906, 687, 715, 117, 690, 140, 692, 109, 843, 111,
3250 112, 697, 698, 87, 800, 701, 702, 51, 70, 134,
3251 135, 15, 708, 709, 897, 134, 135, 133, 901, 136,
3252 87, 904, 66, 906, 120, 136, 87, 853, 115, 855,
3253 58, 843, 136, 136, 806, 807, 862, 733, 87, 136,
3254 736, 737, 70, 136, 88, 89, 141, 10, 92, 745,
3255 134, 135, 10, 133, 52, 89, 54, 55, 56, 57,
3256 58, 123, 124, 125, 126, 127, 838, 134, 135, 841,
3257 98, 99, 70, 134, 135, 896, 136, 90, 2, 89,
3258 4, 115, 809, 810, 9, 134, 135, 89, 1004, 89,
3259 1006, 136, 139, 91, 122, 1011, 917, 1013, 829, 136,
3260 98, 99, 136, 897, 136, 115, 136, 901, 804, 136,
3261 904, 120, 906, 115, 886, 115, 56, 133, 136, 815,
3262 10, 1004, 136, 1006, 122, 133, 136, 51, 1011, 110,
3263 1013, 55, 138, 829, 136, 1051, 136, 40, 41, 42,
3264 43, 44, 54, 55, 840, 57, 136, 843, 136, 70,
3265 136, 847, 848, 65, 66, 851, 136, 81, 930, 571,
3266 56, 573, 206, 136, 85, 86, 136, 138, 1051, 93,
3267 94, 95, 96, 93, 136, 52, 972, 54, 55, 56,
3268 57, 877, 878, 227, 95, 229, 230, 452, 712, 233,
3269 769, 235, 1023, 686, 966, 750, 240, 893, 1016, 1022,
3270 896, 122, 123, 124, 125, 126, 127, 251, 101, 253,
3271 1004, 297, 1006, 59, 91, 96, 781, 1011, 262, 1013,
3272 97, 917, 938, 901, 52, 921, 54, 55, 56, 57,
3273 59, 60, 61, 62, 961, 962, 932, 897, 778, 1020,
3274 967, 398, 969, 970, 70, 1041, -1, -1, 1020, -1,
3275 1022, 1023, -1, -1, 1021, -1, -1, 1051, -1, 85,
3276 86, -1, -1, 91, 308, 309, 310, 311, 312, 313,
3277 314, 315, -1, -1, -1, 687, -1, -1, 690, 323,
3278 692, 325, 206, -1, 328, -1, 982, 52, 984, 54,
3279 55, 56, 57, -1, 990, -1, 992, 123, 124, 125,
3280 126, 127, 16, 17, -1, -1, 20, 1034, 1035, 1036,
3281 1037, -1, 356, -1, 358, -1, 240, -1, 362, 363,
3282 -1, -1, -1, -1, 1020, -1, 91, 251, -1, 253,
3283 1057, -1, 97, 377, 48, 49, -1, -1, -1, 53,
3284 54, 52, -1, 54, 55, 56, 57, 58, -1, -1,
3285 274, -1, 66, 67, -1, -1, -1, -1, -1, 70,
3286 404, 405, 52, -1, 54, 55, 56, 57, -1, -1,
3287 -1, -1, -1, 52, 418, 54, 55, 56, 57, 58,
3288 91, -1, -1, -1, 308, -1, 97, 98, 99, 313,
3289 -1, 70, -1, -1, -1, -1, -1, -1, 442, -1,
3290 70, 325, 326, 815, -1, -1, -1, -1, 452, -1,
3291 -1, 122, 91, -1, 125, 85, 86, -1, 97, 98,
3292 99, -1, -1, -1, -1, -1, -1, 471, 840, -1,
3293 -1, -1, 143, -1, 358, 847, 848, -1, -1, 851,
3294 -1, -1, -1, 122, -1, -1, 125, -1, -1, -1,
3295 120, 121, 122, 123, 124, 125, 126, 127, -1, 138,
3296 -1, 0, -1, -1, -1, 877, 878, -1, -1, 8,
3297 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3298 -1, 893, 2, -1, 4, -1, -1, 26, 27, -1,
3299 204, -1, -1, 207, 208, 209, 210, -1, 37, 38,
3300 -1, 40, 41, 42, 43, 44, -1, -1, -1, 921,
3301 -1, -1, -1, 227, -1, 229, 230, -1, 442, -1,
3302 -1, -1, -1, -1, -1, -1, -1, 571, 452, 573,
3303 -1, 51, -1, -1, -1, 55, -1, 581, 52, -1,
3304 54, 55, 56, 57, 58, 469, -1, -1, 87, 593,
3305 -1, 595, 596, -1, -1, -1, 70, -1, -1, -1,
3306 -1, 81, -1, -1, -1, -1, -1, -1, -1, -1,
3307 982, 110, 984, 93, 94, 95, 96, 91, 990, -1,
3308 -1, -1, 626, 97, 98, 99, -1, -1, -1, 633,
3309 -1, -1, -1, 132, 133, 519, 135, -1, -1, 138,
3310 139, -1, 141, -1, 143, -1, -1, -1, 122, 323,
3311 -1, 125, -1, -1, 328, 329, 330, 331, 332, 333,
3312 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
3313 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
3314 354, -1, 356, 687, -1, -1, 690, 571, 692, 573,
3315 -1, -1, -1, -1, 698, -1, -1, 701, 702, -1,
3316 473, -1, -1, -1, 708, 709, -1, -1, -1, -1,
3317 -1, 595, -1, -1, -1, -1, -1, -1, -1, -1,
3318 -1, -1, -1, -1, -1, -1, 206, -1, -1, 733,
3319 404, 405, 736, 737, -1, -1, -1, -1, 412, 413,
3320 414, 745, -1, -1, 418, -1, 420, 421, 422, 633,
3321 -1, -1, -1, -1, 638, -1, -1, -1, -1, -1,
3322 240, -1, -1, -1, -1, -1, -1, 441, -1, -1,
3323 -1, 251, 446, 253, -1, -1, -1, -1, -1, -1,
3324 -1, -1, -1, 457, -1, -1, 460, -1, -1, -1,
3325 -1, -1, -1, -1, 274, -1, -1, 471, -1, -1,
3326 -1, -1, -1, 687, -1, -1, 690, -1, 692, -1,
3327 -1, 815, -1, 697, -1, -1, -1, -1, -1, -1,
3328 -1, -1, -1, 497, -1, 829, -1, -1, 308, -1,
3329 -1, -1, -1, 313, -1, -1, 840, -1, 512, 843,
3330 -1, -1, -1, 847, 848, 325, 326, 851, -1, -1,
3331 -1, -1, -1, 737, -1, -1, -1, -1, -1, -1,
3332 -1, 745, -1, -1, -1, -1, -1, -1, -1, 2,
3333 -1, 4, -1, 877, 878, -1, -1, -1, 358, 652,
3334 -1, -1, -1, -1, -1, 658, -1, -1, -1, 893,
3335 2, -1, 4, -1, -1, -1, -1, -1, -1, -1,
3336 -1, -1, -1, 577, -1, -1, -1, 581, -1, -1,
3337 -1, -1, -1, 686, -1, -1, -1, 921, 51, 593,
3338 804, -1, -1, -1, -1, -1, -1, -1, 932, -1,
3339 -1, 815, -1, -1, -1, 609, -1, -1, -1, 51,
3340 -1, -1, -1, 55, -1, -1, -1, -1, 622, 623,
3341 -1, -1, -1, -1, -1, -1, 840, -1, -1, -1,
3342 -1, -1, 442, 847, 848, -1, -1, 851, -1, 81,
3343 -1, 744, 452, 746, -1, -1, -1, 2, 982, 4,
3344 984, 93, 94, 95, -1, -1, 990, -1, 992, 469,
3345 -1, -1, 666, 877, 878, -1, 769, 770, -1, -1,
3346 -1, -1, -1, -1, -1, 778, -1, -1, -1, 893,
3347 -1, -1, 896, -1, 787, -1, 1020, -1, -1, -1,
3348 694, -1, -1, -1, 698, 699, 51, 701, 702, -1,
3349 -1, -1, -1, 917, 708, 709, -1, 921, -1, 519,
3350 -1, 715, -1, -1, -1, -1, -1, -1, 932, -1,
3351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3352 -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
3353 -1, -1, -1, 206, -1, -1, -1, -1, 752, -1,
3354 -1, -1, 756, 757, -1, 759, 760, 54, -1, -1,
3355 -1, 571, -1, 573, 206, -1, -1, -1, 982, 872,
3356 984, 874, -1, 777, -1, -1, 990, 240, 992, -1,
3357 -1, -1, -1, -1, -1, 595, -1, -1, 251, -1,
3358 253, -1, -1, -1, 897, -1, -1, -1, 240, -1,
3359 -1, 904, -1, -1, -1, -1, -1, -1, -1, 251,
3360 -1, 253, -1, 817, -1, -1, -1, 821, -1, -1,
3361 -1, -1, -1, 633, -1, 829, -1, -1, 638, -1,
3362 -1, -1, 274, -1, -1, -1, -1, -1, 941, 942,
3363 -1, -1, -1, -1, 947, 308, 850, -1, -1, -1,
3364 313, 206, -1, -1, -1, -1, -1, -1, -1, -1,
3365 -1, -1, 325, 867, 868, -1, 308, -1, -1, -1,
3366 -1, 313, -1, -1, -1, -1, -1, 687, -1, -1,
3367 690, -1, 692, 325, 326, 240, -1, 697, -1, -1,
3368 993, -1, 995, -1, -1, 358, 251, -1, 253, -1,
3369 -1, 1004, -1, -1, -1, -1, -1, 204, -1, -1,
3370 207, 208, 209, -1, -1, -1, 358, -1, -1, -1,
3371 -1, -1, -1, -1, -1, 1028, -1, 737, -1, -1,
3372 -1, -1, -1, -1, -1, 745, -1, -1, -1, -1,
3373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3374 -1, -1, -1, 308, -1, -1, -1, -1, 313, -1,
3375 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3376 325, -1, -1, 328, -1, -1, -1, -1, -1, 442,
3377 -1, -1, -1, -1, -1, -1, -1, -1, -1, 452,
3378 -1, -1, -1, -1, 804, -1, -1, -1, -1, -1,
3379 442, -1, -1, 358, -1, 815, -1, -1, -1, -1,
3380 452, -1, -1, -1, -1, -1, 1020, -1, -1, -1,
3381 -1, -1, -1, -1, -1, -1, 323, 469, -1, -1,
3382 840, 328, -1, -1, -1, -1, -1, 847, 848, -1,
3383 -1, 851, -1, -1, -1, -1, -1, -1, -1, -1,
3384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3385 -1, -1, -1, -1, -1, -1, -1, 877, 878, -1,
3386 -1, -1, -1, -1, -1, -1, -1, 519, -1, -1,
3387 -1, -1, -1, 893, -1, -1, 896, 442, -1, 70,
3388 71, 72, 73, 74, 75, 76, 77, 452, 79, 80,
3389 -1, -1, -1, -1, 85, 86, -1, 917, 571, -1,
3390 573, 921, -1, -1, -1, -1, 413, 414, -1, -1,
3391 -1, -1, 932, -1, -1, 422, -1, -1, -1, 571,
3392 -1, 573, 595, -1, -1, -1, -1, 118, 119, 120,
3393 121, 122, 123, 124, 125, 126, 127, -1, -1, -1,
3394 -1, -1, -1, 595, -1, -1, -1, -1, -1, -1,
3395 457, -1, -1, 460, -1, -1, -1, -1, -1, -1,
3396 633, -1, 982, -1, 984, -1, -1, -1, -1, -1,
3397 990, -1, 992, -1, -1, -1, -1, -1, -1, -1,
3398 -1, 633, -1, -1, -1, -1, 638, -1, -1, -1,
3399 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3400 -1, -1, -1, -1, -1, 512, 571, -1, 573, -1,
3401 -1, -1, -1, -1, 687, -1, -1, 690, -1, 692,
3402 -1, -1, -1, -1, -1, -1, 678, -1, -1, -1,
3403 595, -1, -1, -1, -1, 687, -1, -1, 690, -1,
3404 692, -1, -1, -1, -1, 697, -1, -1, -1, -1,
3405 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3406 -1, -1, -1, -1, 737, -1, -1, -1, 633, -1,
3407 577, -1, 745, -1, -1, -1, -1, -1, -1, -1,
3408 -1, -1, -1, -1, -1, 737, -1, -1, -1, -1,
3409 -1, -1, -1, 745, -1, -1, -1, -1, -1, -1,
3410 -1, -1, 609, -1, -1, -1, -1, -1, -1, -1,
3411 -1, -1, -1, -1, -1, 622, 623, -1, -1, -1,
3412 -1, -1, 687, -1, -1, 690, -1, 692, -1, -1,
3413 -1, -1, -1, 698, -1, -1, -1, -1, -1, -1,
3414 -1, -1, 815, -1, -1, -1, -1, -1, -1, -1,
3415 -1, -1, 804, -1, -1, -1, -1, -1, -1, 666,
3416 -1, -1, -1, 815, -1, -1, -1, 840, -1, -1,
3417 -1, -1, 737, -1, 847, 848, -1, -1, 851, -1,
3418 745, -1, -1, -1, -1, -1, -1, 694, 840, -1,
3419 -1, -1, -1, -1, -1, 847, 848, -1, -1, 851,
3420 -1, -1, -1, -1, 877, 878, -1, -1, 715, -1,
3421 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3422 893, -1, -1, -1, -1, 877, 878, -1, -1, -1,
3423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3424 -1, 893, -1, -1, 896, -1, -1, -1, 921, -1,
3425 815, 70, 71, 72, 73, 74, 75, 76, -1, 932,
3426 79, 80, -1, -1, -1, 917, 85, 86, -1, 921,
3427 777, -1, -1, -1, -1, 840, -1, -1, -1, -1,
3428 932, -1, 847, 848, -1, -1, 851, -1, -1, -1,
3429 -1, -1, -1, -1, -1, -1, -1, -1, -1, 118,
3430 119, 120, 121, 122, 123, 124, 125, 126, 127, 982,
3431 817, 984, 877, 878, -1, -1, -1, 990, -1, 992,
3432 -1, -1, -1, -1, -1, -1, -1, -1, 893, -1,
3433 982, -1, 984, -1, -1, -1, -1, -1, 990, -1,
3434 992, -1, -1, 850, 70, 71, 72, 73, 74, 75,
3435 76, -1, 917, 79, 80, -1, 921, -1, -1, 85,
3436 86, 868, -1, -1, -1, -1, -1, 932, -1, -1,
3437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3439 -1, -1, 118, 119, 120, 121, 122, 123, 124, 125,
3440 126, 127, -1, -1, -1, -1, -1, -1, -1, -1,
3441 -1, -1, -1, -1, -1, -1, -1, 982, -1, 984,
3442 -1, -1, -1, -1, -1, 990, -1, 992, 0, 1,
3443 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3444 12, -1, -1, -1, 16, -1, 18, 19, 20, 21,
3445 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3446 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3447 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3448 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
3449 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
3450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3451 -1, -1, -1, -1, -1, -1, 88, -1, -1, 91,
3452 92, -1, 94, 95, -1, 97, -1, -1, 100, 101,
3453 102, 103, 104, 105, 106, 107, 108, 0, -1, -1,
3454 -1, -1, -1, -1, -1, 8, 9, 10, -1, -1,
3455 13, 14, 15, -1, 17, -1, 128, 129, 130, -1,
3456 44, -1, -1, 26, 27, 28, 29, -1, -1, 141,
3457 -1, 143, -1, -1, 37, 38, -1, 40, 41, 42,
3458 43, 44, -1, -1, -1, -1, 70, 71, 72, 73,
3459 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
3460 -1, 85, 86, -1, -1, -1, -1, 70, 71, 72,
3461 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3462 -1, -1, 85, 86, 87, -1, 89, 90, -1, -1,
3463 -1, -1, 116, 96, 118, 119, 120, 121, 122, 123,
3464 124, 125, 126, 127, -1, -1, -1, 110, -1, -1,
3465 113, -1, 115, 116, 117, 118, 119, 120, 121, 122,
3466 123, 124, 125, 126, 127, -1, -1, -1, -1, 132,
3467 133, 134, 135, 136, 0, -1, 139, 140, 141, -1,
3468 143, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3469 -1, 17, -1, -1, -1, -1, -1, 44, -1, 25,
3470 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3471 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3472 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3473 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3474 -1, -1, -1, -1, 70, 71, 72, 73, 74, 75,
3475 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
3476 86, 87, -1, 89, 90, -1, -1, -1, -1, 116,
3477 96, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3478 127, -1, -1, -1, 110, -1, -1, 113, -1, 115,
3479 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3480 126, 127, -1, -1, -1, -1, -1, 133, 134, 135,
3481 136, 0, -1, 139, 140, 141, -1, 143, -1, 8,
3482 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3483 -1, -1, -1, -1, -1, -1, 25, -1, 27, 28,
3484 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3485 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
3486 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3487 80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
3488 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3489 79, 80, 81, 82, -1, -1, 85, 86, 87, -1,
3490 89, 90, -1, -1, -1, -1, 116, 96, 118, 119,
3491 120, 121, 122, 123, 124, 125, 126, 127, -1, -1,
3492 -1, 110, -1, -1, 113, -1, 115, 116, 117, 118,
3493 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
3494 -1, -1, -1, -1, 133, 134, 135, 136, 0, -1,
3495 139, 140, 141, -1, 143, -1, 8, 9, 10, -1,
3496 -1, 13, 14, 15, -1, 17, -1, -1, -1, -1,
3497 -1, 44, -1, -1, 26, 27, 28, 29, -1, -1,
3498 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3499 42, 43, 44, -1, -1, -1, -1, 70, 71, 72,
3500 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3501 -1, -1, 85, 86, -1, -1, -1, -1, 70, 71,
3502 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3503 82, -1, -1, 85, 86, 87, -1, -1, 90, -1,
3504 -1, -1, -1, 116, 96, 118, 119, 120, 121, 122,
3505 123, 124, 125, 126, 127, -1, -1, -1, 110, -1,
3506 -1, 113, -1, 136, 116, 117, 118, 119, 120, 121,
3507 122, 123, 124, 125, 126, 127, -1, -1, -1, -1,
3508 132, 133, 134, 135, 136, 0, -1, 139, 140, 141,
3509 -1, 143, -1, 8, 9, 10, -1, -1, 13, 14,
3510 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3511 -1, 26, 27, 28, 29, -1, -1, -1, -1, -1,
3512 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3513 -1, -1, -1, -1, 70, 71, 72, 73, 74, 75,
3514 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
3515 86, -1, -1, -1, -1, 70, 71, 72, 73, 74,
3516 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
3517 85, 86, 87, -1, -1, 90, -1, -1, -1, -1,
3518 -1, 96, 118, 119, 120, 121, 122, 123, 124, 125,
3519 126, 127, -1, -1, -1, 110, -1, -1, 113, -1,
3520 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3521 125, 126, 127, -1, -1, -1, -1, 132, 133, 134,
3522 135, 136, 0, -1, 139, 140, 141, -1, 143, -1,
3523 8, 9, 10, -1, -1, 13, 14, 15, -1, 17,
3524 -1, -1, -1, -1, -1, -1, -1, -1, -1, 27,
3525 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
3526 38, -1, 40, 41, 42, 43, 44, -1, -1, -1,
3527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3529 -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
3530 78, 79, 80, 81, 82, -1, -1, 85, 86, 87,
3531 -1, 89, 90, -1, -1, -1, -1, -1, 96, -1,
3532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3533 -1, -1, 110, -1, -1, 113, -1, 115, 116, 117,
3534 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3535 -1, -1, -1, -1, -1, 133, 134, 135, 136, 0,
3536 -1, 139, 140, 141, -1, 143, -1, 8, 9, 10,
3537 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3538 -1, -1, -1, -1, -1, 26, 27, 28, -1, -1,
3539 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3540 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3542 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
3543 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3544 81, 82, -1, -1, 85, 86, 87, -1, -1, 90,
3545 -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
3546 -1, -1, -1, -1, -1, -1, -1, -1, -1, 110,
3547 -1, -1, -1, -1, -1, 116, -1, 118, 119, 120,
3548 121, 122, 123, 124, 125, 126, 127, -1, -1, -1,
3549 -1, 132, 133, 134, 135, 136, 0, 138, 139, 140,
3550 141, -1, 143, -1, 8, 9, 10, -1, -1, 13,
3551 14, 15, -1, 17, -1, -1, -1, -1, -1, -1,
3552 -1, -1, -1, 27, 28, 29, -1, -1, -1, -1,
3553 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3554 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3556 -1, -1, -1, -1, -1, -1, 70, 71, 72, 73,
3557 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
3558 -1, 85, 86, 87, -1, -1, 90, -1, -1, -1,
3559 -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
3560 -1, -1, -1, -1, -1, -1, 110, -1, -1, 113,
3561 -1, -1, 116, 117, 118, 119, 120, 121, 122, 123,
3562 124, 125, 126, 127, -1, -1, -1, -1, -1, 133,
3563 134, 135, 136, 0, -1, 139, 140, 141, -1, 143,
3564 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3565 17, -1, -1, -1, -1, -1, -1, -1, -1, 26,
3566 27, 28, -1, -1, -1, -1, -1, -1, -1, -1,
3567 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3569 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3570 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3571 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3572 87, -1, -1, 90, -1, -1, -1, -1, -1, 96,
3573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3574 -1, -1, -1, 110, -1, -1, -1, -1, -1, 116,
3575 -1, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3576 127, -1, -1, -1, -1, 132, 133, 134, 135, 136,
3577 0, 138, 139, 140, 141, -1, 143, -1, 8, 9,
3578 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3579 -1, -1, -1, -1, -1, -1, -1, 27, 28, -1,
3580 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3581 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3584 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3585 80, 81, 82, -1, -1, 85, 86, 87, -1, -1,
3586 90, -1, -1, -1, -1, -1, 96, -1, -1, -1,
3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3588 110, -1, -1, -1, -1, -1, 116, -1, 118, 119,
3589 120, 121, 122, 123, 124, 125, 126, 127, -1, -1,
3590 -1, -1, -1, 133, 134, 135, 136, 0, 138, 139,
3591 140, 141, -1, 143, -1, 8, 9, 10, -1, -1,
3592 -1, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3593 -1, -1, -1, 26, -1, -1, -1, -1, -1, -1,
3594 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3595 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3597 -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
3598 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3599 -1, -1, 85, 86, 87, -1, 89, -1, -1, -1,
3600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3601 -1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
3602 -1, -1, 115, 116, -1, 118, 119, 120, 121, 122,
3603 123, 124, 125, 126, 127, -1, -1, -1, -1, 132,
3604 133, 134, 135, 136, 0, -1, 139, -1, 141, -1,
3605 143, -1, 8, 9, 10, -1, -1, -1, 14, 15,
3606 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3608 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3609 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3610 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3611 -1, -1, -1, -1, 70, 71, 72, 73, 74, 75,
3612 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
3613 86, 87, -1, 89, -1, -1, -1, -1, -1, -1,
3614 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3615 -1, -1, -1, -1, 110, -1, -1, -1, -1, 115,
3616 116, -1, 118, 119, 120, 121, 122, 123, 124, 125,
3617 126, 127, -1, -1, -1, -1, -1, 133, 134, 135,
3618 136, -1, -1, 139, -1, 141, 1, 143, 3, 4,
3619 5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
3620 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3621 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3622 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3623 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3624 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
3625 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
3626 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3627 -1, -1, -1, 88, -1, -1, 91, 92, -1, 94,
3628 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
3629 105, 106, 107, 108, -1, -1, -1, -1, -1, -1,
3630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3631 -1, -1, -1, 128, 129, 130, -1, -1, -1, -1,
3632 -1, -1, -1, -1, -1, -1, 141, 1, 143, 3,
3633 4, 5, 6, 7, -1, -1, 10, 11, 12, -1,
3634 14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
3635 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3636 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3637 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3638 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
3639 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
3640 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3641 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
3642 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
3643 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
3644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3645 -1, -1, -1, -1, 128, 129, 130, -1, -1, -1,
3646 -1, -1, -1, -1, -1, -1, -1, 141, 1, 143,
3647 3, 4, 5, 6, 7, -1, -1, 10, 11, 12,
3648 -1, -1, 15, 16, 17, 18, 19, 20, 21, 22,
3649 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3650 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3651 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3652 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
3653 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
3654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3655 -1, -1, -1, -1, -1, 88, -1, -1, 91, 92,
3656 -1, 94, 95, -1, 97, -1, -1, 100, 101, 102,
3657 103, 104, 105, 106, 107, 108, -1, -1, -1, -1,
3658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3659 -1, -1, -1, -1, -1, 128, 129, 130, -1, -1,
3660 -1, -1, -1, -1, -1, -1, -1, -1, 141, 1,
3661 143, 3, 4, 5, 6, 7, -1, -1, 10, 11,
3662 12, -1, -1, 15, 16, -1, 18, 19, 20, 21,
3663 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3664 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3665 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3666 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
3667 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
3668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3669 -1, -1, -1, -1, -1, -1, 88, -1, -1, 91,
3670 92, -1, 94, 95, -1, 97, -1, -1, 100, 101,
3671 102, 103, 104, 105, 106, 107, 108, -1, -1, -1,
3672 -1, -1, -1, -1, 1, -1, 3, 4, 5, 6,
3673 7, -1, 9, 10, 11, 12, 128, 129, 130, 16,
3674 -1, 18, 19, 20, 21, 22, 23, 24, -1, 141,
3675 -1, 143, -1, 30, 31, 32, 33, 34, 35, 36,
3676 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3677 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3678 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
3679 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3681 -1, 88, -1, -1, 91, 92, -1, 94, 95, -1,
3682 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
3683 107, 108, -1, -1, -1, -1, -1, -1, -1, 1,
3684 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3685 12, 128, 129, 130, 16, -1, 18, 19, 20, 21,
3686 22, 23, 24, -1, 141, -1, 143, -1, 30, 31,
3687 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3688 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3689 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
3690 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
3691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3692 -1, -1, -1, -1, -1, -1, 88, -1, -1, 91,
3693 92, -1, 94, 95, -1, 97, -1, -1, 100, 101,
3694 102, 103, 104, 105, 106, 107, 108, -1, -1, -1,
3695 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3696 -1, -1, -1, -1, -1, -1, 128, 129, 130, -1,
3697 -1, -1, -1, -1, -1, -1, -1, 139, -1, 141,
3698 1, 143, 3, 4, 5, 6, 7, -1, -1, -1,
3699 11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
3700 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3701 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3702 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3703 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3704 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
3705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3706 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
3707 91, 92, -1, 94, 95, -1, 97, -1, -1, 100,
3708 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
3709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3710 -1, -1, -1, -1, -1, -1, -1, 128, 129, 130,
3711 -1, -1, -1, -1, -1, -1, -1, -1, 139, -1,
3712 141, 1, 143, 3, 4, 5, 6, 7, -1, -1,
3713 -1, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3714 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3715 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3716 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3717 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3718 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
3719 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3720 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
3721 -1, 91, 92, -1, 94, 95, -1, 97, -1, -1,
3722 100, 101, 102, 103, 104, 105, 106, 107, 108, -1,
3723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3724 -1, -1, -1, -1, -1, -1, -1, -1, 128, 129,
3725 130, -1, -1, 133, 1, -1, 3, 4, 5, 6,
3726 7, 141, -1, 143, 11, 12, -1, -1, -1, 16,
3727 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3728 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3729 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3730 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3731 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
3732 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
3733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3734 -1, 88, -1, -1, 91, 92, -1, 94, 95, -1,
3735 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
3736 107, 108, -1, -1, -1, -1, -1, -1, -1, -1,
3737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3738 -1, 128, 129, 130, -1, -1, 133, -1, -1, -1,
3739 -1, -1, -1, -1, 141, 1, 143, 3, 4, 5,
3740 6, 7, -1, -1, 10, 11, 12, -1, -1, -1,
3741 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3742 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3743 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3744 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3745 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
3746 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3748 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
3749 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
3750 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
3751 1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
3752 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
3753 21, 22, 23, 24, -1, 141, -1, 143, -1, 30,
3754 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3755 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3756 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3757 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
3758 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3759 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
3760 91, 92, -1, 94, 95, -1, 97, -1, -1, 100,
3761 101, 102, 103, 104, 105, 106, 107, 108, -1, 110,
3762 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3763 -1, 7, -1, -1, -1, 11, 12, 128, 129, 130,
3764 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3765 141, -1, 143, -1, 30, 31, 32, 33, 34, 35,
3766 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3767 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3768 56, 57, 58, 59, 60, 61, 62, -1, 64, 65,
3769 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
3770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3771 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
3772 -1, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3773 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
3774 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3775 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
3776 21, 22, 23, 24, -1, -1, -1, 143, -1, 30,
3777 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3778 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3779 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3780 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
3781 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3782 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
3783 91, 92, -1, 94, 95, -1, -1, -1, -1, 100,
3784 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
3785 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3786 -1, 7, -1, -1, -1, 11, 12, 128, 129, 130,
3787 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3788 141, -1, 143, -1, 30, 31, 32, 33, 34, 35,
3789 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3790 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3791 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
3792 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
3793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3794 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
3795 -1, -1, -1, -1, 100, 101, 102, 103, 104, 105,
3796 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
3797 -1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
3798 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
3799 21, 22, 23, 24, -1, -1, -1, 143, -1, 30,
3800 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3801 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3802 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3803 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
3804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3805 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
3806 91, 92, -1, 94, 95, -1, 97, -1, -1, 100,
3807 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
3808 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3809 6, 7, -1, -1, -1, 11, 12, 128, 129, 130,
3810 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3811 141, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3812 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3813 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3814 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
3815 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
3816 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3817 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
3818 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
3819 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
3820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3821 -1, -1, 128, 129, 130, -1, -1, -1, -1, -1,
3822 -1, -1, -1, -1, -1, 141, 3, 4, 5, 6,
3823 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3824 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3825 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3826 37, 38, 39, -1, -1, -1, -1, -1, 45, 46,
3827 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3828 57, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3829 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3830 -1, -1, 79, 80, -1, -1, 83, 84, 85, 86,
3831 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3832 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
3833 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3834 -1, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3835 127, -1, 129, 130, -1, -1, -1, -1, -1, -1,
3836 137, 138, 3, 4, 5, 6, 7, 8, 9, 10,
3837 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3838 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
3839 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
3840 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3841 51, 52, 53, 54, 55, 56, 57, -1, -1, -1,
3842 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3843 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
3844 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
3845 -1, -1, -1, -1, -1, -1, 97, 98, -1, -1,
3846 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3847 -1, -1, -1, -1, -1, -1, -1, 118, 119, 120,
3848 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
3849 -1, -1, -1, -1, -1, -1, 137, 3, 4, 5,
3850 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3851 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3852 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3853 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
3854 46, 47, 48, 49, 50, 51, 52, 53, 54, -1,
3855 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3856 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3857 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
3858 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3859 -1, 97, 98, -1, -1, 101, -1, -1, -1, -1,
3860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3861 -1, -1, 118, 119, 120, 121, 122, 123, 124, 125,
3862 126, 127, -1, 129, 130, -1, -1, -1, -1, -1,
3863 -1, 137, 3, 4, 5, 6, 7, 8, 9, 10,
3864 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3865 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
3866 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
3867 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3868 51, 52, 53, -1, -1, 56, -1, -1, -1, -1,
3869 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3870 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
3871 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
3872 -1, -1, -1, -1, -1, -1, 97, 98, -1, -1,
3873 101, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3874 -1, -1, -1, -1, -1, -1, -1, 118, 119, 120,
3875 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
3876 -1, -1, -1, -1, -1, -1, 137, 3, 4, 5,
3877 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3878 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3879 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3880 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
3881 46, 47, 48, 49, 50, 51, 52, 53, -1, -1,
3882 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3883 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3884 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
3885 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3886 -1, 97, 98, -1, -1, -1, -1, -1, -1, -1,
3887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3888 -1, -1, 118, 119, 120, 121, 122, 123, 124, 125,
3889 126, 127, -1, 129, 130, 3, 4, 5, -1, 7,
3890 -1, 137, -1, 11, 12, -1, -1, -1, 16, -1,
3891 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3892 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3893 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3894 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3895 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
3896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3898 88, -1, -1, 91, 92, -1, 94, 95, -1, -1,
3899 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
3900 108, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3901 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3902 128, 18, 19, 20, 21, 22, 23, 24, 136, -1,
3903 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3904 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3905 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3906 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
3907 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3908 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3909 -1, 88, -1, -1, 91, 92, -1, 94, 95, -1,
3910 -1, -1, -1, 100, 101, 102, 103, 104, 105, 106,
3911 107, 108, -1, -1, -1, -1, -1, 3, 4, 5,
3912 6, 7, -1, -1, -1, 11, 12, -1, -1, -1,
3913 16, 128, 18, 19, 20, 21, 22, 23, 24, 136,
3914 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3915 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3916 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3917 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
3918 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
3919 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3920 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
3921 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
3922 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
3923 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3924 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
3925 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3926 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3927 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3928 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3929 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
3930 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3931 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
3932 91, 92, -1, 94, 95, -1, 97, 98, 99, 100,
3933 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
3934 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3935 6, 7, -1, -1, -1, 11, 12, 128, 129, 130,
3936 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3937 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3938 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3939 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3940 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
3941 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
3942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3943 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
3944 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
3945 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
3946 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3947 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
3948 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3949 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3950 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3951 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3952 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
3953 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3954 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
3955 91, 92, -1, 94, 95, -1, 97, 98, 99, 100,
3956 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
3957 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3958 -1, 7, -1, -1, -1, 11, 12, 128, 129, 130,
3959 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3960 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3961 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3962 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3963 56, 57, 58, 59, 60, 61, 62, -1, 64, 65,
3964 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
3965 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3966 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
3967 -1, 97, 98, -1, 100, 101, 102, 103, 104, 105,
3968 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
3969 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3970 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
3971 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3972 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3973 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3974 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3975 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
3976 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3977 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
3978 91, 92, -1, 94, 95, -1, -1, 98, 99, 100,
3979 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
3980 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3981 -1, 7, -1, -1, -1, 11, 12, 128, 129, 130,
3982 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3983 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3984 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3985 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3986 56, 57, 58, 59, 60, 61, 62, -1, 64, 65,
3987 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
3988 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3989 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
3990 -1, 97, 98, -1, 100, 101, 102, 103, 104, 105,
3991 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
3992 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3993 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
3994 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3995 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3996 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3997 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3998 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
3999 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4000 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
4001 91, 92, -1, 94, 95, -1, -1, 98, -1, 100,
4002 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
4003 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4004 -1, 7, -1, -1, -1, 11, 12, 128, 129, 130,
4005 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4006 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4007 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4008 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4009 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4010 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
4011 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4012 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
4013 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
4014 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
4015 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4016 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
4017 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4018 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4019 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4020 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4021 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4022 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4023 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
4024 91, 92, -1, 94, 95, -1, 97, -1, -1, 100,
4025 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
4026 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4027 -1, 7, -1, -1, -1, 11, 12, 128, 129, 130,
4028 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4029 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4030 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4031 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4032 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4033 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
4034 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4035 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
4036 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
4037 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
4038 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4039 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
4040 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4041 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4042 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4043 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4044 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4045 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4046 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
4047 91, 92, -1, 94, 95, -1, 97, -1, -1, 100,
4048 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
4049 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4050 -1, 7, -1, -1, -1, 11, 12, 128, 129, 130,
4051 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4052 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4053 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4054 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4055 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4056 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
4057 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4058 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
4059 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
4060 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
4061 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4062 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
4063 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4064 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4065 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4066 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4067 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4068 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4069 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
4070 91, 92, -1, 94, 95, -1, -1, -1, -1, 100,
4071 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
4072 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4073 -1, 7, -1, -1, -1, 11, 12, 128, 129, 130,
4074 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4075 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4076 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4077 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4078 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4079 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
4080 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4081 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
4082 -1, -1, -1, -1, 100, 101, 102, 103, 104, 105,
4083 106, 107, 108, -1, -1, -1, -1, -1, -1, -1,
4084 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4085 11, 12, 128, 129, 130, 16, -1, 18, 19, 20,
4086 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4087 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4088 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4089 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4090 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4092 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
4093 91, 92, -1, 94, 95, -1, -1, -1, -1, 100,
4094 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
4095 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4096 -1, 7, -1, -1, -1, 11, 12, 128, 129, 130,
4097 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4098 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4099 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4100 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4101 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4102 66, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4103 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4104 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
4105 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
4106 106, 107, 108, -1, -1, -1, -1, -1, 3, 4,
4107 5, -1, 7, -1, -1, -1, 11, 12, -1, -1,
4108 -1, 16, 128, 18, 19, 20, 21, 22, 23, 24,
4109 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4110 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4111 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4112 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
4113 65, 66, -1, -1, -1, -1, -1, -1, -1, -1,
4114 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4115 -1, -1, -1, 88, -1, -1, 91, 92, -1, 94,
4116 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
4117 105, 106, 107, 108, -1, -1, -1, -1, -1, 3,
4118 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4119 -1, -1, 16, 128, 18, 19, 20, 21, 22, 23,
4120 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4121 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4122 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4123 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4124 64, 65, 66, -1, -1, -1, -1, -1, -1, -1,
4125 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4126 -1, 85, -1, -1, 88, -1, -1, 91, 92, -1,
4127 94, 95, -1, -1, -1, -1, 100, 101, 102, 103,
4128 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
4129 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4130 -1, -1, -1, 16, 128, 18, 19, 20, 21, 22,
4131 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4132 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4133 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4134 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4135 -1, 64, 65, 66, -1, -1, -1, -1, -1, -1,
4136 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4137 -1, -1, -1, -1, -1, 88, -1, -1, 91, 92,
4138 -1, 94, 95, -1, -1, -1, -1, 100, 101, 102,
4139 103, 104, 105, 106, 107, 108, -1, -1, -1, -1,
4140 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4141 12, -1, -1, -1, 16, 128, 18, 19, 20, 21,
4142 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4143 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4144 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4145 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4146 62, -1, 64, 65, 66, -1, -1, -1, -1, -1,
4147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4148 -1, -1, -1, -1, -1, -1, 88, -1, -1, 91,
4149 92, -1, 94, 95, -1, -1, -1, -1, 100, 101,
4150 102, 103, 104, 105, 106, 107, 108, -1, -1, -1,
4151 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4152 11, 12, -1, -1, -1, 16, 128, 18, 19, 20,
4153 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4154 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4155 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4156 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4157 61, 62, -1, 64, 65, 66, -1, -1, -1, -1,
4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4159 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
4160 91, 92, -1, 94, 95, -1, -1, -1, -1, 100,
4161 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
4162 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4163 -1, 11, 12, -1, -1, -1, 16, 128, 18, 19,
4164 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4165 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4166 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4167 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4168 60, 61, 62, -1, 64, 65, 66, -1, -1, -1,
4169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4170 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
4171 -1, 91, 92, -1, 94, 95, -1, -1, -1, -1,
4172 100, 101, 102, 103, 104, 105, 106, 107, 108, -1,
4173 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
4174 -1, -1, -1, -1, -1, -1, -1, -1, 128, 68,
4175 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
4176 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
4177 -1, -1, -1, -1, -1, -1, -1, -1, 97, 98,
4178 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4179 -1, -1, -1, -1, -1, -1, -1, -1, -1, 118,
4180 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
4181 129, 130, 52, 53, -1, -1, 56, -1, 137, -1,
4182 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
4183 70, 71, 72, 73, 74, 75, 76, -1, -1, 79,
4184 80, -1, -1, 83, 84, 85, 86, -1, -1, -1,
4185 -1, -1, -1, -1, -1, -1, -1, 97, 98, -1,
4186 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4187 -1, -1, -1, -1, -1, -1, -1, -1, 118, 119,
4188 120, 121, 122, 123, 124, 125, 126, 127, -1, 129,
4189 130, 52, 53, -1, -1, 56, -1, 137, -1, -1,
4190 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
4191 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
4192 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
4193 -1, -1, -1, -1, -1, -1, 97, 98, -1, -1,
4194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4195 -1, -1, -1, -1, -1, -1, -1, 118, 119, 120,
4196 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
4197 52, 53, -1, -1, 56, -1, 137, -1, -1, -1,
4198 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
4199 72, 73, 74, 75, 76, -1, -1, 79, 80, -1,
4200 -1, 83, 84, 85, 86, -1, -1, -1, -1, -1,
4201 -1, -1, -1, -1, -1, 97, 98, -1, -1, -1,
4202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4203 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121,
4204 122, 123, 124, 125, 126, 127, -1, 129, 130, 52,
4205 53, -1, -1, 56, -1, 137, -1, -1, -1, -1,
4206 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
4207 73, 74, 75, 76, -1, -1, 79, 80, -1, -1,
4208 83, 84, 85, 86, -1, -1, -1, -1, -1, -1,
4209 -1, -1, -1, -1, 97, 98, -1, -1, -1, -1,
4210 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4211 -1, -1, -1, -1, -1, 118, 119, 120, 121, 122,
4212 123, 124, 125, 126, 127, -1, 129, 130, 52, 53,
4213 -1, -1, 56, -1, 137, -1, -1, -1, -1, -1,
4214 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4215 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4216 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4217 -1, -1, -1, 97, 98, -1, -1, -1, -1, -1,
4218 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4219 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123,
4220 124, 125, 126, 127, -1, 129, 130, 52, 53, -1,
4221 -1, 56, -1, 137, -1, -1, -1, -1, -1, -1,
4222 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
4223 75, 76, -1, -1, 79, 80, -1, -1, 83, 84,
4224 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
4225 -1, -1, 97, 98, -1, -1, -1, -1, -1, -1,
4226 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4227 -1, -1, -1, 118, 119, 120, 121, 122, 123, 124,
4228 125, 126, 127, -1, 129, 130, 52, 53, -1, -1,
4229 56, -1, 137, -1, -1, -1, -1, -1, -1, -1,
4230 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
4231 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
4232 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4233 -1, 97, 98, -1, -1, -1, -1, -1, -1, -1,
4234 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4235 -1, -1, 118, 119, 120, 121, 122, 123, 124, 125,
4236 126, 127, -1, 129, 130, 52, 53, -1, -1, 56,
4237 -1, 137, -1, -1, -1, -1, -1, -1, -1, -1,
4238 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4239 -1, -1, 79, 80, -1, -1, 83, 84, 85, 86,
4240 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4241 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
4242 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4243 -1, 118, 119, 120, 121, 122, 123, 124, 125, 126,
4244 127, -1, 129, 130, 52, 53, -1, -1, 56, -1,
4245 137, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4246 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4247 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4248 -1, -1, -1, -1, -1, -1, -1, -1, -1, 97,
4249 98, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4250 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4251 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
4252 -1, 129, 130, 52, 53, -1, -1, 56, -1, 137,
4253 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
4254 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
4255 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
4256 -1, -1, -1, -1, -1, -1, -1, -1, 97, 98,
4257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4258 -1, -1, -1, -1, -1, -1, -1, -1, -1, 118,
4259 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
4260 129, 130, 52, 53, -1, -1, 56, -1, 137, -1,
4261 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
4262 70, 71, 72, 73, 74, 75, 76, -1, -1, 79,
4263 80, -1, -1, 83, 84, 85, 86, -1, -1, -1,
4264 -1, -1, -1, -1, -1, -1, -1, 97, 98, -1,
4265 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4266 -1, -1, -1, -1, -1, -1, -1, -1, 118, 119,
4267 120, 121, 122, 123, 124, 125, 126, 127, -1, 129,
4268 130, 52, 53, -1, -1, 56, -1, 137, -1, -1,
4269 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
4270 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
4271 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
4272 -1, -1, -1, -1, -1, -1, 97, 98, 70, 71,
4273 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
4274 82, -1, -1, 85, 86, -1, -1, 118, 119, 120,
4275 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
4276 -1, -1, -1, -1, -1, -1, 137, -1, -1, -1,
4277 -1, -1, -1, -1, 116, -1, 118, 119, 120, 121,
4278 122, 123, 124, 125, 126, 127, -1, -1, -1, -1,
4279 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4287 0, 145, 146, 0, 1, 3, 4, 5, 6, 7,
4288 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4289 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4290 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4291 57, 59, 60, 61, 62, 64, 65, 66, 68, 69,
4292 88, 91, 92, 94, 95, 97, 100, 101, 102, 103,
4293 104, 105, 106, 107, 108, 128, 129, 130, 147, 148,
4294 149, 156, 158, 159, 161, 162, 165, 166, 167, 169,
4295 170, 171, 173, 174, 184, 199, 218, 219, 220, 221,
4296 222, 223, 224, 225, 226, 227, 228, 254, 255, 269,
4297 270, 271, 272, 273, 274, 275, 278, 280, 281, 293,
4298 295, 296, 297, 298, 299, 300, 301, 302, 335, 346,
4299 149, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4300 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4301 22, 23, 24, 25, 26, 30, 31, 32, 33, 34,
4302 35, 36, 37, 38, 39, 45, 46, 47, 48, 49,
4303 50, 51, 52, 53, 56, 68, 69, 70, 71, 72,
4304 73, 74, 75, 76, 79, 80, 83, 84, 85, 86,
4305 97, 98, 118, 119, 120, 121, 122, 123, 124, 125,
4306 126, 127, 129, 130, 137, 177, 178, 179, 180, 182,
4307 183, 293, 295, 39, 58, 88, 91, 97, 98, 99,
4308 129, 166, 174, 184, 186, 191, 194, 196, 218, 298,
4309 299, 301, 302, 333, 334, 191, 191, 138, 192, 193,
4310 138, 188, 192, 138, 143, 340, 54, 179, 340, 150,
4311 132, 21, 22, 30, 31, 32, 165, 184, 218, 184,
4312 56, 1, 47, 91, 152, 153, 154, 156, 168, 169,
4313 346, 201, 202, 187, 196, 333, 346, 186, 332, 333,
4314 346, 46, 88, 128, 136, 173, 199, 218, 298, 299,
4315 302, 246, 247, 54, 55, 57, 177, 285, 294, 284,
4316 285, 286, 142, 276, 142, 282, 142, 279, 142, 283,
4317 297, 161, 184, 184, 141, 143, 339, 344, 345, 40,
4318 41, 42, 43, 44, 37, 38, 26, 132, 188, 192,
4319 260, 28, 252, 115, 136, 91, 97, 170, 115, 70,
4320 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4321 81, 82, 85, 86, 116, 118, 119, 120, 121, 122,
4322 123, 124, 125, 126, 127, 87, 134, 135, 200, 159,
4323 160, 160, 205, 207, 160, 339, 345, 88, 167, 174,
4324 218, 234, 298, 299, 302, 52, 56, 85, 88, 175,
4325 176, 218, 298, 299, 302, 176, 33, 34, 35, 36,
4326 49, 50, 51, 52, 56, 138, 177, 300, 330, 87,
4327 135, 338, 260, 272, 89, 89, 136, 186, 56, 186,
4328 186, 186, 115, 90, 136, 195, 346, 87, 134, 135,
4329 89, 89, 136, 195, 191, 340, 341, 191, 190, 191,
4330 196, 333, 346, 159, 341, 159, 54, 65, 66, 157,
4331 138, 185, 132, 152, 87, 135, 89, 156, 155, 168,
4332 139, 339, 345, 341, 341, 159, 140, 136, 143, 343,
4333 136, 343, 133, 343, 340, 56, 297, 170, 172, 136,
4334 87, 134, 135, 248, 63, 109, 111, 112, 287, 112,
4335 287, 112, 67, 287, 112, 112, 277, 287, 112, 63,
4336 112, 112, 112, 277, 112, 63, 112, 70, 141, 149,
4337 160, 160, 160, 160, 156, 159, 159, 262, 261, 96,
4338 163, 253, 97, 161, 186, 196, 197, 198, 168, 136,
4339 173, 136, 158, 161, 174, 184, 186, 198, 184, 184,
4340 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
4341 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
4342 184, 184, 184, 184, 52, 53, 56, 182, 259, 336,
4343 337, 190, 52, 53, 56, 182, 258, 336, 151, 152,
4344 13, 230, 344, 230, 160, 160, 339, 17, 263, 56,
4345 87, 134, 135, 25, 159, 52, 56, 175, 1, 119,
4346 303, 344, 87, 134, 135, 214, 331, 215, 338, 52,
4347 56, 336, 161, 184, 161, 184, 181, 184, 186, 97,
4348 186, 194, 333, 52, 56, 190, 52, 56, 334, 341,
4349 139, 341, 136, 136, 341, 179, 204, 184, 147, 133,
4350 336, 336, 184, 132, 341, 154, 203, 333, 136, 172,
4351 52, 56, 190, 52, 56, 52, 54, 55, 56, 57,
4352 58, 70, 91, 97, 98, 99, 122, 125, 138, 250,
4353 307, 309, 310, 311, 312, 313, 314, 315, 318, 319,
4354 320, 321, 324, 325, 326, 327, 328, 289, 288, 142,
4355 287, 142, 142, 142, 184, 78, 120, 241, 242, 346,
4356 241, 164, 241, 186, 136, 341, 172, 136, 115, 44,
4357 340, 89, 89, 188, 192, 257, 340, 342, 89, 89,
4358 188, 192, 256, 10, 229, 8, 265, 346, 152, 13,
4359 152, 27, 231, 344, 231, 263, 196, 229, 52, 56,
4360 190, 52, 56, 209, 212, 344, 304, 211, 52, 56,
4361 175, 190, 151, 159, 138, 305, 306, 216, 188, 189,
4362 192, 346, 44, 179, 186, 195, 89, 89, 342, 89,
4363 89, 333, 159, 133, 147, 341, 343, 170, 342, 91,
4364 97, 235, 236, 237, 311, 309, 249, 115, 136, 308,
4365 186, 136, 329, 346, 52, 136, 329, 136, 308, 52,
4366 136, 308, 52, 290, 54, 55, 57, 292, 302, 238,
4367 240, 243, 311, 313, 314, 316, 317, 320, 322, 323,
4368 326, 328, 340, 152, 152, 241, 152, 97, 186, 172,
4369 184, 117, 161, 184, 161, 184, 163, 188, 140, 89,
4370 161, 184, 161, 184, 163, 189, 186, 198, 266, 346,
4371 15, 233, 346, 14, 232, 233, 233, 206, 208, 229,
4372 136, 230, 342, 160, 344, 160, 151, 342, 229, 341,
4373 309, 151, 309, 177, 260, 252, 184, 89, 136, 341,
4374 133, 237, 136, 311, 136, 341, 243, 29, 113, 251,
4375 186, 307, 312, 324, 326, 315, 320, 328, 313, 321,
4376 326, 311, 313, 291, 243, 120, 115, 136, 239, 88,
4377 218, 136, 329, 329, 136, 239, 136, 239, 141, 10,
4378 133, 152, 10, 186, 184, 161, 184, 90, 267, 346,
4379 152, 9, 268, 346, 160, 229, 229, 152, 152, 186,
4380 152, 231, 213, 344, 229, 341, 229, 344, 217, 341,
4381 236, 136, 97, 235, 139, 152, 152, 136, 308, 136,
4382 308, 329, 136, 308, 136, 308, 308, 152, 120, 218,
4383 238, 323, 326, 56, 87, 316, 320, 313, 322, 326,
4384 313, 52, 244, 245, 310, 133, 88, 174, 218, 298,
4385 299, 302, 230, 152, 230, 229, 229, 233, 263, 264,
4386 210, 151, 305, 136, 236, 136, 311, 10, 133, 313,
4387 326, 313, 313, 110, 136, 239, 136, 239, 52, 56,
4388 329, 136, 239, 136, 239, 239, 136, 340, 56, 87,
4389 134, 135, 152, 152, 152, 229, 151, 236, 136, 308,
4390 136, 308, 308, 308, 313, 326, 313, 313, 245, 52,
4391 56, 190, 52, 56, 265, 232, 229, 229, 236, 313,
4392 239, 136, 239, 239, 239, 342, 308, 313, 239
4395 #define yyerrok (yyerrstatus = 0)
4396 #define yyclearin (yychar = YYEMPTY)
4397 #define YYEMPTY (-2)
4400 #define YYACCEPT goto yyacceptlab
4401 #define YYABORT goto yyabortlab
4402 #define YYERROR goto yyerrorlab
4412 #define YYFAIL goto yyerrlab
4420 #define YYRECOVERING() (!!yyerrstatus)
4422 #define YYBACKUP(Token, Value) \
4424 if (yychar == YYEMPTY && yylen == 1) \
4433 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4440 #define YYERRCODE 256
4447 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4448 #ifndef YYLLOC_DEFAULT
4449 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4453 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4454 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4455 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4456 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4460 (Current).first_line = (Current).last_line = \
4461 YYRHSLOC (Rhs, 0).last_line; \
4462 (Current).first_column = (Current).last_column = \
4463 YYRHSLOC (Rhs, 0).last_column; \
4471 #ifndef YY_LOCATION_PRINT
4472 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4479 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4481 # define YYLEX yylex (&yylval, parser)
4489 # define YYFPRINTF fprintf
4492 # define YYDPRINTF(Args) \
4498 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4502 YYFPRINTF (stderr, "%s ", Title); \
4503 yy_symbol_print (stderr, \
4504 Type, Value, parser); \
4505 YYFPRINTF (stderr, "\n"); \
4515 #if (defined __STDC__ || defined __C99__FUNC__ \
4516 || defined __cplusplus || defined _MSC_VER)
4533 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4549 #if (defined __STDC__ || defined __C99__FUNC__ \
4550 || defined __cplusplus || defined _MSC_VER)
4563 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4565 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4576 #if (defined __STDC__ || defined __C99__FUNC__ \
4577 || defined __cplusplus || defined _MSC_VER)
4583 yytype_int16 *yybottom;
4584 yytype_int16 *yytop;
4588 for (; yybottom <= yytop; yybottom++)
4590 int yybot = *yybottom;
4596 # define YY_STACK_PRINT(Bottom, Top) \
4599 yy_stack_print ((Bottom), (Top)); \
4607 #if (defined __STDC__ || defined __C99__FUNC__ \
4608 || defined __cplusplus || defined _MSC_VER)
4619 int yynrhs = yyr2[yyrule];
4621 unsigned long int yylno = yyrline[yyrule];
4622 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4625 for (yyi = 0; yyi < yynrhs; yyi++)
4629 &(yyvsp[(yyi + 1) - (yynrhs)])
4635 # define YY_REDUCE_PRINT(Rule) \
4638 yy_reduce_print (yyvsp, Rule, parser); \
4647 # define YYDPRINTF(Args)
4648 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4649 # define YY_STACK_PRINT(Bottom, Top)
4650 # define YY_REDUCE_PRINT(Rule)
4656 # define YYINITDEPTH 200
4667 # define YYMAXDEPTH 10000
4674 # if defined __GLIBC__ && defined _STRING_H
4675 # define yystrlen strlen
4678 #if (defined __STDC__ || defined __C99__FUNC__ \
4679 || defined __cplusplus || defined _MSC_VER)
4689 for (yylen = 0; yystr[yylen]; yylen++)
4697 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4698 # define yystpcpy stpcpy
4702 #if (defined __STDC__ || defined __C99__FUNC__ \
4703 || defined __cplusplus || defined _MSC_VER)
4705 yystpcpy (
char *yydest,
const char *yysrc)
4714 const char *yys = yysrc;
4716 while ((*yyd++ = *yys++) !=
'\0')
4738 char const *yyp = yystr;
4745 goto do_not_strip_quotes;
4749 goto do_not_strip_quotes;
4762 do_not_strip_quotes: ;
4768 return yystpcpy (yyres, yystr) - yyres;
4782 yytype_int16 *yyssp,
int yytoken)
4787 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4789 const char *yyformat = 0;
4791 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4825 int yyn = yypact[*yyssp];
4826 yyarg[yycount++] = yytname[yytoken];
4832 int yyxbegin = yyn < 0 ? -yyn : 0;
4834 int yychecklim =
YYLAST - yyn + 1;
4838 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4839 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
4842 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4848 yyarg[yycount++] = yytname[yyx];
4849 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4850 if (! (yysize <= yysize1
4860 # define YYCASE_(N, S) \
4865 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4866 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4867 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4868 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4869 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4873 yysize1 = yysize +
yystrlen (yyformat);
4878 if (*yymsg_alloc < yysize)
4880 *yymsg_alloc = 2 * yysize;
4881 if (! (yysize <= *yymsg_alloc
4893 while ((*yyp = *yyformat) !=
'\0')
4894 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4914 #if (defined __STDC__ || defined __C99__FUNC__ \
4915 || defined __cplusplus || defined _MSC_VER)
4944 #ifdef YYPARSE_PARAM
4945 #if defined __STDC__ || defined __cplusplus
4946 int yyparse (
void *YYPARSE_PARAM);
4951 #if defined __STDC__ || defined __cplusplus
4963 #ifdef YYPARSE_PARAM
4964 #if (defined __STDC__ || defined __C99__FUNC__ \
4965 || defined __cplusplus || defined _MSC_VER)
4971 void *YYPARSE_PARAM;
4974 #if (defined __STDC__ || defined __C99__FUNC__ \
4975 || defined __cplusplus || defined _MSC_VER)
5008 yytype_int16 *yyssp;
5028 char *yymsg = yymsgbuf;
5029 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
5032 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
5043 YYDPRINTF ((stderr,
"Starting parse\n"));
5070 if (yyss + yystacksize - 1 <= yyssp)
5073 YYSIZE_T yysize = yyssp - yyss + 1;
5081 yytype_int16 *yyss1 = yyss;
5087 yyoverflow (
YY_(
"memory exhausted"),
5088 &yyss1, yysize *
sizeof (*yyssp),
5089 &yyvs1, yysize *
sizeof (*yyvsp),
5096 # ifndef YYSTACK_RELOCATE
5097 goto yyexhaustedlab;
5101 goto yyexhaustedlab;
5107 yytype_int16 *yyss1 = yyss;
5111 goto yyexhaustedlab;
5114 # undef YYSTACK_RELOCATE
5121 yyssp = yyss + yysize - 1;
5122 yyvsp = yyvs + yysize - 1;
5124 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
5125 (
unsigned long int) yystacksize));
5127 if (yyss + yystacksize - 1 <= yyssp)
5131 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5147 yyn = yypact[yystate];
5156 YYDPRINTF ((stderr,
"Reading a token: "));
5160 if (yychar <=
YYEOF)
5162 yychar = yytoken =
YYEOF;
5163 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5174 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5206 yyn = yydefact[yystate];
5227 yyval = yyvsp[1-yylen];
5236 #line 863 "ripper.y"
5250 #line 872 "ripper.y"
5257 NODE *node = (yyvsp[(2) - (2)].
val);
5258 while (node->nd_next) {
5259 node = node->nd_next;
5266 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5267 parser->result = dispatch1(program, (yyval.
val));
5276 #line 895 "ripper.y"
5283 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5290 #line 906 "ripper.y"
5295 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5296 dispatch0(void_stmt));
5304 #line 915 "ripper.y"
5309 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5317 #line 923 "ripper.y"
5322 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5330 #line 931 "ripper.y"
5339 #line 938 "ripper.y"
5351 #line 945 "ripper.y"
5355 (yyvsp[(4) - (5)].
val));
5360 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5368 #line 962 "ripper.y"
5371 (yyval.
val) = (yyvsp[(1) - (4)].
val);
5372 if ((yyvsp[(2) - (4)].
val)) {
5375 else if ((yyvsp[(3) - (4)].
val)) {
5376 rb_warn0(
"else without rescue is useless");
5379 if ((yyvsp[(4) - (4)].
val)) {
5389 (yyval.
val) = dispatch4(bodystmt,
5390 escape_Qundef((yyvsp[(1) - (4)].
val)),
5391 escape_Qundef((yyvsp[(2) - (4)].
val)),
5392 escape_Qundef((yyvsp[(3) - (4)].
val)),
5393 escape_Qundef((yyvsp[(4) - (4)].
val)));
5401 #line 992 "ripper.y"
5408 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5415 #line 1003 "ripper.y"
5420 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5421 dispatch0(void_stmt));
5429 #line 1012 "ripper.y"
5434 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5442 #line 1020 "ripper.y"
5447 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5455 #line 1028 "ripper.y"
5464 #line 1034 "ripper.y"
5466 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5473 #line 1038 "ripper.y"
5475 yyerror(
"BEGIN is permitted only at toplevel");
5486 #line 1046 "ripper.y"
5490 (yyvsp[(4) - (5)].
val));
5495 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5503 #line 1058 "ripper.y"
5510 #line 1059 "ripper.y"
5515 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
5523 #line 1067 "ripper.y"
5528 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5536 #line 1075 "ripper.y"
5541 buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
5544 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5552 #line 1086 "ripper.y"
5555 yyerror(
"can't make alias for the number variables");
5558 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5559 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5567 #line 1096 "ripper.y"
5570 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5572 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
5580 #line 1104 "ripper.y"
5586 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5594 #line 1113 "ripper.y"
5600 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5608 #line 1122 "ripper.y"
5618 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5626 #line 1135 "ripper.y"
5636 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5644 #line 1148 "ripper.y"
5650 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5658 #line 1157 "ripper.y"
5661 rb_warn0(
"END in method; use at_exit");
5667 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
5675 #line 1170 "ripper.y"
5680 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5682 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5690 #line 1180 "ripper.y"
5700 #line 1185 "ripper.y"
5708 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
5709 (yyvsp[(5) - (6)].
val) = 0;
5711 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
5712 (yyvsp[(5) - (6)].
val) = 1;
5717 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
5718 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
5726 #line 1206 "ripper.y"
5736 #line 1211 "ripper.y"
5746 #line 1216 "ripper.y"
5752 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
5753 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
5761 #line 1226 "ripper.y"
5771 #line 1231 "ripper.y"
5777 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
5778 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5786 #line 1241 "ripper.y"
5792 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5800 #line 1250 "ripper.y"
5804 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5806 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5814 #line 1262 "ripper.y"
5820 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5828 #line 1271 "ripper.y"
5834 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5842 #line 1284 "ripper.y"
5847 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"and"), (yyvsp[(3) - (3)].
val));
5855 #line 1292 "ripper.y"
5860 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"or"), (yyvsp[(3) - (3)].
val));
5868 #line 1300 "ripper.y"
5873 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"), (yyvsp[(3) - (3)].
val));
5881 #line 1308 "ripper.y"
5886 (yyval.
val) = dispatch2(unary, ripper_id2sym(
'!'), (yyvsp[(2) - (2)].
val));
5894 #line 1319 "ripper.y"
5898 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5901 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5909 #line 1336 "ripper.y"
5912 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5914 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
5915 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5923 #line 1347 "ripper.y"
5936 #line 1357 "ripper.y"
5942 (yyval.
val) = dispatch2(brace_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
5951 #line 1369 "ripper.y"
5964 #line 1379 "ripper.y"
5967 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5970 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
5978 #line 1388 "ripper.y"
5984 (yyval.
val) = (yyvsp[(3) - (3)].
val);
5987 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
5988 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5996 #line 1401 "ripper.y"
5999 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6002 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6010 #line 1410 "ripper.y"
6015 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6018 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
6019 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6027 #line 1422 "ripper.y"
6030 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6033 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (4)].
val), ripper_intern(
"::"), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6041 #line 1431 "ripper.y"
6046 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6049 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), ripper_intern(
"::"), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
6050 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6058 #line 1443 "ripper.y"
6064 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
6072 #line 1452 "ripper.y"
6078 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
6086 #line 1461 "ripper.y"
6091 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
6099 #line 1469 "ripper.y"
6104 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
6112 #line 1477 "ripper.y"
6117 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
6125 #line 1488 "ripper.y"
6128 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6130 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6138 #line 1499 "ripper.y"
6143 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6151 #line 1509 "ripper.y"
6156 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6164 #line 1517 "ripper.y"
6169 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6177 #line 1525 "ripper.y"
6182 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6190 #line 1533 "ripper.y"
6195 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6196 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
6204 #line 1542 "ripper.y"
6209 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val),
Qnil);
6217 #line 1550 "ripper.y"
6222 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val),
Qnil);
6223 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
6231 #line 1559 "ripper.y"
6236 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6244 #line 1567 "ripper.y"
6249 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6250 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
6258 #line 1576 "ripper.y"
6263 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6271 #line 1584 "ripper.y"
6276 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6277 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6285 #line 1596 "ripper.y"
6288 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6290 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6298 #line 1606 "ripper.y"
6303 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6311 #line 1614 "ripper.y"
6316 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6324 #line 1624 "ripper.y"
6329 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6337 #line 1632 "ripper.y"
6342 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6350 #line 1642 "ripper.y"
6359 #line 1646 "ripper.y"
6368 #line 1650 "ripper.y"
6373 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6381 #line 1658 "ripper.y"
6386 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6394 #line 1666 "ripper.y"
6399 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6407 #line 1674 "ripper.y"
6412 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6420 #line 1682 "ripper.y"
6424 yyerror(
"dynamic constant assignment");
6428 yyerror(
"dynamic constant assignment");
6429 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6437 #line 1694 "ripper.y"
6441 yyerror(
"dynamic constant assignment");
6444 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6452 #line 1704 "ripper.y"
6458 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].
val));
6459 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6467 #line 1716 "ripper.y"
6473 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6481 #line 1725 "ripper.y"
6487 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6495 #line 1734 "ripper.y"
6500 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6508 #line 1742 "ripper.y"
6513 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6521 #line 1750 "ripper.y"
6526 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
6534 #line 1758 "ripper.y"
6539 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6547 #line 1766 "ripper.y"
6551 yyerror(
"dynamic constant assignment");
6554 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6556 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6565 #line 1779 "ripper.y"
6569 yyerror(
"dynamic constant assignment");
6572 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6574 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6583 #line 1792 "ripper.y"
6589 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].
val));
6597 #line 1803 "ripper.y"
6600 yyerror(
"class/module name must be CONSTANT");
6602 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
6610 #line 1814 "ripper.y"
6615 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
6623 #line 1822 "ripper.y"
6628 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
6636 #line 1830 "ripper.y"
6641 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6649 #line 1843 "ripper.y"
6652 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6659 #line 1848 "ripper.y"
6663 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6665 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6673 #line 1863 "ripper.y"
6678 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
6686 #line 1874 "ripper.y"
6699 #line 1881 "ripper.y"
6706 #line 1882 "ripper.y"
6719 #line 1891 "ripper.y"
6726 #line 1892 "ripper.y"
6733 #line 1893 "ripper.y"
6740 #line 1894 "ripper.y"
6747 #line 1895 "ripper.y"
6754 #line 1896 "ripper.y"
6761 #line 1897 "ripper.y"
6768 #line 1898 "ripper.y"
6775 #line 1899 "ripper.y"
6782 #line 1900 "ripper.y"
6789 #line 1901 "ripper.y"
6796 #line 1902 "ripper.y"
6803 #line 1903 "ripper.y"
6810 #line 1904 "ripper.y"
6817 #line 1905 "ripper.y"
6824 #line 1906 "ripper.y"
6831 #line 1907 "ripper.y"
6838 #line 1908 "ripper.y"
6845 #line 1909 "ripper.y"
6852 #line 1910 "ripper.y"
6859 #line 1911 "ripper.y"
6866 #line 1912 "ripper.y"
6873 #line 1913 "ripper.y"
6880 #line 1914 "ripper.y"
6887 #line 1915 "ripper.y"
6894 #line 1916 "ripper.y"
6901 #line 1917 "ripper.y"
6908 #line 1918 "ripper.y"
6915 #line 1919 "ripper.y"
6922 #line 1920 "ripper.y"
6929 #line 1938 "ripper.y"
6935 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6943 #line 1947 "ripper.y"
6950 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].
val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val)));
6958 #line 1957 "ripper.y"
6968 #line 1962 "ripper.y"
6974 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
6983 #line 1972 "ripper.y"
6996 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
6997 (yyvsp[(5) - (6)].
val) = 0;
6999 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
7000 (yyvsp[(5) - (6)].
val) = 1;
7005 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
7006 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
7014 #line 1998 "ripper.y"
7024 #line 2003 "ripper.y"
7034 #line 2008 "ripper.y"
7044 #line 2013 "ripper.y"
7050 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
7051 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
7059 #line 2023 "ripper.y"
7065 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].
val));
7066 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
7074 #line 2033 "ripper.y"
7080 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].
val));
7081 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
7082 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
7090 #line 2044 "ripper.y"
7101 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7109 #line 2058 "ripper.y"
7120 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7128 #line 2072 "ripper.y"
7133 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
7141 #line 2080 "ripper.y"
7146 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
7154 #line 2088 "ripper.y"
7159 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
7167 #line 2096 "ripper.y"
7172 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
7180 #line 2104 "ripper.y"
7185 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
7193 #line 2112 "ripper.y"
7198 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"**"), (yyvsp[(3) - (3)].
val));
7206 #line 2120 "ripper.y"
7211 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].
val), ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
7212 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyval.
val));
7220 #line 2129 "ripper.y"
7225 (yyval.
val) = dispatch2(unary, ripper_intern(
"+@"), (yyvsp[(2) - (2)].
val));
7233 #line 2137 "ripper.y"
7238 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyvsp[(2) - (2)].
val));
7246 #line 2145 "ripper.y"
7251 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
7259 #line 2153 "ripper.y"
7264 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7272 #line 2161 "ripper.y"
7277 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7285 #line 2169 "ripper.y"
7290 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"<=>"), (yyvsp[(3) - (3)].
val));
7298 #line 2177 "ripper.y"
7303 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7311 #line 2185 "ripper.y"
7316 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
">="), (yyvsp[(3) - (3)].
val));
7324 #line 2193 "ripper.y"
7329 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7337 #line 2201 "ripper.y"
7342 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"<="), (yyvsp[(3) - (3)].
val));
7350 #line 2209 "ripper.y"
7355 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"=="), (yyvsp[(3) - (3)].
val));
7363 #line 2217 "ripper.y"
7368 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"==="), (yyvsp[(3) - (3)].
val));
7376 #line 2225 "ripper.y"
7381 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"!="), (yyvsp[(3) - (3)].
val));
7389 #line 2233 "ripper.y"
7397 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"=~"), (yyvsp[(3) - (3)].
val));
7405 #line 2244 "ripper.y"
7410 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"!~"), (yyvsp[(3) - (3)].
val));
7418 #line 2252 "ripper.y"
7423 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7431 #line 2260 "ripper.y"
7436 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7444 #line 2268 "ripper.y"
7449 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"<<"), (yyvsp[(3) - (3)].
val));
7457 #line 2276 "ripper.y"
7462 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
">>"), (yyvsp[(3) - (3)].
val));
7470 #line 2284 "ripper.y"
7475 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"&&"), (yyvsp[(3) - (3)].
val));
7483 #line 2292 "ripper.y"
7488 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"||"), (yyvsp[(3) - (3)].
val));
7496 #line 2299 "ripper.y"
7503 #line 2300 "ripper.y"
7510 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].
val));
7518 #line 2310 "ripper.y"
7525 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7533 #line 2320 "ripper.y"
7535 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7542 #line 2326 "ripper.y"
7546 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7549 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7557 #line 2339 "ripper.y"
7559 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7566 #line 2343 "ripper.y"
7571 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7579 #line 2351 "ripper.y"
7584 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7592 #line 2361 "ripper.y"
7595 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7597 (yyval.
val) = dispatch1(arg_paren, escape_Qundef((yyvsp[(2) - (3)].
val)));
7605 #line 2377 "ripper.y"
7607 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7614 #line 2381 "ripper.y"
7619 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7627 #line 2389 "ripper.y"
7632 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7640 #line 2399 "ripper.y"
7646 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7654 #line 2408 "ripper.y"
7659 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7667 #line 2416 "ripper.y"
7673 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7674 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7682 #line 2426 "ripper.y"
7688 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7696 #line 2437 "ripper.y"
7698 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7705 #line 2443 "ripper.y"
7715 #line 2448 "ripper.y"
7719 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7726 #line 2456 "ripper.y"
7731 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7739 #line 2466 "ripper.y"
7741 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7748 #line 2470 "ripper.y"
7757 #line 2476 "ripper.y"
7762 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7770 #line 2484 "ripper.y"
7775 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7783 #line 2492 "ripper.y"
7794 (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7802 #line 2506 "ripper.y"
7813 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
7821 #line 2526 "ripper.y"
7832 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
7840 #line 2540 "ripper.y"
7852 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7860 #line 2555 "ripper.y"
7865 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7873 #line 2575 "ripper.y"
7878 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
7886 #line 2583 "ripper.y"
7900 #line 2593 "ripper.y"
7904 if ((yyvsp[(3) - (4)].
val) ==
NULL) {
7915 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
7923 #line 2610 "ripper.y"
7930 #line 2611 "ripper.y"
7935 (yyval.
val) = dispatch1(paren, 0);
7943 #line 2619 "ripper.y"
7953 #line 2623 "ripper.y"
7960 #line 2624 "ripper.y"
7964 (yyval.
val) = (yyvsp[(3) - (5)].
val);
7966 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (5)].
val));
7974 #line 2633 "ripper.y"
7977 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7979 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
7987 #line 2641 "ripper.y"
7992 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8000 #line 2649 "ripper.y"
8005 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
8013 #line 2657 "ripper.y"
8016 if ((yyvsp[(2) - (3)].
val) == 0) {
8020 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8023 (yyval.
val) = dispatch1(array, escape_Qundef((yyvsp[(2) - (3)].
val)));
8031 #line 2670 "ripper.y"
8036 (yyval.
val) = dispatch1(
hash, escape_Qundef((yyvsp[(2) - (3)].
val)));
8044 #line 2678 "ripper.y"
8049 (yyval.
val) = dispatch0(return0);
8057 #line 2686 "ripper.y"
8062 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
8070 #line 2694 "ripper.y"
8075 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
8083 #line 2702 "ripper.y"
8088 (yyval.
val) = dispatch0(yield0);
8096 #line 2709 "ripper.y"
8103 #line 2710 "ripper.y"
8110 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].
val));
8118 #line 2720 "ripper.y"
8123 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"), (yyvsp[(3) - (4)].
val));
8131 #line 2728 "ripper.y"
8136 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"),
Qnil);
8144 #line 2736 "ripper.y"
8148 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8150 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
8151 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
8159 #line 2747 "ripper.y"
8164 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8166 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
8174 #line 2757 "ripper.y"
8176 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8183 #line 2764 "ripper.y"
8189 (yyval.
val) = dispatch3(
if, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
8197 #line 2776 "ripper.y"
8203 (yyval.
val) = dispatch3(unless, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
8211 #line 2784 "ripper.y"
8218 #line 2784 "ripper.y"
8225 #line 2787 "ripper.y"
8231 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8239 #line 2795 "ripper.y"
8246 #line 2795 "ripper.y"
8253 #line 2798 "ripper.y"
8259 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8267 #line 2809 "ripper.y"
8273 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8281 #line 2818 "ripper.y"
8286 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].
val));
8294 #line 2826 "ripper.y"
8301 #line 2828 "ripper.y"
8308 #line 2831 "ripper.y"
8353 m->nd_next = (yyvsp[(2) - (9)].
val);
8362 tbl[0] = 1; tbl[1] =
id;
8366 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
8374 #line 2892 "ripper.y"
8377 yyerror(
"class definition in method body");
8389 #line 2903 "ripper.y"
8395 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
8404 #line 2913 "ripper.y"
8414 #line 2918 "ripper.y"
8425 #line 2925 "ripper.y"
8431 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].
val), (yyvsp[(7) - (8)].
val));
8442 #line 2937 "ripper.y"
8445 yyerror(
"module definition in method body");
8457 #line 2948 "ripper.y"
8463 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8472 #line 2958 "ripper.y"
8484 #line 2967 "ripper.y"
8492 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val));
8503 #line 2980 "ripper.y"
8510 #line 2981 "ripper.y"
8521 #line 2989 "ripper.y"
8526 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
8529 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
8539 #line 3002 "ripper.y"
8544 (yyval.
val) = dispatch1(
break, arg_new());
8552 #line 3010 "ripper.y"
8557 (yyval.
val) = dispatch1(next, arg_new());
8565 #line 3018 "ripper.y"
8570 (yyval.
val) = dispatch0(redo);
8578 #line 3026 "ripper.y"
8583 (yyval.
val) = dispatch0(retry);
8591 #line 3036 "ripper.y"
8595 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8598 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8606 #line 3048 "ripper.y"
8615 #line 3054 "ripper.y"
8624 #line 3060 "ripper.y"
8633 #line 3066 "ripper.y"
8642 #line 3072 "ripper.y"
8651 #line 3078 "ripper.y"
8660 #line 3084 "ripper.y"
8669 #line 3090 "ripper.y"
8678 #line 3096 "ripper.y"
8687 #line 3102 "ripper.y"
8700 #line 3112 "ripper.y"
8709 #line 3120 "ripper.y"
8716 #line 3126 "ripper.y"
8717 { (yyval.
val) = (yyvsp[(2) - (2)].
val); }
8723 #line 3133 "ripper.y"
8730 #line 3142 "ripper.y"
8736 (yyval.
val) = dispatch3(elsif, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
8744 #line 3154 "ripper.y"
8747 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8749 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
8757 #line 3168 "ripper.y"
8762 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8770 #line 3176 "ripper.y"
8773 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8775 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
8783 #line 3186 "ripper.y"
8788 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8796 #line 3194 "ripper.y"
8801 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8809 #line 3204 "ripper.y"
8814 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8822 #line 3212 "ripper.y"
8828 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
8836 #line 3221 "ripper.y"
8842 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
8850 #line 3230 "ripper.y"
8855 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val),
Qnil);
8863 #line 3238 "ripper.y"
8868 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
8876 #line 3246 "ripper.y"
8882 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8890 #line 3255 "ripper.y"
8899 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8907 #line 3267 "ripper.y"
8912 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8920 #line 3275 "ripper.y"
8925 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8933 #line 3286 "ripper.y"
8942 #line 3290 "ripper.y"
8951 #line 3294 "ripper.y"
8960 #line 3298 "ripper.y"
8969 #line 3304 "ripper.y"
8971 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8978 #line 3308 "ripper.y"
8987 #line 3314 "ripper.y"
8996 #line 3318 "ripper.y"
8998 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
9005 #line 3322 "ripper.y"
9014 #line 3326 "ripper.y"
9023 #line 3330 "ripper.y"
9032 #line 3334 "ripper.y"
9037 dispatch1(excessed_comma, (yyval.
val));
9045 #line 3342 "ripper.y"
9054 #line 3346 "ripper.y"
9063 #line 3350 "ripper.y"
9072 #line 3354 "ripper.y"
9081 #line 3358 "ripper.y"
9090 #line 3362 "ripper.y"
9099 #line 3366 "ripper.y"
9108 #line 3370 "ripper.y"
9117 #line 3374 "ripper.y"
9126 #line 3381 "ripper.y"
9135 #line 3387 "ripper.y"
9141 escape_Qundef((yyvsp[(2) - (3)].
val)));
9149 #line 3396 "ripper.y"
9163 #line 3405 "ripper.y"
9166 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9168 (yyval.
val) = blockvar_new(escape_Qundef((yyvsp[(2) - (4)].
val)), escape_Qundef((yyvsp[(3) - (4)].
val)));
9176 #line 3416 "ripper.y"
9185 #line 3420 "ripper.y"
9190 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9198 #line 3432 "ripper.y"
9207 #line 3439 "ripper.y"
9216 #line 3446 "ripper.y"
9229 #line 3454 "ripper.y"
9238 #line 3459 "ripper.y"
9247 #line 3462 "ripper.y"
9257 #line 3467 "ripper.y"
9266 #line 3471 "ripper.y"
9273 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9282 #line 3484 "ripper.y"
9285 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9287 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
9295 #line 3492 "ripper.y"
9297 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9304 #line 3498 "ripper.y"
9306 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9313 #line 3502 "ripper.y"
9315 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9322 #line 3508 "ripper.y"
9334 #line 3517 "ripper.y"
9340 (yyval.
val) = dispatch2(do_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
9349 #line 3529 "ripper.y"
9359 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9362 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9370 #line 3545 "ripper.y"
9373 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
9375 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
9376 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9384 #line 3554 "ripper.y"
9389 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9392 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9393 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9401 #line 3566 "ripper.y"
9406 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9409 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9410 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9418 #line 3580 "ripper.y"
9421 (yyval.
val) = (yyvsp[(1) - (2)].
val);
9424 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
9432 #line 3589 "ripper.y"
9443 #line 3595 "ripper.y"
9446 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9449 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9450 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9458 #line 3605 "ripper.y"
9469 #line 3611 "ripper.y"
9472 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9475 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9476 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9484 #line 3621 "ripper.y"
9489 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (3)].
val), ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
9497 #line 3629 "ripper.y"
9508 #line 3635 "ripper.y"
9514 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'),
9515 ripper_intern(
"call"));
9516 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9524 #line 3646 "ripper.y"
9535 #line 3652 "ripper.y"
9541 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_intern(
"::"),
9542 ripper_intern(
"call"));
9543 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9551 #line 3663 "ripper.y"
9556 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
9564 #line 3671 "ripper.y"
9569 (yyval.
val) = dispatch0(zsuper);
9577 #line 3679 "ripper.y"
9586 (yyval.
val) = dispatch2(aref, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
9594 #line 3693 "ripper.y"
9607 #line 3702 "ripper.y"
9613 (yyval.
val) = dispatch2(brace_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
9622 #line 3712 "ripper.y"
9635 #line 3721 "ripper.y"
9641 (yyval.
val) = dispatch2(do_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
9650 #line 3735 "ripper.y"
9653 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
9655 (yyval.
val) = dispatch3(when, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
9663 #line 3751 "ripper.y"
9666 if ((yyvsp[(3) - (6)].
val)) {
9671 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9673 (yyval.
val) = dispatch4(rescue,
9674 escape_Qundef((yyvsp[(2) - (6)].
val)),
9675 escape_Qundef((yyvsp[(3) - (6)].
val)),
9676 escape_Qundef((yyvsp[(5) - (6)].
val)),
9677 escape_Qundef((yyvsp[(6) - (6)].
val)));
9685 #line 3771 "ripper.y"
9698 #line 3779 "ripper.y"
9703 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9711 #line 3790 "ripper.y"
9713 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9720 #line 3797 "ripper.y"
9723 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9725 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
9733 #line 3809 "ripper.y"
9738 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
9746 #line 3820 "ripper.y"
9749 NODE *node = (yyvsp[(1) - (1)].
val);
9758 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9766 #line 3839 "ripper.y"
9771 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9779 #line 3849 "ripper.y"
9782 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9784 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].
val));
9792 #line 3859 "ripper.y"
9795 NODE *node = (yyvsp[(2) - (3)].
val);
9814 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].
val));
9822 #line 3886 "ripper.y"
9826 NODE *node = (yyvsp[(2) - (3)].
val);
9834 VALUE src = node->nd_lit;
9850 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9852 VALUE tail = list->nd_head->nd_lit;
9854 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9860 prev->nd_next = list->nd_next;
9873 if (!node->nd_next) {
9874 VALUE src = node->nd_lit;
9882 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
9890 #line 3951 "ripper.y"
9895 (yyval.
val) = dispatch0(words_new);
9896 (yyval.
val) = dispatch1(array, (yyval.
val));
9904 #line 3960 "ripper.y"
9907 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9909 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9917 #line 3970 "ripper.y"
9922 (yyval.
val) = dispatch0(words_new);
9930 #line 3978 "ripper.y"
9935 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9943 #line 3990 "ripper.y"
9945 (yyval.
val) = dispatch0(word_new);
9946 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9953 #line 3996 "ripper.y"
9958 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9966 #line 4006 "ripper.y"
9971 (yyval.
val) = dispatch0(symbols_new);
9972 (yyval.
val) = dispatch1(array, (yyval.
val));
9980 #line 4015 "ripper.y"
9983 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9985 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9993 #line 4025 "ripper.y"
9998 (yyval.
val) = dispatch0(symbols_new);
10006 #line 4033 "ripper.y"
10013 (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10021 #line 4045 "ripper.y"
10026 (yyval.
val) = dispatch0(qwords_new);
10027 (yyval.
val) = dispatch1(array, (yyval.
val));
10035 #line 4054 "ripper.y"
10038 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10040 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10048 #line 4064 "ripper.y"
10053 (yyval.
val) = dispatch0(qsymbols_new);
10054 (yyval.
val) = dispatch1(array, (yyval.
val));
10062 #line 4073 "ripper.y"
10065 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10067 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10075 #line 4083 "ripper.y"
10080 (yyval.
val) = dispatch0(qwords_new);
10088 #line 4091 "ripper.y"
10093 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10101 #line 4101 "ripper.y"
10106 (yyval.
val) = dispatch0(qsymbols_new);
10114 #line 4109 "ripper.y"
10123 (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10131 #line 4123 "ripper.y"
10136 (yyval.
val) = dispatch0(string_content);
10144 #line 4131 "ripper.y"
10149 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10157 #line 4141 "ripper.y"
10162 (yyval.
val) = dispatch0(xstring_new);
10170 #line 4149 "ripper.y"
10175 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10183 #line 4159 "ripper.y"
10188 (yyval.
val) = dispatch0(regexp_new);
10196 #line 4167 "ripper.y"
10199 NODE *
head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].
val);
10201 (yyval.
val) = tail;
10204 (yyval.
val) = head;
10220 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10228 #line 4197 "ripper.y"
10239 #line 4203 "ripper.y"
10246 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
10254 #line 4213 "ripper.y"
10266 #line 4219 "ripper.y"
10277 #line 4224 "ripper.y"
10287 #line 4229 "ripper.y"
10297 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(5) - (6)].
val));
10305 #line 4244 "ripper.y"
10310 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10318 #line 4252 "ripper.y"
10323 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10331 #line 4260 "ripper.y"
10336 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10344 #line 4271 "ripper.y"
10348 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10350 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
10358 #line 4288 "ripper.y"
10364 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
10372 #line 4300 "ripper.y"
10377 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyvsp[(2) - (2)].
val));
10385 #line 4322 "ripper.y"
10392 #line 4323 "ripper.y"
10399 #line 4324 "ripper.y"
10406 #line 4325 "ripper.y"
10413 #line 4326 "ripper.y"
10420 #line 4327 "ripper.y"
10427 #line 4328 "ripper.y"
10434 #line 4332 "ripper.y"
10439 if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
10440 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10443 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
10452 #line 4345 "ripper.y"
10457 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10465 #line 4355 "ripper.y"
10470 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10478 #line 4363 "ripper.y"
10483 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10491 #line 4377 "ripper.y"
10504 #line 4385 "ripper.y"
10514 #line 4390 "ripper.y"
10516 (yyval.
val) = (yyvsp[(3) - (4)].
val);
10523 #line 4394 "ripper.y"
10538 #line 4406 "ripper.y"
10541 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10543 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
10553 #line 4415 "ripper.y"
10555 (yyval.
num) = parser->parser_in_kwarg;
10556 parser->parser_in_kwarg = 1;
10563 #line 4420 "ripper.y"
10565 parser->parser_in_kwarg = (yyvsp[(1) - (3)].
num);
10566 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10575 #line 4429 "ripper.y"
10584 #line 4433 "ripper.y"
10593 #line 4437 "ripper.y"
10602 #line 4441 "ripper.y"
10611 #line 4447 "ripper.y"
10613 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10620 #line 4451 "ripper.y"
10629 #line 4457 "ripper.y"
10638 #line 4461 "ripper.y"
10640 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
10647 #line 4465 "ripper.y"
10656 #line 4469 "ripper.y"
10665 #line 4473 "ripper.y"
10674 #line 4477 "ripper.y"
10683 #line 4481 "ripper.y"
10692 #line 4485 "ripper.y"
10701 #line 4489 "ripper.y"
10710 #line 4493 "ripper.y"
10719 #line 4497 "ripper.y"
10728 #line 4501 "ripper.y"
10737 #line 4505 "ripper.y"
10746 #line 4509 "ripper.y"
10755 #line 4513 "ripper.y"
10765 #line 4520 "ripper.y"
10768 yyerror(
"formal argument cannot be a constant");
10771 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10779 #line 4529 "ripper.y"
10782 yyerror(
"formal argument cannot be an instance variable");
10785 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10793 #line 4538 "ripper.y"
10796 yyerror(
"formal argument cannot be a global variable");
10799 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10807 #line 4547 "ripper.y"
10810 yyerror(
"formal argument cannot be a class variable");
10813 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10821 #line 4559 "ripper.y"
10824 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10831 #line 4566 "ripper.y"
10845 #line 4575 "ripper.y"
10859 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
10867 #line 4596 "ripper.y"
10876 #line 4601 "ripper.y"
10879 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10892 #line 4615 "ripper.y"
10895 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10902 #line 4622 "ripper.y"
10916 #line 4631 "ripper.y"
10930 #line 4642 "ripper.y"
10944 #line 4651 "ripper.y"
10958 #line 4662 "ripper.y"
10961 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10971 #line 4670 "ripper.y"
10974 NODE *kws = (yyvsp[(1) - (3)].
val);
10976 while (kws->nd_next) {
10977 kws = kws->nd_next;
10979 kws->nd_next = (yyvsp[(3) - (3)].
val);
10980 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10990 #line 4687 "ripper.y"
10993 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11003 #line 4695 "ripper.y"
11006 NODE *kws = (yyvsp[(1) - (3)].
val);
11008 while (kws->nd_next) {
11009 kws = kws->nd_next;
11011 kws->nd_next = (yyvsp[(3) - (3)].
val);
11012 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11022 #line 4715 "ripper.y"
11025 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11032 #line 4720 "ripper.y"
11041 #line 4726 "ripper.y"
11056 #line 4738 "ripper.y"
11071 #line 4750 "ripper.y"
11074 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11084 #line 4758 "ripper.y"
11087 NODE *opts = (yyvsp[(1) - (3)].
val);
11089 while (opts->nd_next) {
11090 opts = opts->nd_next;
11092 opts->nd_next = (yyvsp[(3) - (3)].
val);
11093 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11103 #line 4774 "ripper.y"
11106 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11116 #line 4782 "ripper.y"
11119 NODE *opts = (yyvsp[(1) - (3)].
val);
11121 while (opts->nd_next) {
11122 opts = opts->nd_next;
11124 opts->nd_next = (yyvsp[(3) - (3)].
val);
11125 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11135 #line 4802 "ripper.y"
11139 yyerror(
"rest argument must be local variable");
11143 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11145 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
11153 #line 4815 "ripper.y"
11159 (yyval.
val) = dispatch1(rest_param,
Qnil);
11167 #line 4830 "ripper.y"
11171 yyerror(
"block argument must be local variable");
11173 yyerror(
"duplicated block argument name");
11177 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11179 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
11187 #line 4847 "ripper.y"
11189 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11196 #line 4851 "ripper.y"
11209 #line 4861 "ripper.y"
11213 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11216 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11224 #line 4870 "ripper.y"
11231 #line 4871 "ripper.y"
11234 if ((yyvsp[(3) - (4)].
val) == 0) {
11235 yyerror(
"can't define singleton method for ().");
11247 yyerror(
"can't define singleton method for literals");
11253 (yyval.
val) = (yyvsp[(3) - (4)].
val);
11255 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
11263 #line 4901 "ripper.y"
11266 (yyval.
val) = (yyvsp[(1) - (2)].
val);
11268 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
11276 #line 4913 "ripper.y"
11285 #line 4918 "ripper.y"
11298 #line 4928 "ripper.y"
11307 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
11315 #line 4940 "ripper.y"
11320 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
11328 #line 4948 "ripper.y"
11333 (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
11341 #line 4978 "ripper.y"
11342 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11348 #line 4983 "ripper.y"
11349 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11355 #line 5006 "ripper.y"
11362 #line 5011 "ripper.y"
11369 #line 5015 "ripper.y"
11382 #line 11381 "parse.c"
11410 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
11411 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11412 yystate = yytable[yystate];
11431 #if ! YYERROR_VERBOSE
11434 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
11437 char const *yymsgp =
YY_(
"syntax error");
11438 int yysyntax_error_status;
11440 if (yysyntax_error_status == 0)
11442 else if (yysyntax_error_status == 1)
11444 if (yymsg != yymsgbuf)
11450 yymsg_alloc =
sizeof yymsgbuf;
11451 yysyntax_error_status = 2;
11460 if (yysyntax_error_status == 2)
11461 goto yyexhaustedlab;
11463 # undef YYSYNTAX_ERROR
11469 if (yyerrstatus == 3)
11474 if (yychar <=
YYEOF)
11477 if (yychar ==
YYEOF)
11483 yytoken, &yylval, parser);
11521 yyn = yypact[yystate];
11527 yyn = yytable[yyn];
11539 yystos[yystate], yyvsp, parser);
11569 #if !defined(yyoverflow) || YYERROR_VERBOSE
11585 yydestruct (
"Cleanup: discarding lookahead",
11586 yytoken, &yylval, parser);
11592 while (yyssp != yyss)
11595 yystos[*yyssp], yyvsp, parser);
11602 #if YYERROR_VERBOSE
11603 if (yymsg != yymsgbuf)
11607 return YYID (yyresult);
11613 #line 5023 "ripper.y"
11618 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11627 # define nextc() parser_nextc(parser)
11628 # define pushback(c) parser_pushback(parser, (c))
11629 # define newtok() parser_newtok(parser)
11630 # define tokspace(n) parser_tokspace(parser, (n))
11631 # define tokadd(c) parser_tokadd(parser, (c))
11632 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11633 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11634 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11635 # define regx_options() parser_regx_options(parser)
11636 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11637 # define parse_string(n) parser_parse_string(parser,(n))
11638 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11639 # define here_document(n) parser_here_document(parser,(n))
11640 # define heredoc_identifier() parser_heredoc_identifier(parser)
11641 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11642 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11643 # define number_literal_suffix(f) parser_number_literal_suffix(parser, (f))
11644 # define set_number_literal(v, t, f) parser_set_number_literal(parser, (v), (t), (f))
11645 # define set_integer_literal(v, f) parser_set_integer_literal(parser, (v), (f))
11648 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11649 # define set_yylval_num(x) (yylval.num = (x))
11650 # define set_yylval_id(x) (yylval.id = (x))
11651 # define set_yylval_name(x) (yylval.id = (x))
11652 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11653 # define set_yylval_node(x) (yylval.node = (x))
11654 # define yylval_id() (yylval.id)
11656 static inline VALUE
11657 ripper_yylval_id(
ID x)
11661 # define set_yylval_str(x) (void)(x)
11662 # define set_yylval_num(x) (void)(x)
11663 # define set_yylval_id(x) (void)(x)
11664 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11665 # define set_yylval_literal(x) (void)(x)
11666 # define set_yylval_node(x) (void)(x)
11667 # define yylval_id() yylval.id
11671 #define ripper_flush(p) (void)(p)
11673 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11675 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11682 return lex_p > parser->tokp;
11695 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11697 if (!ripper_has_scan_event(parser))
return;
11698 yylval_rval = ripper_scan_event_val(parser, t);
11702 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11704 if (!ripper_has_scan_event(parser))
return;
11705 (void)ripper_scan_event_val(parser, t);
11709 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11712 const char *saved_tokp = parser->tokp;
11715 parser->tokp =
lex_pbeg + parser->delayed_col;
11717 parser->delayed =
Qnil;
11719 parser->tokp = saved_tokp;
11730 #undef SIGN_EXTEND_CHAR
11732 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11735 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11738 #define parser_encoding_name() (current_enc->name)
11739 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
11740 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
11741 #define is_identchar(p,e,enc) (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11742 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
11744 #define parser_isascii() ISASCII(*(lex_p-1))
11752 for (p =
lex_pbeg; p < pend; p++) {
11754 column = (((column - 1) / 8) + 1) * 8;
11765 for (p =
lex_pbeg; p < pend; p++) {
11766 if (*p !=
' ' && *p !=
'\t') {
11773 #undef token_info_push
11790 #undef token_info_pop
11797 if (!ptinfo)
return;
11803 if (linenum == ptinfo->
linenum) {
11811 "mismatched indentations at '%s' with '%s' at %d",
11824 const int max_line_margin = 30;
11825 const char *p, *pe;
11833 if (*p ==
'\n')
break;
11840 if (*pe ==
'\n')
break;
11847 const char *pre =
"", *post =
"";
11849 if (len > max_line_margin * 2 + 10) {
11850 if (
lex_p - p > max_line_margin) {
11854 if (pe -
lex_p > max_line_margin) {
11861 MEMCPY(buf, p,
char, len);
11865 i = (int)(
lex_p - p);
11866 p2 =
buf; pe = buf + len;
11869 if (*p2 !=
'\t') *p2 =
' ';
11877 dispatch1(parse_error,
STR_NEW2(msg));
11889 CONST_ID(script_lines,
"SCRIPT_LINES__");
11905 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11910 RARRAY(lines)->as.heap.len = n;
11971 if (parser->
nerr) {
11981 return (
VALUE)tree;
12007 char *beg, *end, *pend;
12017 while (end < pend) {
12018 if (*end++ ==
'\n')
break;
12028 if (
NIL_P(line))
return line;
12132 node =
yycompile(parser, fname, start);
12139 #define STR_FUNC_ESCAPE 0x01
12140 #define STR_FUNC_EXPAND 0x02
12141 #define STR_FUNC_REGEXP 0x04
12142 #define STR_FUNC_QWORDS 0x08
12143 #define STR_FUNC_SYMBOL 0x10
12144 #define STR_FUNC_INDENT 0x20
12174 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
12175 #define lex_eol_p() (lex_p >= lex_pend)
12176 #define peek(c) peek_n((c), 0)
12177 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
12200 if (
NIL_P(parser->delayed)) {
12204 parser->tokp,
lex_pend - parser->tokp);
12206 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12210 parser->tokp,
lex_pend - parser->tokp);
12226 c = (
unsigned char)*
lex_p++;
12244 if (c == -1)
return;
12251 #define was_bol() (lex_p == lex_pbeg + 1)
12253 #define tokfix() (tokenbuf[tokidx]='\0')
12254 #define tok() tokenbuf
12255 #define toklen() tokidx
12256 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
12303 yyerror(
"invalid hex escape");
12310 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
12315 int string_literal,
int symbol_literal,
int regexp_literal)
12335 yyerror(
"invalid Unicode escape");
12338 if (codepoint > 0x10ffff) {
12339 yyerror(
"invalid Unicode codepoint (too large)");
12343 if (regexp_literal) {
12346 else if (codepoint >= 0x80) {
12348 if (string_literal)
tokaddmbc(codepoint, *encp);
12350 else if (string_literal) {
12353 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12356 yyerror(
"unterminated Unicode escape");
12360 if (regexp_literal) {
tokadd(
'}'); }
12366 yyerror(
"invalid Unicode escape");
12370 if (regexp_literal) {
12373 else if (codepoint >= 0x80) {
12375 if (string_literal)
tokaddmbc(codepoint, *encp);
12377 else if (string_literal) {
12385 #define ESCAPE_CONTROL 1
12386 #define ESCAPE_META 2
12395 switch (c =
nextc()) {
12420 case '0':
case '1':
case '2':
case '3':
12421 case '4':
case '5':
case '6':
case '7':
12429 if (numlen == 0)
return 0;
12440 if ((c =
nextc()) !=
'-') {
12444 if ((c =
nextc()) ==
'\\') {
12445 if (
peek(
'u'))
goto eof;
12446 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12448 else if (c == -1 || !
ISASCII(c))
goto eof;
12450 return ((c & 0xff) | 0x80);
12454 if ((c =
nextc()) !=
'-') {
12460 if ((c =
nextc())==
'\\') {
12461 if (
peek(
'u'))
goto eof;
12466 else if (c == -1 || !
ISASCII(c))
goto eof;
12471 yyerror(
"Invalid escape character syntax");
12494 switch (c =
nextc()) {
12498 case '0':
case '1':
case '2':
case '3':
12499 case '4':
case '5':
case '6':
case '7':
12502 if (numlen == 0)
goto eof;
12511 if (numlen == 0)
return -1;
12518 if ((c =
nextc()) !=
'-') {
12528 if ((c =
nextc()) !=
'-') {
12536 if (flags & ESCAPE_CONTROL)
goto eof;
12540 if ((c =
nextc()) ==
'\\') {
12543 else if (c == -1)
goto eof;
12549 yyerror(
"Invalid escape character syntax");
12616 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12622 case '$':
case '*':
case '+':
case '.':
12623 case '?':
case '^':
case '|':
12624 case ')':
case ']':
case '}':
case '>':
12633 int func,
int term,
int paren,
long *nest,
12637 int has_nonascii = 0;
12640 static const char mixed_msg[] =
"%s mixed within %s source";
12642 #define mixed_error(enc1, enc2) if (!errbuf) { \
12643 size_t len = sizeof(mixed_msg) - 4; \
12644 len += strlen(rb_enc_name(enc1)); \
12645 len += strlen(rb_enc_name(enc2)); \
12646 errbuf = ALLOCA_N(char, len); \
12647 snprintf(errbuf, len, mixed_msg, \
12648 rb_enc_name(enc1), \
12649 rb_enc_name(enc2)); \
12652 #define mixed_escape(beg, enc1, enc2) do { \
12653 const char *pos = lex_p; \
12655 mixed_error((enc1), (enc2)); \
12659 while ((c =
nextc()) != -1) {
12660 if (paren && c == paren) {
12663 else if (c == term) {
12664 if (!nest || !*nest) {
12672 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12677 else if (c ==
'\\') {
12678 const char *beg =
lex_p - 1;
12683 if (func & STR_FUNC_EXPAND)
continue;
12692 if ((func & STR_FUNC_EXPAND) == 0) {
12699 if (has_nonascii && enc != *encp) {
12705 if (c == -1)
return -1;
12707 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12710 if (func & STR_FUNC_REGEXP) {
12718 if (has_nonascii && enc != *encp) {
12723 else if (func & STR_FUNC_EXPAND) {
12725 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12728 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12731 else if (c != term && !(paren && c == paren)) {
12741 if (enc != *encp) {
12754 if (enc != *encp) {
12765 #define NEW_STRTERM(func, term, paren) \
12766 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12772 if (!
NIL_P(parser->delayed)) {
12773 ptrdiff_t len =
lex_p - parser->tokp;
12778 parser->tokp =
lex_p;
12782 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12784 #define flush_string_content(enc) ((void)(enc))
12791 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12792 #define SPECIAL_PUNCT(idx) ( \
12793 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
12794 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
12795 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
12796 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
12797 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12805 #undef SPECIAL_PUNCT
12811 if (c <= 0x20 || 0x7e < c)
return 0;
12812 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12819 const char *p =
lex_p;
12825 if ((c = *p) ==
'-') {
12834 if ((c = *p) ==
'@') {
12854 int func = (int)quote->nd_func;
12866 if (c == term && !quote->nd_nest) {
12867 if (func & STR_FUNC_QWORDS) {
12868 quote->nd_func = -1;
12930 while ((c =
nextc()) != -1 && c != term) {
12978 line = here->nd_orig;
12992 const char *eos,
long len,
int indent)
12998 while (*p &&
ISSPACE(*p)) p++;
13001 if (n < 0)
return FALSE;
13002 if (n > 0 && p[len] !=
'\n') {
13003 if (p[len] !=
'\r')
return FALSE;
13004 if (n <= 1 || p[len+1] !=
'\n')
return FALSE;
13006 return strncmp(eos, p, len) == 0;
13009 #define NUM_SUFFIX_R (1<<0)
13010 #define NUM_SUFFIX_I (1<<1)
13011 #define NUM_SUFFIX_ALL 3
13017 const char *lastp =
lex_p;
13019 while ((c =
nextc()) != -1) {
13022 mask &= ~NUM_SUFFIX_I;
13029 mask &= ~NUM_SUFFIX_R;
13068 if (!
NIL_P(parser->delayed))
13071 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
13074 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
13076 #define dispatch_heredoc_end() ((void)0)
13082 int c,
func, indent = 0;
13083 const char *eos, *p, *pend;
13092 if ((c =
nextc()) == -1) {
13096 if (
NIL_P(parser->delayed)) {
13101 ((len =
lex_p - parser->tokp) > 0 &&
13102 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
13124 switch (pend[-1]) {
13126 if (--pend == p || pend[-1] !=
'\r') {
13140 if (
nextc() == -1) {
13161 if (parser->
eofp)
goto error;
13171 if ((c =
nextc()) == -1)
goto error;
13188 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
13193 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
13200 yyerror(
"formal argument must be local variable");
13218 if (len > 5 && name[nlen = len - 5] ==
'-') {
13219 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
13222 if (len > 4 && name[nlen = len - 4] ==
'-') {
13225 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
13226 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
13241 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13258 for (i = 0; i < n; ++i) {
13296 case 't':
case 'T':
13302 case 'f':
case 'F':
13325 static const char *
13333 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13334 return str + i + 1;
13339 if (i + 1 >= len)
return 0;
13340 if (str[i+1] !=
'-') {
13343 else if (str[i-1] !=
'-') {
13347 return str + i + 2;
13362 const char *beg, *end, *vbeg, *vend;
13363 #define str_copy(_s, _p, _n) ((_s) \
13364 ? (void)(rb_str_resize((_s), (_n)), \
13365 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
13366 : (void)((_s) = STR_NEW((_p), (_n))))
13368 if (len <= 7)
return FALSE;
13372 len = end - beg - 3;
13383 for (; len > 0 && *str; str++, --len) {
13385 case '\'':
case '"':
case ':':
case ';':
13390 for (beg = str; len > 0; str++, --len) {
13392 case '\'':
case '"':
case ':':
case ';':
13400 for (end = str; len > 0 &&
ISSPACE(*str); str++, --len);
13402 if (*str !=
':')
continue;
13404 do str++;
while (--len > 0 &&
ISSPACE(*str));
13407 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13408 if (*str ==
'\\') {
13420 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --len, str++);
13423 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13428 for (i = 0; i < n; ++i) {
13429 if (s[i] ==
'-') s[i] =
'_';
13436 n = (*p->
length)(parser, vbeg, n);
13442 }
while (++p < magic_comments +
numberof(magic_comments));
13456 const char *beg = str;
13460 if (send - str <= 6)
return;
13462 case 'C':
case 'c': str += 6;
continue;
13463 case 'O':
case 'o': str += 5;
continue;
13464 case 'D':
case 'd': str += 4;
continue;
13465 case 'I':
case 'i': str += 3;
continue;
13466 case 'N':
case 'n': str += 2;
continue;
13467 case 'G':
case 'g': str += 1;
continue;
13468 case '=':
case ':':
13481 if (++str >= send)
return;
13484 if (*str !=
'=' && *str !=
':')
return;
13489 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13505 (
unsigned char)
lex_p[0] == 0xbb &&
13506 (
unsigned char)
lex_p[1] == 0xbf) {
13520 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13521 #define IS_END() IS_lex_state(EXPR_END_ANY)
13522 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
13523 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13524 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
13525 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
13526 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13529 #define ambiguous_operator(op, syn) ( \
13530 rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \
13531 rb_warning0("even though it seems like "syn""))
13533 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
13535 #define warn_balanced(op, syn) ((void) \
13536 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
13537 space_seen && !ISSPACE(c) && \
13538 (ambiguous_operator(op, syn), 0)))
13544 int space_seen = 0;
13550 int fallthru =
FALSE;
13576 switch (c =
nextc()) {
13584 case ' ':
case '\t':
case '\f':
case '\r':
13588 while ((c =
nextc())) {
13590 case ' ':
case '\t':
case '\f':
case '\r':
13599 ripper_dispatch_scan_event(parser,
tSP);
13612 ripper_dispatch_scan_event(parser,
tCOMMENT);
13617 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT | EXPR_LABELARG)) {
13625 goto normal_newline;
13629 while ((c =
nextc())) {
13631 case ' ':
case '\t':
case '\f':
case '\r':
13636 if ((c =
nextc()) !=
'.') {
13649 parser->tokp =
lex_p;
13652 goto normal_newline;
13661 if ((c =
nextc()) ==
'*') {
13662 if ((c =
nextc()) ==
'=') {
13669 rb_warning0(
"`**' interpreted as argument prefix");
13688 rb_warning0(
"`*' interpreted as argument prefix");
13727 int first_p =
TRUE;
13736 ripper_dispatch_scan_event(parser,
tEMBDOC);
13745 if (c !=
'=')
continue;
13746 if (strncmp(
lex_p,
"end", 3) == 0 &&
13760 if ((c =
nextc()) ==
'=') {
13761 if ((c =
nextc()) ==
'=') {
13770 else if (c ==
'>') {
13782 (!
IS_ARG() || space_seen)) {
13784 if (token)
return token;
13795 if ((c =
nextc()) ==
'>') {
13802 if ((c =
nextc()) ==
'=') {
13816 if ((c =
nextc()) ==
'=') {
13820 if ((c =
nextc()) ==
'=') {
13888 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13905 else if (c ==
'\\') {
13934 if ((c =
nextc()) ==
'&') {
13936 if ((c =
nextc()) ==
'=') {
13944 else if (c ==
'=') {
13951 rb_warning0(
"`&' interpreted as argument prefix");
13965 if ((c =
nextc()) ==
'|') {
13967 if ((c =
nextc()) ==
'=') {
14047 if ((c =
nextc()) ==
'.') {
14048 if ((c =
nextc()) ==
'.') {
14056 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
14062 case '0':
case '1':
case '2':
case '3':
case '4':
14063 case '5':
case '6':
case '7':
case '8':
case '9':
14065 int is_float, seen_point, seen_e, nondigit;
14068 is_float = seen_point = seen_e = nondigit = 0;
14071 if (c ==
'-' || c ==
'+') {
14076 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
14079 if (c ==
'x' || c ==
'X') {
14085 if (nondigit)
break;
14092 }
while ((c =
nextc()) != -1);
14096 if (
toklen() == start) {
14099 else if (nondigit)
goto trailing_uc;
14103 if (c ==
'b' || c ==
'B') {
14106 if (c ==
'0' || c ==
'1') {
14109 if (nondigit)
break;
14113 if (c !=
'0' && c !=
'1')
break;
14116 }
while ((c =
nextc()) != -1);
14120 if (
toklen() == start) {
14123 else if (nondigit)
goto trailing_uc;
14127 if (c ==
'd' || c ==
'D') {
14133 if (nondigit)
break;
14140 }
while ((c =
nextc()) != -1);
14144 if (
toklen() == start) {
14147 else if (nondigit)
goto trailing_uc;
14155 if (c ==
'o' || c ==
'O') {
14158 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
14162 if (c >=
'0' && c <=
'7') {
14167 if (nondigit)
break;
14171 if (c < '0' || c >
'9')
break;
14172 if (c >
'7')
goto invalid_octal;
14175 }
while ((c =
nextc()) != -1);
14179 if (nondigit)
goto trailing_uc;
14188 if (c >
'7' && c <=
'9') {
14190 yyerror(
"Invalid octal digit");
14192 else if (c ==
'.' || c ==
'e' || c ==
'E') {
14204 case '0':
case '1':
case '2':
case '3':
case '4':
14205 case '5':
case '6':
case '7':
case '8':
case '9':
14211 if (nondigit)
goto trailing_uc;
14212 if (seen_point || seen_e) {
14217 if (c0 == -1 || !
ISDIGIT(c0)) {
14242 if (c !=
'-' && c !=
'+' && !
ISDIGIT(c)) {
14251 nondigit = (c ==
'-' || c ==
'+') ? c : 0;
14255 if (nondigit)
goto decode_num;
14270 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14280 char *point = &
tok()[seen_point];
14281 size_t fraclen =
toklen()-seen_point-1;
14283 memmove(point, point+1, fraclen+1);
14289 if (
errno == ERANGE) {
14351 if ((c =
nextc()) ==
'=') {
14367 if ((c =
nextc()) ==
'=') {
14387 if ((c =
nextc()) !=
'@') {
14414 if ((c =
nextc()) ==
']') {
14415 if ((c =
nextc()) ==
'=') {
14427 else if (
IS_ARG() && space_seen) {
14462 ripper_dispatch_scan_event(parser,
tSP);
14476 if (c == -1 || !
ISALNUM(c)) {
14483 yyerror(
"unknown type of %string");
14487 if (c == -1 || term == -1) {
14492 if (term ==
'(') term =
')';
14493 else if (term ==
'[') term =
']';
14494 else if (term ==
'{') term =
'}';
14495 else if (term ==
'<') term =
'>';
14545 yyerror(
"unknown type of %string");
14549 if ((c =
nextc()) ==
'=') {
14625 case '1':
case '2':
case '3':
14626 case '4':
case '5':
case '6':
14627 case '7':
case '8':
case '9':
14632 }
while (c != -1 &&
ISDIGIT(c));
14678 ripper_dispatch_scan_event(parser,
k__END__);
14701 switch (
tok()[0]) {
14702 case '@':
case '$':
14706 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14719 switch (
tok()[0]) {
14726 if (
tok()[1] ==
'@')
14795 if (kw->
id[0] != kw->
id[1])
14846 if (!
NIL_P(parser->delayed)) {
14847 ripper_dispatch_delayed_token(parser, t);
14851 ripper_dispatch_scan_event(parser, t);
14893 if (orig == (
NODE*)1)
return;
14902 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14909 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14916 if (tail == 0)
return head;
14918 if (h == 0)
return tail;
14957 tail->nd_end =
tail;
14959 end->nd_next =
tail;
14960 h->nd_end = tail->nd_end;
14970 if (list == 0)
return NEW_LIST(item);
14971 if (list->nd_next) {
14972 last = list->nd_next->nd_end;
14978 list->nd_alen += 1;
14980 list->nd_next->nd_end = last->nd_next;
14990 if (head->nd_next) {
14991 last = head->nd_next->nd_end;
14997 head->nd_alen += tail->nd_alen;
14998 last->nd_next =
tail;
14999 if (tail->nd_next) {
15000 head->nd_next->nd_end = tail->nd_next->nd_end;
15003 head->nd_next->nd_end =
tail;
15012 if (
NIL_P(tail))
return 1;
15033 if (!head)
return tail;
15034 if (!tail)
return head;
15044 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
15047 lit = headlast->nd_lit;
15050 lit = head->nd_lit;
15070 tail->nd_lit = head->nd_lit;
15074 else if (
NIL_P(tail->nd_lit)) {
15076 head->nd_alen += tail->nd_alen - 1;
15077 head->nd_next->nd_end->nd_next = tail->nd_next;
15078 head->nd_next->nd_end = tail->nd_next->nd_end;
15081 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
15083 lit = headlast->nd_lit;
15086 tail->nd_lit =
Qnil;
15091 tail->nd_head =
NEW_STR(tail->nd_lit);
15237 static const char *
15240 static const char names[][12] = {
15241 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15242 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15247 return names[
ffs(state)];
15262 # define assignable_result(x) get_value(lhs)
15263 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
15265 # define assignable_result(x) (x)
15270 yyerror(
"Can't change the value of self");
15273 yyerror(
"Can't assign to nil");
15276 yyerror(
"Can't assign to true");
15279 yyerror(
"Can't assign to false");
15282 yyerror(
"Can't assign to __FILE__");
15285 yyerror(
"Can't assign to __LINE__");
15288 yyerror(
"Can't assign to __ENCODING__");
15322 yyerror(
"dynamic constant assignment");
15331 #undef assignable_result
15332 #undef parser_yyerror
15339 if (name == idUScore)
return 1;
15346 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
15354 yyerror(
"duplicated argument name");
15367 yyerror(
"duplicated argument name");
15432 int scope = (int)(
id & ID_SCOPE_MASK);
15441 id_type_names[scope],
ID2SYM(
id));
15445 id &= ~ID_SCOPE_MASK;
15474 if (!node2)
return node1;
15477 if (node1->nd_head)
15478 node1->nd_head =
arg_concat(node1->nd_head, node2);
15490 node1->nd_body =
list_concat(node1->nd_body, node2);
15499 if (!node1)
return NEW_LIST(node2);
15504 node1->nd_head =
arg_append(node1->nd_head, node2);
15525 if (!lhs)
return 0;
15537 lhs->nd_value = rhs;
15542 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15568 if (!cond)
yyerror(
"void value expression");
15573 while (node->nd_next) {
15574 node = node->nd_next;
15576 node = node->nd_head;
15580 node = node->nd_body;
15584 if (!node->nd_body) {
15585 node = node->nd_else;
15588 else if (!node->nd_else) {
15589 node = node->nd_body;
15593 node = node->nd_else;
15599 node = node->nd_2nd;
15613 const char *useless = 0;
15620 switch (node->nd_mid) {
15651 useless =
"a variable";
15654 useless =
"a constant";
15661 useless =
"a literal";
15686 useless =
"defined?";
15694 rb_warnS(
"possibly useless use of %s in void context", useless);
15707 if (!node->nd_next)
return;
15709 node = node->nd_next;
15716 NODE **n = &node, *n1 = node;
15718 *n = n1 = n1->nd_body;
15726 NODE **n = &node, *n1 = node;
15728 *n = n1 = n1->nd_body;
15736 NODE *node = *body;
15742 #define subnodes(n1, n2) \
15743 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15744 (!node->n2) ? (body = &node->n1, 1) : \
15745 (reduce_nodes(&node->n1), body = &node->n2, 1))
15755 *body = node = node->nd_stts;
15759 *body = node = node->nd_body;
15763 body = &node->nd_end->nd_head;
15769 body = &node->nd_body;
15778 if (node->nd_else) {
15779 body = &node->nd_resq;
15797 if (!node)
return 1;
15800 if (!(node = node->nd_head))
break;
15804 }
while ((node = node->nd_next) != 0);
15823 yyerror(
"multiple assignment in conditional");
15837 if (!node->nd_value)
return 1;
15840 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15862 for (node = *rootnode; node; node = next) {
15866 next = node->nd_next;
15867 head = node->nd_head;
15870 switch (type =
nd_type(head)) {
15873 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15878 head->nd_lit =
val;
15893 if (node == 0)
return 0;
15901 return cond0(parser, node);
15907 if (!node)
return 1;
15928 if (node == 0)
return 0;
15935 rb_warn0(
"string literal in condition");
15945 node->nd_1st =
cond0(parser, node->nd_1st);
15946 node->nd_2nd =
cond0(parser, node->nd_2nd);
15951 node->nd_beg =
range_op(parser, node->nd_beg);
15952 node->nd_end =
range_op(parser, node->nd_end);
15985 if (node == 0)
return 0;
15986 return cond0(parser, node);
15994 NODE *node = left, *second;
15995 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15998 node->nd_2nd =
NEW_NODE(type, second, right, 0);
16001 return NEW_NODE(type, left, right, 0);
16018 if (node->nd_next == 0) {
16019 node = node->nd_head;
16040 switch (
TYPE(node->nd_lit)) {
16062 rb_bug(
"unknown literal type passed to negate_lit");
16072 node2->nd_head = node1;
16086 args->
pre_init = m ? m->nd_next : 0;
16123 kw_rest_arg->nd_cflag = check;
16145 lit = node->nd_lit;
16164 ID vid = lhs->nd_vid;
16166 lhs->nd_value = rhs;
16169 asgn->nd_aid = vid;
16172 else if (op ==
tANDOP) {
16173 lhs->nd_value = rhs;
16195 else if (op ==
tANDOP) {
16211 else if (op ==
tANDOP) {
16227 return dispatch3(opassign, lhs, op, rhs);
16233 VALUE recv = dispatch3(field, lhs, type, attr);
16234 return dispatch3(opassign, recv, op, rhs);
16244 if (!local->
used)
return;
16248 if (cnt != local->
vars->
pos) {
16249 rb_bug(
"local->used->pos != local->vars->pos");
16251 for (i = 0; i <
cnt; ++i) {
16252 if (!v[i] || (u[i] &
LVAR_USED))
continue;
16267 local->
used = !(inherit_dvars &&
16296 int cnt = cnt_args + cnt_vars;
16300 if (cnt <= 0)
return 0;
16304 for (i = 0, j = cnt_args+1; i < cnt_vars; ++i) {
16310 if (--j < cnt)
REALLOC_N(buf,
ID, (cnt = j) + 1);
16336 struct vtable *vars, *args, *used;
16338 vars =
lvtbl->vars;
16339 args =
lvtbl->args;
16340 used =
lvtbl->used;
16345 if (used) used = used->
prev;
16361 static const struct vtable *
16369 return lvtbl->args;
16377 if ((tmp =
lvtbl->used) != 0) {
16393 while (
lvtbl->args != lvargs) {
16395 if (!
lvtbl->args) {
16413 struct vtable *vars, *args, *used;
16416 args =
lvtbl->args;
16417 vars =
lvtbl->vars;
16418 used =
lvtbl->used;
16431 if (used) used = used->
prev;
16484 "regexp encoding option '%c' differs from source encoding '%s'",
16512 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16517 long len = name_end -
name;
16518 const char *s = (
const char *)name;
16535 rb_warningS(
"named capture conflicts a local variable - %s",
16615 NODE *scope = node;
16618 if (!node)
return node;
16622 node = node->nd_body;
16626 node = node->nd_body;
16633 prelude->nd_body = node;
16634 scope->nd_body = prelude;
16637 scope->nd_body = node;
16647 NODE *scope = node;
16650 if (!node)
return node;
16654 node = node->nd_body;
16658 node = node->nd_body;
16674 prelude->nd_body = node;
16675 scope->nd_body = prelude;
16678 scope->nd_body = node;
16684 static const struct {
16709 #define op_tbl_count numberof(op_tbl)
16711 #ifndef ENABLE_SELECTOR_NAMESPACE
16712 #define ENABLE_SELECTOR_NAMESPACE 0
16719 #if ENABLE_SELECTOR_NAMESPACE
16732 #if ENABLE_SELECTOR_NAMESPACE
16739 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16741 if (key1->id == key2->id && key1->klass == key2->klass) {
16748 ivar2_hash(
struct ivar2_key *
key)
16750 return (key->id << 8) ^ (key->klass >> 2);
16764 #if ENABLE_SELECTOR_NAMESPACE
16772 (void)lex_state_name(-1);
16805 if (m >= e)
return 0;
16809 else if (*m ==
'-') {
16810 if (++m >= e)
return 0;
16823 return m == e ? mb + 1 : 0;
16838 #define IDSET_ATTRSET_FOR_SYNTAX ((1U<<ID_LOCAL)|(1U<<ID_CONST))
16839 #define IDSET_ATTRSET_FOR_INTERN (~(~0U<<ID_SCOPE_MASK) & ~(1U<<ID_ATTRSET))
16844 const char *m =
name;
16845 const char *e = m + len;
16848 if (!m || len <= 0)
return -1;
16868 case '<': ++m;
break;
16869 case '=':
if (*++m ==
'>') ++m;
break;
16876 case '>':
case '=': ++m;
break;
16882 case '~': ++m;
break;
16883 case '=':
if (*++m ==
'=') ++m;
break;
16884 default:
return -1;
16889 if (*++m ==
'*') ++m;
16892 case '+':
case '-':
16893 if (*++m ==
'@') ++m;
16896 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16901 if (*++m !=
']')
return -1;
16902 if (*++m ==
'=') ++m;
16906 if (len == 1)
return ID_JUNK;
16908 case '=':
case '~': ++m;
break;
16909 default:
return -1;
16921 case '!':
case '?':
16927 if (!(allowed_attrset & (1
U << type)))
return -1;
16934 return m == e ? type : -1;
17001 fake_str->as.heap.len = len;
17002 fake_str->as.heap.ptr = (
char *)name;
17003 fake_str->as.heap.aux.capa = len;
17004 return (
VALUE)fake_str;
17026 const char *
name, *m, *e;
17048 if (len < 2)
goto junk;
17057 if (len < 3)
goto junk;
17062 if (len < 2)
goto junk;
17078 if (*
op_tbl[i].name == *m &&
17079 strcmp(
op_tbl[i].name, m) == 0) {
17087 if (name[last] ==
'=') {
17089 if (last > 1 && name[last-1] ==
'=')
17099 else if (
id == 0) {
17171 name[0] = (char)
id;
17198 if (
RBASIC(str)->klass == 0)
17204 ID id_stem = (
id & ~ID_SCOPE_MASK);
17221 if (
RBASIC(str)->klass == 0)
17234 if (!str)
return 0;
17328 VALUE name = *namep;
17379 fake_str.
as.
heap.len = len - 1;
17479 parser->delayed =
Qnil;
17481 parser->result =
Qnil;
17482 parser->parsing_thread =
Qnil;
17483 parser->toplevel_p =
TRUE;
17492 #define parser_mark ripper_parser_mark
17493 #define parser_free ripper_parser_free
17533 prev = local->
prev;
17544 size_t size =
sizeof(*p);
17546 if (!ptr)
return 0;
17549 size +=
sizeof(*local);
17570 #undef rb_reserved_word
17654 yydebug =
RTEST(flag);
17659 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
17660 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
17661 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
17662 (n)->u3.cnt = (c), (p))
17679 void *ptr =
xcalloc(nelem, size);
17690 if (ptr && (n = parser->
heap) !=
NULL) {
17692 if (n->
u1.
node == ptr) {
17709 while ((n = *prev) !=
NULL) {
17710 if (n->u1.node == ptr) {
17723 #ifdef RIPPER_DEBUG
17724 extern int rb_is_pointer_to_heap(
VALUE);
17730 if (x ==
Qfalse)
return x;
17731 if (x ==
Qtrue)
return x;
17732 if (x ==
Qnil)
return x;
17737 if (!rb_is_pointer_to_heap(x))
17752 return ((
NODE *)x)->nd_rval;
17761 #define validate(x) ((x) = get_value(x))
17773 return rb_funcall(parser->value, mid, 1, a);
17781 return rb_funcall(parser->value, mid, 2, a, b);
17790 return rb_funcall(parser->value, mid, 3, a, b, c);
17800 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17811 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17824 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17827 static const struct kw_assoc {
17830 } keyword_to_name[] = {
17883 keyword_id_to_str(
ID id)
17885 const struct kw_assoc *a;
17887 for (a = keyword_to_name; a->id; a++) {
17894 #undef ripper_id2sym
17896 ripper_id2sym(
ID id)
17906 if ((name = keyword_id_to_str(
id))) {
17919 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17927 ripper_get_id(
VALUE v)
17937 ripper_get_value(
VALUE v)
17944 return nd->nd_rval;
17948 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17953 va_start(args, fmt);
17960 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17966 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17973 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17980 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17986 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17999 ripper_s_allocate(
VALUE klass)
18011 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
18027 VALUE src, fname, lineno;
18030 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
18040 if (
NIL_P(fname)) {
18055 struct ripper_args {
18062 ripper_parse0(
VALUE parser_v)
18068 ripper_yyparse((
void*)parser);
18069 return parser->result;
18073 ripper_ensure(
VALUE parser_v)
18078 parser->parsing_thread =
Qnil;
18089 ripper_parse(
VALUE self)
18094 if (!ripper_initialized_p(parser)) {
18097 if (!
NIL_P(parser->parsing_thread)) {
18104 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
18106 return parser->result;
18117 ripper_column(
VALUE self)
18123 if (!ripper_initialized_p(parser)) {
18126 if (
NIL_P(parser->parsing_thread))
return Qnil;
18138 ripper_filename(
VALUE self)
18143 if (!ripper_initialized_p(parser)) {
18157 ripper_lineno(
VALUE self)
18162 if (!ripper_initialized_p(parser)) {
18165 if (
NIL_P(parser->parsing_thread))
return Qnil;
18169 #ifdef RIPPER_DEBUG
18205 InitVM_ripper(
void)
18222 #ifdef RIPPER_DEBUG
#define STRNCASECMP(s1, s2, n)
RUBY_EXTERN VALUE rb_cString
void rb_define_global_const(const char *, VALUE)
char * parser_ruby_sourcefile
#define RBASIC_CLEAR_CLASS(obj)
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
struct local_vars * parser_lvtbl
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
#define IS_LABEL_SUFFIX(n)
#define new_args_tail(k, kr, b)
int rb_is_attrset_id(ID id)
int rb_enc_codelen(int c, rb_encoding *enc)
#define NEW_OP_ASGN_AND(i, val)
#define parser_precise_mbclen()
static NODE * remove_begin(NODE *)
#define MBCLEN_CHARFOUND_P(ret)
#define NEW_STRTERM(func, term, paren)
static const yytype_int16 yydefgoto[]
#define list_concat(h, t)
static struct parser_params * parser_new(void)
#define NEW_OP_ASGN1(p, id, a)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
static NODE * arg_blk_pass(NODE *, NODE *)
static void Init_id(void)
static ID internal_id_gen(struct parser_params *)
void rb_bug(const char *fmt,...)
void rb_enc_copy(VALUE obj1, VALUE obj2)
#define RUBY_TYPED_FREE_IMMEDIATELY
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
static const struct kwtable * reserved_word(const char *, unsigned int)
int rb_is_class_name(VALUE name)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
static int comment_at_top(struct parser_params *parser)
#define RE_OPTION_ENCODING_IDX(o)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
#define assignable(id, node)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
static size_t parser_memsize(const void *ptr)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
#define IDSET_ATTRSET_FOR_SYNTAX
#define reg_compile(str, options)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
int parser_ruby__end__seen
static void fixpos(NODE *, NODE *)
VALUE rb_range_new(VALUE, VALUE, int)
static void reduce_nodes_gen(struct parser_params *, NODE **)
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
int parser_compile_for_eval
int parser_token_info_enabled
#define rb_usascii_str_new2
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
VALUE rb_str_cat(VALUE, const char *, long)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
VALUE rb_reg_check_preprocess(VALUE)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static NODE * gettable_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
#define TypedData_Wrap_Struct(klass, data_type, sval)
static struct symbols global_symbols
static YYSIZE_T yystrlen(char *yystr) const
VALUE rb_parser_end_seen_p(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
struct token_info token_info
#define new_op_assign(lhs, op, rhs)
stack_type parser_cmdarg_stack
static NODE * parser_compile_string(volatile VALUE vparser, VALUE fname, VALUE s, int line)
#define new_args(f, o, r, p, t)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define token_info_push(token)
static int parser_here_document(struct parser_params *, NODE *)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define logop(type, node1, node2)
VALUE rb_ary_push(VALUE ary, VALUE item)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#define NEW_CLASS(n, b, s)
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
unsigned short int yytype_uint16
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
#define is_identchar(p, e, enc)
VALUE op_sym[tLAST_OP_ID]
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
#define warn_balanced(op, syn)
#define match_op(node1, node2)
int rb_enc_str_coderange(VALUE)
static void ripper_init_eventids1_table(VALUE self)
#define reg_fragment_setenc(str, options)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
void rb_raise(VALUE exc, const char *fmt,...)
#define rb_warn4S(file, line, fmt, a)
#define RSTRING_GETMEM(str, ptrvar, lenvar)
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static NODE * newline_node(NODE *)
const rb_data_type_t * parent
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * range_op(struct parser_params *parser, NODE *node)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
static NODE * remove_begin_all(NODE *)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
st_index_t rb_str_hash(VALUE)
static void parser_pushback(struct parser_params *parser, int c)
#define nd_set_type(n, t)
static int lvar_defined_gen(struct parser_params *, ID)
void rb_gc_mark(VALUE ptr)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define parser_is_identchar()
#define rb_enc_islower(c, enc)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define RE_OPTION_ENCODING(e)
#define rb_backref_error(n)
static void parser_initialize(struct parser_params *parser)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
static const yytype_uint16 yyr1[]
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define is_instance_id(id)
#define call_bin_op(recv, id, arg1)
static enum node_type nodetype(NODE *node)
VALUE rb_str_buf_append(VALUE, VALUE)
VALUE rb_sym_all_symbols(void)
static VALUE lex_getline(struct parser_params *parser)
static NODE * ret_args_gen(struct parser_params *, NODE *)
static const yytype_int16 yytable[]
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
VALUE parser_ruby_sourcefile_string
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
static NODE * yycompile(struct parser_params *parser, VALUE fname, int line)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
void rb_gc_force_recycle(VALUE p)
static int yylex(void *, void *)
RUBY_EXTERN void * memmove(void *, const void *, size_t)
#define list_append(l, i)
NODE * parser_deferred_nodes
static int simple_re_meta(int c)
VALUE rb_str_buf_cat(VALUE, const char *, long)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
void rb_name_error(ID id, const char *fmt,...)
static int e_option_supplied(struct parser_params *parser)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
#define SPECIAL_PUNCT(idx)
static int vtable_size(const struct vtable *tbl)
static int assign_in_cond(struct parser_params *parser, NODE *node)
void rb_exc_raise(VALUE mesg)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
static rb_encoding * must_be_ascii_compatible(VALUE s)
int rb_is_const_id(ID id)
int rb_is_instance_id(ID id)
#define RBASIC_SET_CLASS_RAW(obj, cls)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
static int parser_number_literal_suffix(struct parser_params *parser, int mask)
#define RB_TYPE_P(obj, type)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
int rb_is_method_name(VALUE name)
#define assignable_result(x)
int st_lookup(st_table *, st_data_t, st_data_t *)
#define NEW_ATTRASGN(r, m, a)
#define MEMZERO(p, type, n)
static VALUE coverage(VALUE fname, int n)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warning(node, mesg)
static int parser_regx_options(struct parser_params *)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
enum lex_state_e parser_lex_state
#define whole_match_p(e, l, i)
VALUE parser_lex_lastline
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define set_yylval_literal(x)
static int parser_yylex(struct parser_params *parser)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
#define scan_hex(s, l, e)
static int dyna_in_block_gen(struct parser_params *)
static const yytype_uint16 yystos[]
#define rb_rational_raw1(x)
static char * parser_tokspace(struct parser_params *parser, int n)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
void rb_compile_error_append(const char *fmt,...)
void rb_compile_error_with_enc(const char *file, int line, void *enc, const char *fmt,...)
static void parser_free(void *ptr)
#define NEW_PRELUDE(p, b)
#define literal_concat(h, t)
RUBY_EXTERN VALUE rb_cObject
static int symbols_i(VALUE sym, ID value, VALUE ary)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
#define rb_enc_isascii(c, enc)
static int dvar_curr_gen(struct parser_params *, ID)
VALUE rb_parser_encoding(VALUE vparser)
static const yytype_uint16 yyrline[]
struct parser_params * parser
#define yytable_value_is_error(yytable_value)
VALUE rb_get_coverages(void)
NODE * rb_compile_string(const char *f, VALUE s, int line)
static const yytype_uint16 yyprhs[]
VALUE rb_obj_as_string(VALUE)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
#define NEW_ARGSPUSH(a, b)
#define is_attrset_id(id)
#define set_yylval_name(x)
#define IDSET_ATTRSET_FOR_INTERN
#define NEW_UNLESS(c, t, e)
static char * parser_newtok(struct parser_params *parser)
RUBY_EXTERN VALUE rb_mKernel
VALUE rb_thread_current(void)
static int vtable_included(const struct vtable *tbl, ID id)
#define block_dup_check(n1, n2)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void local_push_gen(struct parser_params *, int)
void st_add_direct(st_table *, st_data_t, st_data_t)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
ID rb_intern(const char *name)
#define heredoc_identifier()
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
#define new_const_op_assign(lhs, op, rhs)
void rb_define_const(VALUE, const char *, VALUE)
static void parser_tokadd(struct parser_params *parser, int c)
static void parser_mark(void *ptr)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
rb_atomic_t cnt[RUBY_NSIG]
#define lex_goto_eol(parser)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
static void ripper_init_eventids1(void)
static void vtable_add(struct vtable *tbl, ID id)
char ary[RSTRING_EMBED_LEN_MAX+1]
VALUE rb_rational_new(VALUE, VALUE)
#define ALLOCA_N(type, n)
#define flush_string_content(enc)
#define NEW_OP_CDECL(v, op, val)
#define ENC_CODERANGE_UNKNOWN
#define tokadd_string(f, t, p, n, e)
static NODE * new_yield_gen(struct parser_params *, NODE *)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
#define ENC_CODERANGE_BROKEN
#define rb_enc_isupper(c, enc)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
static int parser_nextc(struct parser_params *parser)
const char * parser_lex_pend
static ID formal_argument_gen(struct parser_params *, ID)
static void void_expr_gen(struct parser_params *, NODE *)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
#define set_integer_literal(v, f)
static ID intern_str(VALUE str)
#define YY_REDUCE_PRINT(Rule)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
token_info * parser_token_info
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
static char * yystpcpy(char *yydest, const char *yysrc)
VALUE rb_make_backtrace(void)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static VALUE setup_fake_str(struct RString *fake_str, const char *name, long len)
#define NEW_WHEN(c, t, e)
VALUE rb_str_resize(VALUE, long)
#define NEW_DASGN(v, val)
static int parser_peek_variable_name(struct parser_params *parser)
static VALUE yycompile0(VALUE arg)
#define mixed_escape(beg, enc1, enc2)
int rb_str_hash_cmp(VALUE, VALUE)
#define set_yylval_num(x)
static ID register_symid_str(ID, VALUE)
#define NEW_BLOCK_PASS(b)
int rb_dvar_defined(ID id)
static void dispose_string(VALUE str)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static ID shadowing_lvar_gen(struct parser_params *, ID)
#define set_number_literal(v, t, f)
#define REALLOC_N(var, type, n)
SSL_METHOD *(* func)(void)
int rb_symname_p(const char *name)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
static int shadowing_lvar_0(struct parser_params *parser, ID name)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
#define token_info_pop(token)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE rb_sprintf(const char *format,...)
#define IS_lex_state_for(x, ls)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
#define NEW_OP_ASGN_OR(i, val)
#define rb_enc_isspace(c, enc)
#define rb_node_newnode(type, a1, a2, a3)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
int rb_is_attrset_name(VALUE name)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
static const struct magic_comment magic_comments[]
static int parser_parse_string(struct parser_params *, NODE *)
#define rb_warningS(fmt, a)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
#define NEW_RESCUE(b, res, e)
static int dvar_defined_gen(struct parser_params *, ID, int)
int rb_is_local_id(ID id)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static int local_id_gen(struct parser_params *, ID)
unsigned char buf[MIME_BUF_SIZE]
VALUE rb_assoc_new(VALUE car, VALUE cdr)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
static void rb_backref_error_gen(struct parser_params *, NODE *)
#define rb_enc_isdigit(c, enc)
unsigned char yytype_uint8
void rb_gc_mark_symbols(int full_mark)
static const yytype_int16 yyrhs[]
static void arg_ambiguous_gen(struct parser_params *parser)
#define heredoc_restore(n)
static void parser_prepare(struct parser_params *parser)
static NODE * cond_gen(struct parser_params *, NODE *)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int allowed_attrset)
static int options(unsigned char *cp)
static const char *const yytname[]
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
stack_type parser_cond_stack
static void ripper_init_eventids2(void)
static void dyna_pop_1(struct parser_params *parser)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static int parser_heredoc_identifier(struct parser_params *parser)
#define rb_enc_ispunct(c, enc)
static int value_expr_gen(struct parser_params *, NODE *)
void rb_mark_tbl(st_table *tbl)
#define NEW_ENSURE(b, en)
static int rb_str_symname_type(VALUE name, unsigned int allowed_attrset)
int rb_is_global_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static const yytype_int16 yycheck[]
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
#define set_yylval_str(x)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
static int is_static_content(NODE *node)
#define ENCODING_IS_ASCII8BIT(obj)
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
static const yytype_int16 yypgoto[]
static int arg_var_gen(struct parser_params *, ID)
#define rb_enc_isalpha(c, enc)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static ID * local_tbl_gen(struct parser_params *)
static int is_global_name_punct(const int c)
#define reg_named_capture_assign(regexp, match)
static const struct @92 op_tbl[]
static int parser_yyerror(struct parser_params *, const char *)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
int rb_is_const_name(VALUE name)
#define is_asgn_or_id(id)
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
int rb_is_local_name(VALUE name)
#define RARRAY_ASET(a, i, v)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
void rb_gc_mark_parser(void)
static const yytype_uint8 yytranslate[]
#define ADD2HEAP(n, c, p)
static int is_private_local_id(ID name)
#define NEW_GASGN(v, val)
static void no_blockarg(struct parser_params *parser, NODE *node)
static void local_pop_gen(struct parser_params *)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define RARRAY_AREF(a, i)
#define read_escape(flags, e)
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_int_positive_pow(long x, unsigned long y)
#define parser_warn(node, mesg)
ID rb_intern_str(VALUE str)
void rb_set_errinfo(VALUE err)
NODE * parser_lex_strterm
#define RUBY_DTRACE_SYMBOL_CREATE_ENABLED()
VALUE rb_complex_raw(VALUE x, VALUE y)
#define NEW_UNTIL(c, b, n)
static int token_info_get_column(struct parser_params *parser, const char *token)
static const struct st_hash_type symhash
#define node_assign(node1, node2)
static void void_stmts_gen(struct parser_params *, NODE *)
static int local_var_gen(struct parser_params *, ID)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
#define YYSTACK_ALLOC_MAXIMUM
#define new_defined(expr)
static const rb_data_type_t parser_data_type
void rb_compile_warning(const char *file, int line, const char *fmt,...)
VALUE rb_check_string_type(VALUE)
static const yytype_uint16 yydefact[]
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
#define parser_encoding_name()
#define NEW_WHILE(c, b, n)
static int parser_set_integer_literal(struct parser_params *parser, VALUE v, int suffix)
static const yytype_int16 yypact[]
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
#define NEW_POSTARG(i, v)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
#define NEW_CVASGN(v, val)
static void new_bv_gen(struct parser_params *, ID)
static NODE * negate_lit(NODE *)
#define NEW_OP_ASGN2(r, i, o, val)
#define NEW_MATCH3(r, n2)
#define number_literal_suffix(f)
static void fixup_nodes(NODE **)
#define STR_NEW3(p, n, e, func)
static const char * magic_comment_marker(const char *str, long len)
#define NEW_OPT_ARG(i, v)
static unsigned int hash(const char *str, unsigned int len)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define RUBY_DTRACE_SYMBOL_CREATE(arg0, arg1, arg2)
#define IS_LABEL_POSSIBLE()
VALUE rb_filesystem_str_new_cstr(const char *)
static const char id_type_names[][9]
const char * parser_lex_pbeg
int rb_is_class_id(ID id)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
VALUE rb_parser_new(void)
VALUE rb_const_get_at(VALUE, ID)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define call_uni_op(recv, id)
static int literal_node(NODE *node)
#define set_yylval_node(x)
const char * parser_lex_p
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
#define RE_OPTION_ENCODING_NONE(o)
#define dvar_defined_get(id)
int rb_is_instance_name(VALUE name)
int parser_ruby_sourceline
const char * rb_id2name(ID id)
#define ruby_eval_tree_begin
#define ruby_sourcefile_string
#define StringValuePtr(v)
struct RString::@109::@110 heap
#define formal_argument(id)
static int nodeline(NODE *node)
#define dispatch_heredoc_end()
VALUE rb_str_new_frozen(VALUE)
static const yytype_uint8 yyr2[]
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
#define YY_STACK_PRINT(Bottom, Top)
NODE * rb_parser_compile_string_path(volatile VALUE vparser, VALUE f, VALUE s, int line)
#define NEW_CALL(r, m, a)
static NODE * cond0(struct parser_params *, NODE *)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_is_junk_name(VALUE name)
int rb_enc_find_index(const char *name)
static NODE * splat_array(NODE *)
static struct vtable * vtable_alloc(struct vtable *prev)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
#define CONST_ID(var, str)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define attrset(node, id)
#define mixed_error(enc1, enc2)
static ID register_symid(ID, const char *, long, rb_encoding *)
#define NEW_MATCH2(n1, n2)
static const struct vtable * dyna_push_gen(struct parser_params *)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
st_table * st_init_numtable_with_size(st_index_t)
#define shadowing_lvar(name)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static int parser_set_number_literal(struct parser_params *parser, VALUE v, int type, int suffix)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
#define reg_fragment_check(str, options)
int rb_parse_in_eval(void)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
ID rb_intern2(const char *name, long len)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
NODE * rb_compile_file(const char *f, VALUE file, int start)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
VALUE rb_parser_get_yydebug(VALUE self)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define RTYPEDDATA_TYPE(v)
#define NEW_LASGN(v, val)
static VALUE debug_lines(VALUE fname)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
#define yypact_value_is_default(yystate)
#define ENCODING_SET(obj, i)
int rb_local_defined(ID id)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
#define rb_ascii8bit_encindex()
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
int rb_memcicmp(const void *, const void *, long)
#define block_append(h, t)
NODE * rb_parser_compile_file_path(volatile VALUE vparser, VALUE fname, VALUE file, int start)
static void vtable_free(struct vtable *tbl)
#define rb_enc_prev_char(s, p, e, enc)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
VALUE rb_attr_get(VALUE, ID)
#define tokaddmbc(c, enc)
#define NEW_CDECL(v, val, path)
#define NEW_DEFS(r, i, a, d)
static void ripper_init_eventids2_table(VALUE self)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
static int sym_check_asciionly(VALUE str)
rb_encoding * rb_enc_from_index(int index)
#define aryset(node1, node2)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
#define IS_AFTER_OPERATOR()
VALUE rb_str_new(const char *, long)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
int rb_is_global_name(VALUE name)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)