47 #define YYBISON_VERSION "2.5" 50 #define YYSKELETON_NAME "yacc.c" 62 #define YYLSP_NEEDED 0 73 # error needs pure parser 76 #define PARSER_DEBUG 0 79 #define YYERROR_VERBOSE 1 80 #define YYSTACK_USE_ALLOCA 0 95 #ifndef WARN_PAST_SCOPE 96 # define WARN_PAST_SCOPE 0 101 #define YYMALLOC(size) rb_parser_malloc(parser, (size)) 102 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size)) 103 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size)) 104 #define YYFREE(ptr) rb_parser_free(parser, (ptr)) 105 #define YYFPRINTF rb_parser_printf 106 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 107 # define YY_LOCATION_PRINT(File, Loc) \ 108 rb_parser_printf(parser, "%d.%d-%d.%d", \ 109 (Loc).first_line, (Loc).first_column, \ 110 (Loc).last_line, (Loc).last_column) 116 #define malloc YYMALLOC 117 #define realloc YYREALLOC 118 #define calloc YYCALLOC 139 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit) 158 #define IS_lex_state_for(x, ls) ((x) & (ls)) 159 #define IS_lex_state_all_for(x, ls) (((x) & (ls)) == (ls)) 160 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls)) 161 #define IS_lex_state_all(ls) IS_lex_state_all_for(lex_state, (ls)) 163 # define SET_LEX_STATE(ls) \ 164 (lex_state = (yydebug ? trace_lex_state(lex_state, (ls), __LINE__) : \ 165 (enum lex_state_e)(ls))) 171 # define SHOW_BITSTACK(stack, name) (yydebug ? show_bitstack(stack, name, __LINE__) : (void)0) 172 # define BITSTACK_PUSH(stack, n) (((stack) = ((stack)<<1)|((n)&1)), SHOW_BITSTACK(stack, #stack"(push)")) 173 # define BITSTACK_POP(stack) (((stack) = (stack) >> 1), SHOW_BITSTACK(stack, #stack"(pop)")) 174 # define BITSTACK_LEXPOP(stack) (((stack) = ((stack) >> 1) | ((stack) & 1)), SHOW_BITSTACK(stack, #stack"(lexpop)")) 175 # define BITSTACK_SET_P(stack) (SHOW_BITSTACK(stack, #stack), (stack)&1) 176 # define BITSTACK_SET(stack, n) ((stack)=(n), SHOW_BITSTACK(stack, #stack"(set)")) 178 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n)) 179 #define COND_POP() BITSTACK_POP(cond_stack) 180 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack) 181 #define COND_P() BITSTACK_SET_P(cond_stack) 182 #define COND_SET(n) BITSTACK_SET(cond_stack, (n)) 184 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n)) 185 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack) 186 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack) 187 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack) 188 #define CMDARG_SET(n) BITSTACK_SET(cmdarg_stack, (n)) 208 #define DVARS_INHERIT ((void*)1) 209 #define DVARS_TOPSCOPE NULL 210 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl)) 211 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3) 234 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
241 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
254 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
258 if (tbl->pos == tbl->capa) {
259 tbl->capa = tbl->capa * 2;
262 tbl->tbl[tbl->pos++] =
id;
269 if (tbl->
pos < n)
rb_bug(
"vtable_pop: unreachable");
280 for (i = 0; i < tbl->
pos; i++) {
281 if (tbl->
tbl[i] ==
id) {
342 VALUE compile_option;
349 unsigned int eofp: 1;
352 unsigned int has_shebang: 1;
355 unsigned int in_kwarg: 1;
358 unsigned int token_seen: 1;
359 unsigned int token_info_enabled: 1;
361 unsigned int past_scope_enabled: 1;
363 unsigned int error_p: 1;
364 unsigned int cr_seen: 1;
369 NODE *eval_tree_begin;
385 VALUE parsing_thread;
390 #define intern_cstr(n,l,en) rb_intern3(n,l,en) 392 #define intern_cstr(n,l,en) rb_intern3(n,l,en) 395 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc) 396 #define STR_NEW0() rb_enc_str_new(0,0,current_enc) 397 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc) 398 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc) 399 #define TOK_INTERN() intern_cstr(tok(), toklen(), current_enc) 402 #define yyerror(msg) parser_yyerror(parser, (msg)) 404 #define lex_strterm (parser->lex.strterm) 405 #define lex_state (parser->lex.state) 406 #define cond_stack (parser->cond_stack) 407 #define cmdarg_stack (parser->cmdarg_stack) 408 #define paren_nest (parser->lex.paren_nest) 409 #define lpar_beg (parser->lex.lpar_beg) 410 #define brace_nest (parser->lex.brace_nest) 411 #define in_single (parser->in_single) 412 #define in_def (parser->in_def) 413 #define in_main (parser->in_main) 414 #define in_defined (parser->in_defined) 415 #define tokenbuf (parser->tokenbuf) 416 #define tokidx (parser->tokidx) 417 #define toksiz (parser->toksiz) 418 #define tokline (parser->tokline) 419 #define lex_input (parser->lex.input) 420 #define lex_lastline (parser->lex.lastline) 421 #define lex_nextline (parser->lex.nextline) 422 #define lex_pbeg (parser->lex.pbeg) 423 #define lex_p (parser->lex.pcur) 424 #define lex_pend (parser->lex.pend) 425 #define heredoc_end (parser->heredoc_end) 426 #define heredoc_indent (parser->heredoc_indent) 427 #define heredoc_line_indent (parser->heredoc_line_indent) 428 #define command_start (parser->command_start) 429 #define lex_gets_ptr (parser->lex.gets_ptr) 430 #define lex_gets (parser->lex.gets) 431 #define lvtbl (parser->lvtbl) 432 #define ruby__end__seen (parser->ruby__end__seen) 433 #define ruby_sourceline (parser->ruby_sourceline) 434 #define ruby_sourcefile (parser->ruby_sourcefile) 435 #define ruby_sourcefile_string (parser->ruby_sourcefile_string) 436 #define current_enc (parser->enc) 437 #define current_arg (parser->cur_arg) 438 #define yydebug (parser->yydebug) 440 #define compile_for_eval (0) 442 #define compile_for_eval (parser->base_block != 0 && !in_main) 443 #define ruby_eval_tree (parser->eval_tree) 444 #define ruby_eval_tree_begin (parser->eval_tree_begin) 445 #define ruby_debug_lines (parser->debug_lines) 446 #define ruby_coverage (parser->coverage) 449 #define CALL_Q_P(q) ((q) == tANDDOT) 450 #define NODE_CALL_Q(q) (CALL_Q_P(q) ? NODE_QCALL : NODE_CALL) 451 #define NEW_QCALL(q,r,m,a) NEW_NODE(NODE_CALL_Q(q),r,m,a) 453 #define lambda_beginning_p() (lpar_beg && lpar_beg == paren_nest) 458 #define yyparse ruby_yyparse 461 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3)) 464 #define cond(node) cond_gen(parser, (node), FALSE) 465 #define method_cond(node) cond_gen(parser, (node), TRUE) 467 #define new_if(cc,left,right) new_if_gen(parser, (cc), (left), (right)) 468 #define new_unless(cc,left,right) new_if_gen(parser, (cc), (right), (left)) 470 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2)) 479 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node)) 480 #define void_expr0(node) void_expr_gen(parser, (node)) 481 #define void_expr(node) void_expr0((node) = remove_begin(node)) 483 #define void_stmts(node) void_stmts_gen(parser, (node)) 485 #define reduce_nodes(n) reduce_nodes_gen(parser,(n)) 487 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2)) 490 #define block_append(h,t) block_append_gen(parser,(h),(t)) 492 #define list_append(l,i) list_append_gen(parser,(l),(i)) 495 #define arg_append(h,t) arg_append_gen(parser,(h),(t)) 497 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t)) 499 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t)) 502 #define new_evstr(n) new_evstr_gen(parser,(n)) 504 #define evstr2dstr(n) evstr2dstr_gen(parser,(n)) 508 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1)) 510 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id)) 513 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 515 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 516 #define new_kw_arg(k) ((k) ? NEW_KW_ARG(0, (k)) : 0) 520 #define ret_args(node) ret_args_gen(parser, (node)) 523 #define new_yield(node) new_yield_gen(parser, (node)) 525 #define dsym_node(node) dsym_node_gen(parser, (node)) 528 #define gettable(id) gettable_gen(parser,(id)) 530 #define assignable(id,node) assignable_gen(parser, (id), (node)) 533 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2)) 535 #define attrset(node,q,id) attrset_gen(parser, (node), (q), (id)) 538 #define rb_backref_error(n) rb_backref_error_gen(parser,(n)) 540 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2)) 544 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs)) 546 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs)) 548 #define const_path_field(w, n) NEW_COLON2(w, n) 549 #define top_const_field(n) NEW_COLON3(n) 551 #define const_decl(path) const_decl_gen(parser, path) 553 #define var_field(n) (n) 554 #define backref_assign_error(n, a) (rb_backref_error(n), NEW_BEGIN(0)) 559 #define new_hash(hash) new_hash_gen(parser, (hash)) 561 #define new_defined(expr) NEW_DEFINED(remove_begin_all(expr)) 564 #define new_regexp(node, opt) new_regexp_gen(parser, node, opt) 567 #define new_xstring(node) new_xstring_gen(parser, node) 568 #define new_string1(str) (str) 570 #define new_brace_body(param, stmt) NEW_ITER(param, stmt) 571 #define new_do_body(param, stmt) NEW_ITER(param, stmt) 574 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2)) 577 #define local_tbl() local_tbl_gen(parser) 580 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options)) 582 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options)) 584 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options)) 586 #define reg_named_capture_assign(regexp) reg_named_capture_assign_gen(parser,(regexp)) 589 # define heredoc_dedent(str) parser_heredoc_dedent(parser, (str)) 591 #define get_id(id) (id) 592 #define get_value(val) (val) 594 #define NODE_RIPPER NODE_CDECL 603 ripper_is_node_yylval(
VALUE n)
608 #define value_expr(node) ((void)(node)) 609 #define remove_begin(node) (node) 610 #define rb_dvar_defined(id, base) 0 611 #define rb_local_defined(id, base) 0 612 static ID ripper_get_id(
VALUE);
613 #define get_id(id) ripper_get_id(id) 615 #define get_value(val) ripper_get_value(val) 617 #define assignable(lhs,node) assignable_gen(parser, (lhs)) 619 #define id_is_var(id) id_is_var_gen(parser, (id)) 621 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2)) 625 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs)) 626 #define new_const_op_assign(lhs, op, rhs) new_op_assign(lhs, op, rhs) 629 #define new_regexp(node, opt) new_regexp_gen(parser, node, opt) 632 #define new_xstring(str) new_xstring_gen(parser, str) 633 #define new_string1(str) dispatch1(string_literal, str) 635 #define new_brace_body(param, stmt) dispatch2(brace_block, escape_Qundef(param), stmt) 636 #define new_do_body(param, stmt) dispatch2(do_block, escape_Qundef(param), stmt) 638 #define const_path_field(w, n) dispatch2(const_path_field, (w), (n)) 639 #define top_const_field(n) dispatch1(top_const_field, (n)) 641 #define const_decl(path) const_decl_gen(parser, path) 643 #define var_field(n) dispatch1(var_field, (n)) 645 #define assign_error(a) assign_error_gen(parser, (a)) 646 #define backref_assign_error(n, a) assign_error(a) 652 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs)) 659 #define formal_argument(id) formal_argument_gen(parser, (id)) 661 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name)) 663 #define new_bv(id) new_bv_gen(parser, (id)) 666 #define local_push(top) local_push_gen(parser,(top)) 668 #define local_pop() local_pop_gen(parser) 670 #define local_var(id) local_var_gen(parser, (id)) 672 #define arg_var(id) arg_var_gen(parser, (id)) 674 #define local_id(id) local_id_gen(parser, (id)) 676 #define internal_id() internal_id_gen(parser) 679 #define dyna_push() dyna_push_gen(parser) 681 #define dyna_pop(node) dyna_pop_gen(parser, (node)) 683 #define dyna_in_block() dyna_in_block_gen(parser) 684 #define dyna_var(id) local_var(id) 686 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0) 687 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1) 689 #define dvar_curr(id) dvar_curr_gen(parser, (id)) 692 #define lvar_defined(id) lvar_defined_gen(parser, (id)) 694 #define RE_OPTION_ONCE (1<<16) 695 #define RE_OPTION_ENCODING_SHIFT 8 696 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT) 697 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff) 698 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE) 699 #define RE_OPTION_MASK 0xff 700 #define RE_OPTION_ARG_ENCODING_NONE 32 702 #define NODE_STRTERM NODE_ZARRAY 703 #define NODE_HEREDOC NODE_ARRAY 704 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1)) 705 #define nd_func u1.id 706 #if SIZEOF_SHORT == 2 707 #define nd_term(node) ((signed short)(node)->u2.id) 709 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2) 711 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2) 712 #define nd_nest u3.cnt 717 #define RIPPER_VERSION "0.1.0" 719 static inline VALUE intern_sym(
const char *
name);
732 #define ripper_error() ripper_error_gen(parser) 734 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n)) 735 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a)) 736 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b)) 737 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c)) 738 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d)) 739 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e)) 740 #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)) 742 #define yyparse ripper_yyparse 744 #define ripper_intern(s) ID2SYM(rb_intern(s)) 747 #define ripper_id2sym(id) (rb_ispunct((int)(id)) ? \ 748 ID2SYM(id) : ripper_id2sym(id)) 751 #define arg_new() dispatch0(args_new) 752 #define arg_add(l,a) dispatch2(args_add, (l), (a)) 753 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a)) 754 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b)) 755 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b))) 756 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v)) 757 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b)) 759 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a)) 760 #define mrhs_new() dispatch0(mrhs_new) 761 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a)) 762 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a)) 764 #define mlhs_new() dispatch0(mlhs_new) 765 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a)) 766 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a)) 768 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \ 769 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk)) 771 #define blockvar_new(p,v) dispatch2(block_var, (p), (v)) 772 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a)) 773 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a)) 775 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a))) 776 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a)) 777 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b)) 779 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x)) 786 return params_new(f, o, r, p, k, kr, escape_Qundef(b));
788 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 795 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 797 #define new_defined(expr) dispatch1(defined, (expr)) 800 # define heredoc_dedent(str) parser_heredoc_dedent(parser, (str)) 805 #define ripper_id2sym(id) id 810 # define ifndef_ripper(x) (x) 813 # define ifndef_ripper(x) 816 # define rb_warn0(fmt) WARN_CALL(WARN_ARGS(fmt, 1)) 817 # define rb_warn1(fmt,a) WARN_CALL(WARN_ARGS(fmt, 2), (a)) 818 # define rb_warn2(fmt,a,b) WARN_CALL(WARN_ARGS(fmt, 3), (a), (b)) 819 # define rb_warn3(fmt,a,b,c) WARN_CALL(WARN_ARGS(fmt, 4), (a), (b), (c)) 820 # define rb_warn4(fmt,a,b,c,d) WARN_CALL(WARN_ARGS(fmt, 5), (a), (b), (c), (d)) 821 # define rb_warning0(fmt) WARNING_CALL(WARNING_ARGS(fmt, 1)) 822 # define rb_warning1(fmt,a) WARNING_CALL(WARNING_ARGS(fmt, 2), (a)) 823 # define rb_warning2(fmt,a,b) WARNING_CALL(WARNING_ARGS(fmt, 3), (a), (b)) 824 # define rb_warning3(fmt,a,b,c) WARNING_CALL(WARNING_ARGS(fmt, 4), (a), (b), (c)) 825 # define rb_warning4(fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS(fmt, 5), (a), (b), (c), (d)) 826 # define rb_warn0L(l,fmt) WARN_CALL(WARN_ARGS_L(l, fmt, 1)) 827 # define rb_warn1L(l,fmt,a) WARN_CALL(WARN_ARGS_L(l, fmt, 2), (a)) 828 # define rb_warn2L(l,fmt,a,b) WARN_CALL(WARN_ARGS_L(l, fmt, 3), (a), (b)) 829 # define rb_warn3L(l,fmt,a,b,c) WARN_CALL(WARN_ARGS_L(l, fmt, 4), (a), (b), (c)) 830 # define rb_warn4L(l,fmt,a,b,c,d) WARN_CALL(WARN_ARGS_L(l, fmt, 5), (a), (b), (c), (d)) 831 # define rb_warning0L(l,fmt) WARNING_CALL(WARNING_ARGS_L(l, fmt, 1)) 832 # define rb_warning1L(l,fmt,a) WARNING_CALL(WARNING_ARGS_L(l, fmt, 2), (a)) 833 # define rb_warning2L(l,fmt,a,b) WARNING_CALL(WARNING_ARGS_L(l, fmt, 3), (a), (b)) 834 # define rb_warning3L(l,fmt,a,b,c) WARNING_CALL(WARNING_ARGS_L(l, fmt, 4), (a), (b), (c)) 835 # define rb_warning4L(l,fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS_L(l, fmt, 5), (a), (b), (c), (d)) 838 # define WARN_S_L(s,l) STR_NEW(s,l) 839 # define WARN_S(s) STR_NEW2(s) 840 # define WARN_I(i) INT2NUM(i) 841 # define PRIsWARN "s" 842 # define WARN_ARGS(fmt,n) parser->value, id_warn, n, rb_usascii_str_new_lit(fmt) 843 # define WARN_ARGS_L(l,fmt,n) WARN_ARGS(fmt,n) 844 # define WARN_CALL rb_funcall 845 # define WARNING_ARGS(fmt,n) parser->value, id_warning, n, rb_usascii_str_new_lit(fmt) 846 # define WARNING_ARGS_L(l, fmt,n) WARNING_ARGS(fmt,n) 847 # define WARNING_CALL rb_funcall 848 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
849 # define compile_error ripper_compile_error 850 # define PARSER_ARG parser, 852 # define WARN_S_L(s,l) s 855 # define PRIsWARN PRIsVALUE 856 # define WARN_ARGS(fmt,n) WARN_ARGS_L(ruby_sourceline,fmt,n) 857 # define WARN_ARGS_L(l,fmt,n) ruby_sourcefile, (l), (fmt) 858 # define WARN_CALL rb_compile_warn 859 # define WARNING_ARGS(fmt,n) WARN_ARGS(fmt,n) 860 # define WARNING_ARGS_L(l,fmt,n) WARN_ARGS_L(l,fmt,n) 861 # define WARNING_CALL rb_compile_warning 863 # define compile_error parser_compile_error 864 # define PARSER_ARG parser, 872 #define YYMAXDEPTH 10000 878 #define token_info_push(token) token_info_push_gen(parser, (token), rb_strlen_lit(token)) 879 #define token_info_pop(token) token_info_pop_gen(parser, (token), rb_strlen_lit(token)) 891 #ifdef YYERROR_VERBOSE 892 # undef YYERROR_VERBOSE 893 # define YYERROR_VERBOSE 1 895 # define YYERROR_VERBOSE 0 899 #ifndef YYTOKEN_TABLE 900 # define YYTOKEN_TABLE 0 1032 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 1043 const struct vtable *vars;
1048 #line 1049 "parse.c" 1050 # define YYSTYPE_IS_TRIVIAL 1 1051 # define yystype YYSTYPE 1052 # define YYSTYPE_IS_DECLARED 1 1060 #line 1061 "parse.c" 1074 #elif (defined __STDC__ || defined __C99__FUNC__ \ 1075 || defined __cplusplus || defined _MSC_VER) 1081 #ifdef YYTYPE_UINT16 1094 # ifdef __SIZE_TYPE__ 1095 # define YYSIZE_T __SIZE_TYPE__ 1096 # elif defined size_t 1097 # define YYSIZE_T size_t 1098 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 1099 || defined __cplusplus || defined _MSC_VER) 1100 # include <stddef.h> 1101 # define YYSIZE_T size_t 1103 # define YYSIZE_T unsigned int 1107 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 1110 # if defined YYENABLE_NLS && YYENABLE_NLS 1112 # include <libintl.h> 1113 # define YY_(msgid) dgettext ("bison-runtime", msgid) 1117 # define YY_(msgid) msgid 1122 #if ! defined lint || defined __GNUC__ 1123 # define YYUSE(e) ((void) (e)) 1130 # define YYID(n) (n) 1132 #if (defined __STDC__ || defined __C99__FUNC__ \ 1133 || defined __cplusplus || defined _MSC_VER) 1146 #if ! defined yyoverflow || YYERROR_VERBOSE 1150 # ifdef YYSTACK_USE_ALLOCA 1151 # if YYSTACK_USE_ALLOCA 1153 # define YYSTACK_ALLOC __builtin_alloca 1154 # elif defined __BUILTIN_VA_ARG_INCR 1155 # include <alloca.h> 1157 # define YYSTACK_ALLOC __alloca 1158 # elif defined _MSC_VER 1159 # include <malloc.h> 1160 # define alloca _alloca 1162 # define YYSTACK_ALLOC alloca 1163 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1164 || defined __cplusplus || defined _MSC_VER) 1165 # include <stdlib.h> 1166 # ifndef EXIT_SUCCESS 1167 # define EXIT_SUCCESS 0 1174 # ifdef YYSTACK_ALLOC 1176 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0)) 1177 # ifndef YYSTACK_ALLOC_MAXIMUM 1182 # define YYSTACK_ALLOC_MAXIMUM 4032 1185 # define YYSTACK_ALLOC YYMALLOC 1186 # define YYSTACK_FREE YYFREE 1187 # ifndef YYSTACK_ALLOC_MAXIMUM 1188 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 1190 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 1191 && ! ((defined YYMALLOC || defined malloc) \ 1192 && (defined YYFREE || defined free))) 1193 # include <stdlib.h> 1194 # ifndef EXIT_SUCCESS 1195 # define EXIT_SUCCESS 0 1199 # define YYMALLOC malloc 1200 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1201 || defined __cplusplus || defined _MSC_VER) 1206 # define YYFREE free 1207 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1208 || defined __cplusplus || defined _MSC_VER) 1216 #if (! defined yyoverflow \ 1217 && (! defined __cplusplus \ 1218 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 1223 yytype_int16 yyss_alloc;
1228 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 1232 # define YYSTACK_BYTES(N) \ 1233 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 1234 + YYSTACK_GAP_MAXIMUM) 1236 # define YYCOPY_NEEDED 1 1243 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 1246 YYSIZE_T yynewbytes; \ 1247 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 1248 Stack = &yyptr->Stack_alloc; \ 1249 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 1250 yyptr += yynewbytes / sizeof (*yyptr); \ 1256 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 1260 # if defined __GNUC__ && 1 < __GNUC__ 1261 # define YYCOPY(To, From, Count) \ 1262 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 1264 # define YYCOPY(To, From, Count) \ 1268 for (yyi = 0; yyi < (Count); yyi++) \ 1269 (To)[yyi] = (From)[yyi]; \ 1279 #define YYLAST 11794 1282 #define YYNTOKENS 146 1286 #define YYNRULES 642 1288 #define YYNSTATES 1085 1291 #define YYUNDEFTOK 2 1292 #define YYMAXUTOK 353 1294 #define YYTRANSLATE(YYX) \ 1295 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 1300 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1301 145, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1303 2, 2, 143, 131, 2, 2, 2, 129, 124, 2,
1304 139, 140, 127, 125, 137, 126, 144, 128, 2, 2,
1305 2, 2, 2, 2, 2, 2, 2, 2, 119, 142,
1306 121, 117, 120, 118, 2, 2, 2, 2, 2, 2,
1307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1309 2, 136, 2, 141, 123, 2, 138, 2, 2, 2,
1310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1312 2, 2, 2, 134, 122, 135, 132, 2, 81, 82,
1313 68, 69, 70, 2, 71, 85, 86, 76, 75, 72,
1314 73, 74, 79, 80, 83, 84, 2, 2, 77, 78,
1315 87, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1325 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1326 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1327 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1328 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1329 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1330 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1331 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1332 65, 66, 67, 88, 89, 90, 91, 92, 93, 94,
1333 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1334 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1343 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1344 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1345 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1346 91, 95, 99, 104, 106, 110, 114, 118, 120, 124,
1347 128, 135, 141, 147, 153, 159, 163, 165, 169, 171,
1348 173, 177, 181, 185, 188, 190, 192, 194, 196, 198,
1349 203, 204, 209, 211, 214, 218, 223, 229, 234, 240,
1350 243, 246, 249, 252, 255, 257, 261, 263, 267, 269,
1351 272, 276, 282, 285, 290, 293, 298, 300, 304, 306,
1352 310, 313, 317, 319, 323, 325, 327, 332, 336, 340,
1353 344, 348, 351, 353, 355, 357, 362, 366, 370, 374,
1354 378, 381, 383, 385, 387, 390, 392, 396, 398, 400,
1355 402, 404, 406, 408, 410, 412, 414, 416, 417, 422,
1356 424, 426, 428, 430, 432, 434, 436, 438, 440, 442,
1357 444, 446, 448, 450, 452, 454, 456, 458, 460, 462,
1358 464, 466, 468, 470, 472, 474, 476, 478, 480, 482,
1359 484, 486, 488, 490, 492, 494, 496, 498, 500, 502,
1360 504, 506, 508, 510, 512, 514, 516, 518, 520, 522,
1361 524, 526, 528, 530, 532, 534, 536, 538, 540, 542,
1362 544, 546, 548, 550, 552, 554, 556, 558, 560, 562,
1363 564, 568, 572, 579, 585, 591, 597, 603, 608, 612,
1364 616, 620, 624, 628, 632, 636, 640, 644, 649, 652,
1365 655, 659, 663, 667, 671, 675, 679, 683, 687, 691,
1366 695, 699, 703, 707, 710, 713, 717, 721, 725, 729,
1367 730, 735, 742, 744, 746, 748, 751, 756, 759, 761,
1368 765, 769, 771, 773, 775, 777, 780, 785, 788, 790,
1369 793, 796, 801, 803, 804, 807, 810, 813, 815, 817,
1370 820, 824, 829, 831, 833, 837, 842, 845, 847, 849,
1371 851, 853, 855, 857, 859, 861, 863, 865, 867, 868,
1372 873, 874, 878, 879, 880, 886, 890, 894, 897, 901,
1373 905, 907, 912, 916, 918, 919, 926, 931, 935, 938,
1374 940, 943, 946, 953, 960, 961, 962, 970, 971, 972,
1375 980, 986, 991, 992, 993, 1003, 1004, 1011, 1012, 1020,
1376 1021, 1027, 1028, 1029, 1037, 1038, 1039, 1049, 1051, 1053,
1377 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073,
1378 1075, 1077, 1079, 1081, 1083, 1085, 1088, 1090, 1092, 1094,
1379 1100, 1102, 1105, 1107, 1109, 1111, 1115, 1117, 1121, 1123,
1380 1128, 1135, 1139, 1145, 1148, 1153, 1155, 1159, 1164, 1167,
1381 1170, 1172, 1175, 1176, 1183, 1192, 1197, 1204, 1209, 1212,
1382 1219, 1222, 1227, 1234, 1237, 1242, 1245, 1250, 1252, 1254,
1383 1256, 1260, 1262, 1267, 1269, 1274, 1276, 1280, 1282, 1284,
1384 1285, 1286, 1287, 1288, 1295, 1300, 1302, 1306, 1310, 1311,
1385 1316, 1319, 1324, 1330, 1336, 1339, 1340, 1346, 1347, 1353,
1386 1357, 1358, 1363, 1364, 1369, 1372, 1374, 1379, 1380, 1385,
1387 1386, 1391, 1392, 1393, 1398, 1399, 1400, 1405, 1411, 1413,
1388 1415, 1422, 1424, 1426, 1428, 1430, 1433, 1435, 1438, 1440,
1389 1442, 1444, 1446, 1448, 1450, 1452, 1455, 1459, 1463, 1467,
1390 1471, 1475, 1476, 1480, 1482, 1485, 1489, 1493, 1494, 1498,
1391 1502, 1506, 1510, 1514, 1515, 1519, 1520, 1524, 1525, 1528,
1392 1529, 1532, 1533, 1536, 1538, 1539, 1543, 1544, 1545, 1546,
1393 1547, 1548, 1557, 1559, 1561, 1563, 1565, 1568, 1570, 1572,
1394 1574, 1576, 1580, 1582, 1585, 1587, 1589, 1591, 1593, 1595,
1395 1597, 1599, 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615,
1396 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1630, 1635, 1636,
1397 1640, 1641, 1645, 1650, 1653, 1656, 1658, 1661, 1662, 1669,
1398 1678, 1683, 1690, 1695, 1702, 1705, 1710, 1717, 1720, 1725,
1399 1728, 1733, 1735, 1736, 1738, 1740, 1742, 1744, 1746, 1748,
1400 1750, 1752, 1756, 1758, 1762, 1764, 1767, 1769, 1772, 1774,
1401 1776, 1780, 1782, 1786, 1788, 1790, 1793, 1795, 1799, 1803,
1402 1805, 1809, 1811, 1815, 1817, 1819, 1822, 1824, 1826, 1828,
1403 1831, 1834, 1836, 1838, 1839, 1844, 1846, 1849, 1851, 1855,
1404 1859, 1862, 1867, 1870, 1872, 1874, 1876, 1878, 1880, 1882,
1405 1884, 1886, 1888, 1890, 1892, 1894, 1896, 1898, 1900, 1902,
1406 1903, 1905, 1906, 1908, 1911, 1914, 1915, 1917, 1919, 1921,
1413 147, 0, -1, -1, 148, 149, -1, 150, 355, -1,
1414 362, -1, 151, -1, 150, 361, 151, -1, 1, 151,
1415 -1, 158, -1, -1, 47, 152, 134, 149, 135, -1,
1416 154, 276, 237, 279, -1, 155, 355, -1, 362, -1,
1417 156, -1, 155, 361, 156, -1, 1, 158, -1, 158,
1418 -1, -1, 47, 157, 134, 149, 135, -1, -1, 45,
1419 182, 159, 182, -1, 45, 54, 54, -1, 45, 54,
1420 66, -1, 45, 54, 65, -1, 6, 183, -1, 158,
1421 40, 163, -1, 158, 41, 163, -1, 158, 42, 163,
1422 -1, 158, 43, 163, -1, 158, 44, 158, -1, 48,
1423 134, 154, 135, -1, 160, -1, 170, 117, 164, -1,
1424 177, 117, 202, -1, 170, 117, 201, -1, 162, -1,
1425 177, 117, 161, -1, 314, 90, 161, -1, 222, 136,
1426 194, 358, 90, 161, -1, 222, 353, 52, 90, 161,
1427 -1, 222, 353, 56, 90, 161, -1, 222, 88, 56,
1428 90, 161, -1, 222, 88, 52, 90, 161, -1, 315,
1429 90, 161, -1, 164, -1, 164, 44, 158, -1, 160,
1430 -1, 164, -1, 162, 37, 162, -1, 162, 38, 162,
1431 -1, 39, 356, 162, -1, 131, 164, -1, 187, -1,
1432 162, -1, 169, -1, 165, -1, 259, -1, 259, 354,
1433 350, 196, -1, -1, 97, 167, 268, 135, -1, 349,
1434 -1, 168, 196, -1, 168, 196, 166, -1, 222, 353,
1435 350, 196, -1, 222, 353, 350, 196, 166, -1, 222,
1436 88, 350, 196, -1, 222, 88, 350, 196, 166, -1,
1437 32, 196, -1, 31, 196, -1, 30, 195, -1, 21,
1438 195, -1, 22, 195, -1, 172, -1, 92, 171, 357,
1439 -1, 172, -1, 92, 171, 357, -1, 174, -1, 174,
1440 173, -1, 174, 98, 176, -1, 174, 98, 176, 137,
1441 175, -1, 174, 98, -1, 174, 98, 137, 175, -1,
1442 98, 176, -1, 98, 176, 137, 175, -1, 98, -1,
1443 98, 137, 175, -1, 176, -1, 92, 171, 357, -1,
1444 173, 137, -1, 174, 173, 137, -1, 173, -1, 175,
1445 137, 173, -1, 311, -1, 312, -1, 222, 136, 194,
1446 358, -1, 222, 353, 52, -1, 222, 88, 52, -1,
1447 222, 353, 56, -1, 222, 88, 56, -1, 89, 56,
1448 -1, 315, -1, 311, -1, 312, -1, 222, 136, 194,
1449 358, -1, 222, 353, 52, -1, 222, 88, 52, -1,
1450 222, 353, 56, -1, 222, 88, 56, -1, 89, 56,
1451 -1, 315, -1, 52, -1, 56, -1, 89, 178, -1,
1452 178, -1, 222, 88, 178, -1, 52, -1, 56, -1,
1453 53, -1, 185, -1, 186, -1, 180, -1, 306, -1,
1454 181, -1, 308, -1, 182, -1, -1, 183, 137, 184,
1455 182, -1, 122, -1, 123, -1, 124, -1, 71, -1,
1456 72, -1, 73, -1, 79, -1, 80, -1, 120, -1,
1457 75, -1, 121, -1, 76, -1, 74, -1, 85, -1,
1458 86, -1, 125, -1, 126, -1, 127, -1, 98, -1,
1459 128, -1, 129, -1, 70, -1, 99, -1, 131, -1,
1460 132, -1, 68, -1, 69, -1, 83, -1, 84, -1,
1461 138, -1, 49, -1, 50, -1, 51, -1, 47, -1,
1462 48, -1, 45, -1, 37, -1, 7, -1, 21, -1,
1463 16, -1, 3, -1, 5, -1, 46, -1, 26, -1,
1464 15, -1, 14, -1, 10, -1, 9, -1, 36, -1,
1465 20, -1, 25, -1, 4, -1, 22, -1, 34, -1,
1466 39, -1, 38, -1, 23, -1, 8, -1, 24, -1,
1467 30, -1, 33, -1, 32, -1, 13, -1, 35, -1,
1468 6, -1, 17, -1, 31, -1, 11, -1, 12, -1,
1469 18, -1, 19, -1, 177, 117, 191, -1, 314, 90,
1470 191, -1, 222, 136, 194, 358, 90, 191, -1, 222,
1471 353, 52, 90, 191, -1, 222, 353, 56, 90, 191,
1472 -1, 222, 88, 52, 90, 191, -1, 222, 88, 56,
1473 90, 191, -1, 89, 56, 90, 191, -1, 315, 90,
1474 191, -1, 187, 81, 187, -1, 187, 82, 187, -1,
1475 187, 125, 187, -1, 187, 126, 187, -1, 187, 127,
1476 187, -1, 187, 128, 187, -1, 187, 129, 187, -1,
1477 187, 70, 187, -1, 130, 310, 70, 187, -1, 68,
1478 187, -1, 69, 187, -1, 187, 122, 187, -1, 187,
1479 123, 187, -1, 187, 124, 187, -1, 187, 71, 187,
1480 -1, 187, 120, 187, -1, 187, 75, 187, -1, 187,
1481 121, 187, -1, 187, 76, 187, -1, 187, 72, 187,
1482 -1, 187, 73, 187, -1, 187, 74, 187, -1, 187,
1483 79, 187, -1, 187, 80, 187, -1, 131, 187, -1,
1484 132, 187, -1, 187, 85, 187, -1, 187, 86, 187,
1485 -1, 187, 77, 187, -1, 187, 78, 187, -1, -1,
1486 46, 356, 188, 187, -1, 187, 118, 187, 356, 119,
1487 187, -1, 203, -1, 187, -1, 362, -1, 200, 359,
1488 -1, 200, 137, 347, 359, -1, 347, 359, -1, 187,
1489 -1, 187, 44, 187, -1, 139, 194, 357, -1, 362,
1490 -1, 192, -1, 362, -1, 195, -1, 200, 137, -1,
1491 200, 137, 347, 137, -1, 347, 137, -1, 169, -1,
1492 200, 199, -1, 347, 199, -1, 200, 137, 347, 199,
1493 -1, 198, -1, -1, 197, 195, -1, 100, 189, -1,
1494 137, 198, -1, 362, -1, 189, -1, 98, 189, -1,
1495 200, 137, 189, -1, 200, 137, 98, 189, -1, 202,
1496 -1, 189, -1, 200, 137, 189, -1, 200, 137, 98,
1497 189, -1, 98, 189, -1, 280, -1, 281, -1, 284,
1498 -1, 285, -1, 286, -1, 291, -1, 289, -1, 292,
1499 -1, 313, -1, 315, -1, 53, -1, -1, 223, 204,
1500 153, 233, -1, -1, 93, 205, 357, -1, -1, -1,
1501 93, 206, 158, 207, 357, -1, 92, 154, 140, -1,
1502 222, 88, 56, -1, 89, 56, -1, 95, 190, 141,
1503 -1, 96, 346, 135, -1, 30, -1, 31, 139, 195,
1504 357, -1, 31, 139, 357, -1, 31, -1, -1, 46,
1505 356, 139, 208, 162, 357, -1, 39, 139, 162, 357,
1506 -1, 39, 139, 357, -1, 168, 265, -1, 260, -1,
1507 260, 265, -1, 101, 250, -1, 224, 163, 234, 154,
1508 236, 233, -1, 225, 163, 234, 154, 237, 233, -1,
1509 -1, -1, 226, 209, 163, 235, 210, 154, 233, -1,
1510 -1, -1, 227, 211, 163, 235, 212, 154, 233, -1,
1511 228, 163, 355, 274, 233, -1, 228, 355, 274, 233,
1512 -1, -1, -1, 229, 238, 25, 213, 163, 235, 214,
1513 154, 233, -1, -1, 230, 179, 316, 215, 153, 233,
1514 -1, -1, 230, 85, 162, 216, 360, 153, 233, -1,
1515 -1, 231, 179, 217, 153, 233, -1, -1, -1, 232,
1516 180, 218, 219, 318, 153, 233, -1, -1, -1, 232,
1517 344, 352, 220, 180, 221, 318, 153, 233, -1, 21,
1518 -1, 22, -1, 23, -1, 24, -1, 203, -1, 7,
1519 -1, 11, -1, 12, -1, 18, -1, 19, -1, 16,
1520 -1, 20, -1, 3, -1, 4, -1, 5, -1, 10,
1521 -1, 360, -1, 13, -1, 360, 13, -1, 360, -1,
1522 27, -1, 237, -1, 14, 163, 234, 154, 236, -1,
1523 362, -1, 15, 154, -1, 177, -1, 170, -1, 324,
1524 -1, 92, 241, 357, -1, 239, -1, 240, 137, 239,
1525 -1, 240, -1, 240, 137, 98, 324, -1, 240, 137,
1526 98, 324, 137, 240, -1, 240, 137, 98, -1, 240,
1527 137, 98, 137, 240, -1, 98, 324, -1, 98, 324,
1528 137, 240, -1, 98, -1, 98, 137, 240, -1, 331,
1529 137, 334, 343, -1, 331, 343, -1, 334, 343, -1,
1530 342, -1, 137, 242, -1, -1, 327, 137, 337, 137,
1531 340, 243, -1, 327, 137, 337, 137, 340, 137, 327,
1532 243, -1, 327, 137, 337, 243, -1, 327, 137, 337,
1533 137, 327, 243, -1, 327, 137, 340, 243, -1, 327,
1534 137, -1, 327, 137, 340, 137, 327, 243, -1, 327,
1535 243, -1, 337, 137, 340, 243, -1, 337, 137, 340,
1536 137, 327, 243, -1, 337, 243, -1, 337, 137, 327,
1537 243, -1, 340, 243, -1, 340, 137, 327, 243, -1,
1538 242, -1, 362, -1, 246, -1, 122, 247, 122, -1,
1539 78, -1, 122, 244, 247, 122, -1, 356, -1, 356,
1540 142, 248, 356, -1, 249, -1, 248, 137, 249, -1,
1541 52, -1, 323, -1, -1, -1, -1, -1, 251, 252,
1542 255, 253, 254, 256, -1, 139, 322, 247, 140, -1,
1543 322, -1, 114, 154, 135, -1, 29, 154, 233, -1,
1544 -1, 28, 258, 271, 10, -1, 169, 257, -1, 259,
1545 354, 350, 193, -1, 259, 354, 350, 193, 265, -1,
1546 259, 354, 350, 196, 257, -1, 168, 192, -1, -1,
1547 222, 353, 350, 261, 193, -1, -1, 222, 88, 350,
1548 262, 192, -1, 222, 88, 351, -1, -1, 222, 353,
1549 263, 192, -1, -1, 222, 88, 264, 192, -1, 32,
1550 192, -1, 32, -1, 222, 136, 194, 358, -1, -1,
1551 134, 266, 268, 135, -1, -1, 26, 267, 271, 10,
1552 -1, -1, -1, 269, 270, 245, 154, -1, -1, -1,
1553 272, 273, 245, 154, -1, 17, 200, 234, 154, 275,
1554 -1, 237, -1, 274, -1, 8, 277, 278, 234, 154,
1555 276, -1, 362, -1, 189, -1, 202, -1, 362, -1,
1556 91, 177, -1, 362, -1, 9, 154, -1, 362, -1,
1557 309, -1, 306, -1, 308, -1, 282, -1, 64, -1,
1558 283, -1, 282, 283, -1, 103, 295, 113, -1, 104,
1559 296, 113, -1, 105, 297, 67, -1, 106, 143, 113,
1560 -1, 106, 287, 113, -1, -1, 287, 288, 143, -1,
1561 298, -1, 288, 298, -1, 108, 143, 113, -1, 108,
1562 290, 113, -1, -1, 290, 288, 143, -1, 107, 143,
1563 113, -1, 107, 293, 113, -1, 109, 143, 113, -1,
1564 109, 294, 113, -1, -1, 293, 63, 143, -1, -1,
1565 294, 63, 143, -1, -1, 295, 298, -1, -1, 296,
1566 298, -1, -1, 297, 298, -1, 63, -1, -1, 112,
1567 299, 305, -1, -1, -1, -1, -1, -1, 110, 300,
1568 301, 302, 303, 304, 154, 111, -1, 54, -1, 55,
1569 -1, 57, -1, 315, -1, 102, 307, -1, 180, -1,
1570 55, -1, 54, -1, 57, -1, 102, 296, 113, -1,
1571 310, -1, 130, 310, -1, 59, -1, 60, -1, 61,
1572 -1, 62, -1, 52, -1, 55, -1, 54, -1, 56,
1573 -1, 57, -1, 34, -1, 33, -1, 35, -1, 36,
1574 -1, 50, -1, 49, -1, 51, -1, 311, -1, 312,
1575 -1, 311, -1, 312, -1, 65, -1, 66, -1, -1,
1576 121, 317, 163, 360, -1, -1, 139, 322, 357, -1,
1577 -1, 319, 322, 360, -1, 332, 137, 334, 343, -1,
1578 332, 343, -1, 334, 343, -1, 342, -1, 137, 320,
1579 -1, -1, 327, 137, 338, 137, 340, 321, -1, 327,
1580 137, 338, 137, 340, 137, 327, 321, -1, 327, 137,
1581 338, 321, -1, 327, 137, 338, 137, 327, 321, -1,
1582 327, 137, 340, 321, -1, 327, 137, 340, 137, 327,
1583 321, -1, 327, 321, -1, 338, 137, 340, 321, -1,
1584 338, 137, 340, 137, 327, 321, -1, 338, 321, -1,
1585 338, 137, 327, 321, -1, 340, 321, -1, 340, 137,
1586 327, 321, -1, 320, -1, -1, 56, -1, 55, -1,
1587 54, -1, 57, -1, 323, -1, 52, -1, 324, -1,
1588 325, -1, 92, 241, 357, -1, 326, -1, 327, 137,
1589 326, -1, 58, -1, 328, 189, -1, 328, -1, 328,
1590 222, -1, 328, -1, 330, -1, 331, 137, 330, -1,
1591 329, -1, 332, 137, 329, -1, 70, -1, 99, -1,
1592 333, 52, -1, 333, -1, 325, 117, 189, -1, 325,
1593 117, 222, -1, 336, -1, 337, 137, 336, -1, 335,
1594 -1, 338, 137, 335, -1, 127, -1, 98, -1, 339,
1595 52, -1, 339, -1, 124, -1, 100, -1, 341, 52,
1596 -1, 137, 342, -1, 362, -1, 313, -1, -1, 139,
1597 345, 162, 357, -1, 362, -1, 347, 359, -1, 348,
1598 -1, 347, 137, 348, -1, 189, 91, 189, -1, 58,
1599 189, -1, 103, 295, 115, 189, -1, 99, 189, -1,
1600 52, -1, 56, -1, 53, -1, 52, -1, 56, -1,
1601 53, -1, 185, -1, 52, -1, 53, -1, 185, -1,
1602 144, -1, 88, -1, 144, -1, 87, -1, 353, -1,
1603 88, -1, -1, 361, -1, -1, 145, -1, 356, 140,
1604 -1, 356, 141, -1, -1, 145, -1, 137, -1, 142,
1605 -1, 145, -1, 360, -1, 361, 142, -1, -1
1611 0, 994, 994, 994, 1025, 1035, 1044, 1052, 1060, 1066,
1612 1068, 1067, 1088, 1121, 1131, 1140, 1148, 1156, 1162, 1167,
1613 1166, 1187, 1187, 1195, 1203, 1214, 1225, 1233, 1242, 1251,
1614 1264, 1277, 1286, 1298, 1299, 1309, 1314, 1323, 1326, 1331,
1615 1336, 1357, 1362, 1367, 1372, 1377, 1384, 1392, 1401, 1404,
1616 1405, 1413, 1421, 1429, 1437, 1440, 1452, 1453, 1456, 1457,
1617 1469, 1468, 1484, 1494, 1503, 1516, 1525, 1537, 1546, 1558,
1618 1567, 1576, 1584, 1592, 1602, 1603, 1613, 1614, 1624, 1632,
1619 1640, 1648, 1657, 1665, 1674, 1682, 1691, 1699, 1710, 1711,
1620 1721, 1729, 1739, 1747, 1757, 1761, 1765, 1773, 1781, 1789,
1621 1797, 1801, 1805, 1812, 1821, 1830, 1838, 1846, 1854, 1862,
1622 1866, 1870, 1877, 1886, 1889, 1897, 1905, 1915, 1916, 1917,
1623 1918, 1923, 1934, 1935, 1938, 1946, 1949, 1957, 1957, 1967,
1624 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977,
1625 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987,
1626 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999,
1627 1999, 1999, 2000, 2000, 2001, 2001, 2001, 2002, 2002, 2002,
1628 2002, 2003, 2003, 2003, 2003, 2004, 2004, 2004, 2005, 2005,
1629 2005, 2005, 2006, 2006, 2006, 2006, 2007, 2007, 2007, 2007,
1630 2008, 2008, 2008, 2008, 2009, 2009, 2009, 2009, 2010, 2010,
1631 2013, 2017, 2021, 2047, 2052, 2057, 2062, 2067, 2072, 2077,
1632 2087, 2097, 2105, 2113, 2121, 2129, 2137, 2145, 2154, 2162,
1633 2170, 2178, 2186, 2194, 2202, 2210, 2218, 2226, 2234, 2242,
1634 2250, 2258, 2272, 2280, 2288, 2296, 2304, 2312, 2320, 2328,
1635 2328, 2337, 2347, 2353, 2365, 2366, 2370, 2378, 2388, 2396,
1636 2407, 2417, 2418, 2421, 2422, 2423, 2427, 2435, 2445, 2454,
1637 2462, 2472, 2481, 2490, 2490, 2502, 2512, 2516, 2522, 2530,
1638 2538, 2552, 2568, 2569, 2572, 2586, 2601, 2611, 2612, 2613,
1639 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2630, 2629,
1640 2657, 2657, 2666, 2670, 2665, 2679, 2687, 2695, 2703, 2716,
1641 2724, 2732, 2740, 2748, 2756, 2756, 2765, 2773, 2781, 2791,
1642 2792, 2802, 2806, 2818, 2830, 2830, 2830, 2841, 2841, 2841,
1643 2852, 2863, 2872, 2874, 2871, 2920, 2919, 2941, 2940, 2962,
1644 2961, 2983, 2988, 2982, 3008, 3009, 3008, 3033, 3041, 3049,
1645 3057, 3067, 3079, 3085, 3091, 3097, 3103, 3109, 3115, 3121,
1646 3127, 3133, 3143, 3149, 3154, 3155, 3162, 3167, 3170, 3171,
1647 3184, 3185, 3195, 3196, 3199, 3207, 3217, 3225, 3235, 3243,
1648 3252, 3261, 3269, 3277, 3286, 3298, 3306, 3317, 3321, 3325,
1649 3329, 3335, 3340, 3345, 3349, 3353, 3357, 3361, 3365, 3373,
1650 3377, 3381, 3385, 3389, 3393, 3397, 3401, 3405, 3411, 3412,
1651 3418, 3428, 3437, 3449, 3453, 3463, 3470, 3479, 3487, 3493,
1652 3496, 3501, 3504, 3493, 3523, 3531, 3537, 3542, 3549, 3548,
1653 3563, 3579, 3588, 3600, 3614, 3624, 3623, 3640, 3639, 3655,
1654 3664, 3663, 3680, 3679, 3696, 3704, 3712, 3727, 3726, 3740,
1655 3739, 3754, 3755, 3754, 3764, 3765, 3764, 3774, 3786, 3787,
1656 3790, 3809, 3812, 3820, 3828, 3831, 3835, 3838, 3846, 3849,
1657 3850, 3858, 3861, 3878, 3879, 3880, 3890, 3896, 3902, 3908,
1658 3917, 3928, 3935, 3945, 3953, 3963, 3972, 3983, 3990, 4008,
1659 4017, 4027, 4036, 4047, 4054, 4065, 4072, 4087, 4094, 4105,
1660 4112, 4123, 4130, 4171, 4173, 4172, 4188, 4194, 4198, 4202,
1661 4206, 4187, 4228, 4236, 4244, 4252, 4255, 4266, 4267, 4268,
1662 4269, 4272, 4283, 4284, 4295, 4296, 4297, 4298, 4301, 4302,
1663 4303, 4304, 4305, 4308, 4309, 4310, 4311, 4312, 4313, 4314,
1664 4317, 4330, 4340, 4348, 4358, 4359, 4363, 4362, 4372, 4381,
1665 4391, 4391, 4405, 4409, 4413, 4417, 4423, 4428, 4433, 4437,
1666 4441, 4445, 4449, 4453, 4457, 4461, 4465, 4469, 4473, 4477,
1667 4481, 4485, 4490, 4496, 4506, 4516, 4526, 4538, 4539, 4546,
1668 4555, 4564, 4583, 4590, 4604, 4613, 4623, 4635, 4644, 4655,
1669 4663, 4674, 4682, 4692, 4693, 4696, 4701, 4708, 4720, 4732,
1670 4740, 4756, 4764, 4780, 4781, 4784, 4797, 4808, 4809, 4812,
1671 4829, 4833, 4843, 4853, 4853, 4882, 4883, 4893, 4900, 4924,
1672 4936, 4944, 4952, 4966, 4967, 4968, 4971, 4972, 4973, 4974,
1673 4977, 4978, 4979, 4982, 4987, 4994, 5002, 5012, 5013, 5023,
1674 5024, 5027, 5028, 5031, 5034, 5037, 5038, 5039, 5042, 5043,
1679 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 1684 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1685 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1686 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1687 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1688 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1689 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1690 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1691 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1692 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1693 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1694 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1695 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1696 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1697 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1698 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tRATIONAL",
1699 "tIMAGINARY",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
"tBACK_REF",
1700 "tREGEXP_END",
"\"unary+\"",
"\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
1701 "\"===\"",
"\"!=\"",
"\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
1702 "\"!~\"",
"\"..\"",
"\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
1703 "\"&.\"",
"\"::\"",
"\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
1704 "\"( arg\"",
"\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
1705 "\"**arg\"",
"\"&\"",
"\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
1706 "tREGEXP_BEG",
"tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
1707 "tQSYMBOLS_BEG",
"tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
1708 "tSTRING_END",
"tLAMBEG",
"tLABEL_END",
"tLOWEST",
"'='",
"'?'",
"':'",
1709 "'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
1710 "tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"','",
1711 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'.'",
"'\\n'",
"$accept",
1712 "program",
"$@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"$@2",
1713 "bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
"$@3",
"stmt",
"$@4",
1714 "command_asgn",
"command_rhs",
"expr",
"expr_value",
"command_call",
1715 "block_command",
"cmd_brace_block",
"@5",
"fcall",
"command",
"mlhs",
1716 "mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
"mlhs_post",
1717 "mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
"fitem",
1718 "undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
"arg_value",
1719 "aref_args",
"arg_rhs",
"paren_args",
"opt_paren_args",
"opt_call_args",
1720 "call_args",
"command_args",
"@8",
"block_arg",
"opt_block_arg",
"args",
1721 "mrhs_arg",
"mrhs",
"primary",
"@9",
"$@10",
"$@11",
"$@12",
"$@13",
1722 "$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"$@19",
"@20",
"@21",
"@22",
1723 "@23",
"@24",
"@25",
"@26",
"primary_value",
"k_begin",
"k_if",
1724 "k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
"k_class",
1725 "k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
"opt_else",
1726 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_args_tail",
1727 "opt_block_args_tail",
"block_param",
"opt_block_param",
1728 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@27",
1729 "@28",
"@29",
"@30",
"f_larglist",
"lambda_body",
"do_block",
"@31",
1730 "block_call",
"method_call",
"@32",
"@33",
"@34",
"@35",
"brace_block",
1731 "@36",
"@37",
"brace_body",
"@38",
"@39",
"do_body",
"@40",
"@41",
1732 "case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
"opt_ensure",
1733 "literal",
"strings",
"string",
"string1",
"xstring",
"regexp",
"words",
1734 "word_list",
"word",
"symbols",
"symbol_list",
"qwords",
"qsymbols",
1735 "qword_list",
"qsym_list",
"string_contents",
"xstring_contents",
1736 "regexp_contents",
"string_content",
"@42",
"@43",
"@44",
"@45",
"@46",
1737 "@47",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1738 "simple_numeric",
"user_variable",
"keyword_variable",
"var_ref",
1739 "var_lhs",
"backref",
"superclass",
"$@48",
"f_arglist",
"@49",
1740 "args_tail",
"opt_args_tail",
"f_args",
"f_bad_arg",
"f_norm_arg",
1741 "f_arg_asgn",
"f_arg_item",
"f_arg",
"f_label",
"f_kw",
"f_block_kw",
1742 "f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
"f_opt",
1743 "f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1744 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1745 "singleton",
"$@50",
"assoc_list",
"assocs",
"assoc",
"operation",
1746 "operation2",
"operation3",
"dot_or_colon",
"call_op",
"call_op2",
1747 "opt_terms",
"opt_nl",
"rparen",
"rbracket",
"trailer",
"term",
"terms",
1755 static const yytype_uint16 yytoknum[] =
1757 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1758 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1759 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1760 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1761 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1762 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1763 315, 316, 317, 318, 319, 320, 321, 322, 130, 131,
1764 132, 134, 139, 140, 141, 138, 137, 148, 149, 142,
1765 143, 128, 129, 144, 145, 135, 136, 150, 323, 324,
1766 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1767 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1768 345, 346, 347, 348, 349, 350, 351, 61, 63, 58,
1769 62, 60, 124, 94, 38, 43, 45, 42, 47, 37,
1770 352, 33, 126, 353, 123, 125, 91, 44, 96, 40,
1771 41, 93, 59, 32, 46, 10
1776 static const yytype_uint16
yyr1[] =
1778 0, 146, 148, 147, 149, 150, 150, 150, 150, 151,
1779 152, 151, 153, 154, 155, 155, 155, 155, 156, 157,
1780 156, 159, 158, 158, 158, 158, 158, 158, 158, 158,
1781 158, 158, 158, 158, 158, 158, 158, 158, 160, 160,
1782 160, 160, 160, 160, 160, 160, 161, 161, 161, 162,
1783 162, 162, 162, 162, 162, 163, 164, 164, 165, 165,
1784 167, 166, 168, 169, 169, 169, 169, 169, 169, 169,
1785 169, 169, 169, 169, 170, 170, 171, 171, 172, 172,
1786 172, 172, 172, 172, 172, 172, 172, 172, 173, 173,
1787 174, 174, 175, 175, 176, 176, 176, 176, 176, 176,
1788 176, 176, 176, 177, 177, 177, 177, 177, 177, 177,
1789 177, 177, 178, 178, 179, 179, 179, 180, 180, 180,
1790 180, 180, 181, 181, 182, 182, 183, 184, 183, 185,
1791 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1792 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1793 185, 185, 185, 185, 185, 185, 185, 185, 185, 186,
1794 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1795 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1796 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1797 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1798 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1799 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1800 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1801 187, 187, 187, 187, 187, 187, 187, 187, 187, 188,
1802 187, 187, 187, 189, 190, 190, 190, 190, 191, 191,
1803 192, 193, 193, 194, 194, 194, 194, 194, 195, 195,
1804 195, 195, 195, 197, 196, 198, 199, 199, 200, 200,
1805 200, 200, 201, 201, 202, 202, 202, 203, 203, 203,
1806 203, 203, 203, 203, 203, 203, 203, 203, 204, 203,
1807 205, 203, 206, 207, 203, 203, 203, 203, 203, 203,
1808 203, 203, 203, 203, 208, 203, 203, 203, 203, 203,
1809 203, 203, 203, 203, 209, 210, 203, 211, 212, 203,
1810 203, 203, 213, 214, 203, 215, 203, 216, 203, 217,
1811 203, 218, 219, 203, 220, 221, 203, 203, 203, 203,
1812 203, 222, 223, 224, 225, 226, 227, 228, 229, 230,
1813 231, 232, 233, 234, 234, 234, 235, 235, 236, 236,
1814 237, 237, 238, 238, 239, 239, 240, 240, 241, 241,
1815 241, 241, 241, 241, 241, 241, 241, 242, 242, 242,
1816 242, 243, 243, 244, 244, 244, 244, 244, 244, 244,
1817 244, 244, 244, 244, 244, 244, 244, 244, 245, 245,
1818 246, 246, 246, 247, 247, 248, 248, 249, 249, 251,
1819 252, 253, 254, 250, 255, 255, 256, 256, 258, 257,
1820 259, 259, 259, 259, 260, 261, 260, 262, 260, 260,
1821 263, 260, 264, 260, 260, 260, 260, 266, 265, 267,
1822 265, 269, 270, 268, 272, 273, 271, 274, 275, 275,
1823 276, 276, 277, 277, 277, 278, 278, 279, 279, 280,
1824 280, 280, 281, 282, 282, 282, 283, 284, 285, 286,
1825 286, 287, 287, 288, 288, 289, 289, 290, 290, 291,
1826 291, 292, 292, 293, 293, 294, 294, 295, 295, 296,
1827 296, 297, 297, 298, 299, 298, 300, 301, 302, 303,
1828 304, 298, 305, 305, 305, 305, 306, 307, 307, 307,
1829 307, 308, 309, 309, 310, 310, 310, 310, 311, 311,
1830 311, 311, 311, 312, 312, 312, 312, 312, 312, 312,
1831 313, 313, 314, 314, 315, 315, 317, 316, 316, 318,
1832 319, 318, 320, 320, 320, 320, 321, 321, 322, 322,
1833 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
1834 322, 322, 322, 323, 323, 323, 323, 324, 324, 325,
1835 326, 326, 327, 327, 328, 329, 329, 330, 330, 331,
1836 331, 332, 332, 333, 333, 334, 334, 335, 336, 337,
1837 337, 338, 338, 339, 339, 340, 340, 341, 341, 342,
1838 343, 343, 344, 345, 344, 346, 346, 347, 347, 348,
1839 348, 348, 348, 349, 349, 349, 350, 350, 350, 350,
1840 351, 351, 351, 352, 352, 353, 353, 354, 354, 355,
1841 355, 356, 356, 357, 358, 359, 359, 359, 360, 360,
1848 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1849 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1850 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1851 3, 3, 4, 1, 3, 3, 3, 1, 3, 3,
1852 6, 5, 5, 5, 5, 3, 1, 3, 1, 1,
1853 3, 3, 3, 2, 1, 1, 1, 1, 1, 4,
1854 0, 4, 1, 2, 3, 4, 5, 4, 5, 2,
1855 2, 2, 2, 2, 1, 3, 1, 3, 1, 2,
1856 3, 5, 2, 4, 2, 4, 1, 3, 1, 3,
1857 2, 3, 1, 3, 1, 1, 4, 3, 3, 3,
1858 3, 2, 1, 1, 1, 4, 3, 3, 3, 3,
1859 2, 1, 1, 1, 2, 1, 3, 1, 1, 1,
1860 1, 1, 1, 1, 1, 1, 1, 0, 4, 1,
1861 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1862 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1863 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1864 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1865 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1866 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1867 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1868 3, 3, 6, 5, 5, 5, 5, 4, 3, 3,
1869 3, 3, 3, 3, 3, 3, 3, 4, 2, 2,
1870 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1871 3, 3, 3, 2, 2, 3, 3, 3, 3, 0,
1872 4, 6, 1, 1, 1, 2, 4, 2, 1, 3,
1873 3, 1, 1, 1, 1, 2, 4, 2, 1, 2,
1874 2, 4, 1, 0, 2, 2, 2, 1, 1, 2,
1875 3, 4, 1, 1, 3, 4, 2, 1, 1, 1,
1876 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
1877 0, 3, 0, 0, 5, 3, 3, 2, 3, 3,
1878 1, 4, 3, 1, 0, 6, 4, 3, 2, 1,
1879 2, 2, 6, 6, 0, 0, 7, 0, 0, 7,
1880 5, 4, 0, 0, 9, 0, 6, 0, 7, 0,
1881 5, 0, 0, 7, 0, 0, 9, 1, 1, 1,
1882 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1883 1, 1, 1, 1, 1, 2, 1, 1, 1, 5,
1884 1, 2, 1, 1, 1, 3, 1, 3, 1, 4,
1885 6, 3, 5, 2, 4, 1, 3, 4, 2, 2,
1886 1, 2, 0, 6, 8, 4, 6, 4, 2, 6,
1887 2, 4, 6, 2, 4, 2, 4, 1, 1, 1,
1888 3, 1, 4, 1, 4, 1, 3, 1, 1, 0,
1889 0, 0, 0, 6, 4, 1, 3, 3, 0, 4,
1890 2, 4, 5, 5, 2, 0, 5, 0, 5, 3,
1891 0, 4, 0, 4, 2, 1, 4, 0, 4, 0,
1892 4, 0, 0, 4, 0, 0, 4, 5, 1, 1,
1893 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1894 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1895 3, 0, 3, 1, 2, 3, 3, 0, 3, 3,
1896 3, 3, 3, 0, 3, 0, 3, 0, 2, 0,
1897 2, 0, 2, 1, 0, 3, 0, 0, 0, 0,
1898 0, 8, 1, 1, 1, 1, 2, 1, 1, 1,
1899 1, 3, 1, 2, 1, 1, 1, 1, 1, 1,
1900 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1901 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1902 0, 3, 4, 2, 2, 1, 2, 0, 6, 8,
1903 4, 6, 4, 6, 2, 4, 6, 2, 4, 2,
1904 4, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1905 1, 3, 1, 3, 1, 2, 1, 2, 1, 1,
1906 3, 1, 3, 1, 1, 2, 1, 3, 3, 1,
1907 3, 1, 3, 1, 1, 2, 1, 1, 1, 2,
1908 2, 1, 1, 0, 4, 1, 2, 1, 3, 3,
1909 2, 4, 2, 1, 1, 1, 1, 1, 1, 1,
1910 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1911 1, 0, 1, 2, 2, 0, 1, 1, 1, 1,
1920 2, 0, 0, 1, 0, 349, 350, 351, 0, 342,
1921 343, 344, 347, 345, 346, 348, 337, 338, 339, 340,
1922 300, 263, 263, 524, 523, 525, 526, 631, 0, 631,
1923 10, 0, 528, 527, 529, 613, 615, 520, 519, 614,
1924 522, 514, 515, 516, 517, 463, 534, 535, 0, 0,
1925 0, 0, 292, 642, 642, 86, 409, 489, 487, 489,
1926 491, 471, 483, 477, 485, 0, 0, 0, 3, 629,
1927 6, 9, 33, 37, 49, 57, 263, 56, 0, 74,
1928 0, 78, 88, 0, 54, 242, 0, 288, 0, 0,
1929 314, 317, 629, 0, 0, 0, 0, 58, 309, 277,
1930 278, 462, 464, 279, 280, 281, 283, 282, 284, 460,
1931 461, 459, 512, 530, 531, 285, 0, 286, 62, 5,
1932 8, 169, 180, 170, 193, 166, 186, 176, 175, 196,
1933 197, 191, 174, 173, 168, 194, 198, 199, 178, 167,
1934 181, 185, 187, 179, 172, 188, 195, 190, 189, 182,
1935 192, 177, 165, 184, 183, 164, 171, 162, 163, 159,
1936 160, 161, 117, 119, 118, 154, 155, 150, 132, 133,
1937 134, 141, 138, 140, 135, 136, 156, 157, 142, 143,
1938 147, 151, 137, 139, 129, 130, 131, 144, 145, 146,
1939 148, 149, 152, 153, 158, 122, 124, 126, 26, 120,
1940 121, 123, 125, 0, 0, 0, 0, 0, 0, 0,
1941 487, 0, 258, 0, 243, 268, 72, 262, 642, 0,
1942 530, 531, 0, 286, 642, 607, 73, 71, 631, 70,
1943 0, 642, 434, 69, 631, 632, 0, 0, 21, 239,
1944 0, 0, 337, 338, 300, 303, 435, 0, 218, 0,
1945 219, 297, 0, 19, 0, 0, 629, 15, 18, 631,
1946 76, 14, 631, 0, 0, 635, 635, 244, 0, 0,
1947 635, 605, 631, 0, 0, 0, 84, 341, 0, 94,
1948 95, 102, 311, 410, 509, 508, 510, 507, 0, 506,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 513, 53, 233, 234, 638, 639, 4, 640, 630,
1951 0, 0, 0, 0, 0, 0, 0, 439, 437, 424,
1952 63, 308, 418, 420, 0, 90, 0, 82, 79, 0,
1953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1955 0, 0, 0, 0, 0, 0, 626, 432, 642, 625,
1956 430, 0, 55, 0, 0, 0, 0, 629, 0, 630,
1957 0, 363, 362, 0, 0, 530, 531, 286, 112, 113,
1958 0, 0, 115, 538, 0, 530, 531, 286, 329, 189,
1959 182, 192, 177, 159, 160, 161, 117, 118, 603, 331,
1960 602, 0, 628, 627, 0, 310, 465, 0, 0, 127,
1961 610, 297, 269, 612, 265, 0, 0, 0, 0, 259,
1962 267, 432, 642, 430, 0, 0, 0, 260, 631, 0,
1963 302, 264, 631, 254, 642, 642, 253, 631, 307, 52,
1964 23, 25, 24, 0, 304, 0, 0, 0, 432, 430,
1965 0, 17, 0, 631, 295, 13, 630, 75, 291, 293,
1966 298, 637, 636, 245, 637, 247, 299, 606, 0, 101,
1967 513, 92, 87, 0, 432, 642, 430, 562, 493, 496,
1968 494, 511, 490, 466, 488, 467, 468, 492, 469, 470,
1969 0, 473, 479, 0, 480, 475, 476, 0, 481, 0,
1970 482, 0, 641, 7, 27, 28, 29, 30, 31, 50,
1971 51, 444, 441, 60, 64, 444, 0, 34, 273, 0,
1972 36, 272, 631, 0, 80, 91, 48, 38, 46, 0,
1973 248, 268, 200, 35, 0, 286, 216, 223, 228, 229,
1974 230, 225, 227, 237, 238, 231, 232, 209, 210, 235,
1975 236, 631, 224, 226, 220, 221, 222, 211, 212, 213,
1976 214, 215, 616, 618, 617, 619, 0, 263, 429, 631,
1977 616, 618, 617, 619, 0, 263, 0, 642, 354, 0,
1978 353, 0, 0, 0, 0, 0, 0, 297, 432, 642,
1979 430, 322, 327, 112, 113, 114, 536, 325, 432, 642,
1980 430, 0, 0, 332, 624, 623, 334, 616, 617, 263,
1981 39, 248, 201, 45, 208, 0, 0, 609, 0, 270,
1982 266, 642, 616, 617, 631, 616, 617, 608, 301, 633,
1983 250, 255, 257, 306, 22, 0, 240, 0, 32, 427,
1984 425, 207, 0, 77, 16, 631, 635, 0, 85, 620,
1985 100, 631, 616, 617, 568, 565, 564, 563, 566, 574,
1986 583, 0, 594, 584, 598, 597, 593, 562, 411, 561,
1987 415, 567, 569, 570, 572, 547, 576, 581, 642, 586,
1988 642, 591, 547, 596, 547, 0, 545, 497, 0, 472,
1989 474, 484, 478, 486, 217, 0, 445, 0, 442, 441,
1990 0, 276, 0, 89, 83, 0, 0, 0, 0, 432,
1991 642, 430, 0, 0, 0, 433, 67, 0, 0, 436,
1992 0, 0, 431, 65, 642, 352, 289, 642, 642, 451,
1993 642, 355, 642, 357, 315, 356, 318, 0, 0, 321,
1994 620, 296, 631, 616, 617, 0, 0, 0, 0, 112,
1995 113, 116, 631, 0, 631, 540, 0, 252, 421, 59,
1996 251, 128, 611, 271, 261, 0, 0, 436, 0, 0,
1997 642, 631, 11, 0, 294, 246, 93, 436, 0, 375,
1998 366, 368, 631, 364, 631, 412, 0, 0, 554, 575,
1999 0, 543, 601, 585, 0, 544, 0, 557, 595, 0,
2000 559, 599, 498, 502, 503, 504, 495, 505, 440, 642,
2001 438, 642, 0, 419, 0, 274, 81, 47, 249, 616,
2002 617, 631, 616, 617, 0, 44, 205, 43, 206, 68,
2003 428, 634, 0, 41, 203, 42, 204, 66, 426, 452,
2004 453, 642, 454, 0, 642, 360, 0, 0, 358, 0,
2005 0, 0, 320, 0, 0, 436, 0, 0, 0, 0,
2006 436, 330, 604, 562, 0, 562, 335, 422, 423, 0,
2007 256, 305, 20, 631, 0, 373, 0, 571, 0, 403,
2008 0, 587, 546, 573, 547, 547, 582, 642, 600, 547,
2009 592, 547, 570, 547, 499, 401, 631, 0, 399, 398,
2010 0, 61, 275, 436, 241, 40, 202, 0, 0, 456,
2011 361, 0, 12, 458, 0, 312, 313, 0, 0, 270,
2012 642, 323, 0, 537, 326, 631, 0, 0, 540, 365,
2013 376, 0, 371, 367, 414, 0, 0, 0, 413, 0,
2014 550, 0, 552, 542, 0, 558, 0, 555, 560, 500,
2015 397, 631, 0, 570, 382, 578, 579, 642, 642, 589,
2016 382, 382, 380, 446, 443, 0, 455, 0, 530, 531,
2017 286, 0, 457, 0, 316, 319, 448, 449, 447, 0,
2018 328, 539, 333, 541, 0, 0, 374, 0, 369, 407,
2019 631, 405, 408, 0, 0, 547, 547, 547, 547, 0,
2020 0, 400, 0, 388, 390, 0, 577, 0, 378, 379,
2021 0, 393, 0, 395, 297, 432, 642, 430, 642, 642,
2022 0, 0, 372, 0, 0, 404, 417, 416, 551, 0,
2023 548, 553, 556, 0, 402, 588, 381, 382, 382, 297,
2024 432, 580, 642, 382, 590, 382, 382, 620, 296, 631,
2025 616, 617, 450, 359, 324, 336, 370, 406, 547, 501,
2026 0, 385, 0, 387, 620, 296, 377, 0, 394, 0,
2027 391, 396, 436, 549, 382, 382, 382, 382, 386, 0,
2028 383, 389, 392, 382, 384
2034 -1, 1, 2, 68, 69, 70, 240, 576, 577, 256,
2035 257, 452, 258, 443, 72, 527, 73, 363, 74, 75,
2036 514, 699, 247, 77, 78, 259, 79, 80, 81, 472,
2037 82, 213, 382, 383, 195, 196, 197, 198, 615, 565,
2038 200, 84, 445, 215, 264, 532, 232, 758, 432, 433,
2039 229, 230, 217, 419, 434, 520, 521, 85, 361, 262,
2040 263, 645, 635, 365, 850, 366, 851, 745, 979, 748,
2041 746, 601, 603, 755, 756, 928, 249, 87, 88, 89,
2042 90, 91, 92, 93, 94, 95, 96, 726, 579, 734,
2043 847, 848, 374, 780, 781, 782, 1036, 1004, 951, 897,
2044 898, 878, 990, 991, 282, 283, 477, 785, 880, 668,
2045 938, 323, 515, 97, 98, 724, 717, 574, 566, 321,
2046 512, 511, 697, 698, 811, 695, 696, 809, 586, 978,
2047 728, 841, 908, 912, 99, 100, 101, 102, 103, 104,
2048 105, 294, 490, 106, 298, 107, 108, 296, 300, 290,
2049 288, 292, 482, 688, 687, 802, 894, 949, 999, 806,
2050 109, 289, 110, 111, 112, 220, 221, 115, 222, 223,
2051 597, 747, 864, 865, 882, 788, 670, 671, 672, 892,
2052 674, 675, 676, 677, 956, 957, 678, 679, 680, 681,
2053 959, 960, 682, 683, 684, 685, 686, 791, 401, 602,
2054 269, 435, 225, 118, 639, 568, 606, 600, 404, 307,
2055 429, 430, 719, 463, 580, 369, 261
2060 #define YYPACT_NINF -876 2063 -876, 96, 3133, -876, 8152, -876, -876, -876, 7646, -876,
2064 -876, -876, -876, -876, -876, -876, 8269, 8269, -876, -876,
2065 8269, 4485, 4071, -876, -876, -876, -876, 235, 7510, -1,
2066 -876, 81, -876, -876, -876, 3381, 4209, -876, -876, 3519,
2067 -876, -876, -876, -876, -876, -876, -876, -876, 9673, 9673,
2068 172, 5845, -3, 8620, 8971, 7912, -876, 7374, -876, -876,
2069 -876, 234, 278, 284, 295, 1381, 9790, 9673, -876, 333,
2070 -876, 1276, -876, 125, -876, -876, 141, 406, 329, -876,
2071 318, 10024, -876, 363, 2119, 45, 338, -876, 9907, 9907,
2072 -876, -876, 6746, 10137, 10250, 10363, 7237, 12, 67, -876,
2073 -876, 380, -876, -876, -876, -876, -876, -876, -876, -876,
2074 -876, -876, -876, 225, 574, -876, 395, 598, -876, -876,
2075 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2076 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2077 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2078 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2079 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2080 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2081 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2082 -876, -876, -876, -876, -876, -876, -876, -876, 387, -876,
2083 -876, -876, -876, 388, 9673, 473, 5977, 9673, 9673, 9673,
2084 -876, 9673, -876, 454, 2119, 451, -876, -876, 442, 421,
2085 51, 210, 503, 268, 472, -876, -876, -876, 6629, -876,
2086 8269, 8269, -876, -876, 6863, -876, 9907, 523, -876, 488,
2087 507, 6109, -876, -876, -876, 524, 533, 141, -876, 606,
2088 572, 629, 8386, -876, 5845, 504, 333, -876, 1276, -1,
2089 550, -876, -1, 8386, 534, -11, 76, -876, 451, 548,
2090 76, -876, -1, 621, 1381, 10476, 549, -876, 702, 883,
2091 974, 976, -876, -876, -876, -876, -876, -876, 505, -876,
2092 674, 712, 492, 582, 1109, 590, 40, 593, 1152, 601,
2093 47, 626, -876, -876, -876, -876, -876, -876, -876, 6980,
2094 9907, 9907, 9907, 9907, 8386, 9907, 9907, -876, -876, -876,
2095 624, -876, -876, -876, 9088, -876, 5845, 8032, 581, 9088,
2096 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673,
2097 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673,
2098 9673, 9673, 9673, 9673, 9673, 9673, -876, 1985, 8269, -876,
2099 2365, 5182, 125, 116, 116, 9907, 9907, 333, 726, 587,
2100 698, -876, -876, 1000, 733, 66, 129, 136, 52, 730,
2101 9907, 583, -876, 634, 1012, -876, -876, -876, -876, 25,
2102 27, 29, 30, 39, 88, 90, 216, 291, -876, -876,
2103 -876, 299, -876, -876, 2639, -876, -876, 9790, 9790, -876,
2104 -876, 322, -876, -876, -876, 425, 9673, 9673, 8503, -876,
2105 -876, 10765, 8269, 10846, 9673, 9673, 8737, -876, -1, 625,
2106 -876, -876, -1, -876, 635, 637, -876, 49, -876, -876,
2107 -876, -876, -876, 7646, -876, 9673, 6252, 641, 10765, 10846,
2108 9673, 1276, 649, -1, -876, -876, 7097, 648, -876, 1276,
2109 -876, 8854, -876, -876, 8971, -876, -876, -876, 488, 1014,
2110 -876, -876, 654, 10476, 10927, 8269, 11008, 1156, -876, -876,
2111 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2112 287, -876, -876, 657, -876, -876, -876, 390, -876, 663,
2113 -876, 9673, -876, -876, -876, -876, -876, -876, -876, -876,
2114 -876, -876, -876, -876, -876, -876, 9673, -876, 660, 676,
2115 -876, -876, -1, 10476, 679, -876, -876, -876, 767, 719,
2116 1264, -876, -876, -876, 1017, 323, 572, 2443, 2443, 2443,
2117 2443, 969, 969, 3497, 3359, 2443, 2443, 3221, 3221, 818,
2118 818, 2710, 969, 969, 834, 834, 765, 542, 542, 572,
2119 572, 572, 4623, 3657, 4899, 3795, 533, 690, -876, -1,
2120 643, -876, 740, -876, 533, 4347, 830, 833, -876, 5325,
2121 831, 5611, 256, 256, 726, 9205, 830, 147, 11089, 8269,
2122 11170, -876, 125, -876, 1014, -876, -876, -876, 11251, 8269,
2123 2639, 5182, 9907, -876, -876, -876, -876, -876, -876, 1288,
2124 -876, 1391, -876, -876, -876, 7646, 9673, -876, 9673, 451,
2125 -876, 472, 3243, 3933, -1, 339, 382, -876, -876, -876,
2126 -876, 8503, 8737, -876, -876, 9907, 2119, 708, -876, -876,
2127 -876, -876, 6252, 274, -876, -1, 76, 10476, 654, 424,
2128 306, -1, 411, 461, -876, -876, -876, -876, -876, -876,
2129 -876, 1214, -876, -876, -876, -876, -876, 1584, -876, -876,
2130 -876, -876, -876, 731, -876, 710, 9673, -876, 717, 803,
2131 722, -876, 724, 810, 728, 815, -876, -876, 1224, -876,
2132 -876, -876, -876, -876, 572, 860, -876, 738, -876, -876,
2133 865, 739, 9322, -876, 654, 10476, 8386, 9790, 9673, 11332,
2134 8269, 11413, 763, 9790, 9790, -876, 624, 533, 754, 741,
2135 9790, 9790, -876, 624, 533, -876, -876, 9439, 882, -876,
2136 571, -876, 882, -876, -876, -876, -876, 830, 82, -876,
2137 72, 103, -1, 155, 162, 9907, 333, 9907, 5182, 898,
2138 306, -876, -1, 830, 49, 762, 7782, -876, 67, 406,
2139 -876, -876, -876, -876, -876, 9673, 9673, 404, 9673, 9673,
2140 773, 49, -876, 780, -876, -876, -876, 528, 1214, 576,
2141 -876, 779, -1, -876, -1, -876, 9673, 1584, -876, -876,
2142 699, -876, -876, -876, 377, -876, 1584, -876, -876, 1175,
2143 -876, -876, -876, -876, -876, -876, -876, -876, -876, 33,
2144 -876, 33, 782, -876, 9673, 785, 654, -876, 2119, 4761,
2145 5037, -1, 432, 563, 9673, -876, -876, -876, -876, -876,
2146 -876, -876, 9790, -876, -876, -876, -876, -876, -876, 660,
2147 -876, 837, -876, 5728, 921, -876, 9907, 830, -876, 830,
2148 6395, 6395, -876, 9556, 5468, 165, 256, 5182, 333, 830,
2149 -876, -876, -876, 1584, 5182, 1584, -876, -876, -876, 9673,
2150 8737, -876, -876, -1, 1230, 799, 1310, -876, 801, 806,
2151 65, -876, -876, -876, 812, 813, -876, 722, -876, 816,
2152 -876, 829, -876, 816, -876, -876, 1489, 6395, -876, -876,
2153 6109, -876, 832, 662, 2119, -876, -876, 10589, 116, -876,
2154 -876, 6395, -876, -876, 116, -876, -876, 830, 830, -876,
2155 344, -876, 830, -876, -876, -1, 830, 333, 762, -876,
2156 841, 1230, 595, -876, -876, 1382, 6395, 6109, -876, 1584,
2157 -876, 1175, -876, -876, 1175, -876, 1175, -876, -876, -876,
2158 -876, -1, 845, 835, 842, 10702, -876, 843, 722, -876,
2159 846, 847, -876, -876, -876, 931, -876, 1027, 152, 171,
2160 184, 5182, -876, 5325, -876, -876, -876, -876, -876, 6395,
2161 -876, -876, -876, -876, 5182, 1230, 841, 1230, 851, -876,
2162 185, -876, -876, 830, 854, 816, 868, 816, 816, 6512,
2163 869, -876, 10702, 1584, -876, 951, 1051, 699, -876, -876,
2164 1584, -876, 1175, -876, 199, 11494, 8269, 11575, 833, 571,
2165 830, 830, 841, 1230, 1382, -876, -876, -876, -876, 1175,
2166 -876, -876, -876, 902, -876, 1051, -876, 878, 884, -876,
2167 11656, -876, 722, 888, -876, 892, 888, 94, 106, -1,
2168 265, 321, -876, -876, -876, -876, 841, -876, 816, -876,
2169 1584, -876, 1175, -876, 881, 894, -876, 1175, -876, 1175,
2170 -876, -876, 342, -876, 888, 901, 888, 888, -876, 1175,
2171 -876, -876, -876, 888, -876
2177 -876, -876, -876, -382, -876, 15, -876, -543, 2, -876,
2178 575, -876, 43, -876, -209, -325, 180, -58, -59, -876,
2179 -592, -876, 817, -5, 950, -162, 20, -71, -876, -443,
2180 -9, 2093, -302, 949, -56, -876, -12, -876, -876, 5,
2181 -876, 1150, -876, 196, -876, 166, -27, 326, -332, 89,
2182 -13, -876, -401, -159, 7, -876, -308, -26, -876, -876,
2183 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2184 -876, -876, -876, -876, -876, -876, 57, -876, -876, -876,
2185 -876, -876, -876, -876, -876, -876, -876, 159, -356, -546,
2186 38, -656, -876, -792, -817, 282, 150, -336, -876, 241,
2187 -876, -749, -876, 41, -876, -876, -876, -876, -876, -876,
2188 -876, 308, -876, -876, -876, -876, -876, -876, -876, -92,
2189 -876, -876, 369, -876, -876, 555, -876, -876, -566, -876,
2190 54, -876, -876, -876, -876, -876, -876, 978, -876, -876,
2191 -876, -876, 777, -876, -876, -876, -876, -876, -876, 872,
2192 1024, -876, 53, -876, -876, -876, -876, -876, -876, -876,
2193 14, -876, 28, -876, -30, 1683, 1997, 988, 2151, 1319,
2194 -876, -876, 158, -876, -457, 111, -586, -847, -415, -329,
2195 -744, 178, -259, 300, 104, -876, -876, -876, 182, -757,
2196 -875, 86, 316, -876, -721, -876, -70, -582, -876, -876,
2197 -876, 105, -394, -876, -319, -876, -876, -83, -876, -42,
2198 -25, 78, -535, -222, -64, -15, -2
2204 #define YYTABLE_NINF -643 2207 119, 287, 236, 360, 239, 308, 405, 302, 581, 233,
2208 328, 212, 212, 199, 403, 212, 238, 620, 737, 120,
2209 669, 533, 201, 218, 218, 620, 569, 218, 308, 277,
2210 648, 364, 627, 199, 367, 301, 202, 736, 567, 890,
2211 399, 575, 201, 883, 465, 71, 276, 71, 467, 319,
2212 368, 267, 271, 255, 309, 277, 202, 930, 753, 86,
2213 265, 86, 199, 320, 637, 427, 885, 277, 277, 277,
2214 627, 260, 844, 219, 219, 891, 849, 219, -613, 595,
2215 704, 784, 610, 613, 933, 609, 315, 316, 992, 767,
2216 624, -103, 453, 317, 936, 578, 3, -107, 795, 356,
2217 402, 199, 567, 493, 575, 216, 226, -107, 86, 227,
2218 499, 895, 278, -524, 986, -523, 777, -525, -526, -109,
2219 526, 224, 224, 219, 829, 224, 461, -528, -109, 578,
2220 640, 837, -341, -341, 462, 1044, 423, -290, 278, -518,
2221 -518, -532, -290, 651, 235, 219, 219, 952, 673, 219,
2222 373, 384, 384, 494, -104, 896, 359, 640, 266, 270,
2223 500, -111, 315, 316, 522, -103, 449, 317, -103, -524,
2224 1022, -523, -110, -525, -526, 961, -527, 992, -529, 937,
2225 -106, -341, 890, -528, -104, 1044, -613, -108, -518, -341,
2226 -105, -613, 308, 933, 235, 476, -518, -111, 526, 526,
2227 883, 318, 1000, -94, 471, 859, 1056, 855, 255, -98,
2228 669, -616, -110, 464, 455, 241, 420, 860, 996, 853,
2229 319, 462, 420, 212, 305, 212, 212, 306, 251, 436,
2230 620, 620, -527, -616, -529, 218, -107, 218, 627, -107,
2231 -100, 456, -617, 447, 470, -617, 783, 468, -109, 277,
2232 268, -109, 504, 505, 506, 507, 255, 742, 305, 883,
2233 773, 306, 816, 86, 976, 517, -95, 752, 362, 362,
2234 528, 640, 362, -102, 260, 318, 427, 925, -106, 927,
2235 231, 640, 1038, 733, -101, 219, 903, 219, 219, 1045,
2236 590, 219, -97, 219, -103, 451, 751, -103, 86, -99,
2237 -533, 277, -96, 308, -518, 943, 459, 582, 583, 86,
2238 921, 86, 438, -104, 922, -532, -104, 428, 524, 431,
2239 86, 926, 1024, 883, 503, 584, -111, -104, 255, -111,
2240 235, 519, 278, 224, -108, 224, 519, 457, 673, 1075,
2241 458, -110, -103, 484, -110, 487, 260, 491, 528, 528,
2242 478, 491, 71, 212, 977, -105, 436, 508, 425, 843,
2243 -518, 585, -94, 783, 875, 573, 86, 219, 219, 219,
2244 219, 86, 219, 219, 234, 1008, 1009, 293, 821, -521,
2245 235, 219, 854, 86, 278, -111, 534, 604, 825, 827,
2246 567, -75, 575, -296, -296, 833, 835, 479, 305, 480,
2247 410, 306, 471, 412, 413, 414, 669, -106, 669, 573,
2248 -106, -89, 450, 408, 437, 219, 439, 212, 86, 840,
2249 436, 295, 219, 219, 775, 356, 357, 297, 573, 768,
2250 689, 634, 420, 420, 322, -521, -97, 219, 299, -110,
2251 -111, 1021, -296, 605, 119, -617, 324, 277, 199, -98,
2252 -296, 711, 471, 478, 573, 325, -106, 201, 673, 783,
2253 1066, 783, 764, -108, 534, 534, -108, 673, 484, 620,
2254 212, 202, 769, 436, 358, 305, 627, 664, 306, 219,
2255 329, 573, 359, 58, -105, 407, -99, -105, 478, 71,
2256 362, 362, 362, 362, 869, 509, 510, 277, 526, -108,
2257 479, 665, 480, 86, 526, 526, 628, 905, 356, 421,
2258 630, 526, 526, 86, 1072, 633, 783, 988, 735, 735,
2259 518, -105, 720, 621, 409, 531, 712, 234, -97, 411,
2260 278, 643, 219, 692, 673, 479, 673, 480, 483, 715,
2261 616, -98, 417, 690, 718, 362, 362, 722, -97, -106,
2262 690, -97, 971, -96, 716, 478, -97, 422, 973, 486,
2263 592, -98, 723, -616, -98, 359, 646, 953, 478, -98,
2264 783, 416, 783, 612, 614, 729, 776, 440, -99, 418,
2265 278, 730, 757, 732, 212, 846, 843, 436, 441, 442,
2266 612, 614, 738, 424, 212, 573, 759, 436, -99, 718,
2267 703, -99, 479, 761, 480, 573, -99, 760, 783, 426,
2268 673, 764, 330, 617, 619, 479, 641, 480, 481, 420,
2269 199, 277, 268, 526, 1011, 1013, 718, 444, 654, 201,
2270 655, 656, 657, 658, 471, 593, 86, 955, 86, 594,
2271 119, 446, 330, 202, 454, -96, 219, 654, 528, 655,
2272 656, 657, 658, 721, 528, 528, 219, 619, 86, 219,
2273 268, 528, 528, 228, -533, -96, 867, -74, -96, 353,
2274 354, 355, 231, -96, 953, 460, 792, 469, 792, 277,
2275 -108, 953, 857, 466, 1049, 71, 473, 856, 408, 858,
2276 830, -104, 219, 356, 448, 488, 501, 757, 640, 86,
2277 866, 1061, 1063, 492, 278, 212, 495, 1068, 436, 1070,
2278 1071, -95, 701, 874, 498, -111, 573, 718, 525, 450,
2279 888, 513, 760, 774, 888, 842, 845, 718, 845, 502,
2280 845, 953, 987, 720, 519, -102, 770, 478, 1078, 1080,
2281 1081, 1082, 422, 585, 955, 739, -110, 1084, 955, 817,
2282 359, 955, 832, 955, 587, 596, -614, 659, 591, 879,
2283 -106, 199, 278, 86, 534, 629, -101, 219, 420, 660,
2284 534, 534, 631, 528, 632, 478, 638, 534, 534, -105,
2285 -97, 531, 754, 642, 479, -89, 480, 483, 914, 356,
2286 474, 647, 735, 797, 923, 800, 718, -268, 663, 664,
2287 691, 955, 219, 955, 219, 86, 693, 899, 955, 899,
2288 955, 706, 762, 702, 763, 771, 705, -521, -521, 76,
2289 955, 76, 479, 665, 480, 485, 962, 619, 268, -427,
2290 721, 832, 862, 76, 76, 330, 707, 76, 475, 909,
2291 725, 727, 913, 772, 731, 910, 359, 787, 786, 871,
2292 343, 344, 917, 918, 790, 793, 920, -108, -105, 794,
2293 877, 796, 798, 983, -614, 799, -521, 801, 76, -614,
2294 808, 879, 789, 810, -521, 813, -269, -99, -96, 826,
2295 828, 277, 824, 76, 1017, 792, 834, 836, 330, 534,
2296 351, 352, 353, 354, 355, 831, 852, 843, 815, 963,
2297 86, 863, 964, 219, 330, 76, 76, 86, 86, 76,
2298 870, 86, 861, 972, 86, 872, 876, 901, 845, 343,
2299 344, 86, -270, 839, -620, 362, 879, 362, 907, 277,
2300 911, 826, 828, 962, 834, 836, 931, 888, 993, 994,
2301 962, 934, 962, 351, 352, 353, 354, 355, 935, 939,
2302 941, 929, 1002, 944, 86, 792, 792, 86, 350, 351,
2303 352, 353, 354, 355, 967, 1025, 946, 1001, 86, -271,
2304 -530, -530, 887, 1018, 889, 1019, 277, 893, 985, 1003,
2305 1007, 1020, 881, 1010, 1012, -620, -620, 1014, 1023, 1027,
2306 962, 1034, 962, 86, 86, 940, 942, 962, 906, 962,
2307 945, 1033, 947, 981, 948, 1029, 915, 1039, 916, 962,
2308 902, 212, 1006, 1059, 436, 1060, 729, 845, 924, -530,
2309 -616, 1062, 573, 76, 718, 1067, 362, -530, 86, 1069,
2310 86, 644, -620, -617, -620, 906, 86, -616, 1079, 330,
2311 792, 86, -620, 371, 388, 76, 950, 76, 76, 919,
2312 838, 76, 900, 76, 343, 344, 86, 1053, 76, 1035,
2313 873, -531, -531, -286, -286, 1057, 268, 868, 812, 76,
2314 700, 76, 1052, 219, 954, 497, 974, 975, 958, 406,
2315 76, 980, 415, 291, 400, 982, 984, 356, 588, 1037,
2316 886, 348, 349, 350, 351, 352, 353, 354, 355, 356,
2317 598, -297, -297, 884, 356, 709, 1028, 1030, 1031, 1032,
2318 -531, 1041, -286, 0, 356, 1015, 0, 995, -531, 997,
2319 -286, 0, 0, 0, 998, 0, 76, 76, 76, 76,
2320 76, 76, 76, 76, 0, 0, 589, 0, 356, 1040,
2321 0, 76, 0, 76, 359, 0, 76, 0, 599, 0,
2322 -297, 0, 1026, 710, 0, 0, 359, 0, -297, 0,
2323 0, 359, 0, 1016, 0, 0, 214, 214, 0, 1073,
2324 214, 359, 478, 0, 0, 76, 0, 0, 76, 1054,
2325 1055, 0, 76, 76, 0, 958, 0, 599, 1043, 1042,
2326 1046, 0, 958, 0, 958, 359, 0, 76, 248, 250,
2327 0, 0, 0, 214, 214, 0, 0, 1058, 654, 0,
2328 655, 656, 657, 658, 659, 478, 303, 304, 0, 479,
2329 0, 480, 489, 0, 76, 76, 660, 654, 0, 655,
2330 656, 657, 658, 659, 0, 0, 0, 0, 1074, 76,
2331 1076, 0, 958, 0, 958, 660, 0, 1077, 661, 958,
2332 0, 958, 0, 0, 662, 663, 664, 1083, 0, 0,
2333 0, 958, 479, 76, 480, 496, 654, 661, 655, 656,
2334 657, 658, 0, 76, 663, 664, 0, 0, 803, 804,
2335 665, 805, 654, 666, 655, 656, 657, 658, -642, 46,
2336 47, 0, 76, 0, 0, 667, -642, -642, -642, 665,
2337 0, -642, -642, -642, 0, -642, 778, 0, 708, 0,
2338 0, 0, 779, 0, -642, -642, 310, 311, 312, 313,
2339 314, 117, 778, 117, 0, -642, -642, 0, -642, -642,
2340 -642, -642, -642, 0, 330, 331, 332, 333, 334, 335,
2341 336, 337, 338, 339, 340, 341, 342, 0, 0, 343,
2342 344, 0, 0, 0, 214, 0, 0, 214, 214, 214,
2343 0, 303, 654, 0, 655, 656, 657, 658, 0, 0,
2344 117, 0, 0, 0, 281, -642, -642, 0, 214, 0,
2345 214, 214, 345, 0, 346, 347, 348, 349, 350, 351,
2346 352, 353, 354, 355, 0, 0, 76, 0, 76, -642,
2347 281, -243, 778, 0, 0, 0, 76, 0, 932, 0,
2348 0, 0, 377, 387, 387, 0, 76, 0, 76, 76,
2349 0, 0, -642, -642, 0, 0, 0, 231, -642, 0,
2350 -642, 0, -642, -642, 989, 708, 655, 656, 657, 658,
2351 41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
2352 0, 0, 76, 0, 0, 0, 0, 0, 0, 76,
2353 0, 330, 331, 332, 333, 334, 335, 336, 337, 338,
2354 339, 340, 341, 342, 214, 0, 343, 344, 0, 530,
2355 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
2356 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
2357 556, 557, 558, 559, 560, 561, 0, 0, 214, 345,
2358 0, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2359 355, 0, 0, 76, 76, 117, 0, 76, 0, 0,
2360 76, 76, 0, 0, 0, 0, 0, 76, 76, 0,
2361 0, 654, 0, 655, 656, 657, 658, 659, 0, 0,
2362 0, 0, 0, 0, 0, 0, 0, 611, 611, 660,
2363 117, 0, 76, 0, 76, 76, 611, 214, 214, 0,
2364 0, 117, 214, 117, 611, 611, 214, 0, 0, 0,
2365 0, 661, 117, 0, 0, 0, 0, 662, 663, 664,
2366 0, 0, 0, 0, 281, 636, 0, 0, 0, 0,
2367 611, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2368 0, 214, 0, 665, 214, 0, 666, 0, 0, 0,
2369 0, 0, 0, 0, 0, 214, 0, 0, 117, 0,
2370 0, 0, 0, 117, 235, 0, 654, 0, 655, 656,
2371 657, 658, 659, 0, 0, 117, 281, 0, 535, 76,
2372 0, 694, 0, 0, 660, 0, 0, 0, 0, 0,
2373 76, 0, 0, 76, 0, 0, 214, 76, 76, 0,
2374 0, 76, 0, 0, 76, 0, 661, 0, 0, 0,
2375 117, 76, 662, 663, 664, 113, 0, 113, 0, 0,
2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2377 0, 0, 0, 0, 0, 0, 0, 0, 665, 0,
2378 0, 666, 0, 0, 76, 0, 0, 76, 0, 0,
2379 0, 0, 0, 0, 0, 0, 535, 535, 76, 0,
2380 0, 0, 0, 0, 113, 214, 0, 0, 279, 214,
2381 0, 0, 0, 0, 0, 0, 0, 0, 0, 214,
2382 0, 0, 0, 76, 76, 0, 0, 0, 0, 0,
2383 0, 0, 0, 0, 279, 117, 214, 0, 214, 0,
2384 0, 0, 0, 0, 0, 117, 375, 385, 385, 385,
2385 0, 214, 214, 0, 0, 0, 0, 0, 76, 0,
2386 76, 0, 281, 0, 0, 0, 76, 0, 0, 0,
2387 0, 76, 0, 0, 0, 0, 0, 0, 0, 0,
2388 0, 0, 0, 0, 0, 0, 76, 0, 0, 0,
2389 0, 0, 0, 0, 0, 0, 214, 0, 0, 0,
2390 0, 0, 0, 76, 0, 0, 0, 0, 0, 0,
2391 0, 0, 281, 0, 0, 0, 0, 0, 0, 0,
2392 0, 0, 214, 0, 0, 0, 0, 611, 818, 0,
2393 214, 0, 0, 611, 611, 0, 0, 0, 0, 0,
2394 611, 611, 0, 0, 0, 0, 0, 214, 0, 0,
2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2396 0, 0, 0, 0, 0, 0, 0, 0, 117, 0,
2397 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2398 0, 0, 0, 0, 0, 611, 611, 0, 611, 611,
2399 117, 0, 0, 0, 113, 0, 0, 0, 0, 0,
2400 0, 0, 0, 0, 0, 113, 214, 113, 0, 0,
2401 0, 0, 0, 0, 0, 0, 113, 0, 0, 0,
2402 0, 0, 0, 0, 0, 0, 0, 0, 279, 0,
2403 0, 117, 0, 0, 214, 0, 281, 0, 0, 0,
2404 0, 0, 0, 0, 904, 0, 0, 0, 0, 0,
2405 0, 0, 611, 0, 0, 0, 0, 0, 0, 0,
2406 0, 0, 113, 0, 0, 0, 0, 113, 0, 114,
2407 0, 114, 0, 214, 0, 0, 0, 807, 0, 113,
2408 279, 0, 0, 0, 0, 0, 0, 0, 0, 611,
2409 214, 0, 0, 0, 281, 117, 535, 0, 0, 0,
2410 0, 0, 535, 535, 0, 0, 0, 562, 563, 535,
2411 535, 564, 0, 0, 113, 0, 0, 0, 114, 0,
2412 0, 0, 280, 165, 166, 167, 168, 169, 170, 171,
2413 172, 173, 0, 0, 174, 175, 0, 117, 176, 177,
2414 178, 179, 0, 0, 0, 0, 0, 0, 280, 0,
2415 0, 0, 0, 180, 181, 0, 0, 0, 0, 0,
2416 376, 386, 386, 386, 0, 83, 0, 83, 0, 0,
2417 0, 0, 0, 0, 0, 182, 183, 184, 185, 186,
2418 187, 188, 189, 190, 191, 0, 192, 193, 0, 0,
2419 0, 0, 0, 194, 0, 0, 0, 0, 0, 113,
2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2421 0, 0, 0, 0, 83, 0, 0, 0, 0, 0,
2422 0, 535, 0, 116, 0, 116, 279, 0, 0, 0,
2423 0, 0, 117, 0, 0, 0, 214, 0, 0, 117,
2424 117, 0, 0, 117, 0, 0, 117, 0, 0, 0,
2425 0, 0, 0, 117, 0, 0, 372, 0, 0, 330,
2426 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
2427 341, 342, 116, 114, 343, 344, 279, 0, 0, 0,
2428 0, 0, 0, 0, 0, 0, 117, 0, 0, 117,
2429 0, 0, 0, 0, 0, 0, 970, 0, 0, 0,
2430 117, 0, 0, 0, 0, 0, 0, 345, 114, 346,
2431 347, 348, 349, 350, 351, 352, 353, 354, 355, 114,
2432 0, 114, 0, 0, 0, 117, 117, 0, 0, 0,
2433 114, 0, 113, 0, 113, 0, 0, 0, 0, 0,
2434 0, 0, 280, 0, 387, 0, 0, 0, 0, 0,
2435 0, 0, 0, 0, 113, 0, 0, 0, 0, 0,
2436 117, 0, 117, 0, 0, 0, 0, 0, 117, 83,
2437 0, 0, 0, 117, 0, 0, 114, 0, 0, 0,
2438 0, 114, 0, 0, 0, 0, 0, 0, 117, 0,
2439 0, 387, 0, 114, 280, 113, 0, 0, 0, 0,
2440 279, 0, 0, 0, 83, 0, 0, 0, 0, 0,
2441 0, 0, 0, 0, 0, 83, 0, 83, 0, 0,
2442 0, 0, 0, 0, 0, 0, 83, 116, 114, 0,
2443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2445 0, 0, 0, 0, 0, 0, 0, 0, 279, 113,
2446 0, 0, 116, 0, 0, 0, 0, 0, 0, 0,
2447 0, 0, 83, 116, 0, 116, 0, 83, 0, 0,
2448 0, 0, 0, 0, 116, 0, 0, 570, 571, 83,
2449 0, 572, 529, 0, 0, 0, 0, 0, 0, 0,
2450 0, 113, 0, 165, 166, 167, 168, 169, 170, 171,
2451 172, 173, 0, 114, 174, 175, 0, 0, 176, 177,
2452 178, 179, 0, 114, 83, 0, 0, 0, 0, 0,
2453 116, 0, 0, 180, 181, 116, 0, 0, 0, 0,
2454 280, 0, 0, 0, 0, 0, 0, 116, 0, 0,
2455 116, 0, 0, 0, 0, 182, 183, 184, 185, 186,
2456 187, 188, 189, 190, 191, 0, 192, 193, 0, 0,
2457 529, 529, 0, 194, 0, 0, 0, 0, 0, 0,
2458 0, 0, 116, 330, -643, -643, -643, -643, 335, 336,
2459 280, 0, -643, -643, 0, 0, 113, 0, 343, 344,
2460 0, 0, 0, 113, 113, 0, 0, 113, 0, 83,
2461 113, 0, 0, 0, 0, 0, 0, 113, 0, 83,
2462 0, 0, 0, 0, 0, 0, 0, 0, 116, 116,
2463 0, 0, 0, 346, 347, 348, 349, 350, 351, 352,
2464 353, 354, 355, 0, 0, 0, 114, 0, 114, 0,
2465 113, 0, 0, 113, 0, 0, 0, 0, 0, 0,
2466 968, 0, 0, 0, 113, 0, 0, 116, 114, 0,
2467 0, 0, 0, 0, 0, 0, 0, 116, 0, 0,
2468 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2469 113, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2470 0, 0, 0, 0, 0, 0, 0, 0, 385, 114,
2471 0, 0, 0, 0, 280, 0, 0, 0, 0, 0,
2472 0, 0, 0, 0, 113, 0, 113, 0, 0, 0,
2473 0, 0, 113, 0, 0, 0, 0, 113, 0, 0,
2474 0, 0, 83, 0, 83, 0, 0, 0, 0, 0,
2475 0, 0, 113, 0, 0, 385, 0, 0, 0, 0,
2476 0, 607, 571, 0, 83, 608, 0, 0, 0, 0,
2477 0, 0, 280, 114, 0, 0, 0, 165, 166, 167,
2478 168, 169, 170, 171, 172, 173, 0, 0, 174, 175,
2479 0, 0, 176, 177, 178, 179, 0, 0, 0, 0,
2480 116, 0, 116, 0, 0, 83, 0, 180, 181, 0,
2481 0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
2482 0, 0, 116, 0, 0, 0, 0, 0, 0, 182,
2483 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
2484 192, 193, 0, 0, 0, 0, 0, 194, 0, 0,
2485 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
2486 340, 341, 342, 116, 0, 343, 344, 0, 0, 83,
2487 529, 0, 0, 0, 0, 0, 529, 529, 0, 0,
2488 0, 0, 0, 529, 529, 0, 0, 0, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, 345, 0,
2490 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
2491 114, 83, 0, 0, 0, 0, 0, 114, 114, 0,
2492 0, 114, 0, 0, 114, 235, 0, 116, 116, 0,
2493 0, 114, 0, 0, 116, 116, 0, 0, 0, 0,
2494 0, 116, 116, 0, 0, 0, 0, 0, 0, 0,
2495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2496 0, 0, 0, 0, 114, 0, 0, 114, 0, 116,
2497 0, 0, 0, 0, 969, 0, 0, 0, 114, 0,
2498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2499 0, 0, 0, 0, 0, 529, 0, 0, 0, 0,
2500 0, 0, 0, 114, 114, 0, 83, 0, 0, 0,
2501 0, 0, 0, 83, 83, 0, 0, 83, 0, 0,
2502 83, 0, 386, 0, 0, 0, 0, 83, 0, 0,
2503 0, 0, 0, 0, 0, 0, 0, 0, 114, 0,
2504 114, 0, 0, 0, 0, 0, 114, 0, 0, 0,
2505 0, 114, 0, 116, 0, 0, 0, 0, 0, 0,
2506 83, 0, 0, 83, 116, 0, 114, 0, 0, 386,
2507 966, 116, 116, 0, 83, 116, 0, 0, 116, 0,
2508 0, 0, 0, 0, 0, 116, 0, 0, 0, 0,
2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
2510 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2511 0, 0, 0, 0, 0, 0, 0, 0, 116, 0,
2512 0, 116, 0, 0, 0, 0, 0, 0, 0, 0,
2513 0, 0, 116, 0, 83, 0, 83, 0, 0, 0,
2514 0, 0, 83, 0, 0, 0, 0, 83, 0, 0,
2515 0, 0, 0, 0, 0, 0, 0, 116, 116, 0,
2516 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
2517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2519 0, 0, 116, 0, 116, 0, 0, 0, 0, 0,
2520 116, 0, 0, -642, 4, 116, 5, 6, 7, 8,
2521 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2522 116, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2523 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2524 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2525 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2526 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
2527 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2529 0, 0, 50, 0, 0, 51, 52, 0, 53, 54,
2530 0, 55, 0, 0, 56, 57, 58, 59, 60, 61,
2531 62, 63, 64, -620, 0, 0, 0, 0, 0, 0,
2532 0, -620, -620, -620, 0, 0, -620, -620, -620, 0,
2533 -620, 0, 0, 65, 66, 67, 0, 0, 0, -620,
2534 -620, -620, -620, 0, 0, -642, 0, 0, -642, 0,
2535 -620, -620, 0, -620, -620, -620, -620, -620, 0, 0,
2536 0, 330, 331, 332, 333, 334, 335, 336, 337, 338,
2537 339, 340, -643, -643, 0, 0, 343, 344, 0, 0,
2538 0, 0, 0, -620, -620, -620, -620, -620, -620, -620,
2539 -620, -620, -620, -620, -620, -620, 0, 0, -620, -620,
2540 -620, -620, 0, 765, -620, 0, 0, 0, 0, 0,
2541 -620, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2542 355, 0, 0, 0, -620, 0, 0, -620, 0, 0,
2543 -107, -620, -620, -620, -620, -620, -620, -620, -620, -620,
2544 -620, -620, -620, 0, 0, 0, 0, -620, -620, -620,
2545 -620, -518, 0, -620, -620, -620, 0, -620, -620, -518,
2546 -518, -518, 0, 0, -518, -518, -518, 0, -518, 0,
2547 0, 0, 0, 0, 0, 0, -518, 0, -518, -518,
2548 -518, 0, 0, 0, 0, 0, 0, 0, -518, -518,
2549 0, -518, -518, -518, -518, -518, 0, 0, 0, 330,
2550 331, 332, 333, 334, 335, 336, 337, 0, 339, 340,
2551 0, 0, 0, 0, 343, 344, 0, 0, 0, 0,
2552 0, -518, -518, -518, -518, -518, -518, -518, -518, -518,
2553 -518, -518, -518, -518, 0, 0, -518, -518, -518, -518,
2554 0, -518, -518, 0, 0, 0, 0, 0, -518, 346,
2555 347, 348, 349, 350, 351, 352, 353, 354, 355, 0,
2556 0, 0, -518, 0, 0, -518, 0, 0, -518, -518,
2557 -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
2558 -518, 0, 0, 0, 0, 0, -518, -518, -518, -521,
2559 0, -518, -518, -518, 0, -518, -518, -521, -521, -521,
2560 0, 0, -521, -521, -521, 0, -521, 0, 0, 0,
2561 0, 0, 0, 0, -521, 0, -521, -521, -521, 0,
2562 0, 0, 0, 0, 0, 0, -521, -521, 0, -521,
2563 -521, -521, -521, -521, 0, 0, 0, 330, 331, 332,
2564 333, 334, 335, 336, 0, 0, 339, 340, 0, 0,
2565 0, 0, 343, 344, 0, 0, 0, 0, 0, -521,
2566 -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
2567 -521, -521, 0, 0, -521, -521, -521, -521, 0, -521,
2568 -521, 0, 0, 0, 0, 0, -521, 346, 347, 348,
2569 349, 350, 351, 352, 353, 354, 355, 0, 0, 0,
2570 -521, 0, 0, -521, 0, 0, -521, -521, -521, -521,
2571 -521, -521, -521, -521, -521, -521, -521, -521, -521, 0,
2572 0, 0, 0, 0, -521, -521, -521, -621, 0, -521,
2573 -521, -521, 0, -521, -521, -621, -621, -621, 0, 0,
2574 -621, -621, -621, 0, -621, 0, 0, 0, 0, 0,
2575 0, 0, 0, -621, -621, -621, -621, 0, 0, 0,
2576 0, 0, 0, 0, -621, -621, 0, -621, -621, -621,
2577 -621, -621, 0, 0, 0, 0, 0, 0, 0, 0,
2578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2579 0, 0, 0, 0, 0, 0, 0, -621, -621, -621,
2580 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
2581 0, 0, -621, -621, -621, -621, 0, 0, -621, 0,
2582 0, 0, 0, 0, -621, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, -621, 0,
2584 0, -621, 0, 0, 0, -621, -621, -621, -621, -621,
2585 -621, -621, -621, -621, -621, -621, -621, 0, 0, 0,
2586 0, -621, -621, -621, -621, -622, 0, -621, -621, -621,
2587 0, -621, -621, -622, -622, -622, 0, 0, -622, -622,
2588 -622, 0, -622, 0, 0, 0, 0, 0, 0, 0,
2589 0, -622, -622, -622, -622, 0, 0, 0, 0, 0,
2590 0, 0, -622, -622, 0, -622, -622, -622, -622, -622,
2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2593 0, 0, 0, 0, 0, -622, -622, -622, -622, -622,
2594 -622, -622, -622, -622, -622, -622, -622, -622, 0, 0,
2595 -622, -622, -622, -622, 0, 0, -622, 0, 0, 0,
2596 0, 0, -622, 0, 0, 0, 0, 0, 0, 0,
2597 0, 0, 0, 0, 0, 0, -622, 0, 0, -622,
2598 0, 0, 0, -622, -622, -622, -622, -622, -622, -622,
2599 -622, -622, -622, -622, -622, 0, 0, 0, 0, -622,
2600 -622, -622, -622, -296, 0, -622, -622, -622, 0, -622,
2601 -622, -296, -296, -296, 0, 0, -296, -296, -296, 0,
2602 -296, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2603 -296, -296, -296, 0, 0, 0, 0, 0, 0, 0,
2604 -296, -296, 0, -296, -296, -296, -296, -296, 0, 0,
2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 0, 0, 0, -296, -296, -296, -296, -296, -296, -296,
2608 -296, -296, -296, -296, -296, -296, 0, 0, -296, -296,
2609 -296, -296, 0, 766, -296, 0, 0, 0, 0, 0,
2610 -296, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 0, 0, -296, 0, 0, -296, 0, 0,
2612 -109, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2613 -296, -296, -296, 0, 0, 0, 0, 0, -296, -296,
2614 -296, -435, 0, -296, -296, -296, 0, -296, -296, -435,
2615 -435, -435, 0, 0, -435, -435, -435, 0, -435, 0,
2616 0, 0, 0, 0, 0, 0, 0, -435, -435, -435,
2617 0, 0, 0, 0, 0, 0, 0, 0, -435, -435,
2618 0, -435, -435, -435, -435, -435, 0, 0, 0, 0,
2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2621 0, -435, -435, -435, -435, -435, -435, -435, -435, -435,
2622 -435, -435, -435, -435, 0, 0, -435, -435, -435, -435,
2623 0, 0, -435, 0, 0, 0, 0, 0, -435, 0,
2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2625 0, 0, -435, 0, 0, 0, 0, 0, 0, -435,
2626 0, -435, -435, -435, -435, -435, -435, -435, -435, -435,
2627 -435, 0, 0, 0, 0, -435, -435, -435, -435, -287,
2628 231, -435, -435, -435, 0, -435, -435, -287, -287, -287,
2629 0, 0, -287, -287, -287, 0, -287, 0, 0, 0,
2630 0, 0, 0, 0, 0, 0, -287, -287, -287, 0,
2631 0, 0, 0, 0, 0, 0, -287, -287, 0, -287,
2632 -287, -287, -287, -287, 0, 0, 0, 0, 0, 0,
2633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2634 0, 0, 0, 0, 0, 0, 0, 0, 0, -287,
2635 -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
2636 -287, -287, 0, 0, -287, -287, -287, -287, 0, 0,
2637 -287, 0, 0, 0, 0, 0, -287, 0, 0, 0,
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2639 -287, 0, 0, -287, 0, 0, 0, -287, -287, -287,
2640 -287, -287, -287, -287, -287, -287, -287, -287, -287, 0,
2641 0, 0, 0, 0, -287, -287, -287, -425, 0, -287,
2642 -287, -287, 0, -287, -287, -425, -425, -425, 0, 0,
2643 -425, -425, -425, 0, -425, 0, 0, 0, 0, 0,
2644 0, 0, 0, -425, -425, -425, 0, 0, 0, 0,
2645 0, 0, 0, 0, -425, -425, 0, -425, -425, -425,
2646 -425, -425, 0, 0, 0, 0, 0, 0, 0, 0,
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 0, 0, 0, 0, 0, 0, -425, -425, -425,
2649 -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
2650 0, 0, -425, -425, -425, -425, 0, 0, -425, 0,
2651 0, 0, 0, 0, -425, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, -425, 0,
2653 0, 0, 0, 0, 0, -425, 0, -425, -425, -425,
2654 -425, -425, -425, -425, -425, -425, -425, 0, 0, 0,
2655 0, -425, -425, -425, -425, -303, -425, -425, -425, -425,
2656 0, -425, -425, -303, -303, -303, 0, 0, -303, -303,
2657 -303, 0, -303, 0, 0, 0, 0, 0, 0, 0,
2658 0, 0, -303, -303, 0, 0, 0, 0, 0, 0,
2659 0, 0, -303, -303, 0, -303, -303, -303, -303, -303,
2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2662 0, 0, 0, 0, 0, -303, -303, -303, -303, -303,
2663 -303, -303, -303, -303, -303, -303, -303, -303, 0, 0,
2664 -303, -303, -303, -303, 0, 0, -303, 0, 0, 0,
2665 0, 0, -303, 0, 0, 0, 0, 0, 0, 0,
2666 0, 0, 0, 0, 0, 0, -303, 0, 0, 0,
2667 0, 0, 0, -303, 0, -303, -303, -303, -303, -303,
2668 -303, -303, -303, -303, -303, 0, 0, 0, 0, 0,
2669 -303, -303, -303, -620, 228, -303, -303, -303, 0, -303,
2670 -303, -620, -620, -620, 0, 0, 0, -620, -620, 0,
2671 -620, 0, 0, 0, 0, 0, 0, 0, 0, -620,
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673 -620, -620, 0, -620, -620, -620, -620, -620, 0, 0,
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, -620, -620, -620, -620, -620, -620, -620,
2677 -620, -620, -620, -620, -620, -620, 0, 0, -620, -620,
2678 -620, -620, 0, 713, 0, 0, 0, 0, 0, 0,
2679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2680 0, 0, 0, 0, -620, 0, 0, 0, 0, 0,
2681 -107, -620, 0, -620, -620, -620, -620, -620, -620, -620,
2682 -620, -620, -620, 0, 0, 0, 0, -620, -620, -620,
2683 -98, -620, 0, -620, 0, -620, 0, -620, -620, -620,
2684 -620, -620, 0, 0, 0, -620, -620, 0, -620, 0,
2685 0, 0, 0, 0, 0, 0, 0, -620, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, -620, -620,
2687 0, -620, -620, -620, -620, -620, 0, 0, 0, 0,
2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2690 0, -620, -620, -620, -620, -620, -620, -620, -620, -620,
2691 -620, -620, -620, -620, 0, 0, -620, -620, -620, -620,
2692 0, 713, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2694 0, 0, -620, 0, 0, 0, 0, 0, -107, -620,
2695 0, -620, -620, -620, -620, -620, -620, -620, -620, -620,
2696 -620, 0, 0, 0, 0, -620, -620, -620, -620, -296,
2697 0, -620, 0, -620, 0, -620, -620, -296, -296, -296,
2698 0, 0, 0, -296, -296, 0, -296, 0, 0, 0,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 0, -296, -296, 0, -296,
2701 -296, -296, -296, -296, 0, 0, 0, 0, 0, 0,
2702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2703 0, 0, 0, 0, 0, 0, 0, 0, 0, -296,
2704 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2705 -296, -296, 0, 0, -296, -296, -296, -296, 0, 714,
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708 -296, 0, 0, 0, 0, 0, -109, -296, 0, -296,
2709 -296, -296, -296, -296, -296, -296, -296, -296, -296, 0,
2710 0, 0, 0, 0, -296, -296, -100, -296, 0, -296,
2711 0, -296, 0, -296, -296, -296, -296, -296, 0, 0,
2712 0, -296, -296, 0, -296, 0, 0, 0, 0, 0,
2713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2714 0, 0, 0, 0, -296, -296, 0, -296, -296, -296,
2715 -296, -296, 0, 0, 0, 0, 0, 0, 0, 0,
2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 0, 0, 0, 0, -296, -296, -296,
2718 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2719 0, 0, -296, -296, -296, -296, 0, 714, 0, 0,
2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2721 0, 0, 0, 0, 0, 0, 0, 0, -296, 0,
2722 0, 0, 0, 0, -109, -296, 0, -296, -296, -296,
2723 -296, -296, -296, -296, -296, -296, -296, 0, 0, 0,
2724 0, 0, -296, -296, -296, 0, 0, -296, 0, -296,
2725 0, -296, -296, 252, 0, 5, 6, 7, 8, 9,
2726 -642, -642, -642, 10, 11, 0, 0, -642, 12, 0,
2727 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2728 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2729 0, 27, 0, 0, 0, 0, 0, 28, 29, 253,
2730 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2731 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
2732 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2734 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
2735 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
2736 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
2737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2738 0, 0, 65, 66, 67, 0, 0, 0, 0, 0,
2739 0, 0, 0, 0, -642, 0, 252, -642, 5, 6,
2740 7, 8, 9, 0, 0, -642, 10, 11, 0, -642,
2741 -642, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2742 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2743 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2744 28, 29, 253, 31, 32, 33, 34, 35, 36, 37,
2745 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2746 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2749 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2750 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752 0, 0, 0, 0, 0, 65, 66, 67, 0, 0,
2753 0, 0, 0, 0, 0, 0, 0, -642, 0, 252,
2754 -642, 5, 6, 7, 8, 9, 0, 0, -642, 10,
2755 11, 0, 0, -642, 12, -642, 13, 14, 15, 16,
2756 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2757 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2758 0, 0, 0, 28, 29, 253, 31, 32, 33, 34,
2759 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2760 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2763 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
2764 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766 0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
2767 67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768 -642, 0, 252, -642, 5, 6, 7, 8, 9, 0,
2769 0, -642, 10, 11, 0, 0, -642, 12, 0, 13,
2770 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2771 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2772 27, 0, 0, 0, 0, 0, 28, 29, 253, 31,
2773 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2774 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2775 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 50, 0, 0, 51, 52, 0, 53, 54, 0, 55,
2778 0, 0, 56, 57, 58, 59, 60, 61, 62, 63,
2779 64, 0, 0, 0, 0, 0, 0, 0, 0, 252,
2780 0, 5, 6, 7, 8, 9, 0, -642, -642, 10,
2781 11, 65, 66, 67, 12, 0, 13, 14, 15, 16,
2782 17, 18, 19, -642, 0, 0, -642, 0, 20, 21,
2783 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2784 0, 0, 0, 28, 29, 253, 31, 32, 33, 34,
2785 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2786 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2789 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
2790 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2791 0, 0, 0, 0, 0, 0, 252, 0, 5, 6,
2792 7, 8, 9, 0, 0, 0, 10, 11, 65, 66,
2793 67, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2794 -642, 0, 0, -642, 0, 20, 21, 22, 23, 24,
2795 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2796 28, 29, 253, 31, 32, 33, 34, 35, 36, 37,
2797 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2798 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2800 0, 0, 0, 0, 50, 0, 0, 254, 52, 0,
2801 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2802 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804 0, 0, 0, 0, 0, 65, 66, 67, 252, 0,
2805 5, 6, 7, 8, 9, -642, 0, -642, 10, 11,
2806 -642, 0, 0, 12, 0, 13, 14, 15, 16, 17,
2807 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2808 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2809 0, 0, 28, 29, 253, 31, 32, 33, 34, 35,
2810 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2811 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
2812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 0, 0, 50, 0, 0, 51,
2814 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
2815 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 0, 0, 0, 65, 66, 67,
2818 252, 0, 5, 6, 7, 8, 9, -642, 0, -642,
2819 10, 11, -642, 0, 0, 12, 0, 13, 14, 15,
2820 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2821 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2822 0, 0, 0, 0, 28, 29, 253, 31, 32, 33,
2823 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2824 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2826 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,
2827 0, 51, 52, 0, 53, 54, 0, 55, 0, 0,
2828 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
2829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
2831 66, 67, 0, 0, -642, 0, 0, 0, 0, 0,
2832 0, -642, 0, 4, -642, 5, 6, 7, 8, 9,
2833 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2834 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2835 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2836 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2837 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2838 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
2839 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2841 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
2842 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
2843 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 0, 0, 65, 66, 67, 0, 0, -642, 0, 0,
2846 0, 0, 0, 0, -642, 0, 252, -642, 5, 6,
2847 7, 8, 9, 0, 0, -642, 10, 11, 0, 0,
2848 0, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2849 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2850 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2851 28, 29, 253, 31, 32, 33, 34, 35, 36, 37,
2852 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2853 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2855 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2856 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2857 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2858 0, 0, 0, 252, 0, 5, 6, 7, 8, 9,
2859 0, 0, 0, 10, 11, 65, 66, 67, 12, 0,
2860 13, 14, 15, 16, 17, 18, 19, -642, 0, 0,
2861 -642, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2862 0, 27, 0, 0, 0, 0, 0, 28, 29, 253,
2863 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2864 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
2865 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2867 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
2868 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
2869 63, 64, 0, -642, 0, 0, 0, 0, 0, 0,
2870 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2871 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
2872 16, 17, 18, 19, -642, 0, 0, -642, 0, 20,
2873 21, 22, 23, 24, 25, 26, 0, 0, 203, 0,
2874 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2875 34, 35, 36, 37, 38, 39, 40, 204, 41, 42,
2876 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 0, 0, 0, 205, 0,
2879 0, 206, 52, 0, 53, 54, 0, 207, 208, 209,
2880 56, 57, 210, 59, 60, 61, 62, 63, 64, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2882 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2883 211, 67, 12, 0, 13, 14, 15, 16, 17, 18,
2884 19, 0, 0, 0, 235, 0, 20, 21, 22, 23,
2885 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2886 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2887 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2888 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2890 0, 0, 0, 0, 0, 205, 0, 0, 206, 52,
2891 0, 53, 54, 0, 0, 0, 0, 56, 57, 58,
2892 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
2893 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2894 9, 0, 0, 0, 10, 11, 65, 66, 67, 12,
2895 0, 13, 14, 15, 16, 17, 18, 19, 305, 0,
2896 0, 306, 0, 20, 21, 22, 23, 24, 25, 26,
2897 0, 0, 27, 0, 0, 0, 0, 0, 0, 29,
2898 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2899 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
2900 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2902 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2903 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
2904 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 5, 6, 7, 8, 9, 0, 0,
2906 0, 10, 11, 65, 66, 67, 12, 0, 13, 14,
2907 15, 16, 17, 18, 19, 0, 0, 0, 235, 0,
2908 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2909 0, 0, 0, 0, 0, 28, 29, 30, 31, 32,
2910 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2911 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
2912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2913 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2914 0, 0, 51, 52, 0, 53, 54, 0, 55, 0,
2915 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 5, 6, 7, 8, 9, 0, 0, 0, 10, 11,
2918 65, 66, 67, 12, 0, 13, 14, 15, 16, 17,
2919 18, 19, 502, 0, 0, 0, 0, 20, 21, 22,
2920 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2921 0, 0, 28, 29, 253, 31, 32, 33, 34, 35,
2922 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2923 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
2924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2925 0, 0, 0, 0, 0, 0, 50, 0, 0, 51,
2926 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
2927 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 65, 66, 67,
2930 0, 0, 0, 0, 0, 0, 0, 0, 0, 502,
2931 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2932 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2933 141, 142, 143, 144, 0, 0, 0, 145, 146, 147,
2934 389, 390, 391, 392, 152, 153, 154, 0, 0, 0,
2935 0, 0, 155, 156, 157, 158, 393, 394, 395, 396,
2936 163, 37, 38, 397, 40, 0, 0, 0, 0, 0,
2937 0, 0, 0, 0, 0, 165, 166, 167, 168, 169,
2938 170, 171, 172, 173, 0, 0, 174, 175, 0, 0,
2939 176, 177, 178, 179, 0, 0, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 180, 181, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942 0, 0, 0, 0, 0, 0, 0, 182, 183, 184,
2943 185, 186, 187, 188, 189, 190, 191, 0, 192, 193,
2944 0, 0, 0, 0, 0, 194, 398, 121, 122, 123,
2945 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2946 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2947 144, 0, 0, 0, 145, 146, 147, 148, 149, 150,
2948 151, 152, 153, 154, 0, 0, 0, 0, 0, 155,
2949 156, 157, 158, 159, 160, 161, 162, 163, 284, 285,
2950 164, 286, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
2952 173, 0, 0, 174, 175, 0, 0, 176, 177, 178,
2953 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2954 0, 0, 180, 181, 0, 0, 0, 0, 0, 0,
2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 0, 0, 0, 0, 182, 183, 184, 185, 186, 187,
2957 188, 189, 190, 191, 0, 192, 193, 0, 0, 0,
2958 0, 0, 194, 121, 122, 123, 124, 125, 126, 127,
2959 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2960 138, 139, 140, 141, 142, 143, 144, 0, 0, 0,
2961 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2962 0, 0, 0, 0, 0, 155, 156, 157, 158, 159,
2963 160, 161, 162, 163, 237, 0, 164, 0, 0, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 165, 166,
2965 167, 168, 169, 170, 171, 172, 173, 0, 0, 174,
2966 175, 0, 0, 176, 177, 178, 179, 0, 0, 0,
2967 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
2968 0, 0, 57, 0, 0, 0, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2970 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2971 0, 192, 193, 0, 0, 0, 0, 0, 194, 121,
2972 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2973 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2974 142, 143, 144, 0, 0, 0, 145, 146, 147, 148,
2975 149, 150, 151, 152, 153, 154, 0, 0, 0, 0,
2976 0, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2977 0, 0, 164, 0, 0, 0, 0, 0, 0, 0,
2978 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
2979 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
2980 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 180, 181, 0, 0, 57, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 0, 0, 182, 183, 184, 185,
2984 186, 187, 188, 189, 190, 191, 0, 192, 193, 0,
2985 0, 0, 0, 0, 194, 121, 122, 123, 124, 125,
2986 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2987 136, 137, 138, 139, 140, 141, 142, 143, 144, 0,
2988 0, 0, 145, 146, 147, 148, 149, 150, 151, 152,
2989 153, 154, 0, 0, 0, 0, 0, 155, 156, 157,
2990 158, 159, 160, 161, 162, 163, 0, 0, 164, 0,
2991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2992 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
2993 0, 174, 175, 0, 0, 176, 177, 178, 179, 0,
2994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2995 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
2998 190, 191, 0, 192, 193, 5, 6, 7, 0, 9,
2999 194, 0, 0, 10, 11, 0, 0, 0, 12, 0,
3000 13, 14, 15, 242, 243, 18, 19, 0, 0, 0,
3001 0, 0, 244, 245, 246, 23, 24, 25, 26, 0,
3002 0, 203, 0, 0, 0, 0, 0, 0, 272, 0,
3003 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3004 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 273, 0, 0, 206, 52, 0, 53, 54, 0,
3008 0, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3009 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3010 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3011 0, 0, 274, 10, 11, 0, 0, 0, 12, 275,
3012 13, 14, 15, 242, 243, 18, 19, 0, 0, 0,
3013 0, 0, 244, 245, 246, 23, 24, 25, 26, 0,
3014 0, 203, 0, 0, 0, 0, 0, 0, 272, 0,
3015 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3016 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 273, 0, 0, 206, 52, 0, 53, 54, 0,
3020 0, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3021 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
3023 0, 0, 274, 10, 11, 0, 0, 0, 12, 523,
3024 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
3025 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
3026 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
3027 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3028 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3029 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3031 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
3032 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3033 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3034 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3035 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
3036 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
3037 21, 22, 23, 24, 25, 26, 0, 0, 203, 0,
3038 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3039 34, 35, 36, 37, 38, 39, 40, 204, 41, 42,
3040 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
3041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3042 0, 0, 0, 0, 0, 0, 0, 0, 205, 0,
3043 0, 206, 52, 0, 53, 54, 0, 207, 208, 209,
3044 56, 57, 210, 59, 60, 61, 62, 63, 64, 0,
3045 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3046 6, 7, 8, 9, 0, 0, 0, 10, 11, 65,
3047 211, 67, 12, 0, 13, 14, 15, 16, 17, 18,
3048 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
3049 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
3050 0, 28, 29, 0, 31, 32, 33, 34, 35, 36,
3051 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
3052 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
3053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3054 0, 0, 0, 0, 0, 50, 0, 0, 51, 52,
3055 0, 53, 54, 0, 55, 0, 0, 56, 57, 58,
3056 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3057 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3058 9, 0, 0, 0, 10, 11, 65, 66, 67, 12,
3059 0, 13, 14, 15, 242, 243, 18, 19, 0, 0,
3060 0, 0, 0, 244, 245, 246, 23, 24, 25, 26,
3061 0, 0, 203, 0, 0, 0, 0, 0, 0, 29,
3062 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3063 40, 204, 41, 42, 43, 44, 0, 45, 46, 47,
3064 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3066 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
3067 0, 618, 208, 209, 56, 57, 210, 59, 60, 61,
3068 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
3069 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3070 0, 10, 11, 65, 211, 67, 12, 0, 13, 14,
3071 15, 242, 243, 18, 19, 0, 0, 0, 0, 0,
3072 244, 245, 246, 23, 24, 25, 26, 0, 0, 203,
3073 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
3074 33, 34, 35, 36, 37, 38, 39, 40, 204, 41,
3075 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
3076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
3078 0, 0, 206, 52, 0, 53, 54, 0, 207, 208,
3079 0, 56, 57, 210, 59, 60, 61, 62, 63, 64,
3080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3081 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3082 65, 211, 67, 12, 0, 13, 14, 15, 242, 243,
3083 18, 19, 0, 0, 0, 0, 0, 244, 245, 246,
3084 23, 24, 25, 26, 0, 0, 203, 0, 0, 0,
3085 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
3086 36, 37, 38, 39, 40, 204, 41, 42, 43, 44,
3087 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
3088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3089 0, 0, 0, 0, 0, 0, 205, 0, 0, 206,
3090 52, 0, 53, 54, 0, 0, 208, 209, 56, 57,
3091 210, 59, 60, 61, 62, 63, 64, 0, 0, 0,
3092 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3093 0, 9, 0, 0, 0, 10, 11, 65, 211, 67,
3094 12, 0, 13, 14, 15, 242, 243, 18, 19, 0,
3095 0, 0, 0, 0, 244, 245, 246, 23, 24, 25,
3096 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
3097 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3098 39, 40, 204, 41, 42, 43, 44, 0, 45, 46,
3099 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3101 0, 0, 0, 205, 0, 0, 206, 52, 0, 53,
3102 54, 0, 618, 208, 0, 56, 57, 210, 59, 60,
3103 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
3104 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3105 0, 0, 10, 11, 65, 211, 67, 12, 0, 13,
3106 14, 15, 242, 243, 18, 19, 0, 0, 0, 0,
3107 0, 244, 245, 246, 23, 24, 25, 26, 0, 0,
3108 203, 0, 0, 0, 0, 0, 0, 29, 0, 0,
3109 32, 33, 34, 35, 36, 37, 38, 39, 40, 204,
3110 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
3111 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3113 205, 0, 0, 206, 52, 0, 53, 54, 0, 0,
3114 208, 0, 56, 57, 210, 59, 60, 61, 62, 63,
3115 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3116 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3117 11, 65, 211, 67, 12, 0, 13, 14, 15, 16,
3118 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
3119 22, 23, 24, 25, 26, 0, 0, 203, 0, 0,
3120 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
3121 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3122 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
3123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3124 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
3125 206, 52, 0, 53, 54, 0, 516, 0, 0, 56,
3126 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3127 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
3128 7, 0, 9, 0, 0, 0, 10, 11, 65, 211,
3129 67, 12, 0, 13, 14, 15, 242, 243, 18, 19,
3130 0, 0, 0, 0, 0, 244, 245, 246, 23, 24,
3131 25, 26, 0, 0, 203, 0, 0, 0, 0, 0,
3132 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
3133 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
3134 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
3135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3136 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
3137 53, 54, 0, 207, 0, 0, 56, 57, 58, 59,
3138 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
3139 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3140 0, 0, 0, 10, 11, 65, 211, 67, 12, 0,
3141 13, 14, 15, 242, 243, 18, 19, 0, 0, 0,
3142 0, 0, 244, 245, 246, 23, 24, 25, 26, 0,
3143 0, 203, 0, 0, 0, 0, 0, 0, 29, 0,
3144 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3145 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3146 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3148 0, 205, 0, 0, 206, 52, 0, 53, 54, 0,
3149 814, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3150 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3151 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3152 10, 11, 65, 211, 67, 12, 0, 13, 14, 15,
3153 242, 243, 18, 19, 0, 0, 0, 0, 0, 244,
3154 245, 246, 23, 24, 25, 26, 0, 0, 203, 0,
3155 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3156 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3157 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
3158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3159 0, 0, 0, 0, 0, 0, 0, 0, 205, 0,
3160 0, 206, 52, 0, 53, 54, 0, 516, 0, 0,
3161 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
3162 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3163 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
3164 211, 67, 12, 0, 13, 14, 15, 242, 243, 18,
3165 19, 0, 0, 0, 0, 0, 244, 245, 246, 23,
3166 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
3167 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
3168 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
3169 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
3170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3171 0, 0, 0, 0, 0, 205, 0, 0, 206, 52,
3172 0, 53, 54, 0, 618, 0, 0, 56, 57, 58,
3173 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3174 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3175 9, 0, 0, 0, 10, 11, 65, 211, 67, 12,
3176 0, 13, 14, 15, 242, 243, 18, 19, 0, 0,
3177 0, 0, 0, 244, 245, 246, 23, 24, 25, 26,
3178 0, 0, 203, 0, 0, 0, 0, 0, 0, 29,
3179 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3180 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
3181 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3183 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
3184 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
3185 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
3186 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3187 0, 10, 11, 65, 211, 67, 12, 0, 13, 14,
3188 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
3189 20, 21, 22, 23, 24, 25, 26, 0, 0, 203,
3190 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
3191 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3192 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
3193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3194 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
3195 0, 0, 206, 52, 0, 53, 54, 0, 0, 0,
3196 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3198 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3199 65, 211, 67, 12, 0, 13, 14, 15, 16, 17,
3200 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
3201 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
3202 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
3203 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
3204 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
3205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3206 0, 0, 0, 0, 0, 0, 205, 0, 0, 206,
3207 52, 0, 53, 54, 0, 0, 0, 0, 56, 57,
3208 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
3209 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3210 0, 9, 0, 0, 0, 10, 11, 65, 66, 67,
3211 12, 0, 13, 14, 15, 242, 243, 18, 19, 0,
3212 0, 0, 0, 0, 244, 245, 246, 23, 24, 25,
3213 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
3214 272, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3215 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
3216 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3218 0, 0, 0, 273, 0, 0, 326, 52, 0, 53,
3219 54, 0, 327, 0, 0, 56, 57, 58, 59, 60,
3220 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
3221 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3222 0, 0, 0, 12, 274, 13, 14, 15, 242, 243,
3223 18, 19, 0, 0, 0, 0, 0, 244, 245, 246,
3224 23, 24, 25, 26, 0, 0, 203, 0, 0, 0,
3225 0, 0, 0, 272, 0, 0, 32, 33, 34, 35,
3226 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
3227 0, 45, 46, 47, 0, 0, 0, 0, 0, 0,
3228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3229 0, 0, 0, 0, 0, 0, 370, 0, 0, 51,
3230 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
3231 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
3232 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3233 0, 10, 11, 0, 0, 0, 12, 274, 13, 14,
3234 15, 242, 243, 18, 19, 0, 0, 0, 0, 0,
3235 244, 245, 246, 23, 24, 25, 26, 0, 0, 203,
3236 0, 0, 0, 0, 0, 0, 272, 0, 0, 32,
3237 33, 34, 378, 36, 37, 38, 379, 40, 0, 41,
3238 42, 43, 44, 0, 45, 46, 47, 0, 0, 0,
3239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3240 0, 0, 0, 0, 0, 380, 0, 0, 0, 381,
3241 0, 0, 206, 52, 0, 53, 54, 0, 0, 0,
3242 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3243 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3244 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
3245 274, 13, 14, 15, 242, 243, 18, 19, 0, 0,
3246 0, 0, 0, 244, 245, 246, 23, 24, 25, 26,
3247 0, 0, 203, 0, 0, 0, 0, 0, 0, 272,
3248 0, 0, 32, 33, 34, 378, 36, 37, 38, 379,
3249 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
3250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3252 0, 0, 381, 0, 0, 206, 52, 0, 53, 54,
3253 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
3254 62, 63, 64, 0, 0, 0, 0, 0, 0, 5,
3255 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
3256 0, 0, 12, 274, 13, 14, 15, 242, 243, 18,
3257 19, 0, 0, 0, 0, 0, 244, 245, 246, 23,
3258 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
3259 0, 0, 272, 0, 0, 32, 33, 34, 35, 36,
3260 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
3261 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
3262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3263 0, 0, 0, 0, 0, 273, 0, 0, 326, 52,
3264 0, 53, 54, 0, 0, 0, 0, 56, 57, 58,
3265 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3266 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3267 10, 11, 0, 0, 0, 12, 274, 13, 14, 15,
3268 242, 243, 18, 19, 0, 0, 0, 0, 0, 244,
3269 245, 246, 23, 24, 25, 26, 0, 0, 203, 0,
3270 0, 0, 0, 0, 0, 272, 0, 0, 32, 33,
3271 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3272 43, 44, 0, 45, 46, 47, 0, 0, 0, 0,
3273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3274 0, 0, 0, 0, 0, 0, 0, 0, 965, 0,
3275 0, 206, 52, 0, 53, 54, 0, 0, 0, 0,
3276 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
3277 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3278 0, 0, 0, 10, 11, 0, 0, 0, 12, 274,
3279 13, 14, 15, 242, 243, 18, 19, 0, 0, 0,
3280 0, 0, 244, 245, 246, 23, 24, 25, 26, 0,
3281 0, 203, 0, 0, 0, 0, 0, 0, 272, 0,
3282 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3283 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3286 0, 1005, 0, 0, 206, 52, 0, 53, 54, 0,
3287 0, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3288 63, 64, 0, 0, 0, 0, 0, 622, 563, 0,
3289 0, 623, 0, 0, 0, 0, 0, 0, 0, 0,
3290 0, 0, 274, 165, 166, 167, 168, 169, 170, 171,
3291 172, 173, 0, 0, 174, 175, 0, 0, 176, 177,
3292 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
3293 0, 0, 0, 180, 181, 0, 0, 0, 0, 0,
3294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3295 0, 0, 0, 0, 0, 182, 183, 184, 185, 186,
3296 187, 188, 189, 190, 191, 0, 192, 193, 625, 571,
3297 0, 0, 626, 194, 0, 0, 0, 0, 0, 0,
3298 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
3299 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
3300 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
3301 0, 0, 0, 0, 180, 181, 0, 0, 0, 0,
3302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3303 0, 0, 0, 0, 0, 0, 182, 183, 184, 185,
3304 186, 187, 188, 189, 190, 191, 0, 192, 193, 649,
3305 563, 0, 0, 650, 194, 0, 0, 0, 0, 0,
3306 0, 0, 0, 0, 0, 165, 166, 167, 168, 169,
3307 170, 171, 172, 173, 0, 0, 174, 175, 0, 0,
3308 176, 177, 178, 179, 0, 0, 0, 0, 0, 0,
3309 0, 0, 0, 0, 0, 180, 181, 0, 0, 0,
3310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3311 0, 0, 0, 0, 0, 0, 0, 182, 183, 184,
3312 185, 186, 187, 188, 189, 190, 191, 0, 192, 193,
3313 652, 571, 0, 0, 653, 194, 0, 0, 0, 0,
3314 0, 0, 0, 0, 0, 0, 165, 166, 167, 168,
3315 169, 170, 171, 172, 173, 0, 0, 174, 175, 0,
3316 0, 176, 177, 178, 179, 0, 0, 0, 0, 0,
3317 0, 0, 0, 0, 0, 0, 180, 181, 0, 0,
3318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3319 0, 0, 0, 0, 0, 0, 0, 0, 182, 183,
3320 184, 185, 186, 187, 188, 189, 190, 191, 0, 192,
3321 193, 740, 563, 0, 0, 741, 194, 0, 0, 0,
3322 0, 0, 0, 0, 0, 0, 0, 165, 166, 167,
3323 168, 169, 170, 171, 172, 173, 0, 0, 174, 175,
3324 0, 0, 176, 177, 178, 179, 0, 0, 0, 0,
3325 0, 0, 0, 0, 0, 0, 0, 180, 181, 0,
3326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3327 0, 0, 0, 0, 0, 0, 0, 0, 0, 182,
3328 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
3329 192, 193, 743, 571, 0, 0, 744, 194, 0, 0,
3330 0, 0, 0, 0, 0, 0, 0, 0, 165, 166,
3331 167, 168, 169, 170, 171, 172, 173, 0, 0, 174,
3332 175, 0, 0, 176, 177, 178, 179, 0, 0, 0,
3333 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
3334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3336 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3337 0, 192, 193, 749, 563, 0, 0, 750, 194, 0,
3338 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
3339 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
3340 174, 175, 0, 0, 176, 177, 178, 179, 0, 0,
3341 0, 0, 0, 0, 0, 0, 0, 0, 0, 180,
3342 181, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3344 0, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3345 191, 0, 192, 193, 819, 563, 0, 0, 820, 194,
3346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3347 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
3348 0, 174, 175, 0, 0, 176, 177, 178, 179, 0,
3349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3350 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
3351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3352 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
3353 190, 191, 0, 192, 193, 822, 571, 0, 0, 823,
3354 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3355 0, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3356 0, 0, 174, 175, 0, 0, 176, 177, 178, 179,
3357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3358 0, 180, 181, 0, 0, 0, 0, 0, 0, 0,
3359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3360 0, 0, 0, 182, 183, 184, 185, 186, 187, 188,
3361 189, 190, 191, 0, 192, 193, 1047, 563, 0, 0,
3362 1048, 194, 0, 0, 0, 0, 0, 0, 0, 0,
3363 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
3364 173, 0, 0, 174, 175, 0, 0, 176, 177, 178,
3365 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3366 0, 0, 180, 181, 0, 0, 0, 0, 0, 0,
3367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3368 0, 0, 0, 0, 182, 183, 184, 185, 186, 187,
3369 188, 189, 190, 191, 0, 192, 193, 1050, 571, 0,
3370 0, 1051, 194, 0, 0, 0, 0, 0, 0, 0,
3371 0, 0, 0, 165, 166, 167, 168, 169, 170, 171,
3372 172, 173, 0, 0, 174, 175, 0, 0, 176, 177,
3373 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
3374 0, 0, 0, 180, 181, 0, 0, 0, 0, 0,
3375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3376 0, 0, 0, 0, 0, 182, 183, 184, 185, 186,
3377 187, 188, 189, 190, 191, 0, 192, 193, 1064, 563,
3378 0, 0, 1065, 194, 0, 0, 0, 0, 0, 0,
3379 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
3380 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
3381 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
3382 0, 0, 0, 0, 180, 181, 0, 0, 0, 0,
3383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3384 0, 0, 0, 0, 0, 0, 182, 183, 184, 185,
3385 186, 187, 188, 189, 190, 191, 0, 192, 193, 0,
3389 #define yypact_value_is_default(yystate) \ 3390 ((yystate) == (-876)) 3392 #define yytable_value_is_error(yytable_value) \ 3393 ((yytable_value) == (-643)) 3397 2, 57, 27, 86, 29, 69, 98, 66, 364, 22,
3398 81, 16, 17, 8, 97, 20, 28, 418, 584, 4,
3399 477, 329, 8, 16, 17, 426, 358, 20, 92, 55,
3400 473, 89, 426, 28, 92, 65, 8, 583, 357, 796,
3401 96, 360, 28, 787, 266, 2, 55, 4, 270, 76,
3402 92, 53, 54, 51, 69, 81, 28, 874, 601, 2,
3403 53, 4, 57, 76, 446, 224, 787, 93, 94, 95,
3404 464, 51, 728, 16, 17, 796, 732, 20, 26, 381,
3405 523, 667, 407, 408, 876, 404, 37, 38, 935, 624,
3406 422, 25, 254, 26, 29, 13, 0, 25, 680, 87,
3407 88, 96, 421, 63, 423, 16, 17, 13, 51, 20,
3408 63, 78, 55, 88, 931, 88, 651, 88, 88, 13,
3409 329, 16, 17, 66, 716, 20, 137, 88, 25, 13,
3410 449, 723, 87, 88, 145, 1010, 219, 140, 81, 87,
3411 88, 90, 145, 475, 145, 88, 89, 896, 477, 92,
3412 93, 94, 95, 113, 25, 122, 144, 476, 53, 54,
3413 113, 25, 37, 38, 326, 13, 249, 26, 117, 144,
3414 987, 144, 25, 144, 144, 896, 88, 1024, 88, 114,
3415 25, 136, 939, 144, 13, 1060, 134, 25, 136, 144,
3416 25, 139, 256, 985, 145, 278, 144, 13, 407, 408,
3417 944, 134, 951, 137, 275, 748, 1023, 742, 206, 137,
3418 667, 139, 13, 137, 256, 134, 218, 752, 939, 137,
3419 247, 145, 224, 228, 142, 230, 231, 145, 56, 231,
3420 631, 632, 144, 139, 144, 228, 142, 230, 632, 145,
3421 137, 256, 139, 241, 274, 139, 661, 272, 142, 275,
3422 54, 145, 310, 311, 312, 313, 254, 589, 142, 1003,
3423 642, 145, 705, 206, 920, 324, 137, 599, 88, 89,
3424 329, 590, 92, 137, 254, 134, 435, 863, 13, 865,
3425 139, 600, 1003, 27, 137, 228, 821, 230, 231, 1010,
3426 373, 234, 137, 236, 142, 252, 598, 145, 241, 137,
3427 90, 327, 137, 367, 88, 887, 263, 365, 366, 252,
3428 856, 254, 234, 142, 857, 90, 145, 228, 327, 230,
3429 263, 864, 137, 1067, 309, 367, 142, 117, 326, 145,
3430 145, 324, 275, 228, 13, 230, 329, 259, 667, 1060,
3431 262, 142, 117, 290, 145, 292, 326, 294, 407, 408,
3432 63, 298, 309, 358, 920, 13, 358, 314, 90, 15,
3433 144, 17, 137, 778, 779, 360, 309, 310, 311, 312,
3434 313, 314, 315, 316, 139, 957, 958, 143, 710, 88,
3435 145, 324, 738, 326, 327, 117, 329, 88, 713, 714,
3436 709, 117, 711, 87, 88, 720, 721, 110, 142, 112,
3437 204, 145, 473, 207, 208, 209, 863, 142, 865, 404,
3438 145, 137, 90, 90, 234, 358, 236, 422, 361, 727,
3439 422, 143, 365, 366, 646, 87, 88, 143, 423, 90,
3440 143, 443, 434, 435, 28, 144, 25, 380, 143, 117,
3441 117, 984, 136, 144, 446, 139, 117, 473, 443, 25,
3442 144, 534, 523, 63, 449, 137, 117, 443, 787, 874,
3443 1042, 876, 621, 142, 407, 408, 145, 796, 415, 870,
3444 475, 443, 90, 475, 136, 142, 870, 100, 145, 422,
3445 117, 476, 144, 103, 142, 90, 25, 145, 63, 446,
3446 310, 311, 312, 313, 90, 315, 316, 523, 707, 117,
3447 110, 124, 112, 446, 713, 714, 428, 832, 87, 88,
3448 432, 720, 721, 456, 1049, 437, 931, 932, 582, 583,
3449 324, 117, 90, 418, 137, 329, 551, 139, 117, 56,
3450 473, 453, 475, 143, 863, 110, 865, 112, 113, 566,
3451 115, 117, 91, 490, 569, 365, 366, 574, 137, 117,
3452 497, 140, 908, 25, 567, 63, 145, 136, 914, 67,
3453 380, 137, 575, 139, 140, 144, 461, 896, 63, 145,
3454 985, 117, 987, 407, 408, 577, 647, 54, 117, 137,
3455 523, 579, 609, 581, 589, 14, 15, 589, 65, 66,
3456 424, 425, 585, 90, 599, 590, 609, 599, 137, 624,
3457 522, 140, 110, 615, 112, 600, 145, 609, 1023, 137,
3458 939, 770, 70, 417, 418, 110, 450, 112, 113, 621,
3459 615, 647, 426, 832, 960, 961, 651, 139, 52, 615,
3460 54, 55, 56, 57, 705, 52, 579, 896, 581, 56,
3461 642, 134, 70, 615, 140, 117, 589, 52, 707, 54,
3462 55, 56, 57, 90, 713, 714, 599, 461, 601, 602,
3463 464, 720, 721, 139, 90, 137, 758, 117, 140, 127,
3464 128, 129, 139, 145, 1003, 141, 678, 56, 680, 705,
3465 117, 1010, 746, 135, 1016, 642, 137, 745, 90, 747,
3466 717, 117, 635, 87, 88, 113, 70, 724, 1017, 642,
3467 756, 1037, 1038, 113, 647, 710, 113, 1043, 710, 1045,
3468 1046, 137, 516, 137, 113, 117, 711, 742, 137, 90,
3469 790, 97, 724, 645, 794, 727, 728, 752, 730, 142,
3470 732, 1060, 137, 90, 727, 137, 631, 63, 1074, 1075,
3471 1076, 1077, 136, 17, 1003, 586, 117, 1083, 1007, 706,
3472 144, 1010, 90, 1012, 56, 121, 26, 58, 25, 784,
3473 117, 756, 705, 706, 707, 140, 137, 710, 770, 70,
3474 713, 714, 137, 832, 137, 63, 135, 720, 721, 117,
3475 137, 585, 602, 134, 110, 137, 112, 113, 846, 87,
3476 88, 137, 856, 682, 858, 684, 821, 137, 99, 100,
3477 143, 1060, 745, 1062, 747, 748, 143, 809, 1067, 811,
3478 1069, 44, 616, 137, 618, 635, 137, 87, 88, 2,
3479 1079, 4, 110, 124, 112, 113, 896, 631, 632, 139,
3480 90, 90, 754, 16, 17, 70, 117, 20, 136, 841,
3481 10, 8, 844, 135, 13, 843, 144, 137, 117, 771,
3482 85, 86, 850, 851, 137, 52, 854, 117, 117, 137,
3483 782, 137, 52, 927, 134, 137, 136, 52, 51, 139,
3484 10, 896, 676, 135, 144, 10, 137, 137, 137, 713,
3485 714, 907, 119, 66, 967, 887, 720, 721, 70, 832,
3486 125, 126, 127, 128, 129, 141, 737, 15, 702, 897,
3487 843, 139, 900, 846, 70, 88, 89, 850, 851, 92,
3488 137, 854, 753, 911, 857, 135, 137, 135, 920, 85,
3489 86, 864, 137, 727, 26, 745, 951, 747, 91, 955,
3490 9, 765, 766, 1003, 768, 769, 137, 1007, 936, 937,
3491 1010, 140, 1012, 125, 126, 127, 128, 129, 142, 137,
3492 137, 873, 117, 137, 897, 957, 958, 900, 124, 125,
3493 126, 127, 128, 129, 907, 990, 137, 122, 911, 137,
3494 87, 88, 790, 971, 796, 973, 1002, 799, 137, 137,
3495 137, 979, 786, 137, 137, 87, 88, 56, 137, 135,
3496 1060, 122, 1062, 936, 937, 884, 885, 1067, 832, 1069,
3497 889, 999, 891, 925, 893, 137, 847, 56, 849, 1079,
3498 814, 1016, 955, 111, 1016, 137, 1018, 1019, 859, 136,
3499 139, 137, 1017, 206, 1049, 137, 846, 144, 971, 137,
3500 973, 456, 134, 139, 136, 869, 979, 139, 137, 70,
3501 1042, 984, 144, 93, 95, 228, 896, 230, 231, 853,
3502 724, 234, 811, 236, 85, 86, 999, 1019, 241, 1002,
3503 778, 87, 88, 87, 88, 1024, 870, 759, 699, 252,
3504 515, 254, 1018, 1016, 896, 298, 917, 918, 896, 101,
3505 263, 922, 210, 59, 96, 926, 928, 87, 88, 1003,
3506 790, 122, 123, 124, 125, 126, 127, 128, 129, 87,
3507 88, 87, 88, 787, 87, 88, 995, 996, 997, 998,
3508 136, 1007, 136, -1, 87, 88, -1, 939, 144, 941,
3509 144, -1, -1, -1, 946, -1, 309, 310, 311, 312,
3510 313, 314, 315, 316, -1, -1, 136, -1, 87, 88,
3511 -1, 324, -1, 326, 144, -1, 329, -1, 136, -1,
3512 136, -1, 993, 136, -1, -1, 144, -1, 144, -1,
3513 -1, 144, -1, 136, -1, -1, 16, 17, -1, 1058,
3514 20, 144, 63, -1, -1, 358, -1, -1, 361, 1020,
3515 1021, -1, 365, 366, -1, 1003, -1, 136, 1010, 1007,
3516 1012, -1, 1010, -1, 1012, 144, -1, 380, 48, 49,
3517 -1, -1, -1, 53, 54, -1, -1, 1029, 52, -1,
3518 54, 55, 56, 57, 58, 63, 66, 67, -1, 110,
3519 -1, 112, 113, -1, 407, 408, 70, 52, -1, 54,
3520 55, 56, 57, 58, -1, -1, -1, -1, 1060, 422,
3521 1062, -1, 1060, -1, 1062, 70, -1, 1069, 92, 1067,
3522 -1, 1069, -1, -1, 98, 99, 100, 1079, -1, -1,
3523 -1, 1079, 110, 446, 112, 113, 52, 92, 54, 55,
3524 56, 57, -1, 456, 99, 100, -1, -1, 54, 55,
3525 124, 57, 52, 127, 54, 55, 56, 57, 0, 65,
3526 66, -1, 475, -1, -1, 139, 8, 9, 10, 124,
3527 -1, 13, 14, 15, -1, 17, 92, -1, 44, -1,
3528 -1, -1, 98, -1, 26, 27, 40, 41, 42, 43,
3529 44, 2, 92, 4, -1, 37, 38, -1, 40, 41,
3530 42, 43, 44, -1, 70, 71, 72, 73, 74, 75,
3531 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
3532 86, -1, -1, -1, 204, -1, -1, 207, 208, 209,
3533 -1, 211, 52, -1, 54, 55, 56, 57, -1, -1,
3534 51, -1, -1, -1, 55, 87, 88, -1, 228, -1,
3535 230, 231, 118, -1, 120, 121, 122, 123, 124, 125,
3536 126, 127, 128, 129, -1, -1, 579, -1, 581, 111,
3537 81, 137, 92, -1, -1, -1, 589, -1, 98, -1,
3538 -1, -1, 93, 94, 95, -1, 599, -1, 601, 602,
3539 -1, -1, 134, 135, -1, -1, -1, 139, 140, -1,
3540 142, -1, 144, 145, 52, 44, 54, 55, 56, 57,
3541 59, 60, 61, 62, -1, -1, -1, -1, -1, -1,
3542 -1, -1, 635, -1, -1, -1, -1, -1, -1, 642,
3543 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3544 79, 80, 81, 82, 324, -1, 85, 86, -1, 329,
3545 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
3546 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
3547 350, 351, 352, 353, 354, 355, -1, -1, 358, 118,
3548 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3549 129, -1, -1, 706, 707, 206, -1, 710, -1, -1,
3550 713, 714, -1, -1, -1, -1, -1, 720, 721, -1,
3551 -1, 52, -1, 54, 55, 56, 57, 58, -1, -1,
3552 -1, -1, -1, -1, -1, -1, -1, 407, 408, 70,
3553 241, -1, 745, -1, 747, 748, 416, 417, 418, -1,
3554 -1, 252, 422, 254, 424, 425, 426, -1, -1, -1,
3555 -1, 92, 263, -1, -1, -1, -1, 98, 99, 100,
3556 -1, -1, -1, -1, 275, 445, -1, -1, -1, -1,
3557 450, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3558 -1, 461, -1, 124, 464, -1, 127, -1, -1, -1,
3559 -1, -1, -1, -1, -1, 475, -1, -1, 309, -1,
3560 -1, -1, -1, 314, 145, -1, 52, -1, 54, 55,
3561 56, 57, 58, -1, -1, 326, 327, -1, 329, 832,
3562 -1, 501, -1, -1, 70, -1, -1, -1, -1, -1,
3563 843, -1, -1, 846, -1, -1, 516, 850, 851, -1,
3564 -1, 854, -1, -1, 857, -1, 92, -1, -1, -1,
3565 361, 864, 98, 99, 100, 2, -1, 4, -1, -1,
3566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3567 -1, -1, -1, -1, -1, -1, -1, -1, 124, -1,
3568 -1, 127, -1, -1, 897, -1, -1, 900, -1, -1,
3569 -1, -1, -1, -1, -1, -1, 407, 408, 911, -1,
3570 -1, -1, -1, -1, 51, 585, -1, -1, 55, 589,
3571 -1, -1, -1, -1, -1, -1, -1, -1, -1, 599,
3572 -1, -1, -1, 936, 937, -1, -1, -1, -1, -1,
3573 -1, -1, -1, -1, 81, 446, 616, -1, 618, -1,
3574 -1, -1, -1, -1, -1, 456, 93, 94, 95, 96,
3575 -1, 631, 632, -1, -1, -1, -1, -1, 971, -1,
3576 973, -1, 473, -1, -1, -1, 979, -1, -1, -1,
3577 -1, 984, -1, -1, -1, -1, -1, -1, -1, -1,
3578 -1, -1, -1, -1, -1, -1, 999, -1, -1, -1,
3579 -1, -1, -1, -1, -1, -1, 676, -1, -1, -1,
3580 -1, -1, -1, 1016, -1, -1, -1, -1, -1, -1,
3581 -1, -1, 523, -1, -1, -1, -1, -1, -1, -1,
3582 -1, -1, 702, -1, -1, -1, -1, 707, 708, -1,
3583 710, -1, -1, 713, 714, -1, -1, -1, -1, -1,
3584 720, 721, -1, -1, -1, -1, -1, 727, -1, -1,
3585 -1, -1, -1, -1, -1, -1, -1, -1, -1, 206,
3586 -1, -1, -1, -1, -1, -1, -1, -1, 579, -1,
3587 581, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3588 -1, -1, -1, -1, -1, 765, 766, -1, 768, 769,
3589 601, -1, -1, -1, 241, -1, -1, -1, -1, -1,
3590 -1, -1, -1, -1, -1, 252, 786, 254, -1, -1,
3591 -1, -1, -1, -1, -1, -1, 263, -1, -1, -1,
3592 -1, -1, -1, -1, -1, -1, -1, -1, 275, -1,
3593 -1, 642, -1, -1, 814, -1, 647, -1, -1, -1,
3594 -1, -1, -1, -1, 824, -1, -1, -1, -1, -1,
3595 -1, -1, 832, -1, -1, -1, -1, -1, -1, -1,
3596 -1, -1, 309, -1, -1, -1, -1, 314, -1, 2,
3597 -1, 4, -1, 853, -1, -1, -1, 688, -1, 326,
3598 327, -1, -1, -1, -1, -1, -1, -1, -1, 869,
3599 870, -1, -1, -1, 705, 706, 707, -1, -1, -1,
3600 -1, -1, 713, 714, -1, -1, -1, 52, 53, 720,
3601 721, 56, -1, -1, 361, -1, -1, -1, 51, -1,
3602 -1, -1, 55, 68, 69, 70, 71, 72, 73, 74,
3603 75, 76, -1, -1, 79, 80, -1, 748, 83, 84,
3604 85, 86, -1, -1, -1, -1, -1, -1, 81, -1,
3605 -1, -1, -1, 98, 99, -1, -1, -1, -1, -1,
3606 93, 94, 95, 96, -1, 2, -1, 4, -1, -1,
3607 -1, -1, -1, -1, -1, 120, 121, 122, 123, 124,
3608 125, 126, 127, 128, 129, -1, 131, 132, -1, -1,
3609 -1, -1, -1, 138, -1, -1, -1, -1, -1, 446,
3610 -1, -1, -1, -1, -1, -1, -1, -1, -1, 456,
3611 -1, -1, -1, -1, 51, -1, -1, -1, -1, -1,
3612 -1, 832, -1, 2, -1, 4, 473, -1, -1, -1,
3613 -1, -1, 843, -1, -1, -1, 1016, -1, -1, 850,
3614 851, -1, -1, 854, -1, -1, 857, -1, -1, -1,
3615 -1, -1, -1, 864, -1, -1, 93, -1, -1, 70,
3616 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3617 81, 82, 51, 206, 85, 86, 523, -1, -1, -1,
3618 -1, -1, -1, -1, -1, -1, 897, -1, -1, 900,
3619 -1, -1, -1, -1, -1, -1, 907, -1, -1, -1,
3620 911, -1, -1, -1, -1, -1, -1, 118, 241, 120,
3621 121, 122, 123, 124, 125, 126, 127, 128, 129, 252,
3622 -1, 254, -1, -1, -1, 936, 937, -1, -1, -1,
3623 263, -1, 579, -1, 581, -1, -1, -1, -1, -1,
3624 -1, -1, 275, -1, 955, -1, -1, -1, -1, -1,
3625 -1, -1, -1, -1, 601, -1, -1, -1, -1, -1,
3626 971, -1, 973, -1, -1, -1, -1, -1, 979, 206,
3627 -1, -1, -1, 984, -1, -1, 309, -1, -1, -1,
3628 -1, 314, -1, -1, -1, -1, -1, -1, 999, -1,
3629 -1, 1002, -1, 326, 327, 642, -1, -1, -1, -1,
3630 647, -1, -1, -1, 241, -1, -1, -1, -1, -1,
3631 -1, -1, -1, -1, -1, 252, -1, 254, -1, -1,
3632 -1, -1, -1, -1, -1, -1, 263, 206, 361, -1,
3633 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3635 -1, -1, -1, -1, -1, -1, -1, -1, 705, 706,
3636 -1, -1, 241, -1, -1, -1, -1, -1, -1, -1,
3637 -1, -1, 309, 252, -1, 254, -1, 314, -1, -1,
3638 -1, -1, -1, -1, 263, -1, -1, 52, 53, 326,
3639 -1, 56, 329, -1, -1, -1, -1, -1, -1, -1,
3640 -1, 748, -1, 68, 69, 70, 71, 72, 73, 74,
3641 75, 76, -1, 446, 79, 80, -1, -1, 83, 84,
3642 85, 86, -1, 456, 361, -1, -1, -1, -1, -1,
3643 309, -1, -1, 98, 99, 314, -1, -1, -1, -1,
3644 473, -1, -1, -1, -1, -1, -1, 326, -1, -1,
3645 329, -1, -1, -1, -1, 120, 121, 122, 123, 124,
3646 125, 126, 127, 128, 129, -1, 131, 132, -1, -1,
3647 407, 408, -1, 138, -1, -1, -1, -1, -1, -1,
3648 -1, -1, 361, 70, 71, 72, 73, 74, 75, 76,
3649 523, -1, 79, 80, -1, -1, 843, -1, 85, 86,
3650 -1, -1, -1, 850, 851, -1, -1, 854, -1, 446,
3651 857, -1, -1, -1, -1, -1, -1, 864, -1, 456,
3652 -1, -1, -1, -1, -1, -1, -1, -1, 407, 408,
3653 -1, -1, -1, 120, 121, 122, 123, 124, 125, 126,
3654 127, 128, 129, -1, -1, -1, 579, -1, 581, -1,
3655 897, -1, -1, 900, -1, -1, -1, -1, -1, -1,
3656 907, -1, -1, -1, 911, -1, -1, 446, 601, -1,
3657 -1, -1, -1, -1, -1, -1, -1, 456, -1, -1,
3658 -1, -1, -1, -1, -1, -1, -1, -1, -1, 936,
3659 937, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3660 -1, -1, -1, -1, -1, -1, -1, -1, 955, 642,
3661 -1, -1, -1, -1, 647, -1, -1, -1, -1, -1,
3662 -1, -1, -1, -1, 971, -1, 973, -1, -1, -1,
3663 -1, -1, 979, -1, -1, -1, -1, 984, -1, -1,
3664 -1, -1, 579, -1, 581, -1, -1, -1, -1, -1,
3665 -1, -1, 999, -1, -1, 1002, -1, -1, -1, -1,
3666 -1, 52, 53, -1, 601, 56, -1, -1, -1, -1,
3667 -1, -1, 705, 706, -1, -1, -1, 68, 69, 70,
3668 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
3669 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
3670 579, -1, 581, -1, -1, 642, -1, 98, 99, -1,
3671 -1, -1, -1, -1, -1, 748, -1, -1, -1, -1,
3672 -1, -1, 601, -1, -1, -1, -1, -1, -1, 120,
3673 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3674 131, 132, -1, -1, -1, -1, -1, 138, -1, -1,
3675 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3676 80, 81, 82, 642, -1, 85, 86, -1, -1, 706,
3677 707, -1, -1, -1, -1, -1, 713, 714, -1, -1,
3678 -1, -1, -1, 720, 721, -1, -1, -1, -1, -1,
3679 -1, -1, -1, -1, -1, -1, -1, -1, 118, -1,
3680 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3681 843, 748, -1, -1, -1, -1, -1, 850, 851, -1,
3682 -1, 854, -1, -1, 857, 145, -1, 706, 707, -1,
3683 -1, 864, -1, -1, 713, 714, -1, -1, -1, -1,
3684 -1, 720, 721, -1, -1, -1, -1, -1, -1, -1,
3685 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3686 -1, -1, -1, -1, 897, -1, -1, 900, -1, 748,
3687 -1, -1, -1, -1, 907, -1, -1, -1, 911, -1,
3688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3689 -1, -1, -1, -1, -1, 832, -1, -1, -1, -1,
3690 -1, -1, -1, 936, 937, -1, 843, -1, -1, -1,
3691 -1, -1, -1, 850, 851, -1, -1, 854, -1, -1,
3692 857, -1, 955, -1, -1, -1, -1, 864, -1, -1,
3693 -1, -1, -1, -1, -1, -1, -1, -1, 971, -1,
3694 973, -1, -1, -1, -1, -1, 979, -1, -1, -1,
3695 -1, 984, -1, 832, -1, -1, -1, -1, -1, -1,
3696 897, -1, -1, 900, 843, -1, 999, -1, -1, 1002,
3697 907, 850, 851, -1, 911, 854, -1, -1, 857, -1,
3698 -1, -1, -1, -1, -1, 864, -1, -1, -1, -1,
3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, 936,
3700 937, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3701 -1, -1, -1, -1, -1, -1, -1, -1, 897, -1,
3702 -1, 900, -1, -1, -1, -1, -1, -1, -1, -1,
3703 -1, -1, 911, -1, 971, -1, 973, -1, -1, -1,
3704 -1, -1, 979, -1, -1, -1, -1, 984, -1, -1,
3705 -1, -1, -1, -1, -1, -1, -1, 936, 937, -1,
3706 -1, -1, 999, -1, -1, -1, -1, -1, -1, -1,
3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3709 -1, -1, 971, -1, 973, -1, -1, -1, -1, -1,
3710 979, -1, -1, 0, 1, 984, 3, 4, 5, 6,
3711 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3712 999, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3713 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3714 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3715 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3716 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
3717 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
3718 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3719 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
3720 -1, 98, -1, -1, 101, 102, 103, 104, 105, 106,
3721 107, 108, 109, 0, -1, -1, -1, -1, -1, -1,
3722 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3723 17, -1, -1, 130, 131, 132, -1, -1, -1, 26,
3724 27, 28, 29, -1, -1, 142, -1, -1, 145, -1,
3725 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3726 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3727 79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
3728 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3729 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3730 87, 88, -1, 90, 91, -1, -1, -1, -1, -1,
3731 97, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3732 129, -1, -1, -1, 111, -1, -1, 114, -1, -1,
3733 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3734 127, 128, 129, -1, -1, -1, -1, 134, 135, 136,
3735 137, 0, -1, 140, 141, 142, -1, 144, 145, 8,
3736 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3737 -1, -1, -1, -1, -1, -1, 25, -1, 27, 28,
3738 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3739 -1, 40, 41, 42, 43, 44, -1, -1, -1, 70,
3740 71, 72, 73, 74, 75, 76, 77, -1, 79, 80,
3741 -1, -1, -1, -1, 85, 86, -1, -1, -1, -1,
3742 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3743 79, 80, 81, 82, -1, -1, 85, 86, 87, 88,
3744 -1, 90, 91, -1, -1, -1, -1, -1, 97, 120,
3745 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3746 -1, -1, 111, -1, -1, 114, -1, -1, 117, 118,
3747 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3748 129, -1, -1, -1, -1, -1, 135, 136, 137, 0,
3749 -1, 140, 141, 142, -1, 144, 145, 8, 9, 10,
3750 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3751 -1, -1, -1, -1, 25, -1, 27, 28, 29, -1,
3752 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3753 41, 42, 43, 44, -1, -1, -1, 70, 71, 72,
3754 73, 74, 75, 76, -1, -1, 79, 80, -1, -1,
3755 -1, -1, 85, 86, -1, -1, -1, -1, -1, 70,
3756 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3757 81, 82, -1, -1, 85, 86, 87, 88, -1, 90,
3758 91, -1, -1, -1, -1, -1, 97, 120, 121, 122,
3759 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3760 111, -1, -1, 114, -1, -1, 117, 118, 119, 120,
3761 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3762 -1, -1, -1, -1, 135, 136, 137, 0, -1, 140,
3763 141, 142, -1, 144, 145, 8, 9, 10, -1, -1,
3764 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3765 -1, -1, -1, 26, 27, 28, 29, -1, -1, -1,
3766 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3767 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3769 -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
3770 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3771 -1, -1, 85, 86, 87, 88, -1, -1, 91, -1,
3772 -1, -1, -1, -1, 97, -1, -1, -1, -1, -1,
3773 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
3774 -1, 114, -1, -1, -1, 118, 119, 120, 121, 122,
3775 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3776 -1, 134, 135, 136, 137, 0, -1, 140, 141, 142,
3777 -1, 144, 145, 8, 9, 10, -1, -1, 13, 14,
3778 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3779 -1, 26, 27, 28, 29, -1, -1, -1, -1, -1,
3780 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3781 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3782 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3783 -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
3784 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
3785 85, 86, 87, 88, -1, -1, 91, -1, -1, -1,
3786 -1, -1, 97, -1, -1, -1, -1, -1, -1, -1,
3787 -1, -1, -1, -1, -1, -1, 111, -1, -1, 114,
3788 -1, -1, -1, 118, 119, 120, 121, 122, 123, 124,
3789 125, 126, 127, 128, 129, -1, -1, -1, -1, 134,
3790 135, 136, 137, 0, -1, 140, 141, 142, -1, 144,
3791 145, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3792 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3793 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3794 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3797 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3798 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3799 87, 88, -1, 90, 91, -1, -1, -1, -1, -1,
3800 97, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3801 -1, -1, -1, -1, 111, -1, -1, 114, -1, -1,
3802 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3803 127, 128, 129, -1, -1, -1, -1, -1, 135, 136,
3804 137, 0, -1, 140, 141, 142, -1, 144, 145, 8,
3805 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3806 -1, -1, -1, -1, -1, -1, -1, 26, 27, 28,
3807 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3808 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
3809 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3811 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3812 79, 80, 81, 82, -1, -1, 85, 86, 87, 88,
3813 -1, -1, 91, -1, -1, -1, -1, -1, 97, -1,
3814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3815 -1, -1, 111, -1, -1, -1, -1, -1, -1, 118,
3816 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3817 129, -1, -1, -1, -1, 134, 135, 136, 137, 0,
3818 139, 140, 141, 142, -1, 144, 145, 8, 9, 10,
3819 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3820 -1, -1, -1, -1, -1, -1, 27, 28, 29, -1,
3821 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3822 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3824 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
3825 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3826 81, 82, -1, -1, 85, 86, 87, 88, -1, -1,
3827 91, -1, -1, -1, -1, -1, 97, -1, -1, -1,
3828 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3829 111, -1, -1, 114, -1, -1, -1, 118, 119, 120,
3830 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3831 -1, -1, -1, -1, 135, 136, 137, 0, -1, 140,
3832 141, 142, -1, 144, 145, 8, 9, 10, -1, -1,
3833 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3834 -1, -1, -1, 26, 27, 28, -1, -1, -1, -1,
3835 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3836 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3837 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3838 -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
3839 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3840 -1, -1, 85, 86, 87, 88, -1, -1, 91, -1,
3841 -1, -1, -1, -1, 97, -1, -1, -1, -1, -1,
3842 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
3843 -1, -1, -1, -1, -1, 118, -1, 120, 121, 122,
3844 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3845 -1, 134, 135, 136, 137, 0, 139, 140, 141, 142,
3846 -1, 144, 145, 8, 9, 10, -1, -1, 13, 14,
3847 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3848 -1, -1, 27, 28, -1, -1, -1, -1, -1, -1,
3849 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3850 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3851 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3852 -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
3853 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
3854 85, 86, 87, 88, -1, -1, 91, -1, -1, -1,
3855 -1, -1, 97, -1, -1, -1, -1, -1, -1, -1,
3856 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1,
3857 -1, -1, -1, 118, -1, 120, 121, 122, 123, 124,
3858 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
3859 135, 136, 137, 0, 139, 140, 141, 142, -1, 144,
3860 145, 8, 9, 10, -1, -1, -1, 14, 15, -1,
3861 17, -1, -1, -1, -1, -1, -1, -1, -1, 26,
3862 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3863 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3864 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3866 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3867 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3868 87, 88, -1, 90, -1, -1, -1, -1, -1, -1,
3869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3870 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1,
3871 117, 118, -1, 120, 121, 122, 123, 124, 125, 126,
3872 127, 128, 129, -1, -1, -1, -1, 134, 135, 136,
3873 137, 0, -1, 140, -1, 142, -1, 144, 145, 8,
3874 9, 10, -1, -1, -1, 14, 15, -1, 17, -1,
3875 -1, -1, -1, -1, -1, -1, -1, 26, -1, -1,
3876 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3877 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
3878 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3880 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3881 79, 80, 81, 82, -1, -1, 85, 86, 87, 88,
3882 -1, 90, -1, -1, -1, -1, -1, -1, -1, -1,
3883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3884 -1, -1, 111, -1, -1, -1, -1, -1, 117, 118,
3885 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3886 129, -1, -1, -1, -1, 134, 135, 136, 137, 0,
3887 -1, 140, -1, 142, -1, 144, 145, 8, 9, 10,
3888 -1, -1, -1, 14, 15, -1, 17, -1, -1, -1,
3889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3890 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3891 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3892 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3893 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
3894 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3895 81, 82, -1, -1, 85, 86, 87, 88, -1, 90,
3896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3898 111, -1, -1, -1, -1, -1, 117, 118, -1, 120,
3899 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3900 -1, -1, -1, -1, 135, 136, 137, 0, -1, 140,
3901 -1, 142, -1, 144, 145, 8, 9, 10, -1, -1,
3902 -1, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3904 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3905 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3907 -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
3908 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3909 -1, -1, 85, 86, 87, 88, -1, 90, -1, -1,
3910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3911 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
3912 -1, -1, -1, -1, 117, 118, -1, 120, 121, 122,
3913 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3914 -1, -1, 135, 136, 137, -1, -1, 140, -1, 142,
3915 -1, 144, 145, 1, -1, 3, 4, 5, 6, 7,
3916 8, 9, 10, 11, 12, -1, -1, 15, 16, -1,
3917 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3918 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3919 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3920 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3921 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
3922 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
3923 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3924 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
3925 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
3926 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
3927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3928 -1, -1, 130, 131, 132, -1, -1, -1, -1, -1,
3929 -1, -1, -1, -1, 142, -1, 1, 145, 3, 4,
3930 5, 6, 7, -1, -1, 10, 11, 12, -1, 14,
3931 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3932 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3933 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3934 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3935 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
3936 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
3937 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3938 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
3939 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
3940 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
3941 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3942 -1, -1, -1, -1, -1, 130, 131, 132, -1, -1,
3943 -1, -1, -1, -1, -1, -1, -1, 142, -1, 1,
3944 145, 3, 4, 5, 6, 7, -1, -1, 10, 11,
3945 12, -1, -1, 15, 16, 17, 18, 19, 20, 21,
3946 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3947 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3948 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3949 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
3950 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
3951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3952 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
3953 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
3954 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
3955 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3956 -1, -1, -1, -1, -1, -1, -1, -1, 130, 131,
3957 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3958 142, -1, 1, 145, 3, 4, 5, 6, 7, -1,
3959 -1, 10, 11, 12, -1, -1, 15, 16, -1, 18,
3960 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3961 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3962 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3963 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3964 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
3965 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3966 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3967 89, -1, -1, 92, 93, -1, 95, 96, -1, 98,
3968 -1, -1, 101, 102, 103, 104, 105, 106, 107, 108,
3969 109, -1, -1, -1, -1, -1, -1, -1, -1, 1,
3970 -1, 3, 4, 5, 6, 7, -1, 9, 10, 11,
3971 12, 130, 131, 132, 16, -1, 18, 19, 20, 21,
3972 22, 23, 24, 142, -1, -1, 145, -1, 30, 31,
3973 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3974 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3975 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
3976 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
3977 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3978 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
3979 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
3980 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
3981 -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
3982 5, 6, 7, -1, -1, -1, 11, 12, 130, 131,
3983 132, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3984 142, -1, -1, 145, -1, 30, 31, 32, 33, 34,
3985 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3986 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3987 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
3988 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
3989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3990 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
3991 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
3992 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
3993 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3994 -1, -1, -1, -1, -1, 130, 131, 132, 1, -1,
3995 3, 4, 5, 6, 7, 140, -1, 142, 11, 12,
3996 145, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3997 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3998 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3999 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4000 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4001 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4002 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4003 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4004 93, -1, 95, 96, -1, 98, -1, -1, 101, 102,
4005 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4006 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4007 -1, -1, -1, -1, -1, -1, -1, 130, 131, 132,
4008 1, -1, 3, 4, 5, 6, 7, 140, -1, 142,
4009 11, 12, 145, -1, -1, 16, -1, 18, 19, 20,
4010 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4011 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4012 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4013 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4014 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4015 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4016 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4017 -1, 92, 93, -1, 95, 96, -1, 98, -1, -1,
4018 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4019 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4020 -1, -1, -1, -1, -1, -1, -1, -1, -1, 130,
4021 131, 132, -1, -1, 135, -1, -1, -1, -1, -1,
4022 -1, 142, -1, 1, 145, 3, 4, 5, 6, 7,
4023 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
4024 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4025 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4026 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4027 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4028 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4029 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4030 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4031 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4032 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4033 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4034 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4035 -1, -1, 130, 131, 132, -1, -1, 135, -1, -1,
4036 -1, -1, -1, -1, 142, -1, 1, 145, 3, 4,
4037 5, 6, 7, -1, -1, 10, 11, 12, -1, -1,
4038 -1, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4039 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4040 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4041 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
4042 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
4043 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
4044 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4045 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
4046 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
4047 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
4048 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
4049 -1, -1, -1, 11, 12, 130, 131, 132, 16, -1,
4050 18, 19, 20, 21, 22, 23, 24, 142, -1, -1,
4051 145, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4052 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4053 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4054 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4055 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4056 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4057 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4058 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4059 108, 109, -1, 111, -1, -1, -1, -1, -1, -1,
4060 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4061 11, 12, 130, 131, 132, 16, -1, 18, 19, 20,
4062 21, 22, 23, 24, 142, -1, -1, 145, -1, 30,
4063 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4064 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4065 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
4066 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4068 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4069 -1, 92, 93, -1, 95, 96, -1, 98, 99, 100,
4070 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4071 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4072 4, 5, -1, 7, -1, -1, -1, 11, 12, 130,
4073 131, 132, 16, -1, 18, 19, 20, 21, 22, 23,
4074 24, -1, -1, -1, 145, -1, 30, 31, 32, 33,
4075 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4076 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4077 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4078 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4079 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4080 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4081 -1, 95, 96, -1, -1, -1, -1, 101, 102, 103,
4082 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4083 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4084 7, -1, -1, -1, 11, 12, 130, 131, 132, 16,
4085 -1, 18, 19, 20, 21, 22, 23, 24, 142, -1,
4086 -1, 145, -1, 30, 31, 32, 33, 34, 35, 36,
4087 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4088 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4089 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4090 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4092 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4093 -1, -1, -1, -1, 101, 102, 103, 104, 105, 106,
4094 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4095 -1, -1, -1, 3, 4, 5, 6, 7, -1, -1,
4096 -1, 11, 12, 130, 131, 132, 16, -1, 18, 19,
4097 20, 21, 22, 23, 24, -1, -1, -1, 145, -1,
4098 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4099 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4100 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4101 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
4102 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4103 -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
4104 -1, -1, 92, 93, -1, 95, 96, -1, 98, -1,
4105 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4107 3, 4, 5, 6, 7, -1, -1, -1, 11, 12,
4108 130, 131, 132, 16, -1, 18, 19, 20, 21, 22,
4109 23, 24, 142, -1, -1, -1, -1, 30, 31, 32,
4110 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4111 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4112 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4113 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4114 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4115 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4116 93, -1, 95, 96, -1, 98, -1, -1, 101, 102,
4117 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4118 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4119 -1, -1, -1, -1, -1, -1, -1, 130, 131, 132,
4120 -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
4121 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
4122 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
4123 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
4124 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
4125 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4126 53, 54, 55, 56, 57, -1, -1, -1, -1, -1,
4127 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
4128 73, 74, 75, 76, -1, -1, 79, 80, -1, -1,
4129 83, 84, 85, 86, -1, -1, -1, -1, -1, -1,
4130 -1, -1, -1, -1, -1, 98, 99, -1, -1, -1,
4131 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4132 -1, -1, -1, -1, -1, -1, -1, 120, 121, 122,
4133 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
4134 -1, -1, -1, -1, -1, 138, 139, 3, 4, 5,
4135 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
4136 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
4137 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4138 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
4139 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4140 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
4141 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
4142 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
4143 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4144 -1, -1, 98, 99, -1, -1, -1, -1, -1, -1,
4145 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4146 -1, -1, -1, -1, 120, 121, 122, 123, 124, 125,
4147 126, 127, 128, 129, -1, 131, 132, -1, -1, -1,
4148 -1, -1, 138, 3, 4, 5, 6, 7, 8, 9,
4149 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4150 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
4151 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4152 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4153 50, 51, 52, 53, 54, -1, 56, -1, -1, -1,
4154 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
4155 70, 71, 72, 73, 74, 75, 76, -1, -1, 79,
4156 80, -1, -1, 83, 84, 85, 86, -1, -1, -1,
4157 -1, -1, -1, -1, -1, -1, -1, -1, 98, 99,
4158 -1, -1, 102, -1, -1, -1, -1, -1, -1, -1,
4159 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4160 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
4161 -1, 131, 132, -1, -1, -1, -1, -1, 138, 3,
4162 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
4163 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
4164 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
4165 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
4166 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
4167 -1, -1, 56, -1, -1, -1, -1, -1, -1, -1,
4168 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4169 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4170 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4171 -1, -1, -1, -1, 98, 99, -1, -1, 102, -1,
4172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4173 -1, -1, -1, -1, -1, -1, 120, 121, 122, 123,
4174 124, 125, 126, 127, 128, 129, -1, 131, 132, -1,
4175 -1, -1, -1, -1, 138, 3, 4, 5, 6, 7,
4176 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
4177 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
4178 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
4179 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4180 48, 49, 50, 51, 52, 53, -1, -1, 56, -1,
4181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4182 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4183 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4184 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4185 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
4186 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4187 -1, -1, 120, 121, 122, 123, 124, 125, 126, 127,
4188 128, 129, -1, 131, 132, 3, 4, 5, -1, 7,
4189 138, -1, -1, 11, 12, -1, -1, -1, 16, -1,
4190 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4191 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4192 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4193 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4194 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4195 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4196 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4197 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4198 -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4199 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4200 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4201 -1, -1, 130, 11, 12, -1, -1, -1, 16, 137,
4202 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4203 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4204 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4205 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4206 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4207 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4209 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4210 -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4211 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4212 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
4213 -1, -1, 130, 11, 12, -1, -1, -1, 16, 137,
4214 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4215 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4216 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4217 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4218 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4219 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4220 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4221 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4222 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4223 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4224 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4225 11, 12, 130, 131, 132, 16, -1, 18, 19, 20,
4226 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4227 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4228 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4229 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
4230 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4232 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4233 -1, 92, 93, -1, 95, 96, -1, 98, 99, 100,
4234 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4235 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4236 4, 5, 6, 7, -1, -1, -1, 11, 12, 130,
4237 131, 132, 16, -1, 18, 19, 20, 21, 22, 23,
4238 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4239 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4240 -1, 45, 46, -1, 48, 49, 50, 51, 52, 53,
4241 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4242 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4243 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4244 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4245 -1, 95, 96, -1, 98, -1, -1, 101, 102, 103,
4246 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4247 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4248 7, -1, -1, -1, 11, 12, 130, 131, 132, 16,
4249 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4250 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4251 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4252 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4253 57, 58, 59, 60, 61, 62, -1, 64, 65, 66,
4254 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4256 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4257 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4258 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4259 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4260 -1, 11, 12, 130, 131, 132, 16, -1, 18, 19,
4261 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4262 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4263 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4264 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
4265 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
4266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4267 -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
4268 -1, -1, 92, 93, -1, 95, 96, -1, 98, 99,
4269 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4270 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4271 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4272 130, 131, 132, 16, -1, 18, 19, 20, 21, 22,
4273 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4274 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4275 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4276 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
4277 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4278 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4279 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4280 93, -1, 95, 96, -1, -1, 99, 100, 101, 102,
4281 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4282 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4283 -1, 7, -1, -1, -1, 11, 12, 130, 131, 132,
4284 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4285 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4286 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4287 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4288 56, 57, 58, 59, 60, 61, 62, -1, 64, 65,
4289 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
4290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4291 -1, -1, -1, 89, -1, -1, 92, 93, -1, 95,
4292 96, -1, 98, 99, -1, 101, 102, 103, 104, 105,
4293 106, 107, 108, 109, -1, -1, -1, -1, -1, -1,
4294 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4295 -1, -1, 11, 12, 130, 131, 132, 16, -1, 18,
4296 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4297 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4298 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4299 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
4300 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4301 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4302 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4303 89, -1, -1, 92, 93, -1, 95, 96, -1, -1,
4304 99, -1, 101, 102, 103, 104, 105, 106, 107, 108,
4305 109, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4306 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4307 12, 130, 131, 132, 16, -1, 18, 19, 20, 21,
4308 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4309 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4310 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4311 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4312 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
4313 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4314 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4315 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
4316 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
4317 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4318 5, -1, 7, -1, -1, -1, 11, 12, 130, 131,
4319 132, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4320 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4321 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4322 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4323 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
4324 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
4325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4326 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
4327 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
4328 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
4329 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4330 -1, -1, -1, 11, 12, 130, 131, 132, 16, -1,
4331 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4332 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4333 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4334 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4335 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4336 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4338 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4339 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4340 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4341 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4342 11, 12, 130, 131, 132, 16, -1, 18, 19, 20,
4343 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4344 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4345 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4346 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4347 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4348 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4349 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4350 -1, 92, 93, -1, 95, 96, -1, 98, -1, -1,
4351 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4352 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4353 4, 5, -1, 7, -1, -1, -1, 11, 12, 130,
4354 131, 132, 16, -1, 18, 19, 20, 21, 22, 23,
4355 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4356 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4357 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4358 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4359 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4361 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4362 -1, 95, 96, -1, 98, -1, -1, 101, 102, 103,
4363 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4364 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4365 7, -1, -1, -1, 11, 12, 130, 131, 132, 16,
4366 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4367 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4368 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4369 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4370 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4371 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4373 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4374 -1, -1, -1, -1, 101, 102, 103, 104, 105, 106,
4375 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4376 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4377 -1, 11, 12, 130, 131, 132, 16, -1, 18, 19,
4378 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4379 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4380 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4381 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4382 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
4383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4384 -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
4385 -1, -1, 92, 93, -1, 95, 96, -1, -1, -1,
4386 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4388 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4389 130, 131, 132, 16, -1, 18, 19, 20, 21, 22,
4390 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4391 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4392 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4393 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4394 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4396 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4397 93, -1, 95, 96, -1, -1, -1, -1, 101, 102,
4398 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4399 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4400 -1, 7, -1, -1, -1, 11, 12, 130, 131, 132,
4401 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4402 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4403 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4404 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4405 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4406 66, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4408 -1, -1, -1, 89, -1, -1, 92, 93, -1, 95,
4409 96, -1, 98, -1, -1, 101, 102, 103, 104, 105,
4410 106, 107, 108, 109, -1, -1, -1, -1, -1, -1,
4411 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4412 -1, -1, -1, 16, 130, 18, 19, 20, 21, 22,
4413 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4414 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4415 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4416 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4417 -1, 64, 65, 66, -1, -1, -1, -1, -1, -1,
4418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4419 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4420 93, -1, 95, 96, -1, 98, -1, -1, 101, 102,
4421 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4422 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4423 -1, 11, 12, -1, -1, -1, 16, 130, 18, 19,
4424 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4425 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4426 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4427 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4428 60, 61, 62, -1, 64, 65, 66, -1, -1, -1,
4429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4430 -1, -1, -1, -1, -1, 85, -1, -1, -1, 89,
4431 -1, -1, 92, 93, -1, 95, 96, -1, -1, -1,
4432 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4433 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4434 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
4435 130, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4436 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4437 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4438 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4439 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4442 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4443 -1, -1, -1, -1, 101, 102, 103, 104, 105, 106,
4444 107, 108, 109, -1, -1, -1, -1, -1, -1, 3,
4445 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4446 -1, -1, 16, 130, 18, 19, 20, 21, 22, 23,
4447 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4448 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4449 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4450 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4451 64, 65, 66, -1, -1, -1, -1, -1, -1, -1,
4452 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4453 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4454 -1, 95, 96, -1, -1, -1, -1, 101, 102, 103,
4455 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4456 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4457 11, 12, -1, -1, -1, 16, 130, 18, 19, 20,
4458 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4459 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4460 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4461 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4462 61, 62, -1, 64, 65, 66, -1, -1, -1, -1,
4463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4464 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4465 -1, 92, 93, -1, 95, 96, -1, -1, -1, -1,
4466 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4467 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4468 -1, -1, -1, 11, 12, -1, -1, -1, 16, 130,
4469 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4470 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4471 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4472 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4473 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4476 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4477 -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4478 108, 109, -1, -1, -1, -1, -1, 52, 53, -1,
4479 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
4480 -1, -1, 130, 68, 69, 70, 71, 72, 73, 74,
4481 75, 76, -1, -1, 79, 80, -1, -1, 83, 84,
4482 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
4483 -1, -1, -1, 98, 99, -1, -1, -1, -1, -1,
4484 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4485 -1, -1, -1, -1, -1, 120, 121, 122, 123, 124,
4486 125, 126, 127, 128, 129, -1, 131, 132, 52, 53,
4487 -1, -1, 56, 138, -1, -1, -1, -1, -1, -1,
4488 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4489 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4490 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4491 -1, -1, -1, -1, 98, 99, -1, -1, -1, -1,
4492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4493 -1, -1, -1, -1, -1, -1, 120, 121, 122, 123,
4494 124, 125, 126, 127, 128, 129, -1, 131, 132, 52,
4495 53, -1, -1, 56, 138, -1, -1, -1, -1, -1,
4496 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
4497 73, 74, 75, 76, -1, -1, 79, 80, -1, -1,
4498 83, 84, 85, 86, -1, -1, -1, -1, -1, -1,
4499 -1, -1, -1, -1, -1, 98, 99, -1, -1, -1,
4500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4501 -1, -1, -1, -1, -1, -1, -1, 120, 121, 122,
4502 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
4503 52, 53, -1, -1, 56, 138, -1, -1, -1, -1,
4504 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
4505 72, 73, 74, 75, 76, -1, -1, 79, 80, -1,
4506 -1, 83, 84, 85, 86, -1, -1, -1, -1, -1,
4507 -1, -1, -1, -1, -1, -1, 98, 99, -1, -1,
4508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4509 -1, -1, -1, -1, -1, -1, -1, -1, 120, 121,
4510 122, 123, 124, 125, 126, 127, 128, 129, -1, 131,
4511 132, 52, 53, -1, -1, 56, 138, -1, -1, -1,
4512 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
4513 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
4514 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
4515 -1, -1, -1, -1, -1, -1, -1, 98, 99, -1,
4516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4517 -1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
4518 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
4519 131, 132, 52, 53, -1, -1, 56, 138, -1, -1,
4520 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
4521 70, 71, 72, 73, 74, 75, 76, -1, -1, 79,
4522 80, -1, -1, 83, 84, 85, 86, -1, -1, -1,
4523 -1, -1, -1, -1, -1, -1, -1, -1, 98, 99,
4524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4526 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
4527 -1, 131, 132, 52, 53, -1, -1, 56, 138, -1,
4528 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
4529 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
4530 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
4531 -1, -1, -1, -1, -1, -1, -1, -1, -1, 98,
4532 99, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4534 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
4535 129, -1, 131, 132, 52, 53, -1, -1, 56, 138,
4536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4537 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4538 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4540 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
4541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4542 -1, -1, 120, 121, 122, 123, 124, 125, 126, 127,
4543 128, 129, -1, 131, 132, 52, 53, -1, -1, 56,
4544 138, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4545 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4546 -1, -1, 79, 80, -1, -1, 83, 84, 85, 86,
4547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4548 -1, 98, 99, -1, -1, -1, -1, -1, -1, -1,
4549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4550 -1, -1, -1, 120, 121, 122, 123, 124, 125, 126,
4551 127, 128, 129, -1, 131, 132, 52, 53, -1, -1,
4552 56, 138, -1, -1, -1, -1, -1, -1, -1, -1,
4553 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
4554 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
4555 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4556 -1, -1, 98, 99, -1, -1, -1, -1, -1, -1,
4557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4558 -1, -1, -1, -1, 120, 121, 122, 123, 124, 125,
4559 126, 127, 128, 129, -1, 131, 132, 52, 53, -1,
4560 -1, 56, 138, -1, -1, -1, -1, -1, -1, -1,
4561 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
4562 75, 76, -1, -1, 79, 80, -1, -1, 83, 84,
4563 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
4564 -1, -1, -1, 98, 99, -1, -1, -1, -1, -1,
4565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4566 -1, -1, -1, -1, -1, 120, 121, 122, 123, 124,
4567 125, 126, 127, 128, 129, -1, 131, 132, 52, 53,
4568 -1, -1, 56, 138, -1, -1, -1, -1, -1, -1,
4569 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4570 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4571 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4572 -1, -1, -1, -1, 98, 99, -1, -1, -1, -1,
4573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4574 -1, -1, -1, -1, -1, -1, 120, 121, 122, 123,
4575 124, 125, 126, 127, 128, 129, -1, 131, 132, -1,
4583 0, 147, 148, 0, 1, 3, 4, 5, 6, 7,
4584 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4585 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4586 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4587 57, 59, 60, 61, 62, 64, 65, 66, 68, 69,
4588 89, 92, 93, 95, 96, 98, 101, 102, 103, 104,
4589 105, 106, 107, 108, 109, 130, 131, 132, 149, 150,
4590 151, 158, 160, 162, 164, 165, 168, 169, 170, 172,
4591 173, 174, 176, 177, 187, 203, 222, 223, 224, 225,
4592 226, 227, 228, 229, 230, 231, 232, 259, 260, 280,
4593 281, 282, 283, 284, 285, 286, 289, 291, 292, 306,
4594 308, 309, 310, 311, 312, 313, 314, 315, 349, 362,
4595 151, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4596 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4597 22, 23, 24, 25, 26, 30, 31, 32, 33, 34,
4598 35, 36, 37, 38, 39, 45, 46, 47, 48, 49,
4599 50, 51, 52, 53, 56, 68, 69, 70, 71, 72,
4600 73, 74, 75, 76, 79, 80, 83, 84, 85, 86,
4601 98, 99, 120, 121, 122, 123, 124, 125, 126, 127,
4602 128, 129, 131, 132, 138, 180, 181, 182, 183, 185,
4603 186, 306, 308, 39, 58, 89, 92, 98, 99, 100,
4604 103, 131, 169, 177, 187, 189, 195, 198, 200, 222,
4605 311, 312, 314, 315, 347, 348, 195, 195, 139, 196,
4606 197, 139, 192, 196, 139, 145, 356, 54, 182, 356,
4607 152, 134, 21, 22, 30, 31, 32, 168, 187, 222,
4608 187, 56, 1, 47, 92, 154, 155, 156, 158, 171,
4609 172, 362, 205, 206, 190, 200, 347, 362, 189, 346,
4610 347, 362, 46, 89, 130, 137, 176, 203, 222, 311,
4611 312, 315, 250, 251, 54, 55, 57, 180, 296, 307,
4612 295, 296, 297, 143, 287, 143, 293, 143, 290, 143,
4613 294, 310, 164, 187, 187, 142, 145, 355, 360, 361,
4614 40, 41, 42, 43, 44, 37, 38, 26, 134, 192,
4615 196, 265, 28, 257, 117, 137, 92, 98, 173, 117,
4616 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
4617 80, 81, 82, 85, 86, 118, 120, 121, 122, 123,
4618 124, 125, 126, 127, 128, 129, 87, 88, 136, 144,
4619 353, 204, 162, 163, 163, 209, 211, 163, 355, 361,
4620 89, 170, 177, 222, 238, 311, 312, 315, 52, 56,
4621 85, 89, 178, 179, 222, 311, 312, 315, 179, 33,
4622 34, 35, 36, 49, 50, 51, 52, 56, 139, 180,
4623 313, 344, 88, 353, 354, 265, 283, 90, 90, 137,
4624 189, 56, 189, 189, 189, 295, 117, 91, 137, 199,
4625 362, 88, 136, 353, 90, 90, 137, 199, 195, 356,
4626 357, 195, 194, 195, 200, 347, 362, 162, 357, 162,
4627 54, 65, 66, 159, 139, 188, 134, 154, 88, 353,
4628 90, 158, 157, 171, 140, 355, 361, 357, 357, 158,
4629 141, 137, 145, 359, 137, 359, 135, 359, 356, 56,
4630 310, 173, 175, 137, 88, 136, 353, 252, 63, 110,
4631 112, 113, 298, 113, 298, 113, 67, 298, 113, 113,
4632 288, 298, 113, 63, 113, 113, 113, 288, 113, 63,
4633 113, 70, 142, 151, 163, 163, 163, 163, 158, 162,
4634 162, 267, 266, 97, 166, 258, 98, 164, 189, 200,
4635 201, 202, 171, 137, 176, 137, 160, 161, 164, 177,
4636 187, 189, 191, 202, 222, 315, 187, 187, 187, 187,
4637 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
4638 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
4639 187, 187, 52, 53, 56, 185, 264, 350, 351, 194,
4640 52, 53, 56, 185, 263, 350, 153, 154, 13, 234,
4641 360, 234, 163, 163, 355, 17, 274, 56, 88, 136,
4642 353, 25, 162, 52, 56, 178, 121, 316, 88, 136,
4643 353, 217, 345, 218, 88, 144, 352, 52, 56, 350,
4644 161, 187, 191, 161, 191, 184, 115, 189, 98, 189,
4645 198, 347, 52, 56, 194, 52, 56, 348, 357, 140,
4646 357, 137, 137, 357, 182, 208, 187, 149, 135, 350,
4647 350, 191, 134, 357, 156, 207, 347, 137, 175, 52,
4648 56, 194, 52, 56, 52, 54, 55, 56, 57, 58,
4649 70, 92, 98, 99, 100, 124, 127, 139, 255, 320,
4650 322, 323, 324, 325, 326, 327, 328, 329, 332, 333,
4651 334, 335, 338, 339, 340, 341, 342, 300, 299, 143,
4652 298, 143, 143, 143, 187, 271, 272, 268, 269, 167,
4653 271, 189, 137, 357, 175, 137, 44, 117, 44, 88,
4654 136, 353, 356, 90, 90, 192, 196, 262, 356, 358,
4655 90, 90, 192, 196, 261, 10, 233, 8, 276, 362,
4656 154, 13, 154, 27, 235, 360, 235, 274, 200, 233,
4657 52, 56, 194, 52, 56, 213, 216, 317, 215, 52,
4658 56, 178, 194, 153, 162, 219, 220, 192, 193, 196,
4659 362, 182, 189, 189, 199, 90, 90, 358, 90, 90,
4660 347, 162, 135, 149, 357, 359, 173, 358, 92, 98,
4661 239, 240, 241, 324, 322, 253, 117, 137, 321, 189,
4662 137, 343, 362, 52, 137, 343, 137, 321, 52, 137,
4663 321, 52, 301, 54, 55, 57, 305, 315, 10, 273,
4664 135, 270, 268, 10, 98, 189, 175, 158, 187, 52,
4665 56, 194, 52, 56, 119, 161, 191, 161, 191, 166,
4666 192, 141, 90, 161, 191, 161, 191, 166, 193, 189,
4667 202, 277, 362, 15, 237, 362, 14, 236, 237, 237,
4668 210, 212, 233, 137, 234, 358, 163, 360, 163, 153,
4669 358, 233, 357, 139, 318, 319, 180, 265, 257, 90,
4670 137, 357, 135, 241, 137, 324, 137, 357, 247, 356,
4671 254, 189, 320, 326, 338, 340, 329, 334, 342, 327,
4672 335, 340, 325, 327, 302, 78, 122, 245, 246, 362,
4673 245, 135, 189, 358, 187, 161, 191, 91, 278, 362,
4674 154, 9, 279, 362, 163, 233, 233, 154, 154, 189,
4675 154, 235, 153, 360, 233, 322, 153, 322, 221, 357,
4676 240, 137, 98, 239, 140, 142, 29, 114, 256, 137,
4677 321, 137, 321, 343, 137, 321, 137, 321, 321, 303,
4678 242, 244, 247, 325, 327, 328, 330, 331, 334, 336,
4679 337, 340, 342, 154, 154, 89, 177, 222, 311, 312,
4680 315, 234, 154, 234, 233, 233, 237, 274, 275, 214,
4681 233, 357, 233, 360, 318, 137, 240, 137, 324, 52,
4682 248, 249, 323, 154, 154, 327, 340, 327, 327, 304,
4683 247, 122, 117, 137, 243, 89, 222, 137, 343, 343,
4684 137, 243, 137, 243, 56, 88, 136, 353, 154, 154,
4685 154, 153, 240, 137, 137, 356, 233, 135, 321, 137,
4686 321, 321, 321, 154, 122, 222, 242, 337, 340, 56,
4687 88, 330, 334, 327, 336, 340, 327, 52, 56, 194,
4688 52, 56, 276, 236, 233, 233, 240, 249, 327, 111,
4689 137, 243, 137, 243, 52, 56, 343, 137, 243, 137,
4690 243, 243, 358, 321, 327, 340, 327, 327, 243, 137,
4691 243, 243, 243, 327, 243
4694 #define yyerrok (yyerrstatus = 0) 4695 #define yyclearin (yychar = YYEMPTY) 4696 #define YYEMPTY (-2) 4699 #define YYACCEPT goto yyacceptlab 4700 #define YYABORT goto yyabortlab 4701 #define YYERROR goto yyerrorlab 4711 #define YYFAIL goto yyerrlab 4719 #define YYRECOVERING() (!!yyerrstatus) 4721 #define YYBACKUP(Token, Value) \ 4723 if (yychar == YYEMPTY && yylen == 1) \ 4732 parser_yyerror (parser, YY_("syntax error: cannot back up")); \ 4739 #define YYERRCODE 256 4746 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4747 #ifndef YYLLOC_DEFAULT 4748 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4752 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4753 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4754 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4755 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4759 (Current).first_line = (Current).last_line = \ 4760 YYRHSLOC (Rhs, 0).last_line; \ 4761 (Current).first_column = (Current).last_column = \ 4762 YYRHSLOC (Rhs, 0).last_column; \ 4770 #ifndef YY_LOCATION_PRINT 4771 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4778 # define YYLEX yylex (&yylval, YYLEX_PARAM) 4780 # define YYLEX yylex (&yylval, parser) 4788 # define YYFPRINTF fprintf 4791 # define YYDPRINTF(Args) \ 4797 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4801 YYFPRINTF (parser, "%s ", Title); \ 4802 yy_symbol_print (stderr, \ 4803 Type, Value, parser); \ 4804 YYFPRINTF (parser, "\n"); \ 4814 #if (defined __STDC__ || defined __C99__FUNC__ \ 4815 || defined __cplusplus || defined _MSC_VER) 4823 YYSTYPE const *
const yyvaluep;
4832 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4848 #if (defined __STDC__ || defined __C99__FUNC__ \ 4849 || defined __cplusplus || defined _MSC_VER) 4857 YYSTYPE const *
const yyvaluep;
4862 YYFPRINTF (parser,
"token %s (", yytname[yytype]);
4864 YYFPRINTF (parser,
"nterm %s (", yytname[yytype]);
4875 #if (defined __STDC__ || defined __C99__FUNC__ \ 4876 || defined __cplusplus || defined _MSC_VER) 4882 yytype_int16 *yybottom;
4883 yytype_int16 *yytop;
4887 for (; yybottom <= yytop; yybottom++)
4889 int yybot = *yybottom;
4895 # define YY_STACK_PRINT(Bottom, Top) \ 4898 yy_stack_print ((Bottom), (Top), parser); \ 4906 #if (defined __STDC__ || defined __C99__FUNC__ \ 4907 || defined __cplusplus || defined _MSC_VER) 4918 int yynrhs = yyr2[yyrule];
4920 unsigned long int yylno = yyrline[yyrule];
4921 YYFPRINTF (parser,
"Reducing stack by rule %d (line %lu):\n",
4924 for (yyi = 0; yyi < yynrhs; yyi++)
4928 &(yyvsp[(yyi + 1) - (yynrhs)])
4934 # define YY_REDUCE_PRINT(Rule) \ 4937 yy_reduce_print (yyvsp, Rule, parser); \ 4946 # define YYDPRINTF(Args) 4947 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 4948 # define YY_STACK_PRINT(Bottom, Top) 4949 # define YY_REDUCE_PRINT(Rule) 4955 # define YYINITDEPTH 200 4966 # define YYMAXDEPTH 10000 4973 # if defined __GLIBC__ && defined _STRING_H 4974 # define yystrlen strlen 4977 #if (defined __STDC__ || defined __C99__FUNC__ \ 4978 || defined __cplusplus || defined _MSC_VER) 4988 for (yylen = 0; yystr[yylen]; yylen++)
4996 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 4997 # define yystpcpy stpcpy 5001 #if (defined __STDC__ || defined __C99__FUNC__ \ 5002 || defined __cplusplus || defined _MSC_VER) 5004 yystpcpy (
char *yydest,
const char *yysrc)
5013 const char *yys = yysrc;
5015 while ((*yyd++ = *yys++) !=
'\0')
5037 char const *yyp = yystr;
5044 goto do_not_strip_quotes;
5048 goto do_not_strip_quotes;
5061 do_not_strip_quotes: ;
5067 return yystpcpy (yyres, yystr) - yyres;
5081 yytype_int16 *yyssp,
int yytoken)
5086 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
5088 const char *yyformat = 0;
5090 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
5124 int yyn = yypact[*yyssp];
5125 yyarg[yycount++] = yytname[yytoken];
5131 int yyxbegin = yyn < 0 ? -yyn : 0;
5133 int yychecklim =
YYLAST - yyn + 1;
5137 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
5138 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR 5141 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
5147 yyarg[yycount++] = yytname[yyx];
5148 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
5149 if (! (yysize <= yysize1
5159 # define YYCASE_(N, S) \ 5164 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
5165 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
5166 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
5167 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
5168 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
5172 yysize1 = yysize +
yystrlen (yyformat);
5177 if (*yymsg_alloc < yysize)
5179 *yymsg_alloc = 2 * yysize;
5180 if (! (yysize <= *yymsg_alloc
5192 while ((*yyp = *yyformat) !=
'\0')
5193 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
5213 #if (defined __STDC__ || defined __C99__FUNC__ \ 5214 || defined __cplusplus || defined _MSC_VER) 5243 #ifdef YYPARSE_PARAM 5244 #if defined __STDC__ || defined __cplusplus 5245 int yyparse (
void *YYPARSE_PARAM);
5250 #if defined __STDC__ || defined __cplusplus 5262 #ifdef YYPARSE_PARAM 5263 #if (defined __STDC__ || defined __C99__FUNC__ \ 5264 || defined __cplusplus || defined _MSC_VER) 5270 void *YYPARSE_PARAM;
5273 #if (defined __STDC__ || defined __C99__FUNC__ \ 5274 || defined __cplusplus || defined _MSC_VER) 5307 yytype_int16 *yyssp;
5327 char *yymsg = yymsgbuf;
5328 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
5331 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 5342 YYDPRINTF ((parser,
"Starting parse\n"));
5369 if (yyss + yystacksize - 1 <= yyssp)
5372 YYSIZE_T yysize = yyssp - yyss + 1;
5380 yytype_int16 *yyss1 = yyss;
5386 yyoverflow (
YY_(
"memory exhausted"),
5387 &yyss1, yysize *
sizeof (*yyssp),
5388 &yyvs1, yysize *
sizeof (*yyvsp),
5395 # ifndef YYSTACK_RELOCATE 5396 goto yyexhaustedlab;
5400 goto yyexhaustedlab;
5406 yytype_int16 *yyss1 = yyss;
5410 goto yyexhaustedlab;
5413 # undef YYSTACK_RELOCATE 5420 yyssp = yyss + yysize - 1;
5421 yyvsp = yyvs + yysize - 1;
5423 YYDPRINTF ((parser,
"Stack size increased to %lu\n",
5424 (
unsigned long int) yystacksize));
5426 if (yyss + yystacksize - 1 <= yyssp)
5430 YYDPRINTF ((parser,
"Entering state %d\n", yystate));
5446 yyn = yypact[yystate];
5455 YYDPRINTF ((parser,
"Reading a token: "));
5459 if (yychar <=
YYEOF)
5461 yychar = yytoken =
YYEOF;
5462 YYDPRINTF ((parser,
"Now at end of input.\n"));
5473 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5505 yyn = yydefact[yystate];
5526 yyval = yyvsp[1-yylen];
5549 #line 1003 "parse.y" 5556 NODE *node = (yyvsp[(2) - (2)].
node);
5557 while (node->nd_next) {
5558 node = node->nd_next;
5575 #line 1026 "parse.y" 5581 (yyval.
node) = (yyvsp[(1) - (2)].node);
5588 #line 1036 "parse.y" 5602 #line 1045 "parse.y" 5615 #line 1053 "parse.y" 5628 #line 1061 "parse.y" 5637 #line 1068 "parse.y" 5649 #line 1075 "parse.y" 5653 (yyvsp[(4) - (5)].node));
5666 #line 1092 "parse.y" 5669 (yyval.
node) = (yyvsp[(1) - (4)].node);
5670 if ((yyvsp[(2) - (4)].node)) {
5671 (yyval.
node) =
NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node));
5673 else if ((yyvsp[(3) - (4)].node)) {
5674 rb_warn0(
"else without rescue is useless");
5677 if ((yyvsp[(4) - (4)].node)) {
5699 #line 1122 "parse.y" 5705 (yyval.
node) = (yyvsp[(1) - (2)].node);
5712 #line 1132 "parse.y" 5726 #line 1141 "parse.y" 5739 #line 1149 "parse.y" 5752 #line 1157 "parse.y" 5761 #line 1163 "parse.y" 5763 (yyval.
node) = (yyvsp[(1) - (1)].node);
5770 #line 1167 "parse.y" 5772 yyerror(
"BEGIN is permitted only at toplevel");
5783 #line 1175 "parse.y" 5787 (yyvsp[(4) - (5)].node));
5800 #line 1187 "parse.y" 5807 #line 1188 "parse.y" 5820 #line 1196 "parse.y" 5833 #line 1204 "parse.y" 5838 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5849 #line 1215 "parse.y" 5852 yyerror(
"can't make alias for the number variables");
5865 #line 1226 "parse.y" 5868 (yyval.
node) = (yyvsp[(2) - (2)].node);
5878 #line 1234 "parse.y" 5892 #line 1243 "parse.y" 5906 #line 1252 "parse.y" 5909 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5913 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5924 #line 1265 "parse.y" 5927 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5928 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
5931 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5942 #line 1278 "parse.y" 5956 #line 1287 "parse.y" 5959 rb_warn0(
"END in method; use at_exit");
5963 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 ));
5973 #line 1300 "parse.y" 5977 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5978 (yyval.
node) = (yyvsp[(1) - (3)].node);
5988 #line 1310 "parse.y" 5998 #line 1315 "parse.y" 6001 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
6002 (yyval.
node) = (yyvsp[(1) - (3)].node);
6012 #line 1327 "parse.y" 6022 #line 1332 "parse.y" 6025 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
6032 #line 1337 "parse.y" 6038 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
6039 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6040 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6041 (yyvsp[(5) - (6)].
id) = 0;
6043 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
6044 (yyvsp[(5) - (6)].
id) = 1;
6058 #line 1358 "parse.y" 6061 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].node));
6068 #line 1363 "parse.y" 6071 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].node));
6078 #line 1368 "parse.y" 6088 #line 1373 "parse.y" 6098 #line 1378 "parse.y" 6100 (yyvsp[(1) - (3)].
node) =
var_field((yyvsp[(1) - (3)].node));
6108 #line 1385 "parse.y" 6112 (yyval.
node) = (yyvsp[(1) - (1)].node);
6121 #line 1393 "parse.y" 6135 #line 1406 "parse.y" 6148 #line 1414 "parse.y" 6161 #line 1422 "parse.y" 6174 #line 1430 "parse.y" 6187 #line 1441 "parse.y" 6191 (yyval.
node) = (yyvsp[(1) - (1)].node);
6202 #line 1458 "parse.y" 6205 (yyval.
node) =
NEW_QCALL((yyvsp[(2) - (4)].
id), (yyvsp[(1) - (4)].
node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
node));
6216 #line 1469 "parse.y" 6228 #line 1476 "parse.y" 6230 (yyval.
node) = (yyvsp[(3) - (4)].node);
6240 #line 1485 "parse.y" 6253 #line 1495 "parse.y" 6256 (yyval.
node) = (yyvsp[(1) - (2)].node);
6267 #line 1504 "parse.y" 6271 (yyvsp[(1) - (3)].
node)->
nd_args = (yyvsp[(2) - (3)].node);
6272 (yyvsp[(3) - (3)].
node)->
nd_iter = (yyvsp[(1) - (3)].node);
6273 (yyval.
node) = (yyvsp[(3) - (3)].node);
6285 #line 1517 "parse.y" 6288 (yyval.
node) =
NEW_QCALL((yyvsp[(2) - (4)].
id), (yyvsp[(1) - (4)].
node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
node));
6299 #line 1526 "parse.y" 6303 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_QCALL((yyvsp[(2) - (5)].
id), (yyvsp[(1) - (5)].
node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
node));
6304 (yyval.
node) = (yyvsp[(5) - (5)].node);
6316 #line 1538 "parse.y" 6319 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
6330 #line 1547 "parse.y" 6334 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
6335 (yyval.
node) = (yyvsp[(5) - (5)].node);
6347 #line 1559 "parse.y" 6361 #line 1568 "parse.y" 6375 #line 1577 "parse.y" 6388 #line 1585 "parse.y" 6401 #line 1593 "parse.y" 6414 #line 1604 "parse.y" 6417 (yyval.
node) = (yyvsp[(2) - (3)].node);
6427 #line 1615 "parse.y" 6440 #line 1625 "parse.y" 6453 #line 1633 "parse.y" 6466 #line 1641 "parse.y" 6479 #line 1649 "parse.y" 6493 #line 1658 "parse.y" 6506 #line 1666 "parse.y" 6520 #line 1675 "parse.y" 6533 #line 1683 "parse.y" 6547 #line 1692 "parse.y" 6560 #line 1700 "parse.y" 6574 #line 1712 "parse.y" 6577 (yyval.
node) = (yyvsp[(2) - (3)].node);
6587 #line 1722 "parse.y" 6600 #line 1730 "parse.y" 6613 #line 1740 "parse.y" 6626 #line 1748 "parse.y" 6639 #line 1758 "parse.y" 6648 #line 1762 "parse.y" 6657 #line 1766 "parse.y" 6660 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6670 #line 1774 "parse.y" 6673 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].
id));
6683 #line 1782 "parse.y" 6696 #line 1790 "parse.y" 6699 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].
id));
6709 #line 1798 "parse.y" 6718 #line 1802 "parse.y" 6727 #line 1806 "parse.y" 6729 (yyvsp[(1) - (1)].
node) =
var_field((yyvsp[(1) - (1)].node));
6737 #line 1813 "parse.y" 6751 #line 1822 "parse.y" 6765 #line 1831 "parse.y" 6768 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6778 #line 1839 "parse.y" 6781 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].
id));
6791 #line 1847 "parse.y" 6804 #line 1855 "parse.y" 6807 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].
id));
6817 #line 1863 "parse.y" 6826 #line 1867 "parse.y" 6835 #line 1871 "parse.y" 6837 (yyvsp[(1) - (1)].
node) =
var_field((yyvsp[(1) - (1)].node));
6845 #line 1878 "parse.y" 6848 yyerror(
"class/module name must be CONSTANT");
6859 #line 1890 "parse.y" 6872 #line 1898 "parse.y" 6885 #line 1906 "parse.y" 6898 #line 1919 "parse.y" 6901 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6908 #line 1924 "parse.y" 6912 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6922 #line 1939 "parse.y" 6935 #line 1950 "parse.y" 6948 #line 1957 "parse.y" 6955 #line 1958 "parse.y" 6968 #line 1967 "parse.y" 6975 #line 1968 "parse.y" 6982 #line 1969 "parse.y" 6989 #line 1970 "parse.y" 6996 #line 1971 "parse.y" 7003 #line 1972 "parse.y" 7010 #line 1973 "parse.y" 7017 #line 1974 "parse.y" 7024 #line 1975 "parse.y" 7031 #line 1976 "parse.y" 7038 #line 1977 "parse.y" 7045 #line 1978 "parse.y" 7052 #line 1979 "parse.y" 7059 #line 1980 "parse.y" 7066 #line 1981 "parse.y" 7073 #line 1982 "parse.y" 7080 #line 1983 "parse.y" 7087 #line 1984 "parse.y" 7094 #line 1985 "parse.y" 7101 #line 1986 "parse.y" 7108 #line 1987 "parse.y" 7115 #line 1988 "parse.y" 7122 #line 1989 "parse.y" 7129 #line 1990 "parse.y" 7136 #line 1991 "parse.y" 7143 #line 1992 "parse.y" 7150 #line 1993 "parse.y" 7157 #line 1994 "parse.y" 7164 #line 1995 "parse.y" 7171 #line 1996 "parse.y" 7178 #line 2014 "parse.y" 7187 #line 2018 "parse.y" 7189 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
7196 #line 2022 "parse.y" 7202 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
7204 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
7207 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
7209 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
7210 (yyvsp[(5) - (6)].
id) = 0;
7212 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
7213 (yyvsp[(5) - (6)].
id) = 1;
7227 #line 2048 "parse.y" 7230 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].node));
7237 #line 2053 "parse.y" 7240 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].node));
7247 #line 2058 "parse.y" 7257 #line 2063 "parse.y" 7267 #line 2068 "parse.y" 7277 #line 2073 "parse.y" 7279 (yyvsp[(1) - (3)].
node) =
var_field((yyvsp[(1) - (3)].node));
7287 #line 2078 "parse.y" 7302 #line 2088 "parse.y" 7317 #line 2098 "parse.y" 7330 #line 2106 "parse.y" 7343 #line 2114 "parse.y" 7356 #line 2122 "parse.y" 7369 #line 2130 "parse.y" 7382 #line 2138 "parse.y" 7395 #line 2146 "parse.y" 7409 #line 2155 "parse.y" 7422 #line 2163 "parse.y" 7435 #line 2171 "parse.y" 7448 #line 2179 "parse.y" 7461 #line 2187 "parse.y" 7474 #line 2195 "parse.y" 7487 #line 2203 "parse.y" 7500 #line 2211 "parse.y" 7513 #line 2219 "parse.y" 7526 #line 2227 "parse.y" 7539 #line 2235 "parse.y" 7552 #line 2243 "parse.y" 7565 #line 2251 "parse.y" 7578 #line 2259 "parse.y" 7597 #line 2273 "parse.y" 7610 #line 2281 "parse.y" 7623 #line 2289 "parse.y" 7636 #line 2297 "parse.y" 7649 #line 2305 "parse.y" 7662 #line 2313 "parse.y" 7675 #line 2321 "parse.y" 7688 #line 2328 "parse.y" 7695 #line 2329 "parse.y" 7709 #line 2338 "parse.y" 7713 (yyval.
node) =
new_if((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node));
7724 #line 2348 "parse.y" 7726 (yyval.
node) = (yyvsp[(1) - (1)].node);
7733 #line 2354 "parse.y" 7737 (yyval.
node) = (yyvsp[(1) - (1)].node);
7748 #line 2367 "parse.y" 7750 (yyval.
node) = (yyvsp[(1) - (2)].node);
7757 #line 2371 "parse.y" 7760 (yyval.
node) = (yyvsp[(3) - (4)].node) ?
arg_append((yyvsp[(1) - (4)].node),
new_hash((yyvsp[(3) - (4)].node))) : (yyvsp[(1) - (4)].
node);
7770 #line 2379 "parse.y" 7783 #line 2389 "parse.y" 7787 (yyval.
node) = (yyvsp[(1) - (1)].node);
7796 #line 2397 "parse.y" 7810 #line 2408 "parse.y" 7813 (yyval.
node) = (yyvsp[(2) - (3)].node);
7823 #line 2424 "parse.y" 7825 (yyval.
node) = (yyvsp[(1) - (2)].node);
7832 #line 2428 "parse.y" 7835 (yyval.
node) = (yyvsp[(3) - (4)].node) ?
arg_append((yyvsp[(1) - (4)].node),
new_hash((yyvsp[(3) - (4)].node))) : (yyvsp[(1) - (4)].
node);
7845 #line 2436 "parse.y" 7858 #line 2446 "parse.y" 7872 #line 2455 "parse.y" 7885 #line 2463 "parse.y" 7900 #line 2473 "parse.y" 7903 (yyval.
node) = (yyvsp[(3) - (4)].node) ?
arg_append((yyvsp[(1) - (4)].node),
new_hash((yyvsp[(3) - (4)].node))) : (yyvsp[(1) - (4)].
node);
7914 #line 2490 "parse.y" 7924 #line 2495 "parse.y" 7928 (yyval.
node) = (yyvsp[(2) - (2)].node);
7935 #line 2503 "parse.y" 7948 #line 2513 "parse.y" 7950 (yyval.
node) = (yyvsp[(2) - (2)].node);
7957 #line 2517 "parse.y" 7966 #line 2523 "parse.y" 7979 #line 2531 "parse.y" 7992 #line 2539 "parse.y" 7996 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
8011 #line 2553 "parse.y" 8030 #line 2573 "parse.y" 8034 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
8049 #line 2587 "parse.y" 8054 (n1 =
splat_array((yyvsp[(1) - (4)].node))) != 0) {
8069 #line 2602 "parse.y" 8082 #line 2622 "parse.y" 8095 #line 2630 "parse.y" 8109 #line 2640 "parse.y" 8113 if ((yyvsp[(3) - (4)].node) ==
NULL) {
8132 #line 2657 "parse.y" 8139 #line 2658 "parse.y" 8152 #line 2666 "parse.y" 8162 #line 2670 "parse.y" 8169 #line 2671 "parse.y" 8173 (yyval.
node) = (yyvsp[(3) - (5)].node);
8183 #line 2680 "parse.y" 8186 (yyval.
node) = (yyvsp[(2) - (3)].node);
8196 #line 2688 "parse.y" 8209 #line 2696 "parse.y" 8222 #line 2704 "parse.y" 8225 if ((yyvsp[(2) - (3)].node) == 0) {
8229 (yyval.
node) = (yyvsp[(2) - (3)].node);
8240 #line 2717 "parse.y" 8253 #line 2725 "parse.y" 8266 #line 2733 "parse.y" 8279 #line 2741 "parse.y" 8292 #line 2749 "parse.y" 8305 #line 2756 "parse.y" 8312 #line 2757 "parse.y" 8326 #line 2766 "parse.y" 8339 #line 2774 "parse.y" 8352 #line 2782 "parse.y" 8355 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8356 (yyval.
node) = (yyvsp[(2) - (2)].node);
8367 #line 2793 "parse.y" 8371 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8372 (yyval.
node) = (yyvsp[(2) - (2)].node);
8382 #line 2803 "parse.y" 8384 (yyval.
node) = (yyvsp[(2) - (2)].node);
8391 #line 2810 "parse.y" 8394 (yyval.
node) =
new_if((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
8405 #line 2822 "parse.y" 8408 (yyval.
node) =
new_unless((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
8419 #line 2830 "parse.y" 8426 #line 2830 "parse.y" 8433 #line 2833 "parse.y" 8447 #line 2841 "parse.y" 8454 #line 2841 "parse.y" 8461 #line 2844 "parse.y" 8475 #line 2855 "parse.y" 8489 #line 2864 "parse.y" 8502 #line 2872 "parse.y" 8509 #line 2874 "parse.y" 8516 #line 2877 "parse.y" 8533 switch (
nd_type((yyvsp[(2) - (9)].node))) {
8543 m->nd_next = (yyvsp[(2) - (9)].
node);
8552 tbl[0] = 1; tbl[1] =
id;
8553 (yyval.
node) =
NEW_FOR(0, (yyvsp[(5) - (9)].node), scope);
8564 #line 2920 "parse.y" 8567 yyerror(
"class definition in method body");
8579 #line 2931 "parse.y" 8582 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
8594 #line 2941 "parse.y" 8606 #line 2950 "parse.y" 8615 in_def = ((yyvsp[(4) - (7)].
num) >> 1) & 1;
8623 #line 2962 "parse.y" 8626 yyerror(
"module definition in method body");
8638 #line 2973 "parse.y" 8653 #line 2983 "parse.y" 8664 #line 2988 "parse.y" 8674 #line 2995 "parse.y" 8693 #line 3008 "parse.y" 8700 #line 3009 "parse.y" 8714 #line 3020 "parse.y" 8719 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
8733 #line 3034 "parse.y" 8746 #line 3042 "parse.y" 8759 #line 3050 "parse.y" 8772 #line 3058 "parse.y" 8785 #line 3068 "parse.y" 8789 (yyval.
node) = (yyvsp[(1) - (1)].node);
8800 #line 3080 "parse.y" 8809 #line 3086 "parse.y" 8818 #line 3092 "parse.y" 8827 #line 3098 "parse.y" 8836 #line 3104 "parse.y" 8845 #line 3110 "parse.y" 8854 #line 3116 "parse.y" 8863 #line 3122 "parse.y" 8872 #line 3128 "parse.y" 8881 #line 3134 "parse.y" 8894 #line 3144 "parse.y" 8903 #line 3174 "parse.y" 8906 (yyval.
node) =
new_if((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8917 #line 3186 "parse.y" 8920 (yyval.
node) = (yyvsp[(2) - (2)].node);
8930 #line 3200 "parse.y" 8943 #line 3208 "parse.y" 8946 (yyval.
node) = (yyvsp[(2) - (3)].node);
8956 #line 3218 "parse.y" 8969 #line 3226 "parse.y" 8982 #line 3236 "parse.y" 8995 #line 3244 "parse.y" 9009 #line 3253 "parse.y" 9023 #line 3262 "parse.y" 9036 #line 3270 "parse.y" 9049 #line 3278 "parse.y" 9063 #line 3287 "parse.y" 9080 #line 3299 "parse.y" 9093 #line 3307 "parse.y" 9106 #line 3318 "parse.y" 9108 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
9115 #line 3322 "parse.y" 9124 #line 3326 "parse.y" 9133 #line 3330 "parse.y" 9142 #line 3336 "parse.y" 9144 (yyval.
node) = (yyvsp[(2) - (2)].node);
9151 #line 3340 "parse.y" 9160 #line 3346 "parse.y" 9162 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
9169 #line 3350 "parse.y" 9171 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
9178 #line 3354 "parse.y" 9187 #line 3358 "parse.y" 9189 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9196 #line 3362 "parse.y" 9205 #line 3366 "parse.y" 9218 #line 3374 "parse.y" 9220 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9227 #line 3378 "parse.y" 9236 #line 3382 "parse.y" 9245 #line 3386 "parse.y" 9247 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9254 #line 3390 "parse.y" 9263 #line 3394 "parse.y" 9272 #line 3398 "parse.y" 9281 #line 3402 "parse.y" 9290 #line 3406 "parse.y" 9299 #line 3413 "parse.y" 9308 #line 3419 "parse.y" 9323 #line 3429 "parse.y" 9337 #line 3438 "parse.y" 9341 (yyval.
node) = (yyvsp[(2) - (4)].node);
9351 #line 3450 "parse.y" 9360 #line 3454 "parse.y" 9373 #line 3480 "parse.y" 9386 #line 3488 "parse.y" 9395 #line 3493 "parse.y" 9404 #line 3496 "parse.y" 9414 #line 3501 "parse.y" 9423 #line 3504 "parse.y" 9433 #line 3509 "parse.y" 9451 #line 3524 "parse.y" 9454 (yyval.
node) = (yyvsp[(2) - (4)].node);
9464 #line 3532 "parse.y" 9466 (yyval.
node) = (yyvsp[(1) - (1)].node);
9473 #line 3538 "parse.y" 9476 (yyval.
node) = (yyvsp[(2) - (3)].node);
9483 #line 3543 "parse.y" 9485 (yyval.
node) = (yyvsp[(2) - (3)].node);
9492 #line 3549 "parse.y" 9503 #line 3555 "parse.y" 9505 (yyval.
node) = (yyvsp[(3) - (4)].node);
9515 #line 3564 "parse.y" 9524 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
9525 (yyval.
node) = (yyvsp[(2) - (2)].node);
9536 #line 3580 "parse.y" 9539 (yyval.
node) =
NEW_QCALL((yyvsp[(2) - (4)].
id), (yyvsp[(1) - (4)].
node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
node));
9550 #line 3589 "parse.y" 9554 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_QCALL((yyvsp[(2) - (5)].
id), (yyvsp[(1) - (5)].
node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
node));
9555 (yyval.
node) = (yyvsp[(5) - (5)].node);
9567 #line 3601 "parse.y" 9571 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_QCALL((yyvsp[(2) - (5)].
id), (yyvsp[(1) - (5)].
node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
node));
9572 (yyval.
node) = (yyvsp[(5) - (5)].node);
9584 #line 3615 "parse.y" 9587 (yyval.
node) = (yyvsp[(1) - (2)].node);
9598 #line 3624 "parse.y" 9609 #line 3630 "parse.y" 9612 (yyval.
node) =
NEW_QCALL((yyvsp[(2) - (5)].
id), (yyvsp[(1) - (5)].
node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].
node));
9624 #line 3640 "parse.y" 9635 #line 3646 "parse.y" 9638 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9650 #line 3656 "parse.y" 9653 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), 0);
9663 #line 3664 "parse.y" 9674 #line 3670 "parse.y" 9677 (yyval.
node) =
NEW_QCALL((yyvsp[(2) - (4)].
id), (yyvsp[(1) - (4)].
node), idCall, (yyvsp[(4) - (4)].node));
9689 #line 3680 "parse.y" 9700 #line 3686 "parse.y" 9703 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), idCall, (yyvsp[(4) - (4)].
node));
9716 #line 3697 "parse.y" 9729 #line 3705 "parse.y" 9742 #line 3713 "parse.y" 9745 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
9748 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node));
9759 #line 3727 "parse.y" 9770 #line 3733 "parse.y" 9772 (yyval.
node) = (yyvsp[(3) - (4)].node);
9782 #line 3740 "parse.y" 9793 #line 3746 "parse.y" 9795 (yyval.
node) = (yyvsp[(3) - (4)].node);
9805 #line 3754 "parse.y" 9812 #line 3755 "parse.y" 9819 #line 3757 "parse.y" 9830 #line 3764 "parse.y" 9837 #line 3765 "parse.y" 9844 #line 3767 "parse.y" 9855 #line 3777 "parse.y" 9858 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
9868 #line 3793 "parse.y" 9871 if ((yyvsp[(3) - (6)].node)) {
9875 (yyval.
node) =
NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node));
9890 #line 3813 "parse.y" 9903 #line 3821 "parse.y" 9916 #line 3832 "parse.y" 9918 (yyval.
node) = (yyvsp[(2) - (2)].node);
9925 #line 3839 "parse.y" 9928 (yyval.
node) = (yyvsp[(2) - (2)].node);
9938 #line 3851 "parse.y" 9951 #line 3862 "parse.y" 9954 NODE *node = (yyvsp[(1) - (1)].
node);
9961 (yyval.
node) = node;
9971 #line 3881 "parse.y" 9984 #line 3891 "parse.y" 9993 #line 3897 "parse.y" 10002 #line 3903 "parse.y" 10011 #line 3909 "parse.y" 10025 #line 3918 "parse.y" 10028 (yyval.
node) = (yyvsp[(2) - (3)].node);
10038 #line 3928 "parse.y" 10051 #line 3936 "parse.y" 10064 #line 3954 "parse.y" 10077 #line 3964 "parse.y" 10091 #line 3973 "parse.y" 10094 (yyval.
node) = (yyvsp[(2) - (3)].node);
10104 #line 3983 "parse.y" 10117 #line 3991 "parse.y" 10138 #line 4009 "parse.y" 10152 #line 4018 "parse.y" 10155 (yyval.
node) = (yyvsp[(2) - (3)].node);
10165 #line 4028 "parse.y" 10179 #line 4037 "parse.y" 10182 (yyval.
node) = (yyvsp[(2) - (3)].node);
10192 #line 4047 "parse.y" 10205 #line 4055 "parse.y" 10218 #line 4065 "parse.y" 10231 #line 4073 "parse.y" 10248 #line 4087 "parse.y" 10261 #line 4095 "parse.y" 10274 #line 4105 "parse.y" 10287 #line 4113 "parse.y" 10300 #line 4123 "parse.y" 10313 #line 4131 "parse.y" 10316 NODE *head = (yyvsp[(1) - (2)].
node), *tail = (yyvsp[(2) - (2)].node);
10318 (yyval.
node) = tail;
10321 (yyval.
node) = head;
10357 #line 4173 "parse.y" 10368 #line 4179 "parse.y" 10382 #line 4188 "parse.y" 10394 #line 4194 "parse.y" 10404 #line 4198 "parse.y" 10414 #line 4202 "parse.y" 10424 #line 4206 "parse.y" 10434 #line 4211 "parse.y" 10444 if ((yyvsp[(7) - (8)].node)) (yyvsp[(7) - (8)].node)->flags &= ~
NODE_FL_NEWLINE;
10455 #line 4229 "parse.y" 10468 #line 4237 "parse.y" 10481 #line 4245 "parse.y" 10494 #line 4256 "parse.y" 10498 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10508 #line 4273 "parse.y" 10522 #line 4285 "parse.y" 10525 (yyval.
node) = (yyvsp[(2) - (2)].node);
10536 #line 4308 "parse.y" 10543 #line 4309 "parse.y" 10550 #line 4310 "parse.y" 10557 #line 4311 "parse.y" 10564 #line 4312 "parse.y" 10571 #line 4313 "parse.y" 10578 #line 4314 "parse.y" 10585 #line 4318 "parse.y" 10603 #line 4331 "parse.y" 10616 #line 4341 "parse.y" 10629 #line 4349 "parse.y" 10642 #line 4363 "parse.y" 10652 #line 4368 "parse.y" 10654 (yyval.
node) = (yyvsp[(3) - (4)].node);
10661 #line 4372 "parse.y" 10674 #line 4382 "parse.y" 10677 (yyval.
node) = (yyvsp[(2) - (3)].node);
10689 #line 4391 "parse.y" 10700 #line 4397 "parse.y" 10703 (yyval.
node) = (yyvsp[(2) - (3)].node);
10712 #line 4406 "parse.y" 10714 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
10721 #line 4410 "parse.y" 10730 #line 4414 "parse.y" 10739 #line 4418 "parse.y" 10748 #line 4424 "parse.y" 10750 (yyval.
node) = (yyvsp[(2) - (2)].node);
10757 #line 4428 "parse.y" 10766 #line 4434 "parse.y" 10768 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
10775 #line 4438 "parse.y" 10777 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
10784 #line 4442 "parse.y" 10793 #line 4446 "parse.y" 10795 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10802 #line 4450 "parse.y" 10811 #line 4454 "parse.y" 10813 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10820 #line 4458 "parse.y" 10829 #line 4462 "parse.y" 10838 #line 4466 "parse.y" 10840 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10847 #line 4470 "parse.y" 10856 #line 4474 "parse.y" 10865 #line 4478 "parse.y" 10874 #line 4482 "parse.y" 10883 #line 4486 "parse.y" 10892 #line 4490 "parse.y" 10902 #line 4497 "parse.y" 10905 yyerror(
"formal argument cannot be a constant");
10917 #line 4507 "parse.y" 10920 yyerror(
"formal argument cannot be an instance variable");
10932 #line 4517 "parse.y" 10935 yyerror(
"formal argument cannot be a global variable");
10947 #line 4527 "parse.y" 10950 yyerror(
"formal argument cannot be a class variable");
10962 #line 4540 "parse.y" 10965 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10972 #line 4547 "parse.y" 10974 ID id =
get_id((yyvsp[(1) - (1)].
id));
10977 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10984 #line 4556 "parse.y" 10998 #line 4565 "parse.y" 11020 #line 4591 "parse.y" 11023 (yyval.
node) = (yyvsp[(1) - (3)].node);
11036 #line 4605 "parse.y" 11038 ID id =
get_id((yyvsp[(1) - (1)].
id));
11041 (yyval.
id) = (yyvsp[(1) - (1)].
id);
11048 #line 4614 "parse.y" 11063 #line 4624 "parse.y" 11078 #line 4636 "parse.y" 11092 #line 4645 "parse.y" 11106 #line 4656 "parse.y" 11109 (yyval.
node) = (yyvsp[(1) - (1)].node);
11119 #line 4664 "parse.y" 11132 #line 4675 "parse.y" 11135 (yyval.
node) = (yyvsp[(1) - (1)].node);
11145 #line 4683 "parse.y" 11158 #line 4697 "parse.y" 11161 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11168 #line 4702 "parse.y" 11178 #line 4709 "parse.y" 11193 #line 4721 "parse.y" 11208 #line 4733 "parse.y" 11211 (yyval.
node) = (yyvsp[(1) - (1)].node);
11221 #line 4741 "parse.y" 11224 NODE *opts = (yyvsp[(1) - (3)].
node);
11226 while (opts->nd_next) {
11227 opts = opts->nd_next;
11229 opts->nd_next = (yyvsp[(3) - (3)].
node);
11230 (yyval.
node) = (yyvsp[(1) - (3)].node);
11240 #line 4757 "parse.y" 11243 (yyval.
node) = (yyvsp[(1) - (1)].node);
11253 #line 4765 "parse.y" 11256 NODE *opts = (yyvsp[(1) - (3)].
node);
11258 while (opts->nd_next) {
11259 opts = opts->nd_next;
11261 opts->nd_next = (yyvsp[(3) - (3)].
node);
11262 (yyval.
node) = (yyvsp[(1) - (3)].node);
11272 #line 4785 "parse.y" 11276 yyerror(
"rest argument must be local variable");
11280 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11290 #line 4798 "parse.y" 11304 #line 4813 "parse.y" 11308 yyerror(
"block argument must be local variable");
11310 yyerror(
"duplicated block argument name");
11314 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11324 #line 4830 "parse.y" 11326 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11333 #line 4834 "parse.y" 11346 #line 4844 "parse.y" 11350 (yyval.
node) = (yyvsp[(1) - (1)].node);
11361 #line 4853 "parse.y" 11368 #line 4854 "parse.y" 11371 if ((yyvsp[(3) - (4)].node) == 0) {
11372 yyerror(
"can't define singleton method for ().");
11375 switch (
nd_type((yyvsp[(3) - (4)].node))) {
11384 yyerror(
"can't define singleton method for literals");
11390 (yyval.
node) = (yyvsp[(3) - (4)].node);
11400 #line 4884 "parse.y" 11403 (yyval.
node) = (yyvsp[(1) - (2)].node);
11413 #line 4901 "parse.y" 11416 NODE *assocs = (yyvsp[(1) - (3)].
node);
11417 NODE *tail = (yyvsp[(3) - (3)].
node);
11422 if (assocs->nd_head &&
11426 tail = tail->nd_next->nd_head->nd_head;
11430 (yyval.
node) = assocs;
11440 #line 4925 "parse.y" 11457 #line 4937 "parse.y" 11470 #line 4945 "parse.y" 11483 #line 4953 "parse.y" 11487 !((yyvsp[(2) - (2)].node)->nd_head && (yyvsp[(2) - (2)].
node)->
nd_head->nd_alen))
11500 #line 4995 "parse.y" 11513 #line 5003 "parse.y" 11526 #line 5014 "parse.y" 11539 #line 5042 "parse.y" 11546 #line 5047 "parse.y" 11553 #line 5051 "parse.y" 11566 #line 11565 "parse.c" 11594 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
11595 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11596 yystate = yytable[yystate];
11615 #if ! YYERROR_VERBOSE 11618 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 11621 char const *yymsgp =
YY_(
"syntax error");
11622 int yysyntax_error_status;
11624 if (yysyntax_error_status == 0)
11626 else if (yysyntax_error_status == 1)
11628 if (yymsg != yymsgbuf)
11634 yymsg_alloc =
sizeof yymsgbuf;
11635 yysyntax_error_status = 2;
11644 if (yysyntax_error_status == 2)
11645 goto yyexhaustedlab;
11647 # undef YYSYNTAX_ERROR 11653 if (yyerrstatus == 3)
11658 if (yychar <=
YYEOF)
11661 if (yychar ==
YYEOF)
11667 yytoken, &yylval, parser);
11705 yyn = yypact[yystate];
11711 yyn = yytable[yyn];
11723 yystos[yystate], yyvsp, parser);
11753 #if !defined(yyoverflow) || YYERROR_VERBOSE 11769 yydestruct (
"Cleanup: discarding lookahead",
11770 yytoken, &yylval, parser);
11776 while (yyssp != yyss)
11779 yystos[*yyssp], yyvsp, parser);
11786 #if YYERROR_VERBOSE 11787 if (yymsg != yymsgbuf)
11791 return YYID (yyresult);
11797 #line 5059 "parse.y" 11802 # define yylval (*parser->lval) 11811 # define nextc() parser_nextc(parser) 11812 # define pushback(c) parser_pushback(parser, (c)) 11813 # define newtok() parser_newtok(parser) 11814 # define tokspace(n) parser_tokspace(parser, (n)) 11815 # define tokadd(c) parser_tokadd(parser, (c)) 11816 # define tok_hex(numlen) parser_tok_hex(parser, (numlen)) 11817 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e)) 11818 # define tokadd_escape(e) parser_tokadd_escape(parser, (e)) 11819 # define regx_options() parser_regx_options(parser) 11820 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e)) 11821 # define parse_string(n) parser_parse_string(parser,(n)) 11822 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc)) 11823 # define here_document(n) parser_here_document(parser,(n)) 11824 # define heredoc_identifier() parser_heredoc_identifier(parser) 11825 # define heredoc_restore(n) parser_heredoc_restore(parser,(n)) 11826 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i)) 11827 # define number_literal_suffix(f) parser_number_literal_suffix(parser, (f)) 11828 # define set_number_literal(v, t, f) parser_set_number_literal(parser, (v), (t), (f)) 11829 # define set_integer_literal(v, f) parser_set_integer_literal(parser, (v), (f)) 11832 # define set_yylval_str(x) (yylval.node = NEW_STR(x)) 11833 # define set_yylval_num(x) (yylval.num = (x)) 11834 # define set_yylval_id(x) (yylval.id = (x)) 11835 # define set_yylval_name(x) (yylval.id = (x)) 11836 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x)) 11837 # define set_yylval_node(x) (yylval.node = (x)) 11838 # define yylval_id() (yylval.id) 11840 static inline VALUE 11841 ripper_yylval_id(
ID x)
11843 return ripper_new_yylval(x,
ID2SYM(x), 0);
11845 # define set_yylval_str(x) (yylval.val = (x)) 11846 # define set_yylval_num(x) (yylval.val = ripper_new_yylval((x), 0, 0)) 11847 # define set_yylval_id(x) (void)(x) 11848 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x)) 11849 # define set_yylval_literal(x) (void)(x) 11850 # define set_yylval_node(x) (void)(x) 11851 # define yylval_id() yylval.id 11855 #define ripper_flush(p) (void)(p) 11856 #define dispatch_scan_event(t) ((void)0) 11857 #define dispatch_delayed_token(t) ((void)0) 11858 #define has_delayed_token() (0) 11860 #define ripper_flush(p) ((p)->tokp = (p)->lex.pcur) 11862 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val)) 11864 static inline VALUE 11865 intern_sym(
const char *
name)
11876 return lex_p > parser->tokp;
11889 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11891 if (!ripper_has_scan_event(parser))
return;
11892 yylval_rval = ripper_scan_event_val(parser, t);
11894 #define dispatch_scan_event(t) ripper_dispatch_scan_event(parser, t) 11897 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11900 const char *saved_tokp = parser->tokp;
11903 parser->tokp =
lex_pbeg + parser->delayed_col;
11905 parser->delayed =
Qnil;
11907 parser->tokp = saved_tokp;
11909 #define dispatch_delayed_token(t) ripper_dispatch_delayed_token(parser, t) 11910 #define has_delayed_token() (!NIL_P(parser->delayed)) 11916 #define parser_encoding_name() (current_enc->name) 11917 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc) 11918 #define is_identchar(p,e,enc) (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) 11919 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) 11921 #define parser_isascii() ISASCII(*(lex_p-1)) 11928 for (p =
lex_pbeg; p < pend; p++) {
11941 for (p =
lex_pbeg; p < pend; p++) {
11942 if (*p !=
' ' && *p !=
'\t') {
11973 if (!ptinfo)
return;
11981 "mismatched indentations at '%s' with '%s' at %d",
12003 const int max_line_margin = 30;
12004 const char *p, *pe;
12005 const char *pre =
"", *post =
"";
12006 const char *code =
"", *caret =
"", *newline =
"";
12015 if (*(p-1) ==
'\n')
break;
12022 if (*pe ==
'\n')
break;
12030 if (len > max_line_margin * 2 + 10) {
12031 if (
lex_p - p > max_line_margin) {
12035 if (pe -
lex_p > max_line_margin) {
12041 i = (int)(
lex_p - p);
12046 *p2++ = *p++ ==
'\t' ?
'\t' :
' ';
12057 pre, (
int)len, code, post, newline,
12060 dispatch1(parse_error,
STR_NEW2(msg));
12073 CONST_ID(script_lines,
"SCRIPT_LINES__");
12089 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
12129 #define RUBY_DTRACE_PARSE_HOOK(name) \ 12130 if (RUBY_DTRACE_PARSE_##name##_ENABLED()) { \ 12131 RUBY_DTRACE_PARSE_##name(ruby_sourcefile, ruby_sourceline); \ 12145 if (parser->error_p) {
12146 VALUE mesg = parser->error_buffer;
12158 VALUE opt = parser->compile_option;
12163 return (
VALUE)tree;
12189 char *beg, *end, *start;
12200 end = memchr(beg,
'\n', len);
12201 if (end) len = ++end - beg;
12210 if (
NIL_P(line))
return line;
12312 node =
yycompile(parser, fname, start);
12319 #define STR_FUNC_ESCAPE 0x01 12320 #define STR_FUNC_EXPAND 0x02 12321 #define STR_FUNC_REGEXP 0x04 12322 #define STR_FUNC_QWORDS 0x08 12323 #define STR_FUNC_SYMBOL 0x10 12324 #define STR_FUNC_INDENT 0x20 12325 #define STR_FUNC_LABEL 0x40 12326 #define STR_TERM_END -1 12357 #define lex_goto_eol(parser) ((parser)->lex.pcur = (parser)->lex.pend) 12358 #define lex_eol_p() (lex_p >= lex_pend) 12359 #define peek(c) peek_n((c), 0) 12360 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n]) 12361 #define peekc() peekc_n(0) 12362 #define peekc_n(n) (lex_p+(n) < lex_pend ? (unsigned char)lex_p[n] : -1) 12386 parser->tokp,
lex_pend - parser->tokp);
12388 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12392 parser->tokp,
lex_pend - parser->tokp);
12419 rb_warn0(
"encountered \\r in middle of line, treated as a mere space");
12432 c = (
unsigned char)*
lex_p++;
12443 if (c == -1)
return;
12450 #define was_bol() (lex_p == lex_pbeg + 1) 12452 #define tokfix() (tokenbuf[tokidx]='\0') 12453 #define tok() tokenbuf 12454 #define toklen() tokidx 12455 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0) 12502 yyerror(
"invalid hex escape");
12509 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n)) 12513 int regexp_literal,
int wide)
12517 if (wide ? (numlen == 0) : (numlen < 4)) {
12518 yyerror(
"invalid Unicode escape");
12521 if (codepoint > 0x10ffff) {
12522 yyerror(
"invalid Unicode codepoint (too large)");
12525 if ((codepoint & 0xfffff800) == 0xd800) {
12526 yyerror(
"invalid Unicode codepoint");
12530 if (regexp_literal) {
12533 else if (codepoint >= 0x80) {
12546 int string_literal,
int symbol_literal,
int regexp_literal)
12555 const int open_brace =
'{', close_brace =
'}';
12559 if (
peek(open_brace)) {
12563 while (!string_literal || c != close_brace) {
12564 if (regexp_literal)
tokadd(last);
12570 if (!string_literal)
break;
12573 if (c != close_brace) {
12574 yyerror(
"unterminated Unicode escape");
12578 if (regexp_literal)
tokadd(close_brace);
12590 #define ESCAPE_CONTROL 1 12591 #define ESCAPE_META 2 12600 switch (c =
nextc()) {
12625 case '0':
case '1':
case '2':
case '3':
12626 case '4':
case '5':
case '6':
case '7':
12634 if (numlen == 0)
return 0;
12645 if ((c =
nextc()) !=
'-') {
12649 if ((c =
nextc()) ==
'\\') {
12650 if (
peek(
'u'))
goto eof;
12651 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12653 else if (c == -1 || !
ISASCII(c))
goto eof;
12655 return ((c & 0xff) | 0x80);
12659 if ((c =
nextc()) !=
'-') {
12665 if ((c =
nextc())==
'\\') {
12666 if (
peek(
'u'))
goto eof;
12671 else if (c == -1 || !
ISASCII(c))
goto eof;
12676 yyerror(
"Invalid escape character syntax");
12699 switch (c =
nextc()) {
12703 case '0':
case '1':
case '2':
case '3':
12704 case '4':
case '5':
case '6':
case '7':
12707 if (numlen == 0)
goto eof;
12716 if (numlen == 0)
return -1;
12723 if ((c =
nextc()) !=
'-') {
12733 if ((c =
nextc()) !=
'-') {
12741 if (flags & ESCAPE_CONTROL)
goto eof;
12745 if ((c =
nextc()) ==
'\\') {
12748 else if (c == -1)
goto eof;
12754 yyerror(
"Invalid escape character syntax");
12811 if (len < 0)
return -1;
12818 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c)) 12824 case '$':
case '*':
case '+':
case '.':
12825 case '?':
case '^':
case '|':
12826 case ')':
case ']':
case '}':
case '>':
12844 else if (c ==
'\t') {
12849 else if (c !=
'\n') {
12861 int func,
int term,
int paren,
long *nest,
12865 int has_nonascii = 0;
12868 static const char mixed_msg[] =
"%s mixed within %s source";
12870 #define mixed_error(enc1, enc2) if (!errbuf) { \ 12871 size_t len = sizeof(mixed_msg) - 4; \ 12872 len += strlen(rb_enc_name(enc1)); \ 12873 len += strlen(rb_enc_name(enc2)); \ 12874 errbuf = ALLOCA_N(char, len); \ 12875 snprintf(errbuf, len, mixed_msg, \ 12876 rb_enc_name(enc1), \ 12877 rb_enc_name(enc2)); \ 12880 #define mixed_escape(beg, enc1, enc2) do { \ 12881 const char *pos = lex_p; \ 12883 mixed_error((enc1), (enc2)); \ 12887 while ((c =
nextc()) != -1) {
12892 if (paren && c == paren) {
12895 else if (c == term) {
12896 if (!nest || !*nest) {
12904 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12909 else if (c ==
'\\') {
12910 const char *beg =
lex_p - 1;
12915 if (func & STR_FUNC_EXPAND)
continue;
12924 if ((func & STR_FUNC_EXPAND) == 0) {
12931 if (has_nonascii && enc != *encp) {
12937 if (c == -1)
return -1;
12939 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12942 if (func & STR_FUNC_REGEXP) {
12950 if (has_nonascii && enc != *encp) {
12955 else if (func & STR_FUNC_EXPAND) {
12957 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12960 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12963 else if (c != term && !(paren && c == paren)) {
12973 if (enc != *encp) {
12986 if (enc != *encp) {
12997 #define NEW_STRTERM(func, term, paren) \ 12998 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) 13005 if (!ripper_is_node_yylval(content))
13006 content = ripper_new_yylval(0, 0, content);
13008 ptrdiff_t
len =
lex_p - parser->tokp;
13013 parser->tokp =
lex_p;
13017 if (
yylval.val != content)
13022 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc)) 13024 #define flush_string_content(enc) ((void)(enc)) 13031 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) 13032 #define SPECIAL_PUNCT(idx) ( \ 13033 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \ 13034 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \ 13035 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \ 13036 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \ 13037 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \ 13045 #undef SPECIAL_PUNCT 13052 const char *p =
lex_p;
13058 if ((c = *p) ==
'-') {
13067 if ((c = *p) ==
'@') {
13096 int func = (int)quote->nd_func;
13108 if (c ==
term && !quote->nd_nest) {
13109 if (func & STR_FUNC_QWORDS) {
13162 else if (c ==
'~') {
13180 while ((c =
nextc()) != -1 && c !=
term) {
13182 if (!newline && c ==
'\n') newline = 1;
13183 else if (newline) newline = 2;
13191 rb_warn0(
"here document identifier ends with a newline");
13238 line = here->nd_orig;
13258 for (i = 0; i < len && col < width; i++) {
13259 if (str[i] ==
' ') {
13262 else if (str[i] ==
'\t') {
13264 if (n > width)
break;
13276 MEMMOVE(str, str + i,
char, len - i);
13285 NODE *node, *str_node;
13289 if (indent <= 0)
return root;
13291 if (!root)
return root;
13293 node = str_node = root;
13297 VALUE lit = str_node->nd_lit;
13303 if ((str_node = node->nd_head) != 0) {
13319 if (indent <= 0)
return array;
13339 const char *eos,
long len,
int indent)
13345 while (*p &&
ISSPACE(*p)) p++;
13348 if (n < 0)
return FALSE;
13349 if (n > 0 && p[len] !=
'\n') {
13350 if (p[len] !=
'\r')
return FALSE;
13351 if (n <= 1 || p[len+1] !=
'\n')
return FALSE;
13353 return strncmp(eos, p, len) == 0;
13356 #define NUM_SUFFIX_R (1<<0) 13357 #define NUM_SUFFIX_I (1<<1) 13358 #define NUM_SUFFIX_ALL 3 13364 const char *lastp =
lex_p;
13366 while ((c =
nextc()) != -1) {
13369 mask &= ~NUM_SUFFIX_I;
13376 mask &= ~NUM_SUFFIX_R;
13387 yyerror(
"unexpected fraction part after numeric literal");
13433 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser) 13435 #define dispatch_heredoc_end() ((void)0) 13441 int c,
func, indent = 0;
13442 const char *eos, *p, *
pend;
13451 if ((c =
nextc()) == -1) {
13462 else if ((len =
lex_p - parser->tokp) > 0) {
13493 switch (pend[-1]) {
13495 if (--pend == p || pend[-1] !=
'\r') {
13522 if (
nextc() == -1) {
13543 if (parser->
eofp)
goto error;
13558 if ((c =
nextc()) == -1)
goto error;
13579 rb_warning1(
"ambiguous first argument; put parentheses or a space even after `%c' operator",
WARN_I(c));
13584 #define arg_ambiguous(c) (arg_ambiguous_gen(parser, (c)), 1) 13594 yyerror(
"formal argument cannot be a constant");
13597 yyerror(
"formal argument cannot be an instance variable");
13600 yyerror(
"formal argument cannot be a global variable");
13603 yyerror(
"formal argument cannot be a class variable");
13606 yyerror(
"formal argument must be local variable");
13610 lhs = dispatch1(param_error, lhs);
13631 if (len > 5 && name[nlen = len - 5] ==
'-') {
13632 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
13635 if (len > 4 && name[nlen = len - 4] ==
'-') {
13638 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
13639 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
13654 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13671 for (i = 0; i < n; ++i) {
13706 case 't':
case 'T':
13711 case 'f':
case 'F':
13747 # if WARN_PAST_SCOPE 13749 parser_set_past_scope(
struct parser_params *parser,
const char *name,
const char *
val)
13752 if (b >= 0) parser->past_scope_enabled = b;
13767 # if WARN_PAST_SCOPE 13768 {
"warn_past_scope", parser_set_past_scope},
13772 static const char *
13780 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13781 return str + i + 1;
13786 if (i + 1 >= len)
return 0;
13787 if (str[i+1] !=
'-') {
13790 else if (str[i-1] !=
'-') {
13794 return str + i + 2;
13809 VALUE name = 0, val = 0;
13810 const char *beg, *end, *vbeg, *vend;
13811 #define str_copy(_s, _p, _n) ((_s) \ 13812 ? (void)(rb_str_resize((_s), (_n)), \ 13813 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \ 13814 : (void)((_s) = STR_NEW((_p), (_n)))) 13816 if (len <= 7)
return FALSE;
13822 len = end - beg - 3;
13832 for (; len > 0 && *str; str++, --
len) {
13834 case '\'':
case '"':
case ':':
case ';':
13839 for (beg = str; len > 0; str++, --
len) {
13841 case '\'':
case '"':
case ':':
case ';':
13849 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
13852 if (!indicator)
return FALSE;
13856 do str++;
while (--len > 0 &&
ISSPACE(*str));
13859 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13860 if (*str ==
'\\') {
13872 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
13876 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13879 while (len > 0 && (
ISSPACE(*str))) --len, str++;
13880 if (len)
return FALSE;
13886 for (i = 0; i < n; ++i) {
13887 if (s[i] ==
'-') s[i] =
'_';
13893 n = (*p->
length)(parser, vbeg, n);
13899 }
while (++p < magic_comments +
numberof(magic_comments));
13913 const char *beg = str;
13917 if (send - str <= 6)
return;
13919 case 'C':
case 'c': str += 6;
continue;
13920 case 'O':
case 'o': str += 5;
continue;
13921 case 'D':
case 'd': str += 4;
continue;
13922 case 'I':
case 'i': str += 3;
continue;
13923 case 'N':
case 'n': str += 2;
continue;
13924 case 'G':
case 'g': str += 1;
continue;
13925 case '=':
case ':':
13938 if (++str >= send)
return;
13941 if (*str !=
'=' && *str !=
':')
return;
13946 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13962 (
unsigned char)
lex_p[0] == 0xbb &&
13963 (
unsigned char)
lex_p[1] == 0xbf) {
13978 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY) 13979 #define IS_END() IS_lex_state(EXPR_END_ANY) 13980 #define IS_BEG() (IS_lex_state(EXPR_BEG_ANY) || IS_lex_state_all(EXPR_ARG|EXPR_LABELED)) 13981 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) 13982 #define IS_LABEL_POSSIBLE() (\ 13983 (IS_lex_state(EXPR_LABEL|EXPR_ENDFN) && !cmd_state) || \ 13985 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1)) 13986 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT) 13989 #define ambiguous_operator(op, syn) ( \ 13990 rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \ 13991 rb_warning0("even though it seems like "syn"")) 13993 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn)) 13995 #define warn_balanced(op, syn) ((void) \ 13996 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN) && \ 13997 space_seen && !ISSPACE(c) && \ 13998 (ambiguous_operator(op, syn), 0))) 14004 char *point = &str[seen_point];
14005 size_t fraclen = len-seen_point-1;
14006 memmove(point, point+1, fraclen+1);
14014 int is_float, seen_point, seen_e, nondigit;
14017 is_float = seen_point = seen_e = nondigit = 0;
14020 if (c ==
'-' || c ==
'+') {
14025 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0) 14028 if (c ==
'x' || c ==
'X') {
14034 if (nondigit)
break;
14041 }
while ((c =
nextc()) != -1);
14045 if (
toklen() == start) {
14048 else if (nondigit)
goto trailing_uc;
14052 if (c ==
'b' || c ==
'B') {
14055 if (c ==
'0' || c ==
'1') {
14058 if (nondigit)
break;
14062 if (c !=
'0' && c !=
'1')
break;
14065 }
while ((c =
nextc()) != -1);
14069 if (
toklen() == start) {
14072 else if (nondigit)
goto trailing_uc;
14076 if (c ==
'd' || c ==
'D') {
14082 if (nondigit)
break;
14089 }
while ((c =
nextc()) != -1);
14093 if (
toklen() == start) {
14096 else if (nondigit)
goto trailing_uc;
14104 if (c ==
'o' || c ==
'O') {
14107 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
14111 if (c >=
'0' && c <=
'7') {
14116 if (nondigit)
break;
14120 if (c < '0' || c >
'9')
break;
14121 if (c >
'7')
goto invalid_octal;
14124 }
while ((c =
nextc()) != -1);
14128 if (nondigit)
goto trailing_uc;
14137 if (c >
'7' && c <=
'9') {
14139 yyerror(
"Invalid octal digit");
14141 else if (c ==
'.' || c ==
'e' || c ==
'E') {
14153 case '0':
case '1':
case '2':
case '3':
case '4':
14154 case '5':
case '6':
case '7':
case '8':
case '9':
14160 if (nondigit)
goto trailing_uc;
14161 if (seen_point || seen_e) {
14166 if (c0 == -1 || !
ISDIGIT(c0)) {
14191 if (c !=
'-' && c !=
'+' && !
ISDIGIT(c)) {
14200 nondigit = (c ==
'-' || c ==
'+') ? c : 0;
14204 if (nondigit)
goto decode_num;
14219 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14234 if (
errno == ERANGE) {
14301 const char *start =
lex_p - 1, *p = start;
14304 if (n < 0)
return -1;
14307 rb_warn2(
"`?' just followed by `%.*s' is interpreted as" \
14308 " a conditional operator, put a space after `?'",
14313 else if (c ==
'\\') {
14348 if (c == -1 || !
ISALNUM(c)) {
14355 yyerror(
"unknown type of %string");
14359 if (c == -1 || term == -1) {
14364 if (term ==
'(') term =
')';
14365 else if (term ==
'[') term =
']';
14366 else if (term ==
'{') term =
'}';
14367 else if (term ==
'<') term =
'>';
14417 yyerror(
"unknown type of %string");
14421 if ((c =
nextc()) ==
'=') {
14462 const unsigned long nth_ref_max =
14463 ((FIXNUM_MAX < INT_MAX) ? FIXNUM_MAX : INT_MAX) >> 1;
14467 if (overflow || n > nth_ref_max) {
14544 case '1':
case '2':
case '3':
14545 case '4':
case '5':
case '6':
14546 case '7':
case '8':
case '9':
14551 }
while (c != -1 &&
ISDIGIT(c));
14583 register int c =
nextc();
14593 if (result ==
tIVAR) {
14603 if (result ==
tIVAR) {
14631 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14644 register int c =
nextc();
14645 if (c ==
'=' && !
peek(
'~') && !
peek(
'>') &&
14702 if (kw->
id[0] != kw->
id[1])
14737 int space_seen = 0;
14741 int fallthru =
FALSE;
14764 token ==
tLABEL_END ? EXPR_BEG|EXPR_LABEL : EXPR_END|EXPR_ENDARG;
14777 switch (c =
nextc()) {
14785 case ' ':
case '\t':
case '\f':
case '\r':
14789 while ((c =
nextc())) {
14791 case ' ':
case '\t':
case '\f':
case '\r':
14818 c = (
IS_lex_state(EXPR_BEG|EXPR_CLASS|EXPR_FNAME|EXPR_DOT) &&
14826 goto normal_newline;
14830 while ((c =
nextc())) {
14832 case ' ':
case '\t':
case '\f':
case '\r':
14839 if (
peek(
'.') == (c ==
'&')) {
14852 parser->tokp =
lex_p;
14855 goto normal_newline;
14864 if ((c =
nextc()) ==
'*') {
14865 if ((c =
nextc()) ==
'=') {
14872 rb_warning0(
"`**' interpreted as argument prefix");
14891 rb_warning0(
"`*' interpreted as argument prefix");
14929 int first_p =
TRUE;
14944 if (c !=
'=')
continue;
14945 if (c ==
'=' && strncmp(
lex_p,
"end", 3) == 0 &&
14957 if ((c =
nextc()) ==
'=') {
14958 if ((c =
nextc()) ==
'=') {
14967 else if (c ==
'>') {
14981 if (token)
return token;
14992 if ((c =
nextc()) ==
'>') {
14999 if ((c =
nextc()) ==
'=') {
15013 if ((c =
nextc()) ==
'=') {
15017 if ((c =
nextc()) ==
'=') {
15057 if ((c =
nextc()) ==
'&') {
15059 if ((c =
nextc()) ==
'=') {
15067 else if (c ==
'=') {
15072 else if (c ==
'.') {
15078 rb_warning0(
"`&' interpreted as argument prefix");
15092 if ((c =
nextc()) ==
'|') {
15094 if ((c =
nextc()) ==
'=') {
15174 if ((c =
nextc()) ==
'.') {
15175 if ((c =
nextc()) ==
'.') {
15183 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
15188 case '0':
case '1':
case '2':
case '3':
case '4':
15189 case '5':
case '6':
case '7':
case '8':
case '9':
15242 if ((c =
nextc()) ==
'=') {
15258 if ((c =
nextc()) ==
'=') {
15278 if ((c =
nextc()) !=
'@') {
15296 rb_warning0(
"parentheses after method name is interpreted as " 15297 "an argument list, not a decomposed argument");
15309 if ((c =
nextc()) ==
']') {
15310 if ((c =
nextc()) ==
'=') {
15408 parser->
lval = lval;
15455 if (orig == (
NODE*)1)
return;
15464 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg)) 15471 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg)) 15476 NODE *end, *h = head, *nd;
15478 if (tail == 0)
return head;
15480 if (h == 0)
return tail;
15519 tail->nd_end = tail;
15521 end->nd_next = tail;
15522 h->nd_end = tail->nd_end;
15532 if (list == 0)
return NEW_LIST(item);
15533 if (list->nd_next) {
15534 last = list->nd_next->nd_end;
15540 list->nd_alen += 1;
15542 list->nd_next->nd_end = last->nd_next;
15552 if (head->nd_next) {
15553 last = head->nd_next->nd_end;
15559 head->nd_alen += tail->nd_alen;
15560 last->nd_next = tail;
15561 if (tail->nd_next) {
15562 head->nd_next->nd_end = tail->nd_next->nd_end;
15565 head->nd_next->nd_end = tail;
15574 if (
NIL_P(tail))
return 1;
15595 if (!head)
return tail;
15596 if (!tail)
return head;
15616 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
15619 lit = headlast->nd_lit;
15622 lit = head->nd_lit;
15642 tail->nd_lit = head->nd_lit;
15646 else if (
NIL_P(tail->nd_lit)) {
15648 head->nd_alen += tail->nd_alen - 1;
15649 head->nd_next->nd_end->nd_next = tail->nd_next;
15650 head->nd_next->nd_end = tail->nd_next->nd_end;
15653 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
15655 lit = headlast->nd_lit;
15658 tail->nd_lit =
Qnil;
15663 tail->nd_head =
NEW_STR(tail->nd_lit);
15751 # if WARN_PAST_SCOPE 15797 # if WARN_PAST_SCOPE 15821 NODE *kws = kwlist;
15822 while (kws->nd_next) {
15823 kws = kws->nd_next;
15841 VALUE src = node->nd_lit;
15857 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
15859 VALUE tail = list->nd_head->nd_lit;
15861 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
15867 prev->nd_next = list->nd_next;
15880 if (!node->nd_next) {
15881 VALUE src = node->nd_lit;
15933 if (ripper_is_node_yylval(re)) {
15934 src =
RNODE(re)->nd_cval;
15935 re =
RNODE(re)->nd_rval;
15937 if (ripper_is_node_yylval(opt)) {
15938 options = (int)
RNODE(opt)->nd_tag;
15939 opt =
RNODE(opt)->nd_rval;
15944 return dispatch2(regexp_literal, re, opt);
15950 return dispatch1(xstring_literal, str);
15955 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15956 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15957 "EXPR_LABEL",
"EXPR_LABELED",
"EXPR_FITEM",
15964 unsigned int mask = 1;
15965 static const char none[] =
"EXPR_NONE";
15968 if ((
unsigned)state & mask) {
16004 for (; mask && !(stack & mask); mask >>= 1)
continue;
16005 for (; mask; mask >>= 1)
rb_str_cat(mesg, stack & mask ?
"1" :
"0", 1);
16021 # define assignable_result(x) get_value(lhs) 16022 # define parser_yyerror(parser, x) assign_error_gen(parser, lhs) 16024 # define assignable_result(x) (x) 16029 yyerror(
"Can't change the value of self");
16032 yyerror(
"Can't assign to nil");
16035 yyerror(
"Can't assign to true");
16038 yyerror(
"Can't assign to false");
16041 yyerror(
"Can't assign to __FILE__");
16044 yyerror(
"Can't assign to __LINE__");
16047 yyerror(
"Can't assign to __ENCODING__");
16081 yyerror(
"dynamic constant assignment");
16090 #undef assignable_result 16091 #undef parser_yyerror 16098 if (name == idUScore)
return 1;
16105 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1)) 16113 yyerror(
"duplicated argument name");
16126 yyerror(
"duplicated argument name");
16190 if (!node2)
return node1;
16193 if (node1->nd_head)
16194 node1->nd_head =
arg_concat(node1->nd_head, node2);
16206 node1->nd_body =
list_concat(node1->nd_body, node2);
16215 if (!node1)
return NEW_LIST(node2);
16220 node1->nd_head =
arg_append(node1->nd_head, node2);
16241 if (!lhs)
return 0;
16253 lhs->nd_value = rhs;
16258 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
16284 if (!cond)
yyerror(
"void value expression");
16289 while (node->nd_next) {
16290 node = node->nd_next;
16292 node = node->nd_head;
16296 node = node->nd_body;
16300 if (!node->nd_body) {
16301 node = node->nd_else;
16304 else if (!node->nd_else) {
16305 node = node->nd_body;
16309 node = node->nd_else;
16315 node = node->nd_2nd;
16329 const char *useless = 0;
16336 switch (node->nd_mid) {
16367 useless =
"a variable";
16370 useless =
"a constant";
16377 useless =
"a literal";
16402 useless =
"defined?";
16419 if (!node->nd_next)
return;
16421 node = node->nd_next;
16428 NODE **n = &node, *n1 = node;
16430 *n = n1 = n1->nd_body;
16438 NODE **n = &node, *n1 = node;
16440 *n = n1 = n1->nd_body;
16448 NODE *node = *body;
16454 #define subnodes(n1, n2) \ 16455 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \ 16456 (!node->n2) ? (body = &node->n1, 1) : \ 16457 (reduce_nodes(&node->n1), body = &node->n2, 1)) 16467 *body = node = node->nd_stts;
16471 *body = node = node->nd_body;
16475 body = &node->nd_end->nd_head;
16481 body = &node->nd_body;
16490 if (node->nd_else) {
16491 body = &node->nd_resq;
16509 if (!node)
return 1;
16512 if (!(node = node->nd_head))
break;
16516 }
while ((node = node->nd_next) != 0);
16546 if (!node->nd_value)
return 1;
16549 parser_warn(node->nd_value,
"found = in conditional, should be ==");
16573 if (node == 0)
return 0;
16587 if (!node)
return 1;
16608 if (node == 0)
return 0;
16615 if (!method_op)
rb_warn0(
"string literal in condition");
16626 node->nd_1st =
cond0(parser, node->nd_1st,
FALSE);
16627 node->nd_2nd =
cond0(parser, node->nd_2nd,
FALSE);
16632 node->nd_beg =
range_op(parser, node->nd_beg);
16633 node->nd_end =
range_op(parser, node->nd_end);
16668 if (node == 0)
return 0;
16669 return cond0(parser, node, method_op);
16675 if (!cc)
return right;
16685 NODE *node = left, *second;
16686 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
16689 node->nd_2nd =
NEW_NODE(type, second, right, 0);
16692 return NEW_NODE(type, left, right, 0);
16709 if (node->nd_next == 0) {
16710 node = node->nd_head;
16731 int type =
TYPE(lit);
16757 rb_bug(
"unknown literal type (%d) passed to negate_lit", type);
16767 node2->nd_head = node1;
16781 args->
pre_init = m ? m->nd_next : 0;
16823 NODE *val_node = kwn->nd_body->nd_value;
16824 ID vid = kwn->nd_body->nd_vid;
16826 if (val_node == (
NODE *)-1) {
16833 kwn = kwn->nd_next;
16877 lit = node->nd_lit;
16894 node->nd_next->nd_end = node->nd_next;
16895 node->nd_next->nd_next = 0;
16908 while (hash && hash->nd_head && hash->nd_next) {
16909 NODE *head = hash->nd_head;
16910 NODE *value = hash->nd_next;
16911 NODE *next = value->nd_next;
16915 st_lookup(literal_keys, (key = head->nd_lit), &data)) {
16917 "key %+"PRIsVALUE" is duplicated and overwritten on line %d",
16918 head->nd_lit,
nd_line(head));
16919 head = ((
NODE *)data)->nd_next;
16920 head->nd_head =
block_append(head->nd_head, value->nd_head);
16930 if (!result) result =
hash;
16951 ID vid = lhs->nd_vid;
16953 lhs->nd_value = rhs;
16960 asgn->nd_aid = vid;
16964 else if (op ==
tANDOP) {
16965 lhs->nd_value = rhs;
16988 else if (op ==
tANDOP) {
17004 else if (op ==
tANDOP) {
17021 yyerror(
"dynamic constant assignment");
17029 return dispatch3(opassign, lhs, op, rhs);
17035 VALUE recv = dispatch3(field, lhs, type, attr);
17036 return dispatch3(opassign, recv, op, rhs);
17043 assign_error(path);
17051 a = dispatch1(assign_error, a);
17063 if (!local->
used)
return;
17067 if (cnt != local->
vars->
pos) {
17068 rb_bug(
"local->used->pos != local->vars->pos");
17070 for (i = 0; i <
cnt; ++i) {
17071 if (!v[i] || (u[i] &
LVAR_USED))
continue;
17086 local->
used = !(inherit_dvars &&
17089 # if WARN_PAST_SCOPE 17105 # if WARN_PAST_SCOPE 17106 while (
lvtbl->past) {
17125 int cnt = cnt_args + cnt_vars;
17129 if (cnt <= 0)
return 0;
17133 for (i = 0, j = cnt_args+1; i < cnt_vars; ++i) {
17139 if (--j < cnt)
REALLOC_N(buf,
ID, (cnt = j) + 1);
17163 struct vtable *vars, *args, *used;
17165 vars =
lvtbl->vars;
17166 args =
lvtbl->args;
17167 used =
lvtbl->used;
17172 if (used) used = used->
prev;
17188 static const struct vtable *
17196 return lvtbl->args;
17202 struct vtable *tmp = *vtblp;
17203 *vtblp = tmp->
prev;
17204 # if WARN_PAST_SCOPE 17205 if (parser->past_scope_enabled) {
17219 if ((tmp =
lvtbl->used) != 0) {
17231 while (
lvtbl->args != lvargs) {
17233 if (!
lvtbl->args) {
17251 struct vtable *vars, *args, *used;
17254 args =
lvtbl->args;
17255 vars =
lvtbl->vars;
17256 used =
lvtbl->used;
17269 if (used) used = used->
prev;
17290 "regexp encoding option '%c' differs from source encoding '%s'",
17361 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
17367 const char *s = (
const char *)name;
17450 NODE *scope = node;
17453 if (!node)
return node;
17457 node = node->nd_body;
17461 node = node->nd_body;
17468 prelude->nd_body = node;
17469 scope->nd_body = prelude;
17472 scope->nd_body = node;
17482 NODE *scope = node;
17485 if (!node)
return node;
17489 node = node->nd_body;
17493 node = node->nd_body;
17509 prelude->nd_body = node;
17510 scope->nd_body = prelude;
17513 scope->nd_body = node;
17543 parser->delayed =
Qnil;
17544 parser->result =
Qnil;
17545 parser->parsing_thread =
Qnil;
17554 #define parser_mark ripper_parser_mark 17555 #define parser_free ripper_parser_free 17595 for (local =
lvtbl; local; local =
prev) {
17597 prev = local->
prev;
17602 while ((ptinfo = parser->
token_info) != 0) {
17615 size_t size =
sizeof(*parser);
17618 for (local =
lvtbl; local; local = local->
prev) {
17619 size +=
sizeof(*local);
17640 #undef rb_reserved_word 17653 &parser_data_type, p);
17672 #define rb_parser_end_seen_p ripper_parser_end_seen_p 17673 #define rb_parser_encoding ripper_parser_encoding 17674 #define rb_parser_get_yydebug ripper_parser_get_yydebug 17675 #define rb_parser_set_yydebug ripper_parser_set_yydebug 17676 static VALUE ripper_parser_end_seen_p(
VALUE vparser);
17677 static VALUE ripper_parser_encoding(
VALUE vparser);
17678 static VALUE ripper_parser_get_yydebug(
VALUE self);
17688 ripper_error_p(
VALUE vparser)
17754 yydebug =
RTEST(flag);
17760 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE)) 17761 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0) 17762 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \ 17763 (n)->u3.cnt = (c), (p)) 17780 void *ptr =
xcalloc(nelem, size);
17791 if (ptr && (n = parser->
heap) !=
NULL) {
17793 if (n->
u1.
node == ptr) {
17810 while ((n = *prev) !=
NULL) {
17811 if (n->u1.node == ptr) {
17856 #ifdef RIPPER_DEBUG 17857 extern int rb_is_pointer_to_heap(
VALUE);
17863 if (x ==
Qfalse)
return x;
17864 if (x ==
Qtrue)
return x;
17865 if (x ==
Qnil)
return x;
17870 if (!rb_is_pointer_to_heap(x))
17882 if (
nd_type(x) != NODE_RIPPER) {
17885 return ((
NODE *)x)->nd_rval;
17894 #define validate(x) ((x) = get_value(x)) 17906 return rb_funcall(parser->value, mid, 1, a);
17914 return rb_funcall(parser->value, mid, 2, a, b);
17923 return rb_funcall(parser->value, mid, 3, a, b, c);
17933 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17944 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17957 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17960 static const struct kw_assoc {
17963 } keyword_to_name[] = {
18016 keyword_id_to_str(
ID id)
18018 const struct kw_assoc *a;
18020 for (a = keyword_to_name; a->id; a++) {
18027 #undef ripper_id2sym 18034 if (
id == (
ID)(
signed char)
id) {
18039 if ((name = keyword_id_to_str(
id))) {
18043 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
18049 ripper_get_id(
VALUE v)
18054 if (
nd_type(nd) != NODE_RIPPER)
return 0;
18059 ripper_get_value(
VALUE v)
18066 return nd->nd_rval;
18076 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
18081 va_start(args, fmt);
18085 ripper_error_gen(parser);
18094 "gets returned %"PRIsVALUE" (expected String or nil)",
18107 ripper_s_allocate(
VALUE klass)
18111 &parser_data_type, p);
18116 #define ripper_initialized_p(r) ((r)->lex.input != 0) 18132 VALUE src, fname, lineno;
18135 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
18140 lex_gets = ripper_lex_get_generic;
18148 if (
NIL_P(fname)) {
18165 struct ripper_args {
18172 ripper_parse0(
VALUE parser_v)
18178 ripper_yyparse((
void*)parser);
18179 return parser->result;
18183 ripper_ensure(
VALUE parser_v)
18188 parser->parsing_thread =
Qnil;
18199 ripper_parse(
VALUE self)
18204 if (!ripper_initialized_p(parser)) {
18207 if (!
NIL_P(parser->parsing_thread)) {
18214 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
18216 return parser->result;
18227 ripper_column(
VALUE self)
18233 if (!ripper_initialized_p(parser)) {
18236 if (
NIL_P(parser->parsing_thread))
return Qnil;
18248 ripper_filename(
VALUE self)
18253 if (!ripper_initialized_p(parser)) {
18267 ripper_lineno(
VALUE self)
18272 if (!ripper_initialized_p(parser)) {
18275 if (
NIL_P(parser->parsing_thread))
return Qnil;
18279 #ifdef RIPPER_DEBUG 18313 InitVM_ripper(
void)
18331 #ifdef RIPPER_DEBUG #define STRNCASECMP(s1, s2, n)
void rb_define_global_const(const char *, VALUE)
static void arg_ambiguous_gen(struct parser_params *parser, char c)
static void token_info_pop_gen(struct parser_params *, const char *token, size_t len)
NODE * rb_parser_compile_string_path(VALUE vparser, VALUE f, VALUE s, int line)
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
ONIG_EXTERN int onig_foreach_name(OnigRegex reg, int(*func)(const OnigUChar *, const OnigUChar *, int, int *, OnigRegex, void *), void *arg)
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static NODE * new_if_gen(struct parser_params *, NODE *, NODE *, NODE *)
static ID ripper_token2eventid(int tok)
static ID internal_id_gen(struct parser_params *)
int rb_enc_codelen(int c, rb_encoding *enc)
#define heredoc_line_indent
#define NEW_OP_ASGN_AND(i, val)
#define YY_REDUCE_PRINT(Rule)
#define shadowing_lvar(name)
#define MBCLEN_CHARFOUND_P(ret)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define RRATIONAL_SET_NUM(rat, n)
#define RE_OPTION_ENCODING_IDX(o)
#define NEW_OP_ASGN1(p, id, a)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
void rb_bug(const char *fmt,...)
#define mixed_escape(beg, enc1, enc2)
static const yytype_uint8 yyr2[]
#define RUBY_TYPED_FREE_IMMEDIATELY
static const struct kwtable * reserved_word(const char *, unsigned int)
long rb_str_coderange_scan_restartable(const char *, const char *, rb_encoding *, int *)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
#define scan_oct(s, l, e)
#define dispatch_heredoc_end()
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_make_exception(int argc, const VALUE *argv)
static NODE * new_regexp_gen(struct parser_params *, NODE *, int)
static int parser_tokadd_codepoint(struct parser_params *parser, rb_encoding **encp, int regexp_literal, int wide)
static void local_push_gen(struct parser_params *, int)
static int vtable_size(const struct vtable *tbl)
#define formal_argument(id)
#define set_number_literal(v, t, f)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
#define YY_STACK_PRINT(Bottom, Top)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
ID rb_intern2(const char *, long)
static unsigned int hash(str, len) register const char *str
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static void parser_compile_error(struct parser_params *, const char *fmt,...)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
void rb_define_singleton_method(VALUE obj, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a singleton method for obj.
static int nodeline(NODE *node)
static NODE * const_decl_gen(struct parser_params *parser, NODE *path)
static NODE * arg_blk_pass(NODE *, NODE *)
#define RUBY_DTRACE_PARSE_HOOK(name)
#define IS_LABEL_POSSIBLE()
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
static ID formal_argument_gen(struct parser_params *, ID)
#define rb_usascii_str_new2
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e - 0x20+31)/32]
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
unsigned short int yytype_uint16
VALUE rb_str_cat(VALUE, const char *, long)
NODE * rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE file, int start)
VALUE rb_reg_check_preprocess(VALUE)
#define RE_OPTION_ENCODING(e)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
#define set_yylval_str(x)
static const yytype_uint16 yyr1[]
#define set_yylval_literal(x)
#define yytable_value_is_error(yytable_value)
#define lambda_beginning_p()
#define ADD2HEAP(n, c, p)
VALUE rb_io_gets_internal(VALUE io)
VALUE rb_parser_encoding(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
#define literal_concat(h, t)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
static int lvar_defined_gen(struct parser_params *, ID)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
void rb_define_private_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
int rb_enc_symname2_p(const char *, long, rb_encoding *)
static ID * local_tbl_gen(struct parser_params *)
#define ripper_id2sym(id)
NODE * rb_parser_compile_string(VALUE vparser, const char *f, VALUE s, int line)
#define IS_lex_state_all(ls)
#define new_defined(expr)
VALUE rb_ary_push(VALUE ary, VALUE item)
#define NEW_CLASS(n, b, s)
#define new_do_body(param, stmt)
SSL_METHOD *(* func)(void)
static NODE * parser_compile_string(VALUE vparser, VALUE fname, VALUE s, int line)
static int parser_yylex(struct parser_params *parser)
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
#define new_args_tail(k, kr, b)
VALUE rb_ary_tmp_new(long capa)
static NODE * attrset_gen(struct parser_params *, NODE *, ID, ID)
int rb_local_defined(ID id, const struct rb_block *base_block)
static NODE * remove_begin_all(NODE *)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
static int parser_regx_options(struct parser_params *)
static int dedent_string(VALUE string, int width)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
void rb_str_set_len(VALUE, long)
#define rb_warn2(fmt, a, b)
static VALUE coverage(VALUE fname, int n)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
static NODE * newline_node(NODE *)
int rb_enc_str_coderange(VALUE)
static void ripper_init_eventids1_table(VALUE self)
void rb_raise(VALUE exc, const char *fmt,...)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static const yytype_uint16 yyprhs[]
#define RSTRING_GETMEM(str, ptrvar, lenvar)
#define block_dup_check(n1, n2)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
NODE * rb_parser_compile_cstr(VALUE vparser, const char *f, const char *s, int len, int line)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * new_hash_gen(struct parser_params *parser, NODE *hash)
#define NEW_OP_ASGN2(r, t, i, o, val)
static int parse_ident(struct parser_params *parser, int c, int cmd_state)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define new_const_op_assign(lhs, op, rhs)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
static int parser_string_term(struct parser_params *parser, int func)
#define rb_warning1(fmt, a)
#define nd_set_type(n, t)
static size_t parser_memsize(const void *ptr)
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
static void fixpos(NODE *, NODE *)
void rb_gc_mark(VALUE ptr)
static NODE * gettable_gen(struct parser_params *, ID)
#define rb_enc_islower(c, enc)
VALUE rb_io_write(VALUE, VALUE)
#define reg_compile(str, options)
#define rb_warn3L(l, fmt, a, b, c)
static void reg_fragment_enc_error(struct parser_params *parser, VALUE str, int c)
#define str_copy(_s, _p, _n)
#define RCOMPLEX_SET_IMAG(cmp, i)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
void rb_gc_force_recycle(VALUE obj)
#define MEMO_NEW(a, b, c)
VALUE rb_parser_set_context(VALUE vparser, const struct rb_block *base, int main)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
static VALUE parser_reg_compile(struct parser_params *parser, VALUE str, int options)
static int dvar_defined_gen(struct parser_params *, ID, int)
static NODE * new_yield_gen(struct parser_params *, NODE *)
#define RE_OPTION_ENCODING_NONE(o)
static char * parser_tokspace(struct parser_params *parser, int n)
static int parser_nextline(struct parser_params *parser)
#define tokadd_string(f, t, p, n, e)
VALUE rb_str_buf_append(VALUE, VALUE)
#define number_literal_suffix(f)
#define is_identchar(p, e, enc)
VALUE rb_syntax_error_append(VALUE exc, VALUE file, int line, int column, rb_encoding *enc, const char *fmt, va_list args)
static int parse_atmark(struct parser_params *parser, const enum lex_state_e last_state)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
static NODE * remove_begin(NODE *)
#define st_init_numtable_with_size
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
static int parser_set_integer_literal(struct parser_params *parser, VALUE v, int suffix)
RUBY_EXTERN void * memmove(void *, const void *, size_t)
static const yytype_int16 yytable[]
RUBY_EXTERN unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
VALUE rb_str_buf_cat(VALUE, const char *, long)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
static int dyna_in_block_gen(struct parser_params *)
static const rb_data_type_t parser_data_type
#define logop(type, node1, node2)
static rb_encoding * must_be_ascii_compatible(VALUE s)
static void dyna_pop_1(struct parser_params *parser)
void rb_exc_raise(VALUE mesg)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
struct parser_params::@99 lex
#define parser_warn(node, mesg)
NODE * rb_parser_compile_file(VALUE vparser, const char *f, VALUE file, int start)
static const char lex_state_names[][13]
#define RB_TYPE_P(obj, type)
static int parser_precise_mbclen(struct parser_params *parser, const char *p)
static void next_state(struct MT *mt)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_ATTRASGN(r, m, a)
#define attrset(node, q, id)
static void parser_free(void *ptr)
static VALUE negate_lit(VALUE)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
static int parse_percent(struct parser_params *parser, const int space_seen, const enum lex_state_e last_state)
static void parser_initialize(struct parser_params *parser)
#define scan_hex(s, l, e)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define rb_intern_str(string)
#define lex_goto_eol(parser)
#define rb_rational_raw1(x)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop, parser)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
static NODE * remove_duplicate_keys(struct parser_params *parser, NODE *hash)
VALUE rb_parser_get_yydebug(VALUE self)
#define SET_LEX_STATE(ls)
void rb_parser_printf(struct parser_params *parser, const char *fmt,...)
static void arg_var_gen(struct parser_params *, ID)
RUBY_EXTERN VALUE rb_cObject
#define match_op(node1, node2)
static enum node_type nodetype(NODE *node)
#define NEW_STRTERM(func, term, paren)
static int parser_update_heredoc_indent(struct parser_params *parser, int c)
static const struct magic_comment magic_comments[]
struct parser_params * parser
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
static int parser_number_literal_suffix(struct parser_params *parser, int mask)
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
VALUE rb_get_coverages(void)
static int parser_cr(struct parser_params *parser, int c)
static int e_option_supplied(struct parser_params *parser)
static struct vtable * vtable_alloc(struct vtable *prev)
#define token_info_push(token)
const struct rb_block * base_block
VALUE rb_obj_as_string(VALUE)
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
static int append_literal_keys(st_data_t k, st_data_t v, st_data_t h)
static const yytype_uint16 yyrline[]
RUBY_EXTERN VALUE rb_mKernel
static int parse_qmark(struct parser_params *parser, int space_seen)
VALUE rb_thread_current(void)
static VALUE append_lex_state_name(enum lex_state_e state, VALUE buf)
static NODE * new_xstring_gen(struct parser_params *, NODE *)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
NODE * rb_compile_string(const char *f, VALUE s, int line)
void rb_define_const(VALUE, const char *, VALUE)
rb_atomic_t cnt[RUBY_NSIG]
static void no_blockarg(struct parser_params *parser, NODE *node)
static NODE * cond_gen(struct parser_params *, NODE *, int)
static NODE * splat_array(NODE *)
static void parser_mark(void *ptr)
static void parser_tokadd(struct parser_params *parser, int c)
static YYSIZE_T yystrlen(char *yystr) const
static void ripper_init_eventids1(void)
VALUE rb_rational_new(VALUE, VALUE)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define ALLOCA_N(type, n)
static NODE * list_concat(NODE *, NODE *)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define warn_balanced(op, syn)
#define NEW_OP_CDECL(v, op, val)
#define ENC_CODERANGE_UNKNOWN
static void void_expr_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)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
static void parser_set_compile_option_flag(struct parser_params *parser, const char *name, const char *val)
VALUE rb_enc_associate_index(VALUE obj, int idx)
static VALUE debug_lines(VALUE fname)
#define dispatch_delayed_token(t)
#define IS_AFTER_OPERATOR()
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
#define set_yylval_num(x)
VALUE rb_class_new_instance(int, const VALUE *, VALUE)
#define parser_encoding_name()
#define new_op_assign(lhs, op, rhs)
RUBY_EXTERN VALUE rb_int_positive_pow(long x, unsigned long y)
VALUE rb_make_backtrace(void)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
static void dyna_pop_vtable(struct parser_params *parser, struct vtable **vtblp)
#define NEW_WHEN(c, t, e)
static const yytype_int16 yycheck[]
VALUE rb_str_resize(VALUE, long)
static int literal_node(NODE *node)
static int dvar_curr_gen(struct parser_params *, ID)
RUBY_FUNC_EXPORTED int rb_reg_fragment_setenc(struct parser_params *, VALUE, int)
#define has_delayed_token()
#define NEW_DASGN(v, val)
#define flush_string_content(enc)
#define NEW_BLOCK_PASS(b)
VALUE rb_str_subseq(VALUE, long, long)
#define dispatch_scan_event(t)
static NODE * kwd_append(NODE *, NODE *)
VALUE rb_funcallv_public(VALUE, ID, int, const VALUE *)
Calls a method.
static int parser_yyerror(struct parser_params *, const char *)
#define REALLOC_N(var, type, n)
static const yytype_int16 yypgoto[]
static int parser_tokadd_mbchar(struct parser_params *parser, int c)
#define heredoc_dedent(str)
int rb_dvar_defined(ID id, const struct rb_block *base_block)
#define new_brace_body(param, stmt)
static NODE * parser_heredoc_dedent(struct parser_params *, NODE *)
VALUE rb_sprintf(const char *format,...)
#define set_integer_literal(v, f)
#define NEW_OP_ASGN_OR(i, val)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#define rb_enc_isspace(c, enc)
#define ruby_sourcefile_string
int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc)
#define parser_warning(node, mesg)
static int parse_numeric(struct parser_params *parser, int c)
static int yylex(YYSTYPE *, struct parser_params *)
#define mixed_error(enc1, enc2)
void rb_fatal(const char *fmt,...)
static int tokadd_ident(struct parser_params *parser, int c)
#define MEMMOVE(p1, p2, type, n)
#define reg_fragment_setenc(str, options)
static int value_expr_gen(struct parser_params *, NODE *)
static const yytype_int16 yyrhs[]
VALUE rb_str_vcatf(VALUE, const char *, va_list)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define NEW_RESCUE(b, res, e)
static const char * magic_comment_marker(const char *str, long len)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static const yytype_uint8 yytranslate[]
unsigned char buf[MIME_BUF_SIZE]
static char * parser_newtok(struct parser_params *parser)
rb_encoding * rb_usascii_encoding(void)
RUBY_FUNC_EXPORTED VALUE rb_parser_reg_compile(struct parser_params *parser, VALUE str, int options)
#define rb_enc_isalnum(c, enc)
#define NEW_PRELUDE(p, b, o)
static int options(unsigned char *cp)
#define heredoc_restore(n)
#define intern_cstr(n, l, en)
#define IS_lex_state_for(x, ls)
static ID tokenize_ident(struct parser_params *parser, const enum lex_state_e last_state)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void ripper_init_eventids2(void)
#define heredoc_identifier()
VALUE rb_obj_hide(VALUE obj)
static void show_bitstack(stack_type, const char *, int)
static int token_info_has_nonspaces(struct parser_params *parser, const char *pend)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define NEW_ENSURE(b, en)
#define token_info_pop(token)
#define call_bin_op(recv, id, arg1)
const char * rb_id2name(ID)
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
static VALUE yycompile0(VALUE arg)
static void local_var_gen(struct parser_params *, ID)
VALUE rb_str_new_cstr(const char *)
#define new_xstring(node)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
#define assignable_result(x)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
#define ENCODING_IS_ASCII8BIT(obj)
#define top_const_field(n)
#define dvar_defined_get(id)
unsigned int token_info_enabled
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
static int vtable_included(const struct vtable *tbl, ID id)
VALUE rb_sym_intern_ascii_cstr(const char *ptr)
static int parser_set_number_literal(struct parser_params *parser, VALUE v, int type, int suffix)
#define backref_assign_error(n, a)
int rb_respond_to(VALUE, ID)
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
register unsigned int len
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
#define parser_is_identchar()
#define set_yylval_node(x)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static void vtable_free(struct vtable *tbl)
static int parser_get_bool(struct parser_params *parser, const char *name, const char *val)
#define reg_fragment_check(str, options)
void rb_str_modify(VALUE)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
static void reduce_nodes_gen(struct parser_params *, NODE **)
#define YYSTACK_ALLOC_MAXIMUM
VALUE rb_ident_hash_new(void)
#define set_yylval_name(x)
#define NEW_GASGN(v, val)
static void parser_pushback(struct parser_params *parser, int c)
#define RARRAY_AREF(a, i)
static const yytype_uint16 yydefact[]
static int parser_here_document(struct parser_params *, NODE *)
static NODE * ret_args_gen(struct parser_params *, NODE *)
static NODE * cond0(struct parser_params *, NODE *, int)
void rb_set_errinfo(VALUE err)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
static void local_pop_gen(struct parser_params *)
VALUE rb_complex_raw(VALUE x, VALUE y)
static int simple_re_meta(int c)
#define NEW_UNTIL(c, b, n)
#define method_cond(node)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
#define aryset(node1, node2)
#define list_append(l, i)
#define tokaddmbc(c, enc)
VALUE rb_str_catf(VALUE str, const char *format,...)
#define STR_NEW3(p, n, e, func)
static const yytype_int16 yypact[]
void rb_compile_warning(const char *file, int line, const char *fmt,...)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define yypact_value_is_default(yystate)
VALUE rb_big_norm(VALUE x)
static void parser_prepare(struct parser_params *parser)
#define NEW_WHILE(c, b, n)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
#define new_args(f, o, r, p, t)
static void rb_backref_error_gen(struct parser_params *, NODE *)
static void vtable_pop(struct vtable *tbl, int n)
#define NEW_POSTARG(i, v)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
VALUE rb_parser_new(void)
static void void_stmts_gen(struct parser_params *, NODE *)
static int parse_numvar(struct parser_params *parser)
struct rb_encoding_entry * list
static const yytype_int16 yydefgoto[]
#define const_path_field(w, n)
#define new_if(cc, left, right)
VALUE rb_str_cat_cstr(VALUE, const char *)
#define NEW_CVASGN(v, val)
static int is_global_name_punct(const int c)
static int id_type(ID id)
#define TypedData_Make_Struct(klass, type, data_type, sval)
#define NEW_QCALL(q, r, m, a)
#define NEW_MATCH3(r, n2)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define node_assign(node1, node2)
#define NEW_OPT_ARG(i, v)
VALUE rb_ary_tmp_new_fill(long capa)
static int parser_parse_string(struct parser_params *, NODE *)
VALUE rb_filesystem_str_new_cstr(const char *)
#define ruby_eval_tree_begin
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
static int shadowing_lvar_0(struct parser_params *parser, ID name)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
VALUE rb_const_get_at(VALUE, ID)
static enum lex_state_e trace_lex_state(enum lex_state_e from, enum lex_state_e to, int line)
static int is_private_local_id(ID name)
static VALUE parse_rational(struct parser_params *parser, char *str, int len, int seen_point)
static int comment_at_top(struct parser_params *parser)
static void dispose_string(VALUE str)
static int parser_nextc(struct parser_params *parser)
#define read_escape(flags, e)
static const char *const yytname[]
static char * yystpcpy(char *yydest, const char *yysrc)
#define call_uni_op(recv, id)
static ID shadowing_lvar_gen(struct parser_params *, ID)
VALUE rb_str_new_frozen(VALUE)
unsigned char yytype_uint8
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
static NODE * yycompile(struct parser_params *parser, VALUE fname, int line)
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
static void token_info_push_gen(struct parser_params *, const char *token, size_t len)
static void vtable_add(struct vtable *tbl, ID id)
#define NEW_CALL(r, m, a)
static const yytype_uint16 yystos[]
static int is_static_content(NODE *node)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_enc_find_index(const char *name)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_parser_end_seen_p(VALUE vparser)
static int parser_heredoc_identifier(struct parser_params *parser)
#define new_unless(cc, left, right)
#define RCOMPLEX_SET_REAL(cmp, r)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
static const struct vtable * dyna_push_gen(struct parser_params *)
#define CONST_ID(var, str)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
RUBY_EXTERN VALUE rb_stdout
VALUE rb_str_intern(VALUE)
#define rb_intern_const(str)
#define NEW_MATCH2(n1, n2)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
static void new_bv_gen(struct parser_params *, ID)
#define assignable(id, node)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static NODE * range_op(struct parser_params *parser, NODE *node)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
NODE * rb_compile_file(const char *f, VALUE file, int start)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
#define rb_node_newnode(type, a1, a2, a3)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
#define block_append(h, t)
#define reg_named_capture_assign(regexp)
#define NEW_LASGN(v, val)
struct token_info token_info
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define ENCODING_SET(obj, i)
#define IS_LABEL_SUFFIX(n)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
int rb_memcicmp(const void *, const void *, long)
static VALUE lex_getline(struct parser_params *parser)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID atype, ID attr, ID op, NODE *rhs)
static int token_info_get_column(struct parser_params *parser, const char *pend)
#define rb_enc_prev_char(s, p, e, enc)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
#define new_regexp(node, opt)
#define whole_match_p(e, l, i)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static int parse_gvar(struct parser_params *parser, const enum lex_state_e last_state)
static int parser_peek_variable_name(struct parser_params *parser)
VALUE rb_attr_get(VALUE, ID)
static int local_id_gen(struct parser_params *, ID)
#define SPECIAL_PUNCT(idx)
#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 NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
rb_encoding * rb_enc_from_index(int index)
VALUE rb_obj_class(VALUE)
VALUE rb_str_new(const char *, long)
#define rb_warn1L(l, fmt, a)