From dadfac678d797d3515368a29b66fb5d427b9ffa9 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 16 Dec 2025 17:20:39 +0900 Subject: [PATCH] mruby-compiler: add pattern matching (case/in) support Implement Phase 1 of Ruby pattern matching: - value patterns (literals, constants, nil/true/false) - variable patterns (binds matched value) - alternative patterns (pat1 | pat2) - as patterns (pattern => var) Pattern matching uses === operator for value comparison, allowing type checking with class patterns (e.g., in Integer). Co-authored-by: Claude --- mrbgems/mruby-compiler/core/codegen.c | 155 + mrbgems/mruby-compiler/core/node.h | 82 + mrbgems/mruby-compiler/core/parse.y | 155 + mrbgems/mruby-compiler/core/y.tab.c | 9565 +++++++++++++------------ 4 files changed, 5314 insertions(+), 4643 deletions(-) diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 1b42c2330..c7b521605 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -4248,6 +4248,157 @@ codegen_case(codegen_scope *s, node *varnode, int val) } } +/* Forward declaration for pattern matching code generation */ +static void codegen_pattern(codegen_scope *s, node *pattern, int target, uint32_t *fail_pos); + +/* Pattern matching case/in expression */ +static void +codegen_case_match(codegen_scope *s, node *varnode, int val) +{ + struct mrb_ast_case_match_node *case_match_n = case_match_node(varnode); + node *value = case_match_n->value; + node *in_clauses = case_match_n->in_clauses; + + int head = cursp(); + uint32_t case_end_jumps = JMPLINK_START; + uint32_t tmp; + + /* Generate code for the case value */ + codegen(s, value, VAL); + + /* Iterate through in clauses */ + node *current_in = in_clauses; + while (current_in) { + struct mrb_ast_in_node *in_n = in_node(current_in->car); + node *pattern = in_n->pattern; + node *body = in_n->body; + + uint32_t fail_pos = JMPLINK_START; + + if (pattern) { + /* Generate pattern matching code */ + codegen_pattern(s, pattern, head, &fail_pos); + } + + /* Generate in-clause body */ + codegen(s, body, val); + if (val) pop(); + + /* Jump to end of case/in */ + tmp = genjmp(s, OP_JMP, case_end_jumps); + case_end_jumps = tmp; + + /* Dispatch fail jumps to next in-clause */ + if (fail_pos != JMPLINK_START) { + dispatch_linked(s, fail_pos); + } + + current_in = current_in->cdr; + } + + /* No pattern matched - generate nil or error */ + if (val) { + genop_1(s, OP_LOADNIL, cursp()); + } + + /* Dispatch all end jumps */ + if (case_end_jumps != JMPLINK_START) { + dispatch_linked(s, case_end_jumps); + } + + if (val) { + /* Move result to original case value position */ + gen_move(s, head, cursp(), 0); + pop(); + push(); + } + else { + pop(); /* pop the case value */ + } +} + +/* Generate pattern matching code for a single pattern. + * target: stack position of the value being matched + * fail_pos: linked list of jump positions for pattern match failure + */ +static void +codegen_pattern(codegen_scope *s, node *pattern, int target, uint32_t *fail_pos) +{ + uint32_t tmp; + + switch (get_node_type(pattern)) { + case NODE_PAT_VALUE: + { + struct mrb_ast_pat_value_node *pat_val = pat_value_node(pattern); + /* Generate: pattern_value === target */ + codegen(s, pat_val->value, VAL); + gen_move(s, cursp(), target, 0); + push(); push(); pop(); pop(); pop(); + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_OPSYM_2(s->mrb, eqq)), 1); + /* Jump to fail if not matched */ + tmp = genjmp2(s, OP_JMPNOT, cursp(), *fail_pos, 1); + *fail_pos = tmp; + } + break; + + case NODE_PAT_VAR: + { + struct mrb_ast_pat_var_node *pat_var = pat_var_node(pattern); + if (pat_var->name) { + /* Bind the matched value to the variable */ + int idx = lv_idx(s, pat_var->name); + if (idx > 0) { + gen_move(s, idx, target, 0); + } + } + /* Variable pattern always matches (wildcard if name is 0) */ + } + break; + + case NODE_PAT_ALT: + { + struct mrb_ast_pat_alt_node *pat_alt = pat_alt_node(pattern); + uint32_t left_fail = JMPLINK_START; + uint32_t success_pos = JMPLINK_START; + + /* Try left pattern */ + codegen_pattern(s, pat_alt->left, target, &left_fail); + /* Left succeeded - jump to success */ + tmp = genjmp(s, OP_JMP, success_pos); + success_pos = tmp; + + /* Left failed - try right pattern */ + if (left_fail != JMPLINK_START) { + dispatch_linked(s, left_fail); + } + codegen_pattern(s, pat_alt->right, target, fail_pos); + + /* Dispatch success jumps */ + if (success_pos != JMPLINK_START) { + dispatch_linked(s, success_pos); + } + } + break; + + case NODE_PAT_AS: + { + struct mrb_ast_pat_as_node *pat_as = pat_as_node(pattern); + /* First match the pattern */ + codegen_pattern(s, pat_as->pattern, target, fail_pos); + /* Then bind the value to the variable */ + int idx = lv_idx(s, pat_as->name); + if (idx > 0) { + gen_move(s, idx, target, 0); + } + } + break; + + default: + raise_error(s, "unsupported pattern type"); + break; + } +} + /* Definition node codegen functions */ static void @@ -5725,6 +5876,10 @@ codegen(codegen_scope *s, node *tree, int val) codegen_case(s, tree, val); break; + case NODE_CASE_MATCH: + codegen_case_match(s, tree, val); + break; + case NODE_DEF: codegen_def(s, tree, val); break; diff --git a/mrbgems/mruby-compiler/core/node.h b/mrbgems/mruby-compiler/core/node.h index 91add5a4d..40d34a164 100644 --- a/mrbgems/mruby-compiler/core/node.h +++ b/mrbgems/mruby-compiler/core/node.h @@ -81,6 +81,16 @@ enum node_type { NODE_HEREDOC, NODE_WORDS, NODE_SYMBOLS, + /* Pattern matching nodes */ + NODE_CASE_MATCH, /* case/in pattern matching expression */ + NODE_IN, /* in-clause node */ + NODE_PAT_VALUE, /* value pattern (literal, constant) */ + NODE_PAT_VAR, /* variable pattern */ + NODE_PAT_PIN, /* pin operator ^var */ + NODE_PAT_AS, /* as pattern (pattern => var) */ + NODE_PAT_ALT, /* alternative pattern (pat1 | pat2) */ + NODE_PAT_ARRAY, /* array pattern [a, b, *rest] */ + NODE_PAT_HASH, /* hash pattern {a:, b: x} */ NODE_LAST }; @@ -267,6 +277,69 @@ struct mrb_ast_case_node { struct mrb_ast_node *body; /* When/else clauses (cons list) */ }; +/* Pattern matching case node (case/in) */ +struct mrb_ast_case_match_node { + struct mrb_ast_var_header header; /* 8 bytes */ + struct mrb_ast_node *value; /* Case value expression */ + struct mrb_ast_node *in_clauses; /* In clause list (cons list) */ +}; + +/* In clause node */ +struct mrb_ast_in_node { + struct mrb_ast_var_header header; /* 8 bytes */ + struct mrb_ast_node *pattern; /* Pattern to match */ + struct mrb_ast_node *guard; /* Guard expression (optional) */ + struct mrb_ast_node *body; /* Body to execute on match */ + mrb_bool guard_is_unless; /* TRUE if 'unless', FALSE if 'if' */ +}; + +/* Value pattern node (literal, constant) */ +struct mrb_ast_pat_value_node { + struct mrb_ast_var_header header; /* 8 bytes */ + struct mrb_ast_node *value; /* Literal or constant node */ +}; + +/* Variable pattern node */ +struct mrb_ast_pat_var_node { + struct mrb_ast_var_header header; /* 8 bytes */ + mrb_sym name; /* Variable name (0 for wildcard _) */ +}; + +/* Pin pattern node (^var) */ +struct mrb_ast_pat_pin_node { + struct mrb_ast_var_header header; /* 8 bytes */ + mrb_sym name; /* Variable name to pin */ +}; + +/* As pattern node (pattern => var) */ +struct mrb_ast_pat_as_node { + struct mrb_ast_var_header header; /* 8 bytes */ + struct mrb_ast_node *pattern; /* Pattern to match */ + mrb_sym name; /* Variable to bind */ +}; + +/* Alternative pattern node (pat1 | pat2) */ +struct mrb_ast_pat_alt_node { + struct mrb_ast_var_header header; /* 8 bytes */ + struct mrb_ast_node *left; /* Left pattern */ + struct mrb_ast_node *right; /* Right pattern */ +}; + +/* Array pattern node [a, b, *rest] */ +struct mrb_ast_pat_array_node { + struct mrb_ast_var_header header; /* 8 bytes */ + struct mrb_ast_node *pre; /* Pre-rest patterns (cons list) */ + struct mrb_ast_node *rest; /* Rest pattern (NULL if none, -1 if anonymous) */ + struct mrb_ast_node *post; /* Post-rest patterns (cons list) */ +}; + +/* Hash pattern node {a:, b: x} */ +struct mrb_ast_pat_hash_node { + struct mrb_ast_var_header header; /* 8 bytes */ + struct mrb_ast_node *pairs; /* Key-pattern pairs (cons list) */ + struct mrb_ast_node *rest; /* Rest pattern (NULL if none, -1 if **nil) */ +}; + /* Variable-sized for node */ struct mrb_ast_for_node { struct mrb_ast_var_header header; /* 8 bytes */ @@ -369,6 +442,15 @@ struct mrb_ast_super_node { #define while_node(n) ((struct mrb_ast_while_node*)(n)) #define until_node(n) ((struct mrb_ast_until_node*)(n)) #define case_node(n) ((struct mrb_ast_case_node*)(n)) +#define case_match_node(n) ((struct mrb_ast_case_match_node*)(n)) +#define in_node(n) ((struct mrb_ast_in_node*)(n)) +#define pat_value_node(n) ((struct mrb_ast_pat_value_node*)(n)) +#define pat_var_node(n) ((struct mrb_ast_pat_var_node*)(n)) +#define pat_pin_node(n) ((struct mrb_ast_pat_pin_node*)(n)) +#define pat_as_node(n) ((struct mrb_ast_pat_as_node*)(n)) +#define pat_alt_node(n) ((struct mrb_ast_pat_alt_node*)(n)) +#define pat_array_node(n) ((struct mrb_ast_pat_array_node*)(n)) +#define pat_hash_node(n) ((struct mrb_ast_pat_hash_node*)(n)) #define for_node(n) ((struct mrb_ast_for_node*)(n)) #define asgn_node(n) ((struct mrb_ast_asgn_node*)(n)) #define masgn_node(n) ((struct mrb_ast_masgn_node*)(n)) diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index e5c25b8f4..c780e7e7e 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -597,6 +597,74 @@ new_case(parser_state *p, node *a, node *b) return (node*)n; } +/* Pattern matching case/in expression */ +static node* +new_case_match(parser_state *p, node *val, node *in_clauses) +{ + void_expr_error(p, val); + + struct mrb_ast_case_match_node *n = NEW_NODE(case_match, NODE_CASE_MATCH); + n->value = val; + n->in_clauses = in_clauses; + + return (node*)n; +} + +/* Create value pattern node */ +static node* +new_pat_value(parser_state *p, node *val) +{ + struct mrb_ast_pat_value_node *n = NEW_NODE(pat_value, NODE_PAT_VALUE); + n->value = val; + return (node*)n; +} + +/* Create variable pattern node */ +static node* +new_pat_var(parser_state *p, mrb_sym name) +{ + struct mrb_ast_pat_var_node *n = NEW_NODE(pat_var, NODE_PAT_VAR); + n->name = name; + /* Register as local variable if not wildcard */ + if (name) { + local_add(p, name); + } + return (node*)n; +} + +/* Create as pattern node (pattern => var) */ +static node* +new_pat_as(parser_state *p, node *pattern, mrb_sym name) +{ + struct mrb_ast_pat_as_node *n = NEW_NODE(pat_as, NODE_PAT_AS); + n->pattern = pattern; + n->name = name; + local_add(p, name); + return (node*)n; +} + +/* Create alternative pattern node (pat1 | pat2) */ +static node* +new_pat_alt(parser_state *p, node *left, node *right) +{ + struct mrb_ast_pat_alt_node *n = NEW_NODE(pat_alt, NODE_PAT_ALT); + n->left = left; + n->right = right; + return (node*)n; +} + +/* Create in-clause node for case/in */ +static node* +new_in(parser_state *p, node *pattern, node *guard, node *body, mrb_bool guard_is_unless) +{ + struct mrb_ast_in_node *n = NEW_NODE(in, NODE_IN); + n->pattern = pattern; + n->guard = guard; + n->body = body; + n->guard_is_unless = guard_is_unless; + return (node*)n; +} + /* struct: postexe_node(body) */ static node* new_postexe(parser_state *p, node *a) @@ -1984,6 +2052,9 @@ prohibit_literals(parser_state *p, node *n) %type f_block_kwarg f_block_kw block_args_tail opt_block_args_tail %type f_label f_kwrest +/* pattern matching */ +%type in_clauses p_expr p_alt p_value p_var p_as + %token tUPLUS "unary plus" %token tUMINUS "unary minus" %token tCMP "<=>" @@ -3247,6 +3318,15 @@ primary : literal { $$ = new_case(p, 0, $3); } + | keyword_case expr_value opt_terms + keyword_in p_expr then + compstmt + in_clauses + keyword_end + { + node *in_clause = new_in(p, $5, NULL, $7, FALSE); + $$ = new_case_match(p, $2, cons(in_clause, $8)); + } | keyword_for for_var keyword_in {COND_PUSH(1);} expr_value do @@ -3718,6 +3798,81 @@ cases : opt_else | case_body ; +/* Pattern matching in-clauses for case/in */ +in_clauses : opt_else + { + $$ = $1 ? list1(new_in(p, NULL, NULL, $1, FALSE)) : 0; + } + | keyword_in p_expr then compstmt in_clauses + { + node *in_clause = new_in(p, $2, NULL, $4, FALSE); + $$ = cons(in_clause, $5); + } + ; + +/* Pattern expressions for case/in */ +p_expr : p_as + ; + +p_as : p_alt + | p_alt tASSOC tIDENTIFIER + { + $$ = new_pat_as(p, $1, $3); + } + ; + +p_alt : p_value + | p_alt '|' p_value + { + $$ = new_pat_alt(p, $1, $3); + } + ; + +p_value : p_var + | numeric + { + $$ = new_pat_value(p, $1); + } + | symbol + { + $$ = new_pat_value(p, $1); + } + | tSTRING + { + $$ = new_pat_value(p, $1); + } + | keyword_nil + { + $$ = new_pat_value(p, new_nil(p)); + } + | keyword_true + { + $$ = new_pat_value(p, new_true(p)); + } + | keyword_false + { + $$ = new_pat_value(p, new_false(p)); + } + | tCONSTANT + { + $$ = new_pat_value(p, new_const(p, $1)); + } + | primary_value tCOLON2 tCONSTANT + { + $$ = new_pat_value(p, new_colon2(p, $1, $3)); + } + | tCOLON3 tCONSTANT + { + $$ = new_pat_value(p, new_colon3(p, $2)); + } + ; + +p_var : tIDENTIFIER + { + $$ = new_pat_var(p, $1); + } + ; + opt_rescue : keyword_rescue exc_list exc_var then compstmt opt_rescue diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c index a4ea9b22b..dbc3f7d32 100644 --- a/mrbgems/mruby-compiler/core/y.tab.c +++ b/mrbgems/mruby-compiler/core/y.tab.c @@ -659,6 +659,74 @@ new_case(parser_state *p, node *a, node *b) return (node*)n; } +/* Pattern matching case/in expression */ +static node* +new_case_match(parser_state *p, node *val, node *in_clauses) +{ + void_expr_error(p, val); + + struct mrb_ast_case_match_node *n = NEW_NODE(case_match, NODE_CASE_MATCH); + n->value = val; + n->in_clauses = in_clauses; + + return (node*)n; +} + +/* Create value pattern node */ +static node* +new_pat_value(parser_state *p, node *val) +{ + struct mrb_ast_pat_value_node *n = NEW_NODE(pat_value, NODE_PAT_VALUE); + n->value = val; + return (node*)n; +} + +/* Create variable pattern node */ +static node* +new_pat_var(parser_state *p, mrb_sym name) +{ + struct mrb_ast_pat_var_node *n = NEW_NODE(pat_var, NODE_PAT_VAR); + n->name = name; + /* Register as local variable if not wildcard */ + if (name) { + local_add(p, name); + } + return (node*)n; +} + +/* Create as pattern node (pattern => var) */ +static node* +new_pat_as(parser_state *p, node *pattern, mrb_sym name) +{ + struct mrb_ast_pat_as_node *n = NEW_NODE(pat_as, NODE_PAT_AS); + n->pattern = pattern; + n->name = name; + local_add(p, name); + return (node*)n; +} + +/* Create alternative pattern node (pat1 | pat2) */ +static node* +new_pat_alt(parser_state *p, node *left, node *right) +{ + struct mrb_ast_pat_alt_node *n = NEW_NODE(pat_alt, NODE_PAT_ALT); + n->left = left; + n->right = right; + return (node*)n; +} + +/* Create in-clause node for case/in */ +static node* +new_in(parser_state *p, node *pattern, node *guard, node *body, mrb_bool guard_is_unless) +{ + struct mrb_ast_in_node *n = NEW_NODE(in, NODE_IN); + n->pattern = pattern; + n->guard = guard; + n->body = body; + n->guard_is_unless = guard_is_unless; + return (node*)n; +} + /* struct: postexe_node(body) */ static node* new_postexe(parser_state *p, node *a) @@ -1937,7 +2005,7 @@ prohibit_literals(parser_state *p, node *n) /* xxx ----------------------------- */ -#line 1941 "mrbgems/mruby-compiler/core/y.tab.c" +#line 2009 "mrbgems/mruby-compiler/core/y.tab.c" # ifndef YY_CAST # ifdef __cplusplus @@ -2108,7 +2176,7 @@ extern int yydebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 1884 "mrbgems/mruby-compiler/core/parse.y" +#line 1952 "mrbgems/mruby-compiler/core/parse.y" node *nd; mrb_sym id; @@ -2116,7 +2184,7 @@ union YYSTYPE stack_type stack; const struct vtable *vars; -#line 2120 "mrbgems/mruby-compiler/core/y.tab.c" +#line 2188 "mrbgems/mruby-compiler/core/y.tab.c" }; typedef union YYSTYPE YYSTYPE; @@ -2398,83 +2466,89 @@ enum yysymbol_kind_t YYSYMBOL_245_28 = 245, /* @28 */ YYSYMBOL_case_body = 246, /* case_body */ YYSYMBOL_cases = 247, /* cases */ - YYSYMBOL_opt_rescue = 248, /* opt_rescue */ - YYSYMBOL_exc_list = 249, /* exc_list */ - YYSYMBOL_exc_var = 250, /* exc_var */ - YYSYMBOL_opt_ensure = 251, /* opt_ensure */ - YYSYMBOL_literal = 252, /* literal */ - YYSYMBOL_string = 253, /* string */ - YYSYMBOL_string_fragment = 254, /* string_fragment */ - YYSYMBOL_string_rep = 255, /* string_rep */ - YYSYMBOL_string_interp = 256, /* string_interp */ - YYSYMBOL_257_29 = 257, /* @29 */ - YYSYMBOL_xstring = 258, /* xstring */ - YYSYMBOL_regexp = 259, /* regexp */ - YYSYMBOL_heredoc = 260, /* heredoc */ - YYSYMBOL_heredoc_bodies = 261, /* heredoc_bodies */ - YYSYMBOL_heredoc_body = 262, /* heredoc_body */ - YYSYMBOL_heredoc_string_rep = 263, /* heredoc_string_rep */ - YYSYMBOL_heredoc_string_interp = 264, /* heredoc_string_interp */ - YYSYMBOL_265_30 = 265, /* @30 */ - YYSYMBOL_words = 266, /* words */ - YYSYMBOL_symbol = 267, /* symbol */ - YYSYMBOL_basic_symbol = 268, /* basic_symbol */ - YYSYMBOL_sym = 269, /* sym */ - YYSYMBOL_symbols = 270, /* symbols */ - YYSYMBOL_numeric = 271, /* numeric */ - YYSYMBOL_variable = 272, /* variable */ - YYSYMBOL_var_lhs = 273, /* var_lhs */ - YYSYMBOL_var_ref = 274, /* var_ref */ - YYSYMBOL_backref = 275, /* backref */ - YYSYMBOL_superclass = 276, /* superclass */ - YYSYMBOL_277_31 = 277, /* $@31 */ - YYSYMBOL_f_opt_arglist_paren = 278, /* f_opt_arglist_paren */ - YYSYMBOL_f_arglist_paren = 279, /* f_arglist_paren */ - YYSYMBOL_f_arglist = 280, /* f_arglist */ - YYSYMBOL_f_label = 281, /* f_label */ - YYSYMBOL_f_kw = 282, /* f_kw */ - YYSYMBOL_f_block_kw = 283, /* f_block_kw */ - YYSYMBOL_f_block_kwarg = 284, /* f_block_kwarg */ - YYSYMBOL_f_kwarg = 285, /* f_kwarg */ - YYSYMBOL_kwrest_mark = 286, /* kwrest_mark */ - YYSYMBOL_f_kwrest = 287, /* f_kwrest */ - YYSYMBOL_args_tail = 288, /* args_tail */ - YYSYMBOL_opt_args_tail = 289, /* opt_args_tail */ - YYSYMBOL_f_args = 290, /* f_args */ - YYSYMBOL_f_bad_arg = 291, /* f_bad_arg */ - YYSYMBOL_f_norm_arg = 292, /* f_norm_arg */ - YYSYMBOL_f_arg_item = 293, /* f_arg_item */ - YYSYMBOL_294_32 = 294, /* @32 */ - YYSYMBOL_f_arg = 295, /* f_arg */ - YYSYMBOL_f_opt_asgn = 296, /* f_opt_asgn */ - YYSYMBOL_f_opt = 297, /* f_opt */ - YYSYMBOL_f_block_opt = 298, /* f_block_opt */ - YYSYMBOL_f_block_optarg = 299, /* f_block_optarg */ - YYSYMBOL_f_optarg = 300, /* f_optarg */ - YYSYMBOL_restarg_mark = 301, /* restarg_mark */ - YYSYMBOL_f_rest_arg = 302, /* f_rest_arg */ - YYSYMBOL_blkarg_mark = 303, /* blkarg_mark */ - YYSYMBOL_f_block_arg = 304, /* f_block_arg */ - YYSYMBOL_opt_f_block_arg = 305, /* opt_f_block_arg */ - YYSYMBOL_singleton = 306, /* singleton */ - YYSYMBOL_307_33 = 307, /* $@33 */ - YYSYMBOL_assoc_list = 308, /* assoc_list */ - YYSYMBOL_assocs = 309, /* assocs */ - YYSYMBOL_assoc = 310, /* assoc */ - YYSYMBOL_operation = 311, /* operation */ - YYSYMBOL_operation2 = 312, /* operation2 */ - YYSYMBOL_operation3 = 313, /* operation3 */ - YYSYMBOL_dot_or_colon = 314, /* dot_or_colon */ - YYSYMBOL_call_op = 315, /* call_op */ - YYSYMBOL_call_op2 = 316, /* call_op2 */ - YYSYMBOL_opt_terms = 317, /* opt_terms */ - YYSYMBOL_opt_nl = 318, /* opt_nl */ - YYSYMBOL_rparen = 319, /* rparen */ - YYSYMBOL_trailer = 320, /* trailer */ - YYSYMBOL_term = 321, /* term */ - YYSYMBOL_nl = 322, /* nl */ - YYSYMBOL_terms = 323, /* terms */ - YYSYMBOL_none = 324 /* none */ + YYSYMBOL_in_clauses = 248, /* in_clauses */ + YYSYMBOL_p_expr = 249, /* p_expr */ + YYSYMBOL_p_as = 250, /* p_as */ + YYSYMBOL_p_alt = 251, /* p_alt */ + YYSYMBOL_p_value = 252, /* p_value */ + YYSYMBOL_p_var = 253, /* p_var */ + YYSYMBOL_opt_rescue = 254, /* opt_rescue */ + YYSYMBOL_exc_list = 255, /* exc_list */ + YYSYMBOL_exc_var = 256, /* exc_var */ + YYSYMBOL_opt_ensure = 257, /* opt_ensure */ + YYSYMBOL_literal = 258, /* literal */ + YYSYMBOL_string = 259, /* string */ + YYSYMBOL_string_fragment = 260, /* string_fragment */ + YYSYMBOL_string_rep = 261, /* string_rep */ + YYSYMBOL_string_interp = 262, /* string_interp */ + YYSYMBOL_263_29 = 263, /* @29 */ + YYSYMBOL_xstring = 264, /* xstring */ + YYSYMBOL_regexp = 265, /* regexp */ + YYSYMBOL_heredoc = 266, /* heredoc */ + YYSYMBOL_heredoc_bodies = 267, /* heredoc_bodies */ + YYSYMBOL_heredoc_body = 268, /* heredoc_body */ + YYSYMBOL_heredoc_string_rep = 269, /* heredoc_string_rep */ + YYSYMBOL_heredoc_string_interp = 270, /* heredoc_string_interp */ + YYSYMBOL_271_30 = 271, /* @30 */ + YYSYMBOL_words = 272, /* words */ + YYSYMBOL_symbol = 273, /* symbol */ + YYSYMBOL_basic_symbol = 274, /* basic_symbol */ + YYSYMBOL_sym = 275, /* sym */ + YYSYMBOL_symbols = 276, /* symbols */ + YYSYMBOL_numeric = 277, /* numeric */ + YYSYMBOL_variable = 278, /* variable */ + YYSYMBOL_var_lhs = 279, /* var_lhs */ + YYSYMBOL_var_ref = 280, /* var_ref */ + YYSYMBOL_backref = 281, /* backref */ + YYSYMBOL_superclass = 282, /* superclass */ + YYSYMBOL_283_31 = 283, /* $@31 */ + YYSYMBOL_f_opt_arglist_paren = 284, /* f_opt_arglist_paren */ + YYSYMBOL_f_arglist_paren = 285, /* f_arglist_paren */ + YYSYMBOL_f_arglist = 286, /* f_arglist */ + YYSYMBOL_f_label = 287, /* f_label */ + YYSYMBOL_f_kw = 288, /* f_kw */ + YYSYMBOL_f_block_kw = 289, /* f_block_kw */ + YYSYMBOL_f_block_kwarg = 290, /* f_block_kwarg */ + YYSYMBOL_f_kwarg = 291, /* f_kwarg */ + YYSYMBOL_kwrest_mark = 292, /* kwrest_mark */ + YYSYMBOL_f_kwrest = 293, /* f_kwrest */ + YYSYMBOL_args_tail = 294, /* args_tail */ + YYSYMBOL_opt_args_tail = 295, /* opt_args_tail */ + YYSYMBOL_f_args = 296, /* f_args */ + YYSYMBOL_f_bad_arg = 297, /* f_bad_arg */ + YYSYMBOL_f_norm_arg = 298, /* f_norm_arg */ + YYSYMBOL_f_arg_item = 299, /* f_arg_item */ + YYSYMBOL_300_32 = 300, /* @32 */ + YYSYMBOL_f_arg = 301, /* f_arg */ + YYSYMBOL_f_opt_asgn = 302, /* f_opt_asgn */ + YYSYMBOL_f_opt = 303, /* f_opt */ + YYSYMBOL_f_block_opt = 304, /* f_block_opt */ + YYSYMBOL_f_block_optarg = 305, /* f_block_optarg */ + YYSYMBOL_f_optarg = 306, /* f_optarg */ + YYSYMBOL_restarg_mark = 307, /* restarg_mark */ + YYSYMBOL_f_rest_arg = 308, /* f_rest_arg */ + YYSYMBOL_blkarg_mark = 309, /* blkarg_mark */ + YYSYMBOL_f_block_arg = 310, /* f_block_arg */ + YYSYMBOL_opt_f_block_arg = 311, /* opt_f_block_arg */ + YYSYMBOL_singleton = 312, /* singleton */ + YYSYMBOL_313_33 = 313, /* $@33 */ + YYSYMBOL_assoc_list = 314, /* assoc_list */ + YYSYMBOL_assocs = 315, /* assocs */ + YYSYMBOL_assoc = 316, /* assoc */ + YYSYMBOL_operation = 317, /* operation */ + YYSYMBOL_operation2 = 318, /* operation2 */ + YYSYMBOL_operation3 = 319, /* operation3 */ + YYSYMBOL_dot_or_colon = 320, /* dot_or_colon */ + YYSYMBOL_call_op = 321, /* call_op */ + YYSYMBOL_call_op2 = 322, /* call_op2 */ + YYSYMBOL_opt_terms = 323, /* opt_terms */ + YYSYMBOL_opt_nl = 324, /* opt_nl */ + YYSYMBOL_rparen = 325, /* rparen */ + YYSYMBOL_trailer = 326, /* trailer */ + YYSYMBOL_term = 327, /* term */ + YYSYMBOL_nl = 328, /* nl */ + YYSYMBOL_terms = 329, /* terms */ + YYSYMBOL_none = 330 /* none */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -2805,16 +2879,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 106 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 13386 +#define YYLAST 13722 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 149 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 176 +#define YYNNTS 182 /* YYNRULES -- Number of rules. */ -#define YYNRULES 620 +#define YYNRULES 639 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 1085 +#define YYNSTATES 1118 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 377 @@ -2875,69 +2949,70 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 2055, 2055, 2055, 2065, 2071, 2075, 2079, 2083, 2089, - 2091, 2090, 2104, 2130, 2136, 2140, 2144, 2148, 2154, 2154, - 2158, 2162, 2166, 2170, 2179, 2188, 2192, 2197, 2198, 2202, - 2206, 2210, 2214, 2220, 2223, 2227, 2231, 2235, 2239, 2243, - 2248, 2252, 2261, 2270, 2279, 2288, 2295, 2296, 2300, 2303, - 2304, 2308, 2312, 2316, 2320, 2323, 2333, 2332, 2347, 2356, - 2357, 2360, 2361, 2368, 2367, 2382, 2386, 2391, 2395, 2400, - 2404, 2409, 2413, 2417, 2421, 2425, 2431, 2435, 2441, 2442, - 2448, 2452, 2456, 2460, 2464, 2468, 2472, 2476, 2480, 2484, - 2490, 2491, 2497, 2501, 2507, 2511, 2517, 2521, 2525, 2529, - 2533, 2537, 2543, 2549, 2556, 2560, 2564, 2568, 2572, 2576, - 2582, 2588, 2593, 2599, 2603, 2606, 2610, 2614, 2621, 2622, - 2623, 2624, 2629, 2636, 2637, 2640, 2644, 2644, 2650, 2651, - 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, - 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, - 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2682, 2682, - 2682, 2683, 2683, 2684, 2684, 2684, 2685, 2685, 2685, 2685, - 2686, 2686, 2686, 2687, 2687, 2687, 2688, 2688, 2688, 2688, - 2689, 2689, 2689, 2689, 2690, 2690, 2690, 2690, 2691, 2691, - 2691, 2691, 2692, 2692, 2692, 2692, 2693, 2693, 2696, 2700, - 2704, 2708, 2712, 2716, 2720, 2725, 2730, 2735, 2739, 2743, - 2747, 2751, 2755, 2759, 2763, 2767, 2771, 2775, 2779, 2783, - 2787, 2791, 2795, 2799, 2803, 2807, 2811, 2815, 2819, 2823, - 2827, 2831, 2835, 2839, 2843, 2847, 2851, 2855, 2859, 2863, - 2867, 2871, 2875, 2879, 2883, 2892, 2901, 2910, 2919, 2925, - 2926, 2930, 2934, 2940, 2944, 2951, 2955, 2964, 2981, 2982, - 2985, 2986, 2987, 2991, 2995, 3001, 3006, 3010, 3014, 3018, - 3024, 3024, 3035, 3039, 3045, 3049, 3055, 3058, 3063, 3067, - 3071, 3076, 3080, 3086, 3091, 3095, 3101, 3102, 3106, 3110, - 3111, 3112, 3113, 3114, 3119, 3118, 3130, 3134, 3129, 3139, - 3139, 3143, 3147, 3151, 3155, 3159, 3163, 3167, 3171, 3175, - 3179, 3183, 3184, 3190, 3197, 3189, 3210, 3218, 3226, 3226, - 3226, 3233, 3233, 3233, 3240, 3246, 3251, 3253, 3250, 3262, - 3260, 3278, 3283, 3276, 3300, 3298, 3314, 3324, 3335, 3339, - 3343, 3347, 3353, 3360, 3361, 3362, 3365, 3366, 3369, 3370, - 3378, 3379, 3385, 3389, 3392, 3396, 3400, 3404, 3409, 3413, - 3417, 3421, 3427, 3426, 3436, 3440, 3444, 3448, 3454, 3459, - 3464, 3468, 3472, 3476, 3480, 3484, 3488, 3492, 3496, 3500, - 3504, 3508, 3512, 3516, 3520, 3526, 3531, 3538, 3538, 3542, - 3547, 3553, 3557, 3563, 3564, 3567, 3572, 3575, 3579, 3585, - 3589, 3596, 3595, 3612, 3617, 3621, 3626, 3633, 3637, 3641, - 3645, 3649, 3653, 3657, 3661, 3665, 3672, 3671, 3686, 3685, - 3701, 3709, 3718, 3721, 3728, 3731, 3735, 3736, 3739, 3743, - 3746, 3750, 3753, 3754, 3755, 3756, 3759, 3760, 3766, 3771, - 3776, 3781, 3787, 3788, 3794, 3800, 3799, 3811, 3815, 3821, - 3825, 3831, 3840, 3851, 3854, 3855, 3858, 3864, 3870, 3871, - 3874, 3881, 3880, 3895, 3899, 3907, 3911, 3923, 3930, 3937, - 3938, 3939, 3940, 3941, 3945, 3951, 3955, 3963, 3964, 3965, - 3969, 3975, 3979, 3983, 3987, 3991, 3997, 4001, 4007, 4011, - 4015, 4019, 4023, 4027, 4031, 4039, 4046, 4052, 4053, 4057, - 4061, 4060, 4077, 4078, 4081, 4087, 4091, 4097, 4098, 4102, - 4106, 4112, 4116, 4122, 4128, 4135, 4141, 4148, 4152, 4158, - 4162, 4168, 4169, 4172, 4176, 4182, 4186, 4190, 4194, 4200, - 4205, 4210, 4214, 4218, 4222, 4226, 4230, 4234, 4238, 4242, - 4246, 4250, 4254, 4258, 4262, 4267, 4273, 4278, 4283, 4288, - 4293, 4300, 4304, 4311, 4316, 4315, 4327, 4331, 4337, 4345, - 4353, 4361, 4365, 4371, 4375, 4381, 4382, 4385, 4390, 4397, - 4398, 4401, 4405, 4411, 4415, 4421, 4427, 4427, 4434, 4435, - 4441, 4445, 4451, 4457, 4462, 4466, 4471, 4476, 4492, 4497, - 4503, 4504, 4505, 4508, 4509, 4510, 4511, 4514, 4515, 4516, - 4519, 4520, 4523, 4527, 4533, 4534, 4540, 4541, 4544, 4545, - 4548, 4551, 4552, 4553, 4556, 4557, 4560, 4565, 4568, 4569, - 4573 + 0, 2126, 2126, 2126, 2136, 2142, 2146, 2150, 2154, 2160, + 2162, 2161, 2175, 2201, 2207, 2211, 2215, 2219, 2225, 2225, + 2229, 2233, 2237, 2241, 2250, 2259, 2263, 2268, 2269, 2273, + 2277, 2281, 2285, 2291, 2294, 2298, 2302, 2306, 2310, 2314, + 2319, 2323, 2332, 2341, 2350, 2359, 2366, 2367, 2371, 2374, + 2375, 2379, 2383, 2387, 2391, 2394, 2404, 2403, 2418, 2427, + 2428, 2431, 2432, 2439, 2438, 2453, 2457, 2462, 2466, 2471, + 2475, 2480, 2484, 2488, 2492, 2496, 2502, 2506, 2512, 2513, + 2519, 2523, 2527, 2531, 2535, 2539, 2543, 2547, 2551, 2555, + 2561, 2562, 2568, 2572, 2578, 2582, 2588, 2592, 2596, 2600, + 2604, 2608, 2614, 2620, 2627, 2631, 2635, 2639, 2643, 2647, + 2653, 2659, 2664, 2670, 2674, 2677, 2681, 2685, 2692, 2693, + 2694, 2695, 2700, 2707, 2708, 2711, 2715, 2715, 2721, 2722, + 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, + 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, + 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2753, 2753, + 2753, 2754, 2754, 2755, 2755, 2755, 2756, 2756, 2756, 2756, + 2757, 2757, 2757, 2758, 2758, 2758, 2759, 2759, 2759, 2759, + 2760, 2760, 2760, 2760, 2761, 2761, 2761, 2761, 2762, 2762, + 2762, 2762, 2763, 2763, 2763, 2763, 2764, 2764, 2767, 2771, + 2775, 2779, 2783, 2787, 2791, 2796, 2801, 2806, 2810, 2814, + 2818, 2822, 2826, 2830, 2834, 2838, 2842, 2846, 2850, 2854, + 2858, 2862, 2866, 2870, 2874, 2878, 2882, 2886, 2890, 2894, + 2898, 2902, 2906, 2910, 2914, 2918, 2922, 2926, 2930, 2934, + 2938, 2942, 2946, 2950, 2954, 2963, 2972, 2981, 2990, 2996, + 2997, 3001, 3005, 3011, 3015, 3022, 3026, 3035, 3052, 3053, + 3056, 3057, 3058, 3062, 3066, 3072, 3077, 3081, 3085, 3089, + 3095, 3095, 3106, 3110, 3116, 3120, 3126, 3129, 3134, 3138, + 3142, 3147, 3151, 3157, 3162, 3166, 3172, 3173, 3177, 3181, + 3182, 3183, 3184, 3185, 3190, 3189, 3201, 3205, 3200, 3210, + 3210, 3214, 3218, 3222, 3226, 3230, 3234, 3238, 3242, 3246, + 3250, 3254, 3255, 3261, 3268, 3260, 3281, 3289, 3297, 3297, + 3297, 3304, 3304, 3304, 3311, 3317, 3321, 3331, 3333, 3330, + 3342, 3340, 3358, 3363, 3356, 3380, 3378, 3394, 3404, 3415, + 3419, 3423, 3427, 3433, 3440, 3441, 3442, 3445, 3446, 3449, + 3450, 3458, 3459, 3465, 3469, 3472, 3476, 3480, 3484, 3489, + 3493, 3497, 3501, 3507, 3506, 3516, 3520, 3524, 3528, 3534, + 3539, 3544, 3548, 3552, 3556, 3560, 3564, 3568, 3572, 3576, + 3580, 3584, 3588, 3592, 3596, 3600, 3606, 3611, 3618, 3618, + 3622, 3627, 3633, 3637, 3643, 3644, 3647, 3652, 3655, 3659, + 3665, 3669, 3676, 3675, 3692, 3697, 3701, 3706, 3713, 3717, + 3721, 3725, 3729, 3733, 3737, 3741, 3745, 3752, 3751, 3766, + 3765, 3781, 3789, 3798, 3802, 3806, 3814, 3817, 3818, 3824, + 3825, 3831, 3832, 3836, 3840, 3844, 3848, 3852, 3856, 3860, + 3864, 3870, 3876, 3883, 3886, 3890, 3891, 3894, 3898, 3901, + 3905, 3908, 3909, 3910, 3911, 3914, 3915, 3921, 3926, 3931, + 3936, 3942, 3943, 3949, 3955, 3954, 3966, 3970, 3976, 3980, + 3986, 3995, 4006, 4009, 4010, 4013, 4019, 4025, 4026, 4029, + 4036, 4035, 4050, 4054, 4062, 4066, 4078, 4085, 4092, 4093, + 4094, 4095, 4096, 4100, 4106, 4110, 4118, 4119, 4120, 4124, + 4130, 4134, 4138, 4142, 4146, 4152, 4156, 4162, 4166, 4170, + 4174, 4178, 4182, 4186, 4194, 4201, 4207, 4208, 4212, 4216, + 4215, 4232, 4233, 4236, 4242, 4246, 4252, 4253, 4257, 4261, + 4267, 4271, 4277, 4283, 4290, 4296, 4303, 4307, 4313, 4317, + 4323, 4324, 4327, 4331, 4337, 4341, 4345, 4349, 4355, 4360, + 4365, 4369, 4373, 4377, 4381, 4385, 4389, 4393, 4397, 4401, + 4405, 4409, 4413, 4417, 4422, 4428, 4433, 4438, 4443, 4448, + 4455, 4459, 4466, 4471, 4470, 4482, 4486, 4492, 4500, 4508, + 4516, 4520, 4526, 4530, 4536, 4537, 4540, 4545, 4552, 4553, + 4556, 4560, 4566, 4570, 4576, 4582, 4582, 4589, 4590, 4596, + 4600, 4606, 4612, 4617, 4621, 4626, 4631, 4647, 4652, 4658, + 4659, 4660, 4663, 4664, 4665, 4666, 4669, 4670, 4671, 4674, + 4675, 4678, 4682, 4688, 4689, 4695, 4696, 4699, 4700, 4703, + 4706, 4707, 4708, 4711, 4712, 4715, 4720, 4723, 4724, 4728 }; #endif @@ -2999,6 +3074,7 @@ static const char *const yytname[] = "opt_block_param", "$@25", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", "f_larglist", "lambda_body", "@26", "do_block", "block_call", "method_call", "@27", "brace_block", "@28", "case_body", "cases", + "in_clauses", "p_expr", "p_as", "p_alt", "p_value", "p_var", "opt_rescue", "exc_list", "exc_var", "opt_ensure", "literal", "string", "string_fragment", "string_rep", "string_interp", "@29", "xstring", "regexp", "heredoc", "heredoc_bodies", "heredoc_body", @@ -3023,12 +3099,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-870) +#define YYPACT_NINF (-889) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-621) +#define YYTABLE_NINF (-640) #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) @@ -3037,115 +3113,118 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - -870, 3957, 130, 8673, 10797, 11139, 6981, -870, 10443, 10443, - -870, -870, 10911, 8163, 6597, 8909, 8909, -870, -870, 8909, - 4478, 1831, -870, -870, -870, -870, 19, 8163, -870, 36, - -870, -870, -870, 7123, 4070, -870, -870, 7265, -870, -870, - -870, -870, -870, -870, -870, 89, 10561, 10561, 10561, 10561, - 152, 5856, 1426, 9381, 9735, 8445, -870, 7881, 422, 515, - 1221, 920, 1245, -870, 90, 10679, 10561, -870, 1443, -870, - 988, -870, 306, 1273, 1273, -870, -870, 138, 69, -870, - 74, 11025, -870, 107, 2381, 735, 769, 47, 53, -870, - 399, -870, -870, -870, -870, -870, -870, -870, -870, -870, - 319, 119, -870, 347, 98, -870, -870, -870, -870, -870, - -870, 124, 124, 19, 743, 773, -870, 10443, 120, 5975, - 292, 1295, 1295, -870, 147, -870, 775, -870, -870, 98, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, 23, 51, - 54, 87, -870, -870, -870, -870, -870, -870, 93, 102, - 112, 145, -870, 193, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, 200, - 5034, 222, 306, 1273, 1273, 188, 134, 13191, 831, 218, - 199, 224, 188, 10443, 10443, 852, 243, -870, -870, 960, - 275, 79, 104, -870, -870, -870, -870, -870, -870, -870, - -870, -870, 8022, -870, -870, 167, -870, -870, -870, -870, - -870, -870, 1443, -870, 620, -870, 310, -870, -870, 1443, - 4206, 122, 10561, 10561, 10561, 10561, -870, 13129, -870, -870, - 195, 320, 195, -870, -870, -870, 9027, -870, -870, 8909, - -870, -870, -870, -870, 6597, 6835, -870, 250, 6094, -870, - 987, 296, 13253, 13253, 425, 8791, 5856, 263, 1443, 988, - 1443, 317, -870, 8791, 1443, 281, 1129, 1129, -870, 13129, - 302, 1129, -870, 389, 11253, 316, 1004, 1007, 1068, 1402, - -870, -870, -870, -870, -870, 1252, -870, -870, -870, -870, - -870, -870, 666, 1255, -870, -870, 1021, -870, 1242, -870, - 1317, -870, 1320, 374, 378, -870, -870, -870, -870, 6359, - 10443, 10443, 10443, 10443, 8791, 10443, 10443, 68, -870, -870, - -870, -870, 424, 1443, -870, -870, -870, -870, -870, -870, - -870, 1589, 369, 381, 5034, 10561, -870, 367, 465, 380, - -870, 1443, -870, -870, -870, 392, 10561, -870, 410, 509, - 423, 518, -870, -870, 462, 5034, -870, -870, 9853, -870, - 5856, 8559, 444, 9853, 10561, 10561, 10561, 10561, 10561, 10561, - 10561, 10561, 10561, 10561, 10561, 10561, 10561, 10561, 539, 10561, - 10561, 10561, 10561, 10561, 10561, 10561, 10561, 10561, 10561, 10561, - 10561, 3007, -870, 8909, -870, 3752, -870, -870, 12649, -870, - -870, -870, -870, 10679, 10679, -870, 503, -870, 306, -870, - 1093, -870, -870, -870, -870, -870, -870, 11531, 8909, 11617, - 5034, 10443, -870, -870, -870, 595, 604, 225, 501, 505, - -870, 5180, 608, 10561, 11703, 8909, 11789, 10561, 10561, 5472, - 308, 308, 106, 11875, 8909, 11961, -870, 566, -870, 6094, - 310, -870, -870, 9971, 621, -870, 10561, 10561, 13191, 13191, - 13191, 10561, -870, -870, 9145, -870, 10561, -870, 9499, 6716, - 493, 1443, 195, 195, -870, -870, 318, 499, -870, -870, - -870, 8163, 5591, 506, 11703, 11789, 10561, 988, 1443, -870, - -870, 6478, 504, 988, -870, -870, 9617, -870, 1443, 9735, - -870, -870, -870, 1093, 74, 11253, -870, 11253, 12047, 8909, - 12133, 2010, -870, -870, 507, -870, 1345, 6094, 666, -870, - -870, -870, -870, -870, -870, -870, 10561, 10561, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - 1431, 1443, 1443, 513, 10679, 642, 13191, 605, -870, -870, - -870, 37, -870, -870, 1691, -870, 13191, 2010, -870, -870, - 1712, -870, -870, 10679, 644, 83, 10561, -870, 12845, 195, - -870, 1443, 11253, 521, -870, -870, -870, 616, 549, 3375, - -870, -870, 1116, 307, 2135, 2135, 2135, 2135, 2029, 2029, - 3438, 2505, 2135, 2135, 13253, 13253, 1521, 1521, -870, 296, - 13191, 2029, 2029, 1668, 1668, 1694, 237, 237, 296, 296, - 296, 3634, 7621, 4750, 7739, -870, 124, -870, 530, 195, - 432, -870, 450, -870, -870, 4342, -870, -870, 2280, 83, - 83, -870, 2882, -870, -870, -870, -870, -870, 1443, 10443, - 5034, 874, 654, -870, 124, 536, 124, 671, 318, 8304, - -870, 10089, 674, -870, 10561, 10561, 278, -870, 7383, 7502, - 556, 309, 327, 674, -870, -870, -870, -870, 64, 73, - 558, 111, 121, 10443, 8163, 572, 690, 13191, 81, -870, - 13191, 13191, 13191, 287, 10561, 13129, -870, 195, 13191, -870, - -870, -870, -870, 9263, 9499, -870, -870, -870, 576, -870, - -870, 22, 988, 1443, 1129, 444, -870, 874, 654, 575, - 1031, 1156, -870, 113, 2010, -870, 579, -870, 296, 296, - -870, -870, 912, 1443, 578, -870, -870, 1929, 681, 12721, - -870, 679, 424, -870, 380, -870, 1443, -870, -870, 586, - 589, 606, -870, 607, 679, 606, 710, 12783, -870, -870, - 2010, 5034, -870, -870, 12916, 10207, -870, -870, 11253, 8791, - 10679, 10561, 12219, 8909, 12305, 561, 10679, 10679, -870, 503, - 551, 9145, 10679, 10679, -870, 503, 53, 138, 5034, 6094, - 83, -870, 1443, 740, -870, -870, -870, -870, 12845, -870, - 665, -870, 5737, 746, -870, 10443, 749, -870, 10561, 10561, - 379, 10561, 10561, 753, 6240, 6240, 128, 308, -870, -870, - -870, 10325, 5326, 13191, -870, 6716, 195, -870, -870, -870, - 161, 625, 1449, 5034, 6094, -870, -870, -870, 619, -870, - 1484, 1443, 10561, 10561, -870, -870, 2010, -870, 1712, -870, - 1712, -870, 1712, -870, -870, 10561, 10561, -870, -870, -870, - 11367, -870, 632, 380, 637, 11367, -870, 640, 645, -870, - 774, 10561, 12987, -870, -870, 13191, 4614, 4886, 647, 407, - 463, 10561, 10561, -870, -870, -870, -870, -870, 10679, -870, - -870, -870, -870, -870, -870, -870, 778, 656, 6094, 5034, - -870, -870, 11481, 188, -870, -870, 6240, -870, -870, 188, - -870, 10561, -870, 782, 790, -870, 13191, 168, -870, 9499, - -870, 1615, 791, 672, 1457, 1457, 1063, -870, 13191, 13191, - 606, 675, 606, 606, 13191, 13191, 687, 688, 763, 1119, - 605, -870, -870, 1421, -870, 1119, 2010, -870, 1712, -870, - -870, 13058, 478, 13191, 13191, -870, -870, -870, -870, 691, - 805, 776, -870, 1127, 1007, 1068, 5034, -870, 5180, -870, - -870, 6240, -870, -870, -870, -870, 693, -870, -870, -870, - -870, 696, 696, 1457, 697, -870, 1712, -870, -870, -870, - -870, -870, -870, 12391, -870, 380, 605, -870, -870, 701, - 705, 708, -870, 720, 708, -870, -870, 1093, 12477, 8909, - 12563, 604, 278, 851, 1615, 287, 1457, 696, 1457, 606, - 723, 733, -870, 2010, -870, 1712, -870, 1712, -870, 1712, - -870, -870, 874, 654, 745, 299, 535, -870, -870, -870, - -870, 696, -870, 708, 751, 708, 708, 161, -870, 1712, - -870, -870, -870, 708, -870 + -889, 4018, 146, 8794, 10918, 11260, 7335, -889, 10564, 10564, + -889, -889, 11032, 8398, 6951, 9030, 9030, -889, -889, 9030, + 4550, 4142, -889, -889, -889, -889, -33, 8398, -889, 70, + -889, -889, -889, 7477, 3586, -889, -889, 7619, -889, -889, + -889, -889, -889, -889, -889, 235, 10682, 10682, 10682, 10682, + 82, 6210, 1617, 9502, 9856, 3737, -889, 8116, 1063, 998, + 1348, 1353, 1388, -889, 366, 10800, 10682, -889, 1145, -889, + 995, -889, 410, 1489, 1489, -889, -889, 193, 57, -889, + 93, 11146, -889, 141, 13403, 156, 349, 76, 45, -889, + 262, -889, -889, -889, -889, -889, -889, -889, -889, -889, + 229, 174, -889, 302, 139, -889, -889, -889, -889, -889, + -889, 180, 180, -33, 58, 493, -889, 10564, 119, 6329, + 491, 1340, 1340, -889, 184, -889, 412, -889, -889, 139, + -889, -889, -889, -889, -889, -889, -889, -889, -889, -889, + -889, -889, -889, -889, -889, -889, -889, -889, -889, -889, + -889, -889, -889, -889, -889, -889, -889, -889, 44, 62, + 87, 94, -889, -889, -889, -889, -889, -889, 100, 102, + 170, 186, -889, 200, -889, -889, -889, -889, -889, -889, + -889, -889, -889, -889, -889, -889, -889, -889, -889, -889, + -889, -889, -889, -889, -889, -889, -889, -889, -889, -889, + -889, -889, -889, -889, -889, -889, -889, -889, -889, 220, + 5242, 271, 410, 1489, 1489, 96, 215, 13527, 438, 298, + 250, 325, 96, 10564, 10564, 463, 291, -889, -889, 512, + 324, 89, 126, -889, -889, -889, -889, -889, -889, -889, + -889, -889, 8257, -889, -889, 269, -889, -889, -889, -889, + -889, -889, 1145, -889, 732, -889, 372, -889, -889, 1145, + 4278, 165, 10682, 10682, 10682, 10682, -889, 13465, -889, -889, + 273, 363, 273, -889, -889, -889, 9148, -889, -889, 9030, + -889, -889, -889, -889, 6951, 7189, -889, 288, 6448, -889, + 567, 327, 13589, 13589, 308, 8912, 6210, 285, 1145, 995, + 1145, 313, -889, 8912, 1145, 315, 1431, 1431, -889, 13465, + 321, 1431, -889, 407, 11374, 322, 657, 659, 823, 1646, + -889, -889, -889, -889, -889, 1468, -889, -889, -889, -889, + -889, -889, 745, 1498, -889, -889, 1281, -889, 1371, -889, + 1532, -889, 1539, 365, 367, -889, -889, -889, -889, 6713, + 10564, 10564, 10564, 10564, 8912, 10564, 10564, 59, -889, -889, + -889, -889, 416, 1145, -889, -889, -889, -889, -889, -889, + -889, 1234, 350, 401, 5242, 10682, -889, 333, 475, 391, + -889, 1145, -889, -889, -889, 415, 10682, -889, 427, 521, + 434, 533, -889, -889, 478, 5242, -889, -889, 9974, -889, + 6210, 8680, 474, 9974, 10682, 10682, 10682, 10682, 10682, 10682, + 10682, 10682, 10682, 10682, 10682, 10682, 10682, 10682, 568, 10682, + 10682, 10682, 10682, 10682, 10682, 10682, 10682, 10682, 10682, 10682, + 10682, 3111, -889, 9030, -889, 11766, -889, -889, 13056, -889, + -889, -889, -889, 10800, 10800, -889, 525, -889, 410, -889, + 859, -889, -889, -889, -889, -889, -889, 11852, 9030, 11938, + 5242, 10564, -889, -889, -889, 614, 619, 426, 515, 522, + -889, 5388, 630, 10682, 12024, 9030, 12110, 10682, 10682, 5826, + 389, 389, 136, 12196, 9030, 12282, -889, 592, -889, 6448, + 286, -889, -889, 10092, 645, -889, 10682, 10682, 13527, 13527, + 13527, 10682, -889, -889, 9266, -889, 10682, -889, 9620, 7070, + 528, 1145, 273, 273, -889, -889, 1049, 538, -889, -889, + -889, 8398, 5945, 547, 12024, 12110, 10682, 995, 1145, -889, + -889, 6832, 550, 995, -889, -889, 9738, -889, 1145, 9856, + -889, -889, -889, 859, 93, 11374, -889, 11374, 12368, 9030, + 12454, 1911, -889, -889, 552, -889, 1544, 6448, 745, -889, + -889, -889, -889, -889, -889, -889, 10682, 10682, -889, -889, + -889, -889, -889, -889, -889, -889, -889, -889, -889, -889, + 1672, 1145, 1145, 558, 10800, 689, 13527, 893, -889, -889, + -889, 32, -889, -889, 1426, -889, 13527, 1911, -889, -889, + 1298, -889, -889, 10800, 691, 74, 10682, -889, 3867, 273, + -889, 1145, 11374, 566, -889, -889, -889, 669, 603, 1549, + -889, -889, 993, 453, 2480, 2480, 2480, 2480, 1794, 1794, + 3255, 2118, 2480, 2480, 13589, 13589, 1759, 1759, -889, 327, + 13527, 1794, 1794, 1654, 1654, 1817, 354, 354, 327, 327, + 327, 4686, 7856, 4958, 7974, -889, 180, -889, 585, 273, + 371, -889, 444, -889, -889, 4414, -889, -889, 1916, 74, + 74, -889, 2769, -889, -889, -889, -889, -889, 1145, 10564, + 5242, 651, 230, -889, 180, 593, 180, 733, 1049, 8539, + -889, 10210, 736, -889, 10682, 10682, 574, -889, 2908, 7737, + 628, 535, 559, 736, -889, -889, -889, -889, 55, 111, + 634, 137, 147, 10564, 8398, 621, 11488, 761, 13527, 303, + -889, 13527, 13527, 13527, 803, 10682, 13465, -889, 273, 13527, + -889, -889, -889, -889, 9384, 9620, -889, -889, -889, 641, + -889, -889, 34, 995, 1145, 1431, 474, -889, 651, 230, + 647, 667, 697, -889, 72, 1911, -889, 643, -889, 327, + 327, -889, -889, 594, 1145, 648, -889, -889, 1753, 741, + 3780, -889, 735, 416, -889, 391, -889, 1145, -889, -889, + 654, 658, 682, -889, 685, 735, 682, 782, 13128, -889, + -889, 1911, 5242, -889, -889, 13190, 10328, -889, -889, 11374, + 8912, 10800, 10682, 12540, 9030, 12626, 853, 10800, 10800, -889, + 525, 469, 9266, 10800, 10800, -889, 525, 45, 193, 5242, + 6448, 74, -889, 1145, 816, -889, -889, -889, -889, 3867, + -889, 739, -889, 6091, 820, -889, 10564, 831, -889, 10682, + 10682, 609, 10682, 10682, 841, 6594, 6594, 150, 389, -889, + -889, 1047, 1052, 1079, 58, 493, 789, 812, 1098, 96, + -889, 113, -889, -889, 1115, 1168, -889, 10446, 5534, 13527, + -889, 7070, 273, -889, -889, -889, 194, 728, 1550, 5242, + 6448, -889, -889, -889, 734, -889, 1725, 1145, 10682, 10682, + -889, -889, 1911, -889, 1298, -889, 1298, -889, 1298, -889, + -889, 10682, 10682, -889, -889, -889, 11602, -889, 742, 391, + 755, 11602, -889, 756, 757, -889, 860, 10682, 13261, -889, + -889, 13527, 4822, 5094, 740, 652, 660, 10682, 10682, -889, + -889, -889, -889, -889, 10800, -889, -889, -889, -889, -889, + -889, -889, 868, 748, 6448, 5242, -889, -889, 11716, 96, + -889, -889, 6594, -889, -889, 96, -889, 10682, -889, 888, + 890, -889, 859, 12712, 5680, 855, 11488, 13527, 225, -889, + 9620, -889, 1742, 896, 775, 1934, 1934, 1065, -889, 13527, + 13527, 682, 774, 682, 682, 13527, 13527, 793, 797, 869, + 1171, 893, -889, -889, 1181, -889, 1171, 1911, -889, 1298, + -889, -889, 13332, 694, 13527, 13527, -889, -889, -889, -889, + 788, 915, 878, -889, 1226, 659, 823, 5242, -889, 5388, + -889, -889, 6594, 791, 230, 129, -889, -889, -889, -889, + -889, -889, 796, -889, -889, -889, -889, 799, 799, 1934, + 800, -889, 1298, -889, -889, -889, -889, -889, -889, 12798, + -889, 391, 893, -889, -889, 806, 817, 824, -889, 827, + 824, -889, -889, 859, 12884, 9030, 12970, 619, 574, 924, + 11488, -889, 930, 1742, 803, 1934, 799, 1934, 682, 821, + -889, 1911, -889, 1298, -889, 1298, -889, 1298, -889, -889, + 651, 230, 838, 747, 837, -889, -889, -889, 96, -889, + -889, 799, -889, 824, 847, 824, 824, 194, 5680, -889, + 1298, -889, -889, -889, 129, 824, -889, -889 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -3154,137 +3233,141 @@ static const yytype_int16 yypact[] = static const yytype_int16 yydefact[] = { 2, 0, 0, 0, 0, 0, 0, 294, 0, 0, - 318, 321, 0, 0, 606, 338, 339, 340, 341, 306, - 270, 270, 491, 490, 492, 493, 608, 0, 10, 0, - 495, 494, 496, 481, 592, 483, 482, 485, 484, 477, - 478, 438, 439, 497, 498, 489, 0, 0, 0, 0, - 0, 0, 296, 620, 620, 88, 313, 0, 0, 0, - 0, 0, 0, 453, 0, 0, 0, 3, 606, 6, - 9, 27, 33, 545, 545, 49, 60, 59, 0, 76, + 318, 321, 0, 0, 625, 339, 340, 341, 342, 306, + 270, 270, 510, 509, 511, 512, 627, 0, 10, 0, + 514, 513, 515, 500, 611, 502, 501, 504, 503, 496, + 497, 457, 458, 516, 517, 508, 0, 0, 0, 0, + 0, 0, 296, 639, 639, 88, 313, 0, 0, 0, + 0, 0, 0, 472, 0, 0, 0, 3, 625, 6, + 9, 27, 33, 564, 564, 49, 60, 59, 0, 76, 0, 80, 90, 0, 54, 248, 0, 61, 311, 286, - 287, 436, 288, 289, 290, 434, 433, 465, 435, 432, - 488, 0, 291, 292, 270, 5, 1, 8, 338, 339, - 306, 620, 414, 0, 113, 114, 489, 0, 0, 0, - 0, 545, 545, 116, 499, 342, 0, 488, 292, 0, - 334, 168, 178, 169, 165, 194, 195, 196, 197, 176, + 287, 455, 288, 289, 290, 453, 452, 484, 454, 451, + 507, 0, 291, 292, 270, 5, 1, 8, 339, 340, + 306, 639, 415, 0, 113, 114, 508, 0, 0, 0, + 0, 564, 564, 116, 518, 343, 0, 507, 292, 0, + 335, 168, 178, 169, 165, 194, 195, 196, 197, 176, 191, 184, 174, 173, 189, 172, 171, 167, 192, 166, 179, 183, 185, 177, 170, 186, 193, 188, 187, 180, 190, 175, 164, 182, 181, 163, 161, 162, 158, 159, 160, 118, 120, 119, 153, 154, 131, 132, 133, 140, 137, 139, 134, 135, 155, 156, 141, 142, 146, 149, 150, 136, 138, 128, 129, 130, 143, 144, 145, 147, - 148, 151, 152, 157, 576, 55, 121, 122, 575, 0, - 0, 0, 58, 545, 545, 0, 0, 54, 0, 488, - 0, 292, 0, 0, 0, 112, 0, 353, 352, 0, - 0, 488, 292, 187, 180, 190, 175, 158, 159, 160, - 118, 119, 0, 123, 125, 20, 124, 456, 461, 460, - 614, 616, 606, 617, 0, 458, 0, 618, 615, 607, - 590, 489, 278, 589, 273, 0, 265, 277, 74, 269, - 620, 436, 620, 580, 75, 73, 620, 259, 307, 0, - 72, 258, 413, 71, 606, 0, 18, 0, 0, 221, - 0, 222, 209, 212, 303, 0, 0, 0, 606, 15, - 606, 78, 14, 0, 606, 0, 611, 611, 249, 0, - 0, 611, 578, 0, 0, 86, 0, 96, 103, 545, - 471, 470, 472, 473, 467, 0, 469, 468, 440, 445, - 444, 447, 0, 0, 442, 449, 0, 451, 0, 463, - 0, 475, 0, 479, 480, 53, 236, 237, 4, 607, - 0, 0, 0, 0, 0, 0, 0, 552, 548, 547, - 546, 549, 550, 0, 554, 566, 521, 522, 570, 569, - 565, 545, 0, 507, 0, 514, 519, 620, 524, 620, - 544, 0, 551, 553, 556, 530, 0, 563, 530, 568, - 530, 572, 528, 503, 0, 0, 401, 403, 0, 92, + 148, 151, 152, 157, 595, 55, 121, 122, 594, 0, + 0, 0, 58, 564, 564, 0, 0, 54, 0, 507, + 0, 292, 0, 0, 0, 112, 0, 354, 353, 0, + 0, 507, 292, 187, 180, 190, 175, 158, 159, 160, + 118, 119, 0, 123, 125, 20, 124, 475, 480, 479, + 633, 635, 625, 636, 0, 477, 0, 637, 634, 626, + 609, 508, 278, 608, 273, 0, 265, 277, 74, 269, + 639, 455, 639, 599, 75, 73, 639, 259, 307, 0, + 72, 258, 414, 71, 625, 0, 18, 0, 0, 221, + 0, 222, 209, 212, 303, 0, 0, 0, 625, 15, + 625, 78, 14, 0, 625, 0, 630, 630, 249, 0, + 0, 630, 597, 0, 0, 86, 0, 96, 103, 564, + 490, 489, 491, 492, 486, 0, 488, 487, 459, 464, + 463, 466, 0, 0, 461, 468, 0, 470, 0, 482, + 0, 494, 0, 498, 499, 53, 236, 237, 4, 626, + 0, 0, 0, 0, 0, 0, 0, 571, 567, 566, + 565, 568, 569, 0, 573, 585, 540, 541, 589, 588, + 584, 564, 0, 526, 0, 533, 538, 639, 543, 639, + 563, 0, 570, 572, 575, 549, 0, 582, 549, 587, + 549, 591, 547, 522, 0, 0, 402, 404, 0, 92, 0, 84, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 603, 620, 602, 0, 605, 604, 0, 418, - 416, 312, 437, 0, 0, 407, 65, 310, 331, 113, - 114, 115, 479, 480, 507, 500, 329, 0, 620, 0, - 0, 0, 601, 600, 56, 0, 620, 303, 0, 0, - 344, 0, 343, 0, 0, 620, 0, 0, 0, 0, - 0, 0, 303, 0, 620, 0, 326, 0, 126, 0, - 0, 457, 459, 0, 0, 619, 584, 585, 279, 588, - 272, 0, 608, 266, 0, 275, 0, 267, 0, 606, - 0, 606, 620, 620, 260, 271, 606, 0, 309, 52, - 609, 0, 0, 0, 0, 0, 0, 17, 606, 301, - 13, 607, 77, 297, 300, 304, 613, 250, 612, 613, - 252, 305, 579, 102, 94, 0, 89, 0, 0, 620, - 0, 545, 314, 398, 530, 474, 0, 0, 448, 454, - 441, 443, 450, 452, 464, 476, 0, 0, 7, 21, - 22, 23, 24, 25, 50, 51, 511, 558, 512, 510, - 0, 606, 606, 530, 0, 0, 513, 0, 526, 574, - 523, 0, 527, 508, 0, 537, 559, 0, 540, 567, - 0, 542, 571, 0, 0, 620, 278, 28, 30, 0, - 31, 606, 0, 82, 93, 48, 34, 46, 0, 253, + 0, 0, 622, 639, 621, 0, 624, 623, 0, 419, + 417, 312, 456, 0, 0, 408, 65, 310, 332, 113, + 114, 115, 498, 499, 526, 519, 330, 0, 639, 0, + 0, 0, 620, 619, 56, 0, 639, 303, 0, 0, + 345, 0, 344, 0, 0, 639, 0, 0, 0, 0, + 0, 0, 303, 0, 639, 0, 327, 0, 126, 0, + 0, 476, 478, 0, 0, 638, 603, 604, 279, 607, + 272, 0, 627, 266, 0, 275, 0, 267, 0, 625, + 0, 625, 639, 639, 260, 271, 625, 0, 309, 52, + 628, 0, 0, 0, 0, 0, 0, 17, 625, 301, + 13, 626, 77, 297, 300, 304, 632, 250, 631, 632, + 252, 305, 598, 102, 94, 0, 89, 0, 0, 639, + 0, 564, 314, 399, 549, 493, 0, 0, 467, 473, + 460, 462, 469, 471, 483, 495, 0, 0, 7, 21, + 22, 23, 24, 25, 50, 51, 530, 577, 531, 529, + 0, 625, 625, 549, 0, 0, 532, 0, 545, 593, + 542, 0, 546, 527, 0, 556, 578, 0, 559, 586, + 0, 561, 590, 0, 0, 639, 278, 28, 30, 0, + 31, 625, 0, 82, 93, 48, 34, 46, 0, 253, 198, 29, 0, 292, 226, 231, 232, 233, 228, 230, 240, 241, 234, 235, 207, 210, 238, 239, 32, 218, - 608, 227, 229, 223, 224, 225, 213, 214, 215, 216, - 217, 593, 598, 594, 599, 412, 270, 410, 0, 620, - 593, 595, 594, 596, 411, 270, 593, 594, 270, 620, - 620, 35, 253, 199, 45, 206, 63, 66, 0, 0, - 0, 113, 114, 117, 0, 0, 620, 0, 606, 0, - 295, 620, 620, 424, 0, 0, 620, 345, 597, 302, - 0, 593, 594, 620, 347, 319, 346, 322, 597, 302, - 0, 593, 594, 0, 0, 0, 0, 277, 0, 325, - 583, 586, 582, 276, 281, 280, 274, 620, 587, 581, - 257, 255, 261, 262, 264, 308, 610, 19, 0, 26, - 205, 79, 16, 606, 611, 95, 87, 99, 101, 0, - 98, 100, 608, 0, 0, 466, 0, 455, 219, 220, - 552, 550, 361, 606, 354, 506, 504, 0, 41, 244, - 336, 0, 0, 520, 620, 573, 0, 529, 557, 530, - 530, 530, 564, 530, 552, 530, 43, 246, 337, 389, - 387, 0, 386, 385, 285, 0, 91, 85, 0, 0, - 0, 0, 0, 620, 0, 0, 0, 0, 409, 69, - 415, 262, 0, 0, 408, 67, 404, 62, 0, 0, - 620, 332, 0, 0, 415, 335, 577, 57, 425, 426, - 620, 427, 0, 620, 350, 0, 0, 348, 0, 0, - 415, 0, 0, 0, 0, 0, 415, 0, 127, 462, - 324, 0, 0, 282, 268, 606, 620, 11, 298, 251, - 97, 0, 391, 0, 0, 315, 446, 362, 359, 555, - 0, 606, 0, 0, 525, 509, 0, 533, 0, 535, - 0, 541, 0, 538, 543, 0, 0, 384, 608, 608, - 516, 517, 620, 620, 369, 0, 561, 369, 369, 367, - 0, 281, 283, 83, 47, 254, 593, 594, 0, 593, - 594, 0, 0, 40, 203, 39, 204, 70, 0, 37, - 201, 38, 202, 68, 405, 406, 0, 0, 0, 0, - 501, 330, 0, 0, 429, 351, 0, 12, 431, 0, - 316, 0, 317, 0, 0, 327, 280, 620, 256, 263, - 397, 0, 0, 0, 0, 0, 357, 505, 42, 245, - 530, 530, 530, 530, 44, 247, 0, 0, 0, 515, - 0, 365, 366, 369, 377, 560, 0, 380, 0, 382, - 402, 284, 415, 243, 242, 36, 200, 419, 417, 0, - 0, 0, 428, 0, 104, 111, 0, 430, 0, 320, - 323, 0, 421, 422, 420, 395, 608, 393, 396, 400, - 399, 363, 360, 0, 355, 534, 0, 531, 536, 539, - 390, 388, 303, 0, 518, 620, 0, 368, 375, 369, - 369, 369, 562, 369, 369, 64, 333, 110, 0, 620, - 0, 620, 620, 0, 0, 392, 0, 358, 0, 530, - 597, 302, 364, 0, 372, 0, 374, 0, 381, 0, - 378, 383, 107, 109, 0, 593, 594, 423, 349, 328, - 394, 356, 532, 369, 369, 369, 369, 105, 373, 0, - 370, 376, 379, 369, 371 + 627, 227, 229, 223, 224, 225, 213, 214, 215, 216, + 217, 612, 617, 613, 618, 413, 270, 411, 0, 639, + 612, 614, 613, 615, 412, 270, 612, 613, 270, 639, + 639, 35, 253, 199, 45, 206, 63, 66, 0, 0, + 0, 113, 114, 117, 0, 0, 639, 0, 625, 0, + 295, 639, 639, 443, 0, 0, 639, 346, 616, 302, + 0, 612, 613, 639, 348, 319, 347, 322, 616, 302, + 0, 612, 613, 0, 0, 0, 0, 0, 277, 0, + 325, 602, 605, 601, 276, 281, 280, 274, 639, 606, + 600, 257, 255, 261, 262, 264, 308, 629, 19, 0, + 26, 205, 79, 16, 625, 630, 95, 87, 99, 101, + 0, 98, 100, 627, 0, 0, 485, 0, 474, 219, + 220, 571, 569, 362, 625, 355, 525, 523, 0, 41, + 244, 337, 0, 0, 539, 639, 592, 0, 548, 576, + 549, 549, 549, 583, 549, 571, 549, 43, 246, 338, + 390, 388, 0, 387, 386, 285, 0, 91, 85, 0, + 0, 0, 0, 0, 639, 0, 0, 0, 0, 410, + 69, 416, 262, 0, 0, 409, 67, 405, 62, 0, + 0, 639, 333, 0, 0, 416, 336, 596, 57, 444, + 445, 639, 446, 0, 639, 351, 0, 0, 349, 0, + 0, 416, 0, 0, 0, 0, 0, 416, 0, 127, + 481, 435, 436, 437, 441, 438, 434, 0, 0, 0, + 426, 427, 429, 431, 433, 432, 324, 0, 0, 282, + 268, 625, 639, 11, 298, 251, 97, 0, 392, 0, + 0, 315, 465, 363, 360, 574, 0, 625, 0, 0, + 544, 528, 0, 552, 0, 554, 0, 560, 0, 557, + 562, 0, 0, 385, 627, 627, 535, 536, 639, 639, + 370, 0, 580, 370, 370, 368, 0, 281, 283, 83, + 47, 254, 612, 613, 0, 612, 613, 0, 0, 40, + 203, 39, 204, 70, 0, 37, 201, 38, 202, 68, + 406, 407, 0, 0, 0, 0, 520, 331, 0, 0, + 448, 352, 0, 12, 450, 0, 316, 0, 317, 0, + 0, 328, 440, 0, 0, 0, 0, 280, 639, 256, + 263, 398, 0, 0, 0, 0, 0, 358, 524, 42, + 245, 549, 549, 549, 549, 44, 247, 0, 0, 0, + 534, 0, 366, 367, 370, 378, 579, 0, 381, 0, + 383, 403, 284, 416, 243, 242, 36, 200, 420, 418, + 0, 0, 0, 447, 0, 104, 111, 0, 449, 0, + 320, 323, 0, 616, 439, 639, 428, 430, 422, 423, + 421, 396, 627, 394, 397, 401, 400, 364, 361, 0, + 356, 553, 0, 550, 555, 558, 391, 389, 303, 0, + 537, 639, 0, 369, 376, 370, 370, 370, 581, 370, + 370, 64, 334, 110, 0, 639, 0, 639, 639, 0, + 0, 424, 0, 0, 393, 0, 359, 0, 549, 302, + 365, 0, 373, 0, 375, 0, 382, 0, 379, 384, + 107, 109, 0, 612, 613, 442, 350, 329, 0, 326, + 395, 357, 551, 370, 370, 370, 370, 105, 0, 374, + 0, 371, 377, 380, 639, 370, 425, 372 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -870, -870, -870, 372, -870, 43, -870, -299, 301, -870, - -870, 46, -165, -305, 34, 1724, -870, 1884, 21, -50, - -870, -870, -483, -12, 885, -205, 15, -27, -285, -477, - -47, 2818, -59, 893, 5, -18, -870, -870, 38, -870, - 1204, -870, 184, 56, -252, -325, 96, -870, 10, -420, - -231, 14, 52, -358, 28, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, 9, -188, -444, -141, -623, -870, -870, -870, 115, - 258, -870, -583, -870, -870, -464, -870, -142, -870, -870, - -870, 91, -870, -870, -870, -87, -870, -470, -870, -131, - -870, -870, -870, -870, -870, 103, 41, -160, -870, -870, - -870, -870, -870, -277, -870, 670, -870, -870, -870, -11, - -870, -870, -870, 2545, 2999, 913, 2385, -870, -870, 60, - 512, 25, 135, 341, -40, -870, -870, -870, 117, 730, - -185, -226, -824, -706, -513, -870, 186, -751, -547, -869, - -42, -536, -870, 252, -870, -44, -343, -870, -870, -870, - 101, -445, 600, -353, -870, -870, -60, -870, 24, -20, - 492, -250, 508, -280, -46, -1 + -889, -889, -889, 471, -889, 40, -889, -292, 279, -889, + -889, 48, -179, -206, 662, 1029, -889, 1356, 2, -30, + -889, -889, -502, 39, 979, -197, -9, -66, -275, -497, + -26, 2270, -72, 997, 31, -18, -889, -889, 56, -889, + 3086, -889, 414, 75, -320, -399, 114, -889, 19, -406, + -246, -54, 103, -311, 26, -889, -889, -889, -889, -889, + -889, -889, -889, -889, -889, -889, -889, -889, -889, -889, + -889, 9, -220, -476, -68, -624, -889, -889, -889, 212, + -12, -889, -565, -889, -889, -166, -889, -65, -889, -889, + -889, 191, -889, -889, -889, -85, -889, -463, -889, -103, + -51, -889, -889, 50, -889, -47, -889, -889, -889, -889, + -889, 105, 83, -169, -889, -889, -889, -889, -889, -276, + -889, 768, -889, -889, -675, -5, -889, -889, -671, 1864, + 2466, 1017, 1683, -889, -889, 15, 644, 3, 219, 440, + 51, -889, -889, -889, 159, 67, 88, -244, -872, -676, + -455, -889, 380, -743, -553, -888, 52, -528, -889, -561, + -889, 91, -314, -889, -889, -889, 78, -461, 702, -368, + -889, -889, -80, -889, 18, -25, 684, -250, 181, -281, + -48, -1 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -3292,22 +3375,23 @@ static const yytype_int16 yydefgoto[] = { 0, 1, 2, 67, 68, 69, 287, 465, 466, 298, 521, 299, 71, 616, 72, 213, 689, 214, 215, 75, - 76, 820, 677, 77, 78, 300, 79, 80, 81, 546, + 76, 821, 677, 77, 78, 300, 79, 80, 81, 546, 82, 216, 123, 124, 243, 244, 245, 714, 654, 207, 84, 305, 620, 655, 278, 510, 511, 279, 280, 269, - 503, 539, 659, 610, 85, 210, 303, 743, 304, 319, - 753, 223, 844, 224, 845, 713, 1001, 680, 678, 929, - 460, 290, 471, 705, 836, 837, 230, 763, 954, 1027, - 974, 888, 791, 889, 792, 861, 1006, 1007, 552, 865, - 605, 397, 87, 88, 670, 447, 669, 494, 1004, 692, - 830, 933, 937, 89, 90, 91, 333, 334, 557, 92, - 93, 94, 558, 253, 254, 255, 489, 95, 96, 97, - 327, 98, 99, 219, 220, 102, 221, 456, 679, 372, - 373, 374, 375, 376, 891, 892, 377, 378, 379, 777, - 595, 381, 382, 383, 384, 580, 385, 386, 387, 896, - 897, 388, 389, 390, 391, 392, 588, 209, 461, 310, - 513, 273, 129, 684, 657, 464, 459, 438, 517, 862, - 518, 537, 257, 258, 259, 302 + 503, 539, 659, 610, 85, 210, 303, 744, 304, 319, + 754, 223, 845, 224, 846, 713, 1022, 680, 678, 945, + 460, 290, 471, 705, 837, 838, 230, 764, 975, 1053, + 995, 904, 792, 905, 793, 877, 1032, 1033, 552, 881, + 605, 397, 87, 88, 670, 447, 669, 494, 1030, 1072, + 859, 860, 861, 862, 863, 692, 831, 949, 953, 89, + 90, 91, 333, 334, 557, 92, 93, 94, 558, 253, + 254, 255, 489, 95, 96, 97, 327, 98, 99, 219, + 220, 102, 221, 456, 679, 372, 373, 374, 375, 376, + 907, 908, 377, 378, 379, 778, 595, 381, 382, 383, + 384, 580, 385, 386, 387, 912, 913, 388, 389, 390, + 391, 392, 588, 209, 461, 310, 513, 273, 129, 684, + 657, 464, 459, 438, 517, 878, 518, 537, 257, 258, + 259, 302 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -3315,512 +3399,562 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 105, 441, 246, 266, 266, 520, 285, 266, 315, 286, - 86, 205, 86, 126, 126, 345, 246, 218, 218, 281, - 716, 229, 349, 218, 218, 218, 435, 437, 218, 545, - 222, 283, 125, 125, 479, 252, 592, 707, 256, 895, - 125, 507, 212, 212, 206, 621, 107, 70, 212, 70, - 782, 206, 308, 312, 402, 559, 868, 540, 779, 451, - 86, 542, 326, 729, 316, 206, 301, 270, 270, 833, - 746, 270, 393, 393, 218, 585, 277, 282, 656, 439, - 843, 778, 665, 125, 726, 668, 818, 819, 726, -107, - 316, 528, 348, 553, 729, 206, 604, 470, -109, 395, - 336, 338, 340, 342, -104, 306, 686, 1032, 658, 125, - 281, 268, 274, -491, 446, 275, 272, 272, 271, 271, - 272, 656, 271, 665, 439, 576, 218, 1008, 86, -111, - 106, -110, 686, 685, 394, 797, -106, 436, 671, 674, - 368, -490, 863, -77, -492, 582, -108, 395, 343, 344, - 700, 448, 432, -105, 307, 311, 271, 271, 476, 710, - 445, 687, 789, 284, -91, 369, 396, 277, 282, 485, - -491, 449, 686, 561, 288, 450, 561, -493, 561, 497, - 561, -487, 561, -495, 1032, 445, 832, -415, 493, 577, - 398, 440, -494, 442, 434, 611, 247, 686, -490, 248, - 249, -492, -496, 598, 470, 601, -99, 294, -593, 790, - -112, 443, 393, 393, -487, -101, 399, -594, 779, 86, - 1008, -96, 895, 502, 749, 895, 864, 250, 403, 251, - 525, 779, 218, 218, -493, -481, 440, 928, 615, 395, - -495, 778, 276, -112, 480, 481, -103, 326, -102, -494, - 1014, -415, 531, -98, 778, 473, 550, 212, 212, -496, - 538, 538, 545, -100, 266, 538, -415, 266, 276, 505, - -97, 505, 455, 468, 469, 514, 490, 467, 615, 615, - 206, 757, 507, -485, 504, 218, 508, 544, 218, 729, - 462, 477, -481, 218, 218, 835, 832, 86, 482, -415, - 486, -415, 895, 247, 86, 86, 248, 249, -415, 488, - -486, 301, 86, 726, 726, -106, 478, 526, 516, 519, - 536, 903, 530, 316, 1002, 752, 917, 545, 512, 782, - 493, 270, 923, 829, 250, 704, 251, 502, 419, -104, - -485, 527, 125, 355, 356, -111, -110, 463, 607, 533, - 452, 453, 297, 617, 613, 355, 356, 778, 86, 218, - 218, 218, 218, 86, 218, 218, 556, 778, 428, 429, - 430, 569, 570, 571, 572, 515, 589, 506, 589, 271, - 272, 823, 271, 86, 212, 212, 212, 212, 522, 574, - 575, 726, 568, 617, 617, 70, 561, 419, 683, 444, - 573, 841, 247, 945, 86, 248, 249, 218, 529, 86, - 316, -486, 622, 814, -106, 301, 816, -106, -106, 842, - 297, 266, 535, 247, 966, 967, 248, 249, -111, 125, - -106, 874, 514, 247, 814, 251, 248, 249, -76, 444, - -104, 541, 218, 520, 543, -106, 266, -106, -108, 656, - 609, 665, 622, 622, 250, 609, 251, 514, 547, 41, - 778, -96, 42, 266, 250, 693, 251, 218, -111, 86, - 218, 941, 266, 663, 514, 566, 663, 1003, 908, 567, - 86, 578, 723, 514, 218, 328, 329, 330, 86, -103, - 584, 664, 900, 218, 859, 688, 854, 663, 86, 812, - -105, 913, -502, 737, 729, 554, 58, 919, 921, 587, - 246, 505, 505, 545, 663, 664, 590, 526, 745, 926, - 544, 105, 591, 663, 812, 520, 733, 734, -106, 726, - 852, 86, 664, 778, 594, 732, 271, 266, 331, 332, - 86, 664, 813, 775, 778, 718, -110, 775, 514, 971, - 972, -108, 597, -106, 316, 813, 316, 583, 218, 206, - 599, 271, 804, 663, 952, 600, 86, -102, 70, 602, - 918, -108, 768, 125, -98, 125, 335, 742, 271, 329, - 330, 664, 520, 603, -108, 544, 614, 271, 663, 523, - 638, 786, -100, 218, 877, 879, 881, 297, 883, -105, - 884, 104, 676, 104, 793, 727, 664, 271, 104, 104, - 690, 271, 218, 985, 104, 104, 104, 691, 911, 104, - 805, 316, 694, 795, 697, 854, 695, 673, 675, 555, - 990, 331, 332, 454, 454, 615, 719, 744, 731, 271, - 125, 615, 271, 918, 736, 739, -91, 615, 615, 754, - -108, 104, 271, -108, -108, 767, 771, 770, 505, 788, - 799, 673, 675, 798, 281, 104, 809, 281, 793, 793, - 800, 810, -105, 811, 772, 815, 247, 824, 817, 248, - 249, -108, 1052, -108, 912, 281, 825, 686, 218, 86, - 831, 834, 832, -97, 827, 834, 848, 840, 538, 846, - 822, 297, 834, 246, 774, 850, 366, 367, 368, 251, - 740, 849, 808, 212, 1064, 857, 860, 104, 866, 104, - 870, 277, 218, 472, 277, 872, 505, 206, 876, 924, - 472, 878, 851, 369, 847, 491, 576, 554, 248, 249, - 808, 508, 277, 609, -302, 996, 899, 212, 880, 882, - 617, 998, 206, 615, 885, 931, 617, 915, 932, -302, - 936, 955, 617, 617, 940, 520, 764, 495, 942, -590, - 950, 544, 696, 589, 970, 1015, 1017, 1018, 1019, 973, - 703, 247, 976, 781, 248, 249, 785, 978, 982, 980, - 715, 266, 532, 987, -302, 988, 534, 999, -594, -591, - 86, -302, 514, 380, 380, 1000, 1009, 316, 86, 622, - 104, 1010, 218, 1020, 1021, 622, 218, 1016, 1022, 793, - 1036, 622, 622, 104, 104, -342, 125, 86, 86, 934, - 1035, 1037, 938, -481, 856, 1044, 271, 271, 1046, 1048, - -342, 86, 663, 1053, 218, 904, 780, 1055, -481, 783, - 1057, 380, 380, 86, 86, 505, 939, 495, 756, 431, - 664, 86, 1059, -485, 1072, 457, 1069, -593, 617, 212, - 949, 579, 86, 86, 432, -342, 104, -594, -485, 104, - 432, -590, -342, -481, 104, 104, 1077, -590, 104, 593, - -481, 589, 589, 1079, 738, 104, 104, 227, 130, 969, - -597, 1068, 1070, 104, 975, 887, 271, 893, 925, 433, - 1067, -591, 856, -485, 271, 458, 434, -591, 125, 208, - -485, 474, 434, 125, 492, 890, 775, 622, 773, 899, - 1024, 1029, 899, 1040, 899, 0, 432, 86, 86, 0, - 0, 993, -489, 380, 380, 86, 834, 0, 0, 104, - 104, 104, 104, 104, 104, 104, 104, -489, 0, 0, - 125, 0, 0, 760, -597, 358, 359, 360, 361, 0, - 0, 475, 0, 0, 104, 0, 894, 0, 434, -597, - 0, 761, 899, 339, 329, 330, 1045, 0, 706, 706, - 914, 916, -489, 0, 0, 104, 920, 922, 104, -489, - 104, 730, 0, 104, 0, 86, 780, 86, 735, 899, - 86, 899, -597, 899, -597, 899, 0, 0, -593, 780, - 741, -597, 914, 916, 589, 920, 922, 266, 350, 351, - 352, 353, 354, 104, 0, 899, 331, 332, 514, 495, - 693, 834, 898, 104, 104, 0, 495, 0, 218, 380, - 483, 0, 271, 0, 867, 0, 0, -593, 104, 0, - 104, 104, 960, 0, 962, 432, 0, 0, 963, 0, - 0, 104, 0, 765, 766, 104, 0, 524, 663, 104, - 0, 0, 562, 0, 104, 329, 330, 1025, 0, 104, - 893, 0, 432, 893, 548, 893, 664, -488, 0, 0, - 484, 380, 986, 796, 0, 890, 0, 434, 890, 432, - 0, 890, -488, 890, 760, 0, 358, 359, 360, 361, - 927, -593, 104, 0, 0, 986, 0, 475, 961, 0, - 0, 104, 761, 935, 434, 0, -593, 331, 332, 0, - 1011, 1012, 271, 893, 549, 943, 944, -488, 0, 104, - 0, 434, 0, 947, -488, 977, 979, 104, -292, 0, - 0, 890, 1031, 0, 1034, 953, 0, 0, 0, -593, - 893, -593, 893, -292, 893, -593, 893, 0, -593, 0, - 826, 0, -594, -303, 104, 0, 821, 0, 890, 0, - 890, 0, 890, 0, 890, 0, 893, 0, -303, 1047, - 0, 0, 1049, 104, 0, 1013, 802, 0, -292, 1023, - 0, 0, 217, 217, 890, -292, 0, 1038, 217, 267, - 267, 432, 0, 267, 432, 1030, 472, 0, 1033, 989, - 0, 1028, 432, -303, 1071, 858, 0, 997, 0, 1073, - -303, 1075, 0, 0, 247, 1076, -594, 248, 249, 0, - 289, 291, 292, 293, 0, 869, 803, 267, 309, 458, - 0, -594, 0, 434, 0, 1083, 434, 1039, 0, 346, - 347, 502, 0, 0, 434, 250, 0, 251, 0, 104, - 104, 380, 0, 337, 875, 329, 330, 1054, 1056, 1058, - 0, 1060, 1061, 0, -594, 0, -594, 1041, 0, 1042, - -594, 0, 1043, -594, 563, 1074, 329, 330, 341, 329, - 330, 0, 0, 104, 0, 555, 329, 330, 560, 329, - 330, 217, 0, 0, 357, 0, 358, 359, 360, 361, - 930, 1078, 1080, 1081, 1082, 0, 0, 331, 332, 0, - 0, 1084, 362, 0, 0, 0, 357, 948, 358, 359, - 360, 361, 0, 0, 0, 706, 363, 0, 331, 332, - 0, 331, 332, 957, 362, 0, 0, 364, 331, 332, - 0, 331, 332, 365, 366, 367, 368, 0, 363, 0, - 564, 329, 330, 565, 329, 330, 0, 0, 0, 364, - 0, 104, 0, 0, -620, 365, 366, 367, 368, 104, - 104, 369, 0, 104, 370, 0, 104, 104, 755, 329, - 330, 0, 104, 104, 0, 0, 0, 371, 104, 104, - 0, 0, 0, 369, 0, 0, 370, 217, 217, 0, - 0, 0, 104, 331, 332, 104, 331, 332, 0, 371, - 0, 472, 0, 0, 104, 104, 0, 472, 0, 0, - 0, 0, 104, 357, 0, 358, 359, 360, 361, 0, - 0, 331, 332, 104, 104, 0, 498, 499, 500, 346, - 0, 362, 357, 0, 358, 359, 360, 361, 0, 0, - 267, 0, 760, 267, 358, 359, 360, 361, 217, 217, - 362, 0, 0, 0, 0, 0, 364, 0, 0, 0, - 761, 0, 365, 366, 367, 368, 0, 0, 760, 0, - 358, 359, 360, 361, 0, 364, 0, 0, 104, 0, - 0, 365, 366, 367, 368, 364, 761, 0, 104, 104, - 369, 762, 0, 370, 0, 760, 104, 358, 359, 360, - 361, -299, 0, 0, -299, -299, 551, 0, 0, 369, - 0, 364, 370, 761, 217, 217, 217, 217, 247, 217, - 217, 248, 249, 1026, 247, 0, 0, 248, 249, 0, - 0, -299, -299, 0, -299, 0, 0, 0, 364, 586, - 0, 0, 0, 0, 956, 0, 0, 0, 0, 250, - 596, 251, 0, 0, 0, 951, 104, 251, 104, 0, - 0, 104, 608, 0, 0, 0, 0, 619, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 419, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 0, 0, 267, 0, 104, - 357, 0, 358, 359, 360, 361, 0, 672, 672, 0, - 426, 427, 428, 429, 430, 0, 0, 0, 362, 0, - 0, 0, 267, 0, 0, 217, 1005, 0, 358, 359, - 360, 361, 0, 0, 581, 0, 0, 672, 0, 267, - 0, 672, 672, 364, 761, 0, 0, 0, 267, 365, - 366, 367, 368, 0, 0, 0, 0, 717, 0, 0, - 720, 721, 0, 0, 0, 722, 0, 0, 725, 0, - 728, 0, 309, 293, 0, 0, 0, 369, 0, 0, - 370, 0, 0, 0, 0, 73, 0, 73, 121, 121, - 672, 0, 0, 0, 0, 0, 121, 0, 0, 0, - 725, 0, 357, 309, 358, 359, 360, 361, 0, 0, - 0, 0, 0, 267, 0, 0, 416, 417, 0, 0, - 362, 0, 0, 784, 0, 358, 359, 360, 361, 419, - 758, 759, 0, 0, 0, 73, 776, 0, 0, 121, - 0, 362, 416, 417, 0, 364, 0, 0, 769, 0, - 0, 365, 366, 367, 368, 419, 425, 426, 427, 428, - 429, 430, 0, 0, 0, 121, 364, 787, 0, 0, - 794, 0, 0, 366, 367, 368, 0, 0, 0, 369, - 0, 0, 370, 426, 427, 428, 429, 430, 0, 0, - 0, -414, 0, 0, 0, 0, 0, 0, 0, 0, - 369, 0, 0, 73, -414, -414, -414, -414, -414, -414, - 0, -414, 0, 0, 0, 0, 0, -414, -414, -414, - 0, 0, 0, 0, 0, 0, 0, 0, -414, -414, - 0, -414, -414, -414, -414, -414, 0, 0, 0, 0, - 0, 0, 0, 217, 0, 74, 0, 74, 122, 122, - 0, 0, 0, 0, 0, 828, 122, 0, 769, 787, - 0, 0, 0, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, 0, 0, 217, 0, -414, - -414, -414, 0, 0, -414, 0, 0, 0, 853, 0, - -414, 0, -414, 0, 73, 74, -414, 725, 309, 122, - 0, 0, 0, 0, 0, 0, -414, 0, 0, -414, - -414, 0, 0, -414, 0, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, 122, 0, 0, 0, -414, - -414, -414, -414, -414, 0, 276, -414, -414, -414, -414, - 357, 0, 358, 359, 360, 361, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 362, 902, - 0, 0, 0, 74, 672, 905, 0, 267, 0, 0, - 672, 672, 73, 0, 871, 725, 672, 672, 0, 73, - 73, 0, 0, 364, 0, 0, 0, 73, 0, 365, - 366, 367, 368, 0, 0, 0, 0, 0, 121, 217, - 0, 0, 672, 672, 0, 672, 672, 0, 0, 0, - 0, 0, 0, 0, 0, 946, 0, 369, 0, 293, - 370, 357, 0, 358, 359, 360, 361, 0, 0, 0, - 0, 0, 0, 73, 0, 0, 958, 959, 73, 362, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 964, - 965, 0, 0, 0, 74, 0, 0, 0, 73, 0, - 0, 0, 0, 0, 364, 981, 0, 0, 0, 0, - 365, 366, 367, 368, 0, 983, 984, 416, 417, 73, - 0, 0, 672, 0, 73, 121, 0, 73, 0, 0, - 419, 0, 0, 0, 0, 0, 0, 0, 369, 0, - 0, 370, 0, 0, 0, 672, 0, 0, 0, 0, - 0, 0, 0, 309, 0, 423, 424, 425, 426, 427, - 428, 429, 430, 0, 0, 0, 0, 73, 73, 0, - 0, 0, 74, 0, 0, 0, 0, 0, 0, 74, - 74, 0, 0, 0, 73, 0, 0, 74, 0, 0, - 0, 0, 0, 0, 0, 73, 0, 0, 122, 0, - 0, 0, 0, 73, 0, 0, 0, -621, -621, -621, - -621, 408, 409, 73, 0, -621, -621, 0, 0, 0, - 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, - 0, 0, 0, 74, 0, 0, 419, 0, 74, 0, - 0, 0, 0, 267, 0, 0, 73, 0, 0, 0, - 0, 0, 0, 0, 0, 73, 0, 0, 74, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 121, - 0, 121, 0, 0, 0, 0, 0, 0, 0, 74, - -620, 73, 0, 0, 74, 122, 0, 74, 0, 0, - 0, 0, 0, -620, -620, -620, -620, -620, -620, 0, - -620, 0, 0, 0, 0, 0, -620, -620, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -620, -620, 0, - -620, -620, -620, -620, -620, 0, 0, 74, 74, 0, - 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, - 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, - -620, 0, 0, 74, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -620, 103, 0, 103, 128, - 128, 0, 0, 0, 0, -620, 0, 232, -620, -620, - 0, 0, 0, 0, 73, 0, 74, 0, 0, 0, - 0, 0, 0, 0, 0, 74, 0, 0, -620, -620, - 0, 0, 0, 0, 276, -620, -620, -620, -620, 122, - 0, 122, 0, 0, 0, 0, 103, 0, 0, 0, - 318, 74, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 0, 318, 0, 0, 416, - 417, 0, 0, 0, 418, 0, 0, 0, 0, 0, - 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, - 0, 0, 0, 420, 103, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 73, 0, 0, 0, 0, - 0, 0, 121, 73, 73, 0, 0, 0, 0, 0, - 73, 0, 0, 0, 0, 0, 73, 73, 0, 0, - 0, 0, 73, 73, 0, 0, 100, 0, 100, 127, - 127, 127, 0, 0, 0, 0, 73, 231, 0, 0, - 0, 0, 0, 0, 74, 0, 0, 0, 73, 73, - 0, 0, 0, 0, 0, 0, 73, 404, 405, 406, - 407, 408, 409, 410, 0, 412, 413, 73, 73, 0, - 0, 0, 0, 416, 417, 103, 100, 0, 0, 0, - 317, 0, 0, 0, 0, 0, 419, 0, 0, 0, - 0, 0, 0, 0, 121, 0, 0, 0, 0, 121, - 0, 0, 0, 0, 0, 0, 317, 0, 0, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, - 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 73, 73, 0, 0, 121, 0, 0, 0, - 73, 0, 0, 0, 100, 0, 0, 0, 0, 0, - 0, 0, 0, 103, 0, 74, 0, 0, 0, 0, - 103, 103, 122, 74, 74, 0, 0, 0, 103, 0, - 74, 0, 0, 0, 0, 0, 74, 74, 0, 318, - 0, 0, 74, 74, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, - 73, 0, 73, 0, 0, 73, 0, 0, 74, 74, - 0, 0, 0, 0, 103, 0, 74, 0, 0, 103, - 0, 0, 0, 0, 0, 0, 0, 74, 74, 0, - 0, 0, 0, 0, 0, 100, 0, 0, 0, 103, + 105, 285, 479, 441, 520, 707, 435, 437, 246, 286, + 86, 222, 86, 126, 126, 402, 252, 218, 218, 281, + 349, 229, 246, 218, 218, 218, 507, 717, 218, 315, + 125, 125, 256, 781, 658, 345, 784, 205, 125, 545, + 283, 864, 301, 107, 783, 865, 451, 730, 911, 70, + 747, 70, 308, 312, 266, 266, 559, 540, 266, 685, + 86, 542, 206, 656, 316, 592, 780, 665, 834, 206, + 668, 439, 393, 393, 218, 553, 700, 395, 730, 844, + -107, 125, 585, 206, -609, 710, 348, 884, 326, 394, + 316, 686, 621, 272, 272, 277, 282, 272, 727, 528, + 1034, 879, 727, 604, 819, 820, 656, 125, 665, 1058, + 281, 284, 470, 206, -104, 798, 576, 686, 270, 270, + 271, 271, 270, 446, 271, 395, 218, 582, 86, 268, + 274, 307, 311, 275, -510, 368, -109, 294, 476, 779, + 380, 380, 336, 338, 340, 342, 106, 833, -500, 485, + 750, -111, -509, 790, 1070, -77, 306, 686, 271, 271, + 369, -110, -106, -500, 561, 439, 436, 561, 687, 561, + 449, 561, -108, 561, 450, -105, -91, -511, 398, 445, + 577, 432, 686, 440, -512, 880, 277, 282, 380, 380, + -514, -510, -513, 1058, 781, 442, -609, -99, -500, -612, + 791, 1034, -609, 611, 445, -500, 965, 781, 288, -509, + 525, 247, 393, 393, 248, 249, 504, 395, 508, 86, + -416, 396, 497, 434, 615, 480, 481, 780, 468, 469, + 914, -96, 218, 218, -511, 399, 550, 671, 674, 966, + 780, -512, 250, 833, 251, 493, -343, -514, 544, -513, + 531, 911, 536, -101, 911, -613, 944, -506, 538, 538, + -515, -343, 403, 538, 615, 615, 443, 507, -103, 505, + 490, 505, 545, 326, 730, 514, -500, 440, -102, -98, + 380, 380, 758, 276, -416, 218, -112, 301, 218, -100, + -504, 864, -97, 218, 218, 865, -343, 86, 206, -416, + 779, 1040, 919, -343, 86, 86, 493, 753, 933, 455, + 462, 716, 86, 779, 939, 266, 530, -515, 266, 470, + -302, -505, 41, 316, 276, 42, 467, -506, 727, 727, + 297, 982, -416, -500, -416, -302, 473, 545, 911, 783, + 125, -416, 477, 527, 1028, 815, 482, -504, 817, 486, + -104, 533, 569, 570, 571, 572, -112, 272, 86, 218, + 218, 218, 218, 86, 218, 218, 815, 463, 607, 58, + -302, -96, 961, 617, -613, 613, 589, -302, 589, 512, + 830, 271, 270, 86, 271, 683, 380, 561, 824, 568, + -505, 301, 493, 515, 444, 864, 472, 70, 297, 865, + 526, 1071, 573, 472, 86, 924, 727, 218, 556, 86, + 316, 488, 622, 617, 617, 502, 704, 478, 247, -104, + 506, 248, 249, -111, 343, 344, 522, 125, 419, -110, + 529, 779, 514, 1056, -76, 656, 1059, 665, 380, 431, + 495, 779, 218, 520, -103, 502, -111, 355, 356, 250, + -102, 251, 622, 622, 432, 419, 535, 514, 734, 735, + 541, 890, 543, 813, 547, 693, 566, 218, 567, 86, + 218, 584, 266, 578, 514, 587, 598, 724, 601, 746, + 86, 544, 870, 514, 218, 428, 429, 430, 86, 433, + 1071, 663, -106, 218, 663, 875, 434, 266, 86, 868, + 916, 609, 457, 738, 247, 1029, 609, 248, 249, 730, + 664, 505, 505, -98, 266, 663, 246, 432, 526, -610, + 1104, 105, -521, 266, 545, 520, 590, 942, 474, 733, + 495, 86, 663, 591, 664, 250, 814, 251, 271, 779, + 86, 663, 805, 432, 579, 444, 544, -110, 514, 452, + 453, 664, 458, -508, 316, 796, 316, 594, 218, 434, + 664, 934, 593, 271, 727, -108, 86, 523, -508, 597, + 70, 125, 599, 125, -111, 297, 600, 206, 475, 743, + 271, 663, 728, -504, 602, 434, -100, 973, 266, 271, + -105, 836, 833, 218, 992, 993, 719, 520, -504, 603, + 664, 929, 483, -508, 794, 812, 663, 935, 937, 271, + -508, -97, 218, 271, 745, 806, 614, 432, 380, 638, + 779, 316, 615, 769, 676, 664, 870, 842, 615, 690, + 779, -610, 691, -504, 615, 615, 694, -610, 125, 964, + -504, 271, 787, 695, 271, 761, 697, 358, 359, 360, + 361, 843, 484, 1011, 271, 555, -106, 524, 505, 434, + 720, 706, 706, 762, 281, 867, 1092, 281, 794, 794, + 212, 212, 432, 732, 508, 810, 212, -616, 776, 297, + -108, 823, 776, 737, 816, 281, 740, 818, 218, 86, + 832, 835, -91, -612, 755, 835, 849, 538, 686, 554, + 768, 957, 835, 104, 771, 104, 789, 475, 799, 246, + 104, 104, 495, 800, 434, 848, 104, 104, 104, 495, + 828, 104, 218, -613, 801, 858, 811, 505, 1006, 1017, + -105, 809, 940, 544, 825, 1019, 883, 1080, 987, 988, + 277, -616, 125, 277, 813, 206, 775, 548, 826, -507, + 696, 583, 814, 104, 833, 615, -616, -612, 703, 809, + 850, 277, 432, -106, -507, 454, 454, 104, 715, 841, + 206, 617, -612, -106, 589, 847, 866, 617, 931, 448, + 873, -108, 882, 617, 617, 888, 934, -613, 876, -616, + 886, -616, 576, 520, 609, -612, 892, 549, -616, -507, + 894, 86, -613, 514, 434, -612, -507, -612, 316, 86, + 622, -612, 872, 218, -612, -105, 622, 218, 970, 104, + 794, 104, 622, 622, 896, 125, 901, 898, 86, 86, + 950, 947, 948, 954, 952, -613, 757, -613, 955, 271, + 271, -613, 86, 266, -613, 218, 956, 491, 920, -458, + 248, 249, -458, -108, 86, 86, 958, 673, 675, 822, + 247, 663, -106, 248, 249, -106, -106, 962, 893, 895, + 897, 505, 899, 971, 900, 1001, 976, 86, 1108, -458, + 664, 1003, 915, 1008, 991, 212, 212, 1009, 86, 86, + 872, 673, 675, -106, -458, -106, -458, 994, 997, 999, + 472, 998, 1000, 1020, 617, 1021, 1026, 589, 589, 271, + 927, 1035, 104, -292, 1036, 990, 1042, 271, 247, 1046, + 996, 248, 249, 1047, 1048, 104, 104, 1061, -292, -458, + 1062, 554, 125, 1063, 1066, -612, -458, 125, 1073, 1097, + 741, 1075, 1077, 622, 772, 1099, 516, 519, 1081, -303, + 909, 251, -108, 86, 86, -108, -108, 1014, 891, 1083, + 765, 86, 773, -292, -303, -613, 1085, 835, 247, 1087, + -292, 248, 249, 86, 125, 858, 928, 782, 104, 1107, + 786, 104, 1054, -108, 532, -108, 104, 104, 534, 1110, + 104, 227, 125, 739, 366, 367, 368, 104, 104, -303, + 1096, 251, 130, 903, 946, 104, -303, 1074, 1100, 941, + 906, 1116, 212, 212, 212, 212, 1027, 574, 575, 1098, + 1095, 369, 492, 208, 835, 0, 86, 774, 86, 706, + 73, 86, 73, 121, 121, 350, 351, 352, 353, 354, + 472, 121, 1050, 1082, 1084, 1086, 1055, 1088, 1089, 0, + 589, 104, 104, 104, 104, 104, 104, 104, 104, 335, + 0, 0, 329, 330, 514, 0, 693, 835, 0, 1041, + 1043, 1044, 1045, 0, 218, 271, 104, 0, 0, 858, + 73, 0, 776, 803, 121, 915, 355, 356, 915, 0, + 915, 1109, 1111, 1112, 1113, 0, 125, 104, 432, 943, + 104, 0, 104, 1117, 266, 104, 0, 0, 0, 0, + 121, 0, 951, 835, 331, 332, 761, 86, 358, 359, + 360, 361, 663, 688, 959, 960, 328, 329, 330, 0, + 472, 0, 0, 804, 762, 104, 472, -509, 0, 0, + 434, 664, -511, 915, 0, 104, 104, 968, 73, 0, + 1051, 0, -509, 909, 0, 0, 909, -511, 909, 974, + 104, 0, 104, 104, 247, 0, 1102, 248, 249, -512, + 271, 910, 915, 104, 915, 0, 915, 104, 915, 331, + 332, 104, 0, 0, -512, 0, 104, -509, 963, 0, + 0, 104, -511, 731, -509, 250, 0, 251, 0, -511, + 736, 915, 0, 432, 0, -452, 0, 1039, 0, 0, + 906, 909, 742, 906, 0, 0, 906, 0, 906, -512, + -452, 930, 932, 1010, 104, 0, -512, 936, 938, 0, + 0, 1018, 357, 104, 358, 359, 360, 361, 458, 73, + 909, 0, 909, 1025, 909, 434, 909, 0, 0, 0, + 362, 104, 0, 930, 932, -452, 936, 938, -451, 104, + 247, 1049, -452, 248, 249, 766, 767, 0, 0, 909, + 0, 906, 981, -451, 983, 364, 432, 0, 984, 472, + 0, 365, 366, 367, 368, 357, 104, 358, 359, 360, + 361, 250, 0, 251, 0, 797, 1067, 0, 1068, 0, + 906, 1069, 906, 362, 906, 104, 906, 0, -451, 369, + 0, 458, 370, 0, 0, -451, 1064, 73, 434, 581, + 0, 0, 0, 1052, 73, 73, 0, 0, 364, 906, + 0, 432, 73, 0, 365, 366, 367, 368, 0, 0, + 0, 212, 562, 121, 0, 329, 330, 0, 1007, 785, + 0, 358, 359, 360, 361, 1037, 1038, 74, 0, 74, + 122, 122, 369, 0, 0, 370, 1065, 362, 122, 0, + 0, 1007, 827, 434, 0, 212, 0, 1057, 73, 1060, + 0, 104, 104, 73, 0, 0, 0, 1114, 0, 0, + 0, 357, 364, 358, 359, 360, 361, 331, 332, 366, + 367, 368, 0, 73, 0, 0, 0, 74, 0, 362, + 337, 122, 329, 330, 0, 104, 339, 329, 330, 1076, + 0, 0, 1078, 363, 73, 0, 369, 0, 874, 73, + 121, 0, 73, 563, 364, 329, 330, 122, 0, 0, + 365, 366, 367, 368, 0, 0, 0, 0, 885, 0, + 0, 341, 329, 330, 0, 0, 0, 1101, 0, 0, + 0, 1103, 0, 1105, 331, 332, 0, 1106, 369, 331, + 332, 370, 73, 73, 0, 74, 0, 357, 0, 358, + 359, 360, 361, 0, 371, 0, 0, 331, 332, 73, + 1115, 0, 0, 0, 104, 362, 0, 0, 212, 0, + 73, 0, 104, 104, 331, 332, 104, 0, 73, 104, + 104, 777, 0, 0, 0, 104, 104, 0, 73, 0, + 364, 104, 104, 0, 0, 0, 365, 366, 367, 368, + 0, 555, 329, 330, 0, 104, 0, 0, 104, 0, + 357, 0, 358, 359, 360, 361, 247, 104, 104, 248, + 249, 73, 0, 0, 369, 969, 0, 370, 362, 0, + 73, 560, 329, 330, 0, 0, 74, 0, 0, 0, + 104, 978, 363, 502, 121, 0, 121, 250, 0, 251, + 0, 104, 104, 364, 331, 332, 73, 0, 0, 365, + 366, 367, 368, 802, 0, 564, 329, 330, 0, 0, + 0, 0, 565, 329, 330, 0, 0, 756, 329, 330, + -639, 0, 0, 0, 331, 332, 0, 369, 0, 0, + 370, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 371, 0, 0, 104, 416, 417, 0, + 0, 121, 0, 0, 74, 0, 104, 104, 331, 332, + 419, 74, 74, 0, 104, 331, 332, 0, 0, 74, + 331, 332, 0, 0, 0, 247, 104, 0, 248, 249, + 122, 420, 0, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 0, 103, 0, 103, 128, 128, 0, + 0, -277, 0, 0, 0, 232, 972, 357, 251, 358, + 359, 360, 361, 0, 0, 74, 0, 0, 0, 73, + 74, 0, 0, 0, 0, 362, 0, 0, 0, 104, + 0, 104, 0, 761, 104, 358, 359, 360, 361, 0, + 74, 0, -299, 0, 103, -299, -299, 0, 318, 0, + 364, 762, 416, 417, 0, 121, 365, 366, 367, 368, + 0, 74, 0, 0, 0, 419, 74, 122, 0, 74, + 0, 0, -299, -299, 318, -299, 364, 104, 0, 0, + 0, 0, 763, 0, 369, 0, 761, 370, 358, 359, + 360, 361, 425, 426, 427, 428, 429, 430, 0, 0, + 551, 0, 0, 1031, 762, 358, 359, 360, 361, 74, + 74, 0, 103, 0, 357, 0, 358, 359, 360, 361, + 104, 762, 0, 0, 0, 0, 74, 0, 0, 364, + 0, 73, 362, 0, 0, 977, 0, 74, 121, 73, + 73, 0, 0, 0, 0, 74, 73, 0, 887, 0, + 0, 0, 73, 73, 0, 74, 0, 364, 73, 73, + 0, 0, 0, 365, 366, 367, 368, 0, 0, 0, + 419, 0, 73, 0, 0, 100, 0, 100, 127, 127, + 127, 0, 0, 0, 73, 73, 231, 0, 74, 0, + 0, 369, 416, 417, 370, 0, 0, 74, 426, 427, + 428, 429, 430, 103, 0, 419, 0, 73, 0, 0, + 0, 122, 0, 122, 0, 416, 417, 0, 73, 73, + 0, 0, 0, 74, 0, 100, -639, 0, 419, 317, + 423, 424, 425, 426, 427, 428, 429, 430, 0, -639, + -639, -639, -639, -639, -639, 121, -639, 0, 0, 0, + 121, -639, -639, -639, 0, 317, 426, 427, 428, 429, + 430, 0, 0, -639, -639, 0, -639, -639, -639, -639, + -639, 0, 357, 73, 358, 359, 360, 361, 122, 0, + 0, 103, 0, 73, 73, 0, 0, 121, 103, 103, + 362, 73, 0, 100, 0, 761, 103, 358, 359, 360, + 361, 0, 0, 73, 0, 121, 0, 318, 0, 0, + 0, 0, 0, 762, 0, 364, -639, 0, 0, 0, + 0, 365, 366, 367, 368, 0, 0, 0, 0, 0, + 0, -639, 0, 0, 0, 0, 0, 0, 364, 0, + 0, -639, 103, 0, -639, -639, 74, 103, 0, 369, + 0, 0, 370, 0, 0, 0, 73, 0, 73, 0, + 0, 73, 0, 0, -639, -639, 0, 103, 0, 0, + 276, -639, -639, -639, -639, 0, 0, 0, 0, 0, + 0, 0, 122, 0, 100, 0, 0, 0, 103, 0, + 0, 0, 0, 103, 318, 0, 623, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 122, 0, 0, 0, 0, 122, - 103, 0, 0, 0, 0, 103, 318, 0, 623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 74, 74, 0, 0, 122, 0, 0, 83, - 74, 83, 0, 0, 0, 0, 0, 0, 623, 623, - 228, 0, 0, 100, 0, 0, 0, 0, 0, 0, - 100, 100, 0, 0, 0, 103, 0, 0, 100, 0, - 0, 0, 0, 0, 0, 0, 103, 0, 0, 317, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 83, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, - 74, 0, 74, 0, 0, 74, 0, 0, 0, 0, - 0, 0, 0, 0, 100, 0, 0, 0, 0, 100, - 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, - 0, 0, 0, 0, 0, 0, 103, 0, 0, 100, - 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, - 318, 0, 318, 0, 0, 0, 0, 83, 0, 0, - 100, 0, 103, 0, 0, 100, 317, 0, 0, 0, - 0, 0, 0, 0, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, - 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 101, 0, 101, 0, 420, 100, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 100, 0, 0, 0, - 0, 0, 0, 0, 100, 0, 0, 0, 83, 0, - 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 623, 623, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, + 0, 0, 0, 103, 0, 0, 0, 0, 74, 0, + 0, 0, 100, 0, 103, 122, 74, 74, 0, 100, + 100, 0, 103, 74, 0, 0, 0, 100, 0, 74, + 74, 0, 103, 0, 0, 74, 74, 0, 317, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, + 404, 405, 406, 407, 408, 409, 410, 0, 412, 413, + 0, 74, 74, 0, 0, 103, 416, 417, 0, 0, + 0, 0, 0, 100, 103, 0, 0, 0, 100, 419, + 0, 0, 0, 0, 74, 0, 0, 0, 318, 0, + 318, 0, 0, 0, 0, 74, 74, 0, 100, 0, + 103, 0, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 0, 0, 0, 0, 0, 0, 0, 100, + 0, 0, 122, 0, 100, 317, 0, 122, 0, 0, + 0, 83, 0, 83, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, + 74, 0, 0, 0, 0, 318, 0, 0, 0, 0, + 74, 74, 0, 0, 122, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 0, 0, 0, 0, 0, 651, 652, - 0, 0, 653, 0, 0, 103, 0, 100, 0, 0, - 0, 0, 0, 0, 0, 0, 100, 174, 175, 176, - 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, - 317, 0, 317, 184, 185, 186, 187, 0, 0, 0, - 0, 0, 100, 0, 0, 0, 83, 188, 189, 190, - 0, 0, 0, 83, 83, 0, 0, 0, 101, 0, - 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 0, 201, 202, 0, 0, 0, 0, 0, 0, - 203, 276, 0, 0, 0, 0, 0, 317, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, - 0, 0, 83, 0, 0, 0, 103, 0, 0, 0, - 0, 0, 0, 318, 103, 623, 0, 0, 0, 0, - 0, 623, 83, 0, 0, 0, 0, 623, 623, 0, - 0, 0, 0, 103, 103, 0, 0, 0, 0, 101, - 0, 0, 0, 83, 0, 0, 0, 103, 83, 0, - 0, 618, 0, 0, 0, 100, 0, 0, 0, 103, - 103, 0, 0, 0, 0, 0, 0, 103, 0, 0, + 74, 83, 122, 0, 100, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, + 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 74, 0, 74, 0, 0, 74, 0, + 0, 0, 0, 0, 0, 0, 100, 0, 0, 83, + 0, 0, 0, 0, 0, 100, 0, 0, 0, 128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, + 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 74, 0, 0, 101, 0, 101, + 0, 0, 0, 0, 0, 103, 317, 0, 0, 0, + 83, 0, 318, 103, 623, 0, 0, 0, 0, 0, + 623, 0, 0, 0, 0, 0, 623, 623, 0, 0, + 0, 0, 103, 103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 103, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 618, 618, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 0, 0, 83, 0, - 128, 0, 0, 0, 0, 0, 0, 101, 0, 83, - 0, 0, 0, 0, 101, 101, 0, 83, 0, 0, - 0, 0, 101, 623, 0, 0, 0, 83, 0, 0, - 0, 0, 0, 103, 103, 0, 0, 995, 0, 0, - 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, + 0, 103, -640, -640, -640, -640, 408, 409, 83, 0, + -640, -640, 103, 103, 0, 83, 83, 0, 416, 417, + 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, + 127, 419, 0, 0, 0, 101, 0, 0, 0, 128, + 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 0, 0, 0, 623, 0, 83, + 0, 0, 0, 0, 83, 0, 0, 103, 103, 0, + 0, 1016, 0, 0, 0, 103, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 0, 0, 103, 0, 128, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, - 83, 0, 0, 317, 100, 0, 0, 0, 101, 83, - 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 317, 100, 83, 0, 0, 0, 0, + 83, 0, 0, 618, 0, 0, 101, 0, 0, 0, 0, 0, 0, 100, 100, 0, 0, 0, 0, 0, - 0, 0, 0, 101, 0, 83, 0, 100, 0, 0, - 0, 103, 0, 103, 0, 0, 103, 0, 0, 100, - 100, 0, 0, 0, 101, 0, 0, 100, 0, 101, - 0, 0, 101, 0, 0, 0, 0, 0, 100, 100, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, + 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, + 103, 0, 103, 0, 0, 103, 0, 0, 0, 100, + 100, 0, 0, 618, 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, - 127, 0, 101, 101, 0, 0, 0, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 101, - 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, - 101, 0, 0, 100, 100, 0, 419, 994, 101, 0, - 0, 100, 0, 0, 0, 0, 0, 0, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 420, 83, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, - 404, 405, 406, 407, 408, 409, 0, -277, 412, 413, - 0, 101, 0, 0, 0, 0, 416, 417, 0, 0, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 419, + 83, 0, 100, 0, 0, 0, 0, 0, 0, 0, + 0, 83, 0, 100, 100, 0, 0, 0, 0, 83, + 0, 0, 0, 128, 101, 0, 0, 0, 0, 83, + 0, 101, 101, 0, 0, 0, 0, 0, 0, 101, + 127, 0, 0, 0, 0, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 103, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 83, 0, 0, 0, 0, 0, 0, 100, 100, + 0, 0, 1015, 802, 0, 101, 100, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 83, 100, 0, + 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 101, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, + 0, 101, 0, 0, 0, 0, 101, 0, 0, 101, + 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 100, 0, 0, 100, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, - 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 420, 0, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 0, 0, 0, 0, 0, 0, 101, + 101, -612, -612, -612, -612, -612, -612, -612, -612, -612, + 0, 0, 0, 0, 0, 0, 101, -612, 0, -612, + -612, -612, -612, 0, 127, 0, 0, 101, -612, -612, + -612, -612, -612, -612, -612, 101, 0, -612, 0, 0, + 83, 0, 0, 0, 0, 101, -612, -612, -612, -612, + -612, -612, -612, -612, -612, 0, -612, -612, -612, 0, + 0, -612, 100, 0, -612, -612, 0, -612, -612, -612, + 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, + 0, 0, -612, -612, 0, 0, 0, 101, 0, -612, + 839, 0, -612, -612, 0, -612, -612, 0, -612, 0, + -612, -612, -612, 0, -612, -612, -612, 0, -612, -612, + -612, 0, -612, 101, 0, 0, 0, 0, 0, -107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -612, -612, -612, 0, 0, 0, 0, 0, + 0, 0, -612, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, + 83, 618, 0, 0, 0, 0, 0, 618, 0, 0, + 0, 0, 0, 618, 618, 0, 0, 0, 0, 83, + 83, 0, 0, 0, 217, 217, 0, 0, 0, 0, + 217, 267, 267, 83, 0, 267, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, - 0, 0, 0, 0, 0, 0, 0, 83, 618, 0, - 0, 0, 0, 0, 618, 0, 0, 0, 0, 0, - 618, 618, 0, 0, -597, 0, 83, 83, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -597, -597, -597, - 83, -597, -597, 0, -597, 0, 0, 0, 0, 0, - -597, 0, 83, 83, 0, 0, 0, 0, 0, 0, - 83, -597, -597, 0, -597, -597, -597, -597, -597, 101, - 0, 83, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 289, 291, 292, 293, 0, 0, 83, 267, + 309, 0, 0, 0, 0, 0, 101, 0, 0, 83, + 83, 346, 347, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 651, 652, 0, 0, 653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -597, -597, -597, -597, - -597, -597, -597, -597, -597, -597, -597, -597, 0, 0, - 0, 0, -597, -597, -597, 0, 806, -597, 0, 0, - 0, 0, 0, 0, 0, -597, 618, 0, 0, -597, - 0, 0, 0, 0, 0, 0, 83, 83, 0, -597, - 992, 0, -597, -597, 83, -107, -597, 0, -597, -597, - -597, -597, -597, -597, -597, -597, -597, -597, 0, 0, - 0, 0, -597, -597, -597, 0, -99, 0, 0, -597, - -597, -597, -597, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 0, 0, 0, 0, 0, 101, 101, - 0, 0, 0, 660, 661, 101, 0, 662, 0, 0, - 0, 101, 101, 0, 83, 0, 83, 101, 101, 83, - 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, - 0, 101, 182, 183, 0, 0, 0, 0, 184, 185, - 186, 187, 0, 101, 101, 0, 0, 0, 0, 0, - 0, 101, 188, 189, 190, 0, 0, 0, 0, 0, - 0, 0, 101, 101, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 0, 201, 202, 0, - 0, 0, 0, 0, 0, 203, 276, 0, 0, 0, + 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, + 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, + 187, 0, 0, 217, 618, 0, 0, 0, 0, 0, + 0, 188, 189, 190, 83, 83, 0, 0, 1013, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 0, 201, 202, 0, 0, + 0, 0, 0, 0, 203, 276, 0, 0, 101, 0, + 0, 0, 0, 0, 0, 0, 101, 101, 0, 0, + 0, 0, 0, 101, 0, 0, 0, 0, 0, 101, + 101, 0, 0, 0, 0, 101, 101, 83, 0, 83, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, + 217, 101, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 404, 405, 406, + 407, 408, 409, 0, 101, 412, 413, 0, 0, 0, + 0, 0, 0, 416, 417, 101, 101, 0, 498, 499, + 500, 346, 0, 0, 0, 0, 419, 0, 0, 0, + 0, 0, 267, 0, 0, 267, 0, 0, 0, 0, + 217, 217, 0, 0, 0, 0, 0, 0, 83, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 101, 101, 0, - 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 101, 101, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -620, 3, 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 0, 0, 0, 0, 0, 0, 14, 0, 15, 16, - 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, - 22, 23, 24, 25, 0, 101, 26, 101, 0, 0, - 101, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, - 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, + 101, 0, 0, 0, 0, 0, 217, 217, 217, 217, + 0, 217, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, - 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, + 0, 586, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 101, 608, 101, 0, 0, 101, 619, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 0, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 0, 0, 267, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, + 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 267, 0, 0, 217, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, + 0, 267, 0, 672, 672, 0, 0, 0, 0, 0, + 267, 0, 0, 0, 101, 0, 0, 0, 0, 718, + 0, 0, 721, 722, 0, 0, -293, 723, 0, 0, + 726, 0, 729, 0, 309, 293, 0, 0, 0, -293, + -293, -293, -293, -293, -293, 0, -293, 0, 0, 0, + 0, -293, 672, -293, -293, -293, 0, 0, 0, 0, + 0, 0, 726, -293, -293, 309, -293, -293, -293, -293, + -293, 0, 0, 0, 0, 267, 0, 0, 0, 0, + 0, 0, 0, -293, 0, 0, 0, 0, 0, 0, + 0, 0, 759, 760, 0, 0, 0, 0, -293, -293, + -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, + 770, 0, 0, 0, -293, -293, -293, 0, 0, -293, + 0, 0, 0, 0, 0, -293, 0, -293, 0, 788, + 0, -293, 795, 0, 0, 0, 0, 0, 0, -293, + 0, -293, 0, 0, -293, -293, 0, 0, -293, -293, + -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, + 0, 0, 0, 0, 0, -293, -293, -293, -293, 0, + 0, -293, -293, -293, -293, 0, 0, 0, 0, 0, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, + 0, 0, 0, 0, 0, 0, 14, 0, 108, 109, + 17, 18, 0, 0, 0, 217, 0, 110, 111, 112, + 22, 23, 24, 25, 0, 0, 113, 829, 0, 0, + 770, 788, 0, 0, 0, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 0, 217, + 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, + 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, + 726, 309, 0, 0, 889, 0, 0, 0, 313, 0, + 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - -293, 63, -620, 0, 0, -620, -620, 0, 0, 0, - 0, 0, 0, -293, -293, -293, -293, -293, -293, 0, - -293, 64, 65, 66, 0, 0, 0, -293, -293, -293, - 0, 0, 0, -620, 0, -620, 0, -293, -293, 0, - -293, -293, -293, -293, -293, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -293, 0, 0, + 0, 63, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, + 0, 120, 0, 0, 0, 0, 0, 0, 0, 314, + 0, 419, 918, 0, 0, 0, 0, 672, 921, 0, + 267, 0, 0, 672, 672, 0, 0, 0, 726, 672, + 672, 0, 420, 0, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 0, 0, 0, 0, 0, 0, + 0, 0, 217, 0, 0, 672, 672, 0, 672, 672, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 0, 0, 967, 0, 416, 417, 293, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, + 0, 0, 0, 0, 979, 980, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 985, 986, 420, + 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 0, 0, 1002, 0, 0, 0, 0, 0, -277, + 0, 0, 0, 1004, 1005, 0, 0, 0, -639, 3, + 672, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 0, 0, 0, 0, 0, 14, 0, 15, + 16, 17, 18, 672, 0, 0, 0, 0, 19, 20, + 21, 22, 23, 24, 25, 0, 309, 26, 0, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -293, -293, -293, -293, -293, -293, -293, -293, - -293, -293, -293, -293, 0, 0, 0, 0, -293, -293, - -293, 0, 0, -293, 0, 0, 0, 0, 0, -293, - 0, -293, 0, 0, 0, -293, 0, 0, 0, 0, - 0, 0, 0, -293, 0, -293, 0, 0, -293, -293, - 0, 0, -293, -293, -293, -293, -293, -293, -293, -293, - -293, -293, -293, -293, 0, 0, -481, 0, 0, -293, - -293, -293, -293, 0, 0, -293, -293, -293, -293, -481, - -481, -481, -481, -481, -481, 0, -481, 0, 0, 0, - 0, 0, 0, -481, -481, 0, 0, 0, 0, 0, - 0, 0, 0, -481, -481, 0, -481, -481, -481, -481, - -481, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -481, -481, - -481, -481, -481, -481, -481, -481, -481, -481, -481, -481, - 0, 0, 0, 0, -481, -481, -481, 0, -481, -481, - 0, 0, 0, 0, 0, -481, 0, -481, 0, 0, - 0, -481, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -481, 0, 0, -481, -481, 0, -481, -481, 0, - -481, -481, -481, -481, -481, -481, -481, -481, -481, -481, - 0, 0, -620, 0, 0, -481, -481, -481, -481, 0, - 0, -481, -481, -481, -481, -620, -620, -620, -620, -620, - -620, 0, -620, 0, 0, 0, 0, 0, -620, -620, - -620, 0, 0, 0, 0, 0, 0, 0, 0, -620, - -620, 0, -620, -620, -620, -620, -620, 0, 0, 0, + 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, + 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, -639, 0, 0, -639, -639, 0, 0, + 0, 0, -415, 0, 0, 0, 0, 0, 0, 0, + 0, 267, 64, 65, 66, -415, -415, -415, -415, -415, + -415, 0, -415, 0, -639, 0, -639, -415, -415, -415, + -415, 0, 0, 0, 0, 0, 0, 0, 0, -415, + -415, 0, -415, -415, -415, -415, -415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -620, -620, -620, -620, -620, -620, - -620, -620, -620, -620, -620, -620, 0, 0, 0, 0, - -620, -620, -620, 0, 0, -620, 0, 0, 0, 0, - 0, -620, 0, -620, 0, 0, 0, -620, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -620, 0, 0, - -620, -620, 0, 0, -620, 0, -620, -620, -620, -620, - -620, -620, -620, -620, -620, -620, 0, 0, -620, 0, - -620, -620, -620, -620, -620, 0, 276, -620, -620, -620, - -620, -620, -620, -620, -620, -620, -620, 0, -620, 0, - 0, 0, 0, 0, 0, -620, -620, 0, 0, 0, - 0, 0, 0, 0, 0, -620, -620, 0, -620, -620, - -620, -620, -620, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, 0, 0, 0, 0, + -415, -415, -415, 0, 0, -415, 0, 0, 0, 0, + 0, -415, 0, -415, 0, 0, 0, -415, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -415, 0, 0, + -415, -415, 0, 0, -415, 0, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, 0, 0, -500, 0, + -415, -415, -415, -415, -415, 0, 276, -415, -415, -415, + -415, -500, -500, -500, -500, -500, -500, 0, -500, 0, + 0, 0, 0, -500, 0, -500, -500, 0, 0, 0, + 0, 0, 0, 0, 0, -500, -500, 0, -500, -500, + -500, -500, -500, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, + -500, -500, 0, 0, 0, 0, -500, -500, -500, 0, + -500, -500, 0, 0, 0, 0, 0, -500, 0, -500, + 0, 0, 0, -500, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -500, 0, 0, -500, -500, 0, -500, + -500, 0, -500, -500, -500, -500, -500, -500, -500, -500, + -500, -500, 0, 0, -639, 0, 0, -500, -500, -500, + -500, 0, 0, -500, -500, -500, -500, -639, -639, -639, + -639, -639, -639, 0, -639, 0, 0, 0, 0, -639, + -639, -639, -639, 0, 0, 0, 0, 0, 0, 0, + 0, -639, -639, 0, -639, -639, -639, -639, -639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -620, -620, -620, -620, -620, -620, -620, -620, -620, -620, - -620, -620, 0, 0, 0, 0, -620, -620, -620, 0, - 0, -620, 0, 0, 0, 0, 0, -620, 0, -620, - 0, 0, 0, -620, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -620, 0, 0, -620, -620, 0, 0, - -620, 0, -620, -620, -620, -620, -620, -620, -620, -620, - -620, -620, 0, 0, -597, 0, 0, -620, -620, -620, - -620, 0, 276, -620, -620, -620, -620, -597, -597, -597, - 0, -597, -597, 0, -597, 0, 0, 0, 0, 0, - -597, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -597, -597, 0, -597, -597, -597, -597, -597, 0, + 0, 0, 0, 0, 0, 0, -639, -639, -639, -639, + -639, -639, -639, -639, -639, -639, -639, -639, 0, 0, + 0, 0, -639, -639, -639, 0, 0, -639, 0, 0, + 0, 0, 0, -639, 0, -639, 0, 0, 0, -639, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -639, + 0, 0, -639, -639, 0, 0, -639, 0, -639, -639, + -639, -639, -639, -639, -639, -639, -639, -639, 0, 0, + -639, 0, -639, -639, -639, -639, -639, 0, 276, -639, + -639, -639, -639, -639, -639, -639, -639, -639, -639, 0, + -639, 0, 0, 0, 0, -639, 0, -639, -639, 0, + 0, 0, 0, 0, 0, 0, 0, -639, -639, 0, + -639, -639, -639, -639, -639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -597, -597, -597, -597, - -597, -597, -597, -597, -597, -597, -597, -597, 0, 0, - 0, 0, -597, -597, -597, 0, 806, -597, 0, 0, - 0, 0, 0, 0, 0, -597, 0, 0, 0, -597, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -597, - 0, 0, -597, -597, 0, -107, -597, 0, -597, -597, - -597, -597, -597, -597, -597, -597, -597, -597, 0, 0, - -302, 0, -597, -597, -597, 0, -597, 0, 0, -597, - -597, -597, -597, -302, -302, -302, 0, -302, -302, 0, - -302, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -302, -302, 0, - -302, -302, -302, -302, -302, 0, 0, 0, 0, 0, + 0, 0, -639, -639, -639, -639, -639, -639, -639, -639, + -639, -639, -639, -639, 0, 0, 0, 0, -639, -639, + -639, 0, 0, -639, 0, 0, 0, 0, 0, -639, + 0, -639, 0, 0, 0, -639, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -639, 0, 0, -639, -639, + 0, 0, -639, 0, -639, -639, -639, -639, -639, -639, + -639, -639, -639, -639, 0, 0, -616, 0, 0, -639, + -639, -639, -639, 0, 276, -639, -639, -639, -639, -616, + -616, -616, 0, -616, -616, 0, -616, 0, 0, 0, + 0, -616, -616, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -616, -616, 0, -616, -616, -616, -616, + -616, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -616, -616, + -616, -616, -616, -616, -616, -616, -616, -616, -616, -616, + 0, 0, 0, 0, -616, -616, -616, 0, 807, -616, + 0, 0, 0, 0, 0, 0, 0, -616, 0, 0, + 0, -616, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -616, 0, 0, -616, -616, 0, -107, -616, 0, + -616, -616, -616, -616, -616, -616, -616, -616, -616, -616, + 0, 0, -616, 0, -616, -616, -616, 0, -99, 0, + 0, -616, -616, -616, -616, -616, -616, -616, 0, -616, + -616, 0, -616, 0, 0, 0, 0, -616, -616, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -616, + -616, 0, -616, -616, -616, -616, -616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, 0, 0, 0, 0, -302, -302, - -302, 0, 807, -302, 0, 0, 0, 0, 0, 0, - 0, -302, 0, 0, 0, -302, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -302, 0, 0, -302, -302, - 0, -109, -302, 0, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, 0, 0, -302, 0, 0, -302, - -302, 0, -101, 0, 0, -302, -302, -302, -302, -302, - -302, -302, 0, -302, -302, 0, -302, 0, 0, 0, + 0, 0, 0, 0, -616, -616, -616, -616, -616, -616, + -616, -616, -616, -616, -616, -616, 0, 0, 0, 0, + -616, -616, -616, 0, 807, -616, 0, 0, 0, 0, + 0, 0, 0, -616, 0, 0, 0, -616, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -616, 0, 0, + -616, -616, 0, -107, -616, 0, -616, -616, -616, -616, + -616, -616, -616, -616, -616, -616, 0, 0, -302, 0, + -616, -616, -616, 0, -616, 0, 0, -616, -616, -616, + -616, -302, -302, -302, 0, -302, -302, 0, -302, 0, + 0, 0, 0, -302, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -302, -302, 0, -302, -302, + -302, -302, -302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -302, -302, 0, -302, -302, -302, -302, - -302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - 0, 0, 0, 0, -302, -302, -302, 0, 807, -302, - 0, 0, 0, 0, 0, 0, 0, -302, 0, 0, - 0, -302, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -302, 0, 0, -302, -302, 0, -109, -302, 0, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - 0, 0, 0, 0, 0, -302, -302, 0, -302, 0, - 0, -302, -302, -302, -302, 295, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, -620, -620, -620, - 0, 0, -620, 14, 0, 15, 16, 17, 18, 0, + -302, -302, 0, 0, 0, 0, -302, -302, -302, 0, + 808, -302, 0, 0, 0, 0, 0, 0, 0, -302, + 0, 0, 0, -302, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -302, 0, 0, -302, -302, 0, -109, + -302, 0, -302, -302, -302, -302, -302, -302, -302, -302, + -302, -302, 0, 0, -302, 0, 0, -302, -302, 0, + -101, 0, 0, -302, -302, -302, -302, -302, -302, -302, + 0, -302, -302, 0, -302, 0, 0, 0, 0, -302, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -302, -302, 0, -302, -302, -302, -302, -302, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -302, -302, -302, -302, + -302, -302, -302, -302, -302, -302, -302, -302, 0, 0, + 0, 0, -302, -302, -302, 0, 808, -302, 0, 0, + 0, 0, 0, 0, 0, -302, 0, 0, 0, -302, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -302, + 0, 0, -302, -302, 0, -109, -302, 0, -302, -302, + -302, -302, -302, -302, -302, -302, -302, -302, 0, 0, + 0, 0, 0, -302, -302, 0, -302, 0, 0, -302, + -302, -302, -302, 295, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, -639, -639, -639, 0, 0, + -639, 14, 0, 15, 16, 17, 18, 0, 0, 0, + 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, + 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, + 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, + 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, -639, 0, 0, + -639, -639, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 66, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -639, 295, + -639, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 0, -639, 0, -639, -639, 14, 0, 15, + 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, + 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, + 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, + 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, -639, 0, 0, -639, -639, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 65, 66, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -639, 295, -639, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 0, 0, -639, + 0, 0, -639, 14, -639, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, @@ -3829,13 +3963,13 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, -620, - 0, 0, -620, -620, 0, 0, 0, 0, 0, 0, + 57, 58, 59, 0, 60, 61, 62, 0, 63, -639, + 0, 0, -639, -639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -620, 295, -620, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 0, 0, -620, 0, -620, -620, 14, - 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, + -639, 295, -639, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 0, 0, -639, 0, 0, -639, 14, + 0, 15, 16, 17, 18, -639, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, @@ -3844,12 +3978,12 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, - 60, 61, 62, 0, 63, -620, 0, 0, -620, -620, + 60, 61, 62, 0, 63, -639, 0, 0, -639, -639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -620, 295, -620, 4, + 0, 0, 0, 0, 0, 0, -639, 295, -639, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, - 0, -620, 0, 0, -620, 14, -620, 15, 16, 17, + 0, -639, 0, 0, -639, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, @@ -3859,343 +3993,23 @@ static const yytype_int16 yytable[] = 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, - 63, -620, 0, 0, -620, -620, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 65, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -620, 295, -620, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 0, 0, -620, 0, 0, - -620, 14, 0, 15, 16, 17, 18, 0, 0, 0, - 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, - 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, - 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, - 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, -620, 0, 0, - -620, -620, 3, 0, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 0, 0, 64, 65, 66, 0, - 14, 0, 15, 16, 17, 18, 0, 0, -620, 0, - -620, 19, 20, 21, 22, 23, 24, 25, 0, 0, - 26, 0, 0, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, - 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, - 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, - 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, - 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, - 0, 60, 61, 62, 0, 63, -620, 0, 0, -620, - -620, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 65, 66, 0, 0, - -620, 0, 0, 0, 0, 0, 0, -620, 295, -620, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 0, -620, -620, 0, 0, 0, 14, 0, 15, 16, - 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, - 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, - 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, - 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, - 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, - 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, -620, 0, 0, -620, -620, 295, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, - 0, 64, 65, 66, 0, 14, 0, 15, 16, 17, - 18, 0, 0, -620, 0, -620, 19, 20, 21, 22, - 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, - 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, - 296, 52, 0, 53, 54, 0, 55, 0, 0, 0, - 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, - 63, -620, 0, 0, -620, -620, 295, 0, 4, 5, + 63, -639, 0, 0, -639, -639, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 64, 65, 66, 0, 14, 0, 15, 16, 17, 18, - 0, -620, -620, 0, -620, 19, 20, 21, 22, 23, + 0, 0, -639, 0, -639, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, - 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, - -620, 0, 0, -620, -620, 295, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 0, 0, 64, - 65, 66, 0, 14, 0, 15, 16, 17, 18, 0, - -620, -620, 0, -620, 19, 20, 21, 22, 23, 24, - 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, - 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, - 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, - 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, - 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, -620, - 0, 0, -620, -620, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, - 66, 0, 0, -620, 0, 0, 0, 0, 0, 0, - -620, 295, -620, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 0, 0, -620, 0, 0, 0, 14, - 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, - 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, - 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, - 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, - 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, - 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, - 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, - 60, 61, 62, 0, 63, -620, 0, 0, -620, -620, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 64, 65, 66, 0, 14, 0, - 15, 16, 17, 18, 0, 0, -620, 0, -620, 19, - 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, - 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, - 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, - 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, - 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, - 61, 62, 0, 63, 247, 0, 0, 248, 249, 0, - 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 64, 65, 66, 0, 14, 0, 15, - 16, 17, 18, 0, 0, 250, 0, 251, 19, 20, - 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, - 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, - 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, - 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, - 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, - 62, 0, 63, 247, 0, 0, 248, 249, 0, 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, - 0, 0, 64, 65, 66, 0, 14, 0, 15, 16, - 17, 18, 0, 0, 250, 0, 251, 19, 20, 21, - 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, - 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, - 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, - 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, 247, 0, 0, 248, 249, 0, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 64, 65, 66, 0, 14, 0, 108, 109, 17, - 18, 0, 0, 250, 0, 251, 110, 111, 112, 22, - 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, - 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, - 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, - 63, 247, 0, 0, 248, 249, 0, 0, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, - 64, 265, 66, 0, 14, 0, 15, 16, 17, 18, - 0, 0, 250, 0, 251, 19, 20, 21, 22, 23, - 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, - 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, - 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, - 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, - 247, 0, 0, 248, 249, 0, 0, 0, 0, 0, + -639, 0, 0, -639, -639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, - 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 251, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 0, 0, 0, 0, 0, 165, 166, 167, 168, - 169, 170, 171, 172, 35, 36, 173, 38, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 116, 174, 175, 176, 177, 178, 179, 180, 181, 0, - 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, - 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 0, 201, 202, 0, 0, - 0, 0, 0, 0, 203, 204, -590, -590, -590, -590, - -590, -590, -590, -590, -590, 0, 0, 0, 0, 0, - 0, 0, -590, 0, -590, -590, -590, -590, 0, -590, - 0, 0, 0, -590, -590, -590, -590, -590, -590, -590, - 0, 0, -590, 0, 0, 0, 0, 0, 0, 0, - 0, -590, -590, -590, -590, -590, -590, -590, -590, -590, - 0, -590, -590, -590, 0, 0, -590, 0, 0, -590, - -590, 0, -590, -590, -590, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -590, -590, 0, - 0, 0, 0, 0, -590, 0, 0, -590, -590, 0, - -590, -590, 0, -590, 0, -590, -590, -590, 0, -590, - -590, -590, 0, -590, -590, -590, 0, -590, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -590, -590, -590, - 0, -590, 0, 0, 0, 0, 0, -590, -591, -591, - -591, -591, -591, -591, -591, -591, -591, 0, 0, 0, - 0, 0, 0, 0, -591, 0, -591, -591, -591, -591, - 0, -591, 0, 0, 0, -591, -591, -591, -591, -591, - -591, -591, 0, 0, -591, 0, 0, 0, 0, 0, - 0, 0, 0, -591, -591, -591, -591, -591, -591, -591, - -591, -591, 0, -591, -591, -591, 0, 0, -591, 0, - 0, -591, -591, 0, -591, -591, -591, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -591, - -591, 0, 0, 0, 0, 0, -591, 0, 0, -591, - -591, 0, -591, -591, 0, -591, 0, -591, -591, -591, - 0, -591, -591, -591, 0, -591, -591, -591, 0, -591, - 0, 0, 0, 0, 0, 0, -593, -593, -593, -593, - -593, -593, -593, -593, -593, 0, 0, 0, 0, -591, - -591, -591, -593, -591, -593, -593, -593, -593, 0, -591, - 0, 0, 0, -593, -593, -593, -593, -593, -593, -593, - 0, 0, -593, 0, 0, 0, 0, 0, 0, 0, - 0, -593, -593, -593, -593, -593, -593, -593, -593, -593, - 0, -593, -593, -593, 0, 0, -593, 0, 0, -593, - -593, 0, -593, -593, -593, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -593, -593, 0, - 0, 0, 0, 0, -593, 838, 0, -593, -593, 0, - -593, -593, 0, -593, 0, -593, -593, -593, 0, -593, - -593, -593, 0, -593, -593, -593, 0, -593, 0, 0, - 0, 0, 0, 0, -107, -594, -594, -594, -594, -594, - -594, -594, -594, -594, 0, 0, 0, -593, -593, -593, - 0, -594, 0, -594, -594, -594, -594, -593, 0, 0, - 0, 0, -594, -594, -594, -594, -594, -594, -594, 0, - 0, -594, 0, 0, 0, 0, 0, 0, 0, 0, - -594, -594, -594, -594, -594, -594, -594, -594, -594, 0, - -594, -594, -594, 0, 0, -594, 0, 0, -594, -594, - 0, -594, -594, -594, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -594, -594, 0, 0, - 0, 0, 0, -594, 839, 0, -594, -594, 0, -594, - -594, 0, -594, 0, -594, -594, -594, 0, -594, -594, - -594, 0, -594, -594, -594, 0, -594, 0, 0, 0, - 0, 0, 0, -109, -595, -595, -595, -595, -595, -595, - -595, -595, -595, 0, 0, 0, -594, -594, -594, 0, - -595, 0, -595, -595, -595, -595, -594, 0, 0, 0, - 0, -595, -595, -595, -595, -595, -595, -595, 0, 0, - -595, 0, 0, 0, 0, 0, 0, 0, 0, -595, - -595, -595, -595, -595, -595, -595, -595, -595, 0, -595, - -595, -595, 0, 0, -595, 0, 0, -595, -595, 0, - -595, -595, -595, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -595, -595, 0, 0, 0, - 0, 0, -595, 0, 0, -595, -595, 0, -595, -595, - 0, -595, 0, -595, -595, -595, 0, -595, -595, -595, - 0, -595, -595, -595, 0, -595, 0, 0, 0, 0, - 0, 0, -596, -596, -596, -596, -596, -596, -596, -596, - -596, 0, 0, 0, 0, -595, -595, -595, -596, 0, - -596, -596, -596, -596, 0, -595, 0, 0, 0, -596, - -596, -596, -596, -596, -596, -596, 0, 0, -596, 0, - 0, 0, 0, 0, 0, 0, 0, -596, -596, -596, - -596, -596, -596, -596, -596, -596, 0, -596, -596, -596, - 0, 0, -596, 0, 0, -596, -596, 0, -596, -596, - -596, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -596, -596, 0, 0, 0, 0, 0, - -596, 0, 0, -596, -596, 0, -596, -596, 0, -596, - 0, -596, -596, -596, 0, -596, -596, -596, 0, -596, - -596, -596, 0, -596, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -596, -596, -596, 0, 0, 0, 0, - 0, 0, 0, -596, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 155, 156, 157, 233, 234, 235, 236, 162, 163, - 164, 0, 0, 0, 0, 0, 165, 166, 167, 237, - 238, 239, 240, 172, 320, 321, 241, 322, 0, 0, - 0, 0, 0, 0, 323, 0, 0, 0, 0, 0, - 324, 174, 175, 176, 177, 178, 179, 180, 181, 0, - 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, - 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 325, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 0, 201, 202, 0, 0, - 0, 0, 0, 0, 203, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, - 0, 0, 155, 156, 157, 233, 234, 235, 236, 162, - 163, 164, 0, 0, 0, 0, 0, 165, 166, 167, - 237, 238, 239, 240, 172, 320, 321, 241, 322, 0, - 0, 0, 0, 0, 0, 323, 0, 0, 0, 0, - 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, - 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, - 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 188, 189, 190, 0, 0, 0, 0, 487, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 0, 201, 202, 0, - 0, 0, 0, 0, 0, 203, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 0, 0, 0, 155, 156, 157, 233, 234, 235, 236, - 162, 163, 164, 0, 0, 0, 0, 0, 165, 166, - 167, 237, 238, 239, 240, 172, 0, 0, 241, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, - 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, - 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 188, 189, 190, 0, 0, 0, 242, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 0, 201, 202, - 0, 0, 0, 0, 0, 0, 203, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 0, 0, 0, 155, 156, 157, 233, 234, 235, - 236, 162, 163, 164, 0, 0, 0, 0, 0, 165, - 166, 167, 237, 238, 239, 240, 172, 0, 0, 241, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, - 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, - 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, - 202, 0, 0, 0, 0, 0, 0, 203, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, - 0, 0, 0, 0, 14, 0, 108, 109, 17, 18, - 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, - 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, - 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 0, 119, - 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, - 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 0, 0, 0, 0, 0, 0, 0, 14, 120, - 108, 109, 17, 18, 0, 0, 0, 314, 0, 110, - 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, - 0, 0, 42, 0, 0, 43, 44, 0, 116, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 0, 0, 119, 52, 0, 53, 54, 0, 0, - 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, - 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, - 0, 0, 14, 120, 15, 16, 17, 18, 0, 0, - 0, 612, 0, 19, 20, 21, 22, 23, 24, 25, - 0, 0, 26, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, - 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, - 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, - 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, - 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, - 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 0, 0, 0, 64, 65, 66, + 65, 66, 0, 0, -639, 0, 0, 0, 0, 0, + 0, -639, 295, -639, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 0, -639, -639, 0, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, @@ -4205,188 +4019,109 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, - 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 0, 0, 0, 0, 64, 65, 66, 14, 0, - 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, - 20, 21, 22, 23, 24, 25, 0, 0, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, - 260, 34, 35, 36, 37, 38, 0, 39, 40, 41, - 0, 0, 42, 0, 0, 43, 44, 0, 261, 46, - 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, - 211, 0, 0, 119, 52, 0, 53, 54, 0, 262, - 0, 263, 264, 56, 0, 57, 58, 59, 0, 60, - 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, - 0, 0, 0, 64, 265, 66, 14, 0, 15, 16, - 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, - 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 31, 32, 260, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, - 42, 0, 0, 43, 44, 0, 261, 46, 47, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 509, 0, 0, 0, 0, 0, 211, 0, - 0, 119, 52, 0, 53, 54, 0, 262, 0, 263, - 264, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, - 0, 64, 265, 66, 14, 0, 108, 109, 17, 18, - 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, - 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 30, 31, 32, 260, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, - 0, 43, 44, 0, 261, 46, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, - 52, 0, 53, 54, 0, 724, 0, 263, 264, 56, - 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, - 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, - 265, 66, 14, 0, 108, 109, 17, 18, 0, 0, - 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, - 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 31, 32, 260, 34, 35, 36, 37, 38, - 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, - 44, 0, 261, 46, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 855, 0, - 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, - 53, 54, 0, 724, 0, 263, 264, 56, 0, 57, - 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, - 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 0, 0, 0, 0, 64, 265, 66, - 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, - 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 31, 32, 260, 34, 35, 36, 37, 38, 0, 39, - 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, - 261, 46, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, - 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, - 0, 262, 0, 263, 0, 56, 0, 57, 58, 59, - 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 0, 0, 0, 0, 64, 265, 66, 14, 0, - 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, - 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, - 260, 34, 35, 36, 37, 38, 0, 39, 40, 41, - 0, 0, 42, 0, 0, 43, 44, 0, 261, 46, - 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, - 211, 0, 0, 119, 52, 0, 53, 54, 0, 0, - 0, 263, 264, 56, 0, 57, 58, 59, 0, 60, - 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, - 0, 0, 0, 64, 265, 66, 14, 0, 108, 109, - 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, - 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 31, 32, 260, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, - 42, 0, 0, 43, 44, 0, 261, 46, 47, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, - 0, 119, 52, 0, 53, 54, 0, 724, 0, 263, - 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, - 0, 64, 265, 66, 14, 0, 108, 109, 17, 18, - 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, - 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 30, 31, 32, 260, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, - 0, 43, 44, 0, 261, 46, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, - 52, 0, 53, 54, 0, 0, 0, 263, 0, 56, - 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, - 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, - 265, 66, 14, 0, 15, 16, 17, 18, 0, 0, - 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, - 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, - 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, - 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, - 53, 54, 0, 606, 0, 0, 0, 56, 0, 57, - 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, - 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 0, 0, 0, 0, 64, 265, 66, - 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, - 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, - 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, - 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, - 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, - 0, 262, 0, 0, 0, 56, 0, 57, 58, 59, - 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 0, 0, 0, 0, 64, 265, 66, 14, 0, - 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, - 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, + 0, 60, 61, 62, 0, 63, -639, 0, 0, -639, + -639, 295, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 0, 0, 64, 65, 66, 0, 14, + 0, 15, 16, 17, 18, 0, 0, -639, 0, -639, + 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, + 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, + 0, 50, 0, 0, 296, 52, 0, 53, 54, 0, + 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, -639, 0, 0, -639, -639, + 295, 0, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 0, 0, 64, 65, 66, 0, 14, 0, + 15, 16, 17, 18, 0, -639, -639, 0, -639, 19, + 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, + 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, - 211, 0, 0, 119, 52, 0, 53, 54, 0, 606, + 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, - 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, - 0, 0, 0, 64, 265, 66, 14, 0, 108, 109, - 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, - 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, - 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, + 61, 62, 0, 63, -639, 0, 0, -639, -639, 295, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 0, 64, 65, 66, 0, 14, 0, 15, + 16, 17, 18, 0, -639, -639, 0, -639, 19, 20, + 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, + 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, - 0, 119, 52, 0, 53, 54, 0, 901, 0, 0, - 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, - 0, 64, 265, 66, 14, 0, 108, 109, 17, 18, - 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, - 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, - 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, - 52, 0, 53, 54, 0, 724, 0, 0, 0, 56, - 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, - 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, - 265, 66, 14, 0, 15, 16, 17, 18, 0, 0, - 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, - 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, + 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, -639, 0, 0, -639, -639, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 65, 66, 0, 0, -639, 0, 0, + 0, 0, 0, 0, -639, 295, -639, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 0, 0, -639, + 0, 0, 0, 14, 0, 15, 16, 17, 18, 0, + 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, + 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, + 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, + 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, + 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, + 57, 58, 59, 0, 60, 61, 62, 0, 63, -639, + 0, 0, -639, -639, 0, 0, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 0, 0, 64, 65, + 66, 0, 14, 0, 15, 16, 17, 18, 0, 0, + -639, 0, -639, 19, 20, 21, 22, 23, 24, 25, + 0, 0, 26, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, - 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, - 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, - 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, - 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 0, 0, 0, 0, 64, 65, 66, - 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, - 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, + 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, + 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, + 58, 59, 0, 60, 61, 62, 0, 63, 247, 0, + 0, 248, 249, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 0, 0, 64, 65, 66, + 0, 14, 0, 15, 16, 17, 18, 0, 0, 250, + 0, 251, 19, 20, 21, 22, 23, 24, 25, 0, + 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, + 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, + 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 247, 0, 0, + 248, 249, 0, 0, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 0, 0, 0, 64, 65, 66, 0, + 14, 0, 15, 16, 17, 18, 0, 0, 250, 0, + 251, 19, 20, 21, 22, 23, 24, 25, 0, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, - 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, + 0, 60, 61, 62, 0, 63, 247, 0, 0, 248, + 249, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 64, 65, 66, 0, 14, + 0, 108, 109, 17, 18, 0, 0, 250, 0, 251, + 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, + 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 247, 0, 0, 248, 249, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 0, 0, 0, 0, 64, 265, 66, 14, 0, - 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, - 20, 21, 22, 23, 24, 25, 0, 0, 113, 0, + 12, 0, 0, 0, 64, 265, 66, 0, 14, 0, + 15, 16, 17, 18, 0, 0, 250, 0, 251, 19, + 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, @@ -4394,155 +4129,136 @@ static const yytype_int16 yytable[] = 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, - 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, - 0, 0, 0, 64, 265, 66, 14, 0, 108, 109, - 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, - 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 31, 32, 114, 34, - 35, 36, 115, 38, 0, 39, 40, 41, 0, 0, - 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, + 61, 62, 0, 63, 247, 0, 0, 248, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 117, 0, 0, 118, 0, - 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, - 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, - 14, 120, 108, 109, 17, 18, 0, 0, 0, 0, - 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, - 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 226, 0, 0, 51, 52, 0, 53, 54, - 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, - 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, - 0, 0, 0, 0, 14, 120, 108, 109, 17, 18, - 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, - 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, - 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 0, 400, - 52, 0, 53, 54, 0, 401, 0, 0, 0, 56, - 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 0, 0, 0, 0, 0, 0, 0, 14, 120, - 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, - 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, - 114, 34, 35, 36, 115, 38, 0, 39, 40, 41, - 0, 0, 42, 0, 0, 43, 44, 0, 116, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 0, 0, 119, 52, 0, 53, 54, 0, 0, - 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, - 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, - 0, 0, 14, 120, 108, 109, 17, 18, 0, 0, - 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, - 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, - 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 313, 0, 0, 400, 52, 0, - 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, - 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, - 0, 0, 0, 0, 0, 0, 14, 120, 108, 109, - 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, - 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, - 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 968, 0, - 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, - 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, - 14, 120, 108, 109, 17, 18, 0, 0, 0, 0, - 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, - 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 991, 0, 0, 119, 52, 0, 53, 54, - 0, 0, 681, 652, 0, 56, 682, 57, 58, 59, - 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, - 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, - 0, 182, 183, 0, 0, 120, 0, 184, 185, 186, - 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 0, 201, 202, 666, 661, - 0, 0, 667, 0, 203, 276, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, - 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, - 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 0, 201, 202, 698, 652, 0, 0, 699, 0, - 203, 276, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, - 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, - 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 0, 201, 202, - 701, 661, 0, 0, 702, 0, 203, 276, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, - 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, - 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 0, 201, 202, 708, 652, 0, 0, - 709, 0, 203, 276, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, + 0, 0, 0, 64, 65, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 251, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 0, 0, 0, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 0, 0, 0, 0, 0, + 165, 166, 167, 168, 169, 170, 171, 172, 35, 36, + 173, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 116, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, - 201, 202, 711, 661, 0, 0, 712, 0, 203, 276, + 201, 202, 0, 0, 0, 0, 0, 0, 203, 204, + -609, -609, -609, -609, -609, -609, -609, -609, -609, 0, + 0, 0, 0, 0, 0, 0, -609, 0, -609, -609, + -609, -609, 0, -609, 0, 0, 0, -609, -609, -609, + -609, -609, -609, -609, 0, 0, -609, 0, 0, 0, + 0, 0, 0, 0, 0, -609, -609, -609, -609, -609, + -609, -609, -609, -609, 0, -609, -609, -609, 0, 0, + -609, 0, 0, -609, -609, 0, -609, -609, -609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, - 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, - 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, + 0, -609, -609, 0, 0, 0, 0, 0, -609, 0, + 0, -609, -609, 0, -609, -609, 0, -609, 0, -609, + -609, -609, 0, -609, -609, -609, 0, -609, -609, -609, + 0, -609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 0, 201, 202, 747, 652, - 0, 0, 748, 0, 203, 276, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, + 0, -609, -609, -609, 0, -609, 0, 0, 0, 0, + 0, -609, -610, -610, -610, -610, -610, -610, -610, -610, + -610, 0, 0, 0, 0, 0, 0, 0, -610, 0, + -610, -610, -610, -610, 0, -610, 0, 0, 0, -610, + -610, -610, -610, -610, -610, -610, 0, 0, -610, 0, + 0, 0, 0, 0, 0, 0, 0, -610, -610, -610, + -610, -610, -610, -610, -610, -610, 0, -610, -610, -610, + 0, 0, -610, 0, 0, -610, -610, 0, -610, -610, + -610, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -610, -610, 0, 0, 0, 0, 0, + -610, 0, 0, -610, -610, 0, -610, -610, 0, -610, + 0, -610, -610, -610, 0, -610, -610, -610, 0, -610, + -610, -610, 0, -610, 0, 0, 0, 0, 0, 0, + -613, -613, -613, -613, -613, -613, -613, -613, -613, 0, + 0, 0, 0, -610, -610, -610, -613, -610, -613, -613, + -613, -613, 0, -610, 0, 0, 0, -613, -613, -613, + -613, -613, -613, -613, 0, 0, -613, 0, 0, 0, + 0, 0, 0, 0, 0, -613, -613, -613, -613, -613, + -613, -613, -613, -613, 0, -613, -613, -613, 0, 0, + -613, 0, 0, -613, -613, 0, -613, -613, -613, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -613, -613, 0, 0, 0, 0, 0, -613, 840, + 0, -613, -613, 0, -613, -613, 0, -613, 0, -613, + -613, -613, 0, -613, -613, -613, 0, -613, -613, -613, + 0, -613, 0, 0, 0, 0, 0, 0, -109, -614, + -614, -614, -614, -614, -614, -614, -614, -614, 0, 0, + 0, -613, -613, -613, 0, -614, 0, -614, -614, -614, + -614, -613, 0, 0, 0, 0, -614, -614, -614, -614, + -614, -614, -614, 0, 0, -614, 0, 0, 0, 0, + 0, 0, 0, 0, -614, -614, -614, -614, -614, -614, + -614, -614, -614, 0, -614, -614, -614, 0, 0, -614, + 0, 0, -614, -614, 0, -614, -614, -614, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -614, -614, 0, 0, 0, 0, 0, -614, 0, 0, + -614, -614, 0, -614, -614, 0, -614, 0, -614, -614, + -614, 0, -614, -614, -614, 0, -614, -614, -614, 0, + -614, 0, 0, 0, 0, 0, 0, -615, -615, -615, + -615, -615, -615, -615, -615, -615, 0, 0, 0, 0, + -614, -614, -614, -615, 0, -615, -615, -615, -615, 0, + -614, 0, 0, 0, -615, -615, -615, -615, -615, -615, + -615, 0, 0, -615, 0, 0, 0, 0, 0, 0, + 0, 0, -615, -615, -615, -615, -615, -615, -615, -615, + -615, 0, -615, -615, -615, 0, 0, -615, 0, 0, + -615, -615, 0, -615, -615, -615, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -615, -615, + 0, 0, 0, 0, 0, -615, 0, 0, -615, -615, + 0, -615, -615, 0, -615, 0, -615, -615, -615, 0, + -615, -615, -615, 0, -615, -615, -615, 0, -615, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -615, -615, + -615, 0, 0, 0, 0, 0, 0, 0, -615, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 0, 0, 0, 155, 156, 157, 233, + 234, 235, 236, 162, 163, 164, 0, 0, 0, 0, + 0, 165, 166, 167, 237, 238, 239, 240, 172, 320, + 321, 241, 322, 0, 0, 0, 0, 0, 0, 323, + 0, 0, 0, 0, 0, 324, 174, 175, 176, 177, + 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, + 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 0, 201, 202, 0, 0, 0, 0, 0, 0, 203, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 0, 0, 0, 155, 156, 157, + 233, 234, 235, 236, 162, 163, 164, 0, 0, 0, + 0, 0, 165, 166, 167, 237, 238, 239, 240, 172, + 320, 321, 241, 322, 0, 0, 0, 0, 0, 0, + 323, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 0, 201, 202, 750, 661, 0, 0, 751, 0, - 203, 276, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, - 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, - 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, + 200, 0, 201, 202, 0, 0, 0, 0, 0, 0, + 203, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 0, 0, 0, 155, 156, + 157, 233, 234, 235, 236, 162, 163, 164, 0, 0, + 0, 0, 0, 165, 166, 167, 237, 238, 239, 240, + 172, 0, 0, 241, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, + 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, + 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 0, 201, 202, - 906, 652, 0, 0, 907, 0, 203, 276, 0, 0, + 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 0, 201, 202, 0, 0, 0, 0, 0, + 0, 203, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 0, 0, 0, 155, + 156, 157, 233, 234, 235, 236, 162, 163, 164, 0, + 0, 0, 0, 0, 165, 166, 167, 237, 238, 239, + 240, 172, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, @@ -4550,551 +4266,933 @@ static const yytype_int16 yytable[] = 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 0, 201, 202, 909, 661, 0, 0, - 910, 0, 203, 276, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, - 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, - 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, - 201, 202, 1050, 652, 0, 0, 1051, 0, 203, 276, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, - 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, - 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 0, 201, 202, 1062, 652, - 0, 0, 1063, 0, 203, 276, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, - 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, - 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 0, 201, 202, 1065, 661, 0, 0, 1066, 0, - 203, 276, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, - 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, - 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 0, 201, 202, - 666, 661, 0, 0, 667, 0, 203, 276, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, - 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, - 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, - 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, 202, 0, 0, 0, 0, - 0, 0, 203, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, - 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 419, 0, 0, 0, 0, 886, 0, 0, + 0, 0, 203, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, + 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, + 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 420, 0, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, - 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, - 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, + 0, 313, 0, 0, 119, 52, 0, 53, 54, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, + 0, 0, 0, 14, 120, 15, 16, 17, 18, 0, + 0, 0, 612, 0, 19, 20, 21, 22, 23, 24, + 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, + 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, + 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, + 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, + 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 0, 0, 0, 64, 65, + 66, 14, 0, 15, 16, 17, 18, 0, 0, 0, + 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, + 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, + 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, + 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, + 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 0, 64, 65, 66, 14, + 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, + 19, 20, 21, 22, 23, 24, 25, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 260, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 261, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, + 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, + 262, 0, 263, 264, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 0, 64, 265, 66, 14, 0, 15, + 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, + 21, 22, 23, 24, 25, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 260, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 261, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, - 0, 0, 0, 0, 0, 0, 0, -277, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, + 0, 0, 48, 509, 0, 0, 0, 0, 0, 211, + 0, 0, 119, 52, 0, 53, 54, 0, 262, 0, + 263, 264, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, + 0, 0, 64, 265, 66, 14, 0, 108, 109, 17, + 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, + 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 260, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, + 0, 0, 43, 44, 0, 261, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 0, 0, 0, 0, 0, 0, 0, 0, -279, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, + 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, + 119, 52, 0, 53, 54, 0, 725, 0, 263, 264, + 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, + 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, + 64, 265, 66, 14, 0, 108, 109, 17, 18, 0, + 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, + 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 31, 32, 260, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, + 43, 44, 0, 261, 46, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 871, + 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, + 0, 53, 54, 0, 725, 0, 263, 264, 56, 0, + 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, + 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 0, 64, 265, + 66, 14, 0, 108, 109, 17, 18, 0, 0, 0, + 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 260, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, + 0, 261, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, + 54, 0, 262, 0, 263, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, + 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 0, 64, 265, 66, 14, + 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, + 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 260, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 261, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, + 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, + 0, 0, 263, 264, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 0, 64, 265, 66, 14, 0, 108, + 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, + 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 260, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 261, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, - 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 0, 0, 0, 0, 0, 0, 0, 0, -280, + 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, + 0, 0, 119, 52, 0, 53, 54, 0, 725, 0, + 263, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, + 0, 0, 64, 265, 66, 14, 0, 108, 109, 17, + 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, + 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 260, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, + 0, 0, 43, 44, 0, 261, 46, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, + 119, 52, 0, 53, 54, 0, 0, 0, 263, 0, + 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, + 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, + 64, 265, 66, 14, 0, 15, 16, 17, 18, 0, + 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, + 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, + 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, + 0, 53, 54, 0, 606, 0, 0, 0, 56, 0, + 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, + 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 0, 64, 265, + 66, 14, 0, 108, 109, 17, 18, 0, 0, 0, + 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, + 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, + 54, 0, 262, 0, 0, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, + 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 0, 64, 265, 66, 14, + 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, + 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, + 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, + 606, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 0, 64, 265, 66, 14, 0, 108, + 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, + 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, + 0, 0, 119, 52, 0, 53, 54, 0, 917, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, + 0, 0, 64, 265, 66, 14, 0, 108, 109, 17, + 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, + 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, + 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, + 119, 52, 0, 53, 54, 0, 725, 0, 0, 0, + 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, + 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, + 64, 265, 66, 14, 0, 15, 16, 17, 18, 0, + 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, + 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, + 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, + 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, + 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, + 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 0, 64, 65, + 66, 14, 0, 108, 109, 17, 18, 0, 0, 0, + 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, + 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, + 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, + 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 0, 64, 265, 66, 14, + 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, + 19, 20, 21, 22, 23, 24, 25, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, + 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 0, 64, 265, 66, 14, 0, 108, + 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, + 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 114, + 34, 35, 36, 115, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 117, 0, 0, 118, + 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, + 0, 14, 120, 108, 109, 17, 18, 0, 0, 0, + 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, + 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 226, 0, 0, 51, 52, 0, 53, + 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, + 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, + 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, + 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, + 400, 52, 0, 53, 54, 0, 401, 0, 0, 0, + 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, + 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, + 120, 108, 109, 17, 18, 0, 0, 0, 0, 0, + 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 114, 34, 35, 36, 115, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 118, 0, 0, 119, 52, 0, 53, 54, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, + 0, 0, 0, 14, 120, 108, 109, 17, 18, 0, + 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, + 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, + 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 313, 0, 0, 400, 52, + 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, + 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 0, 0, 0, 0, 14, 120, 108, + 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, + 112, 22, 851, 852, 853, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 854, + 34, 35, 36, 855, 38, 0, 39, 40, 41, 0, + 0, 856, 0, 0, 43, 44, 0, 116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 857, + 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, + 0, 14, 120, 108, 109, 17, 18, 0, 0, 0, + 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, + 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 989, 0, 0, 119, 52, 0, 53, + 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, + 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, + 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, + 0, 0, 43, 44, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1012, 0, 0, + 119, 52, 0, 53, 54, 0, 0, 660, 661, 0, + 56, 662, 57, 58, 59, 0, 60, 61, 62, 0, + 63, 0, 0, 0, 0, 0, 174, 175, 176, 177, + 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, + 120, 0, 184, 185, 186, 187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 0, 201, 202, 681, 652, 0, 0, 682, 0, 203, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, + 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 0, 201, 202, 666, + 661, 0, 0, 667, 0, 203, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, + 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, + 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 0, 201, 202, 698, 652, 0, 0, 699, + 0, 203, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, + 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, + 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, + 202, 701, 661, 0, 0, 702, 0, 203, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, + 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 0, 201, 202, 708, 652, 0, + 0, 709, 0, 203, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, + 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, + 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 0, 201, 202, 711, 661, 0, 0, 712, 0, 203, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, + 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 0, 201, 202, 748, + 652, 0, 0, 749, 0, 203, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, + 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, + 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 0, 201, 202, 751, 661, 0, 0, 752, + 0, 203, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, + 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, + 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, + 202, 922, 652, 0, 0, 923, 0, 203, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, + 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 0, 201, 202, 925, 661, 0, + 0, 926, 0, 203, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, + 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, + 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 0, 201, 202, 1023, 652, 0, 0, 1024, 0, 203, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, + 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 0, 201, 202, 1023, + 652, 0, 0, 1079, 0, 203, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, + 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, + 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 0, 201, 202, 1090, 652, 0, 0, 1091, + 0, 203, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, + 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, + 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, + 202, 1093, 661, 0, 0, 1094, 0, 203, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, + 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 0, 201, 202, 666, 661, 0, + 0, 667, 0, 203, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, + 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, + 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 0, 201, 202, 0, 0, 0, 0, 0, 0, 203, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 0, 0, 0, 0, 0, 0, 0, 0, - -282, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, - 0, 0, 501, 0, 0, 0, 0, 0, 0, 0, - 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 429, 430, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 420, 0, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 404, 405, 406, 407, 408, 409, 410, + 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 420, 0, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 0, 0, 0, 0, 0, 0, + 0, 0, -279, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -621, -621, 0, 0, 0, - 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, + 426, 427, 428, 429, 430, 0, 0, 0, 0, 0, + 0, 0, 0, -280, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, + 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 420, 0, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 0, 0, 0, 0, + 0, 0, 0, 0, -282, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, + 0, 416, 417, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430 + 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, + 0, 0, 0, 416, 417, 0, 0, 0, 501, 0, + 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, + 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -640, -640, 0, 0, 0, 0, 416, 417, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430 }; static const yytype_int16 yycheck[] = { - 1, 88, 13, 15, 16, 285, 26, 19, 55, 27, - 1, 6, 3, 4, 5, 65, 27, 8, 9, 20, - 490, 12, 68, 14, 15, 16, 86, 87, 19, 314, - 9, 21, 4, 5, 222, 14, 379, 481, 14, 790, - 12, 272, 8, 9, 6, 403, 3, 1, 14, 3, - 597, 13, 53, 54, 81, 332, 762, 307, 594, 118, - 51, 311, 57, 508, 55, 27, 51, 15, 16, 692, - 547, 19, 73, 74, 65, 374, 20, 21, 431, 26, - 703, 594, 435, 55, 504, 438, 669, 670, 508, 25, - 81, 296, 68, 319, 539, 57, 395, 16, 25, 74, - 59, 60, 61, 62, 25, 53, 459, 976, 433, 81, - 111, 15, 16, 90, 104, 19, 15, 16, 15, 16, - 19, 474, 19, 476, 26, 57, 117, 951, 119, 25, - 0, 25, 485, 458, 74, 612, 25, 90, 443, 444, - 103, 90, 29, 121, 90, 371, 25, 122, 58, 59, - 475, 117, 105, 25, 53, 54, 53, 54, 218, 484, - 104, 460, 79, 144, 142, 128, 28, 111, 112, 229, - 147, 51, 525, 333, 138, 55, 336, 90, 338, 57, - 340, 92, 342, 90, 1053, 129, 18, 26, 20, 121, - 121, 138, 90, 90, 147, 400, 115, 550, 147, 118, - 119, 147, 90, 388, 16, 390, 142, 55, 144, 126, - 121, 92, 213, 214, 92, 142, 142, 144, 754, 210, - 1044, 142, 973, 142, 549, 976, 113, 146, 121, 148, - 290, 767, 223, 224, 147, 90, 138, 820, 403, 214, - 147, 754, 144, 121, 223, 224, 142, 242, 142, 147, - 956, 90, 298, 142, 767, 121, 316, 223, 224, 147, - 306, 307, 547, 142, 276, 311, 105, 279, 144, 270, - 142, 272, 125, 213, 214, 276, 252, 55, 443, 444, - 242, 558, 513, 90, 270, 276, 272, 314, 279, 734, - 90, 92, 147, 284, 285, 17, 18, 288, 55, 138, - 25, 140, 1053, 115, 295, 296, 118, 119, 147, 142, - 92, 296, 303, 733, 734, 16, 92, 92, 284, 285, - 306, 798, 298, 314, 947, 551, 809, 612, 276, 876, - 20, 279, 815, 691, 146, 27, 148, 142, 101, 121, - 147, 295, 314, 37, 38, 121, 121, 147, 398, 303, - 58, 59, 51, 403, 401, 37, 38, 870, 349, 350, - 351, 352, 353, 354, 355, 356, 325, 880, 131, 132, - 133, 350, 351, 352, 353, 279, 377, 57, 379, 276, - 279, 680, 279, 374, 350, 351, 352, 353, 138, 355, - 356, 811, 349, 443, 444, 349, 556, 101, 457, 92, - 354, 92, 115, 847, 395, 118, 119, 398, 145, 400, - 401, 92, 403, 665, 115, 400, 668, 118, 119, 92, - 119, 433, 141, 115, 888, 889, 118, 119, 121, 401, - 121, 774, 433, 115, 686, 148, 118, 119, 121, 92, - 121, 139, 433, 723, 55, 146, 458, 148, 121, 802, - 398, 804, 443, 444, 146, 403, 148, 458, 142, 60, - 973, 142, 63, 475, 146, 466, 148, 458, 121, 460, - 461, 92, 484, 435, 475, 101, 438, 947, 803, 101, - 471, 57, 502, 484, 475, 63, 64, 65, 479, 142, - 121, 435, 791, 484, 744, 461, 727, 459, 489, 92, - 121, 806, 121, 521, 949, 319, 107, 812, 813, 142, - 521, 512, 513, 798, 476, 459, 51, 92, 545, 818, - 547, 522, 142, 485, 92, 805, 512, 513, 121, 949, - 718, 522, 476, 1046, 142, 511, 433, 549, 116, 117, - 531, 485, 92, 587, 1057, 493, 121, 591, 549, 892, - 893, 16, 142, 121, 545, 92, 547, 371, 549, 521, - 51, 458, 622, 525, 863, 142, 557, 142, 522, 51, - 92, 121, 584, 545, 142, 547, 61, 531, 475, 64, - 65, 525, 862, 121, 121, 612, 142, 484, 550, 288, - 51, 603, 142, 584, 779, 780, 781, 296, 783, 121, - 785, 1, 99, 3, 605, 504, 550, 504, 8, 9, - 15, 508, 603, 918, 14, 15, 16, 13, 57, 19, - 640, 612, 121, 609, 16, 856, 121, 443, 444, 63, - 929, 116, 117, 121, 122, 800, 15, 536, 145, 536, - 612, 806, 539, 92, 145, 139, 142, 812, 813, 142, - 115, 51, 549, 118, 119, 142, 51, 15, 659, 15, - 44, 477, 478, 142, 665, 65, 656, 668, 669, 670, - 121, 141, 121, 659, 69, 665, 115, 141, 668, 118, - 119, 146, 1025, 148, 123, 686, 15, 1040, 679, 680, - 691, 692, 18, 142, 689, 696, 714, 141, 744, 141, - 679, 400, 703, 714, 587, 15, 101, 102, 103, 148, - 526, 139, 656, 679, 1039, 139, 141, 117, 139, 119, - 142, 665, 713, 215, 668, 44, 727, 689, 142, 816, - 222, 142, 718, 128, 713, 115, 57, 551, 118, 119, - 684, 727, 686, 691, 90, 933, 790, 713, 142, 142, - 800, 939, 714, 918, 44, 15, 806, 807, 93, 105, - 14, 142, 812, 813, 15, 1045, 580, 259, 15, 26, - 145, 798, 471, 774, 142, 960, 961, 962, 963, 142, - 479, 115, 142, 597, 118, 119, 600, 142, 141, 15, - 489, 803, 300, 15, 140, 139, 304, 15, 144, 26, - 791, 147, 803, 73, 74, 15, 15, 798, 799, 800, - 210, 139, 803, 126, 126, 806, 807, 142, 55, 820, - 15, 812, 813, 223, 224, 90, 798, 818, 819, 830, - 139, 55, 833, 90, 733, 142, 733, 734, 142, 142, - 105, 832, 804, 142, 835, 799, 594, 142, 105, 597, - 142, 121, 122, 844, 845, 856, 835, 349, 557, 90, - 804, 852, 142, 90, 1049, 90, 15, 144, 918, 835, - 856, 363, 863, 864, 105, 140, 276, 144, 105, 279, - 105, 138, 147, 140, 284, 285, 141, 144, 288, 381, - 147, 892, 893, 142, 522, 295, 296, 12, 5, 890, - 26, 1042, 1044, 303, 895, 790, 803, 790, 817, 140, - 1041, 138, 811, 140, 811, 140, 147, 144, 890, 6, - 147, 90, 147, 895, 254, 790, 970, 918, 587, 973, - 970, 973, 976, 993, 978, -1, 105, 928, 929, -1, - -1, 932, 90, 213, 214, 936, 947, -1, -1, 349, - 350, 351, 352, 353, 354, 355, 356, 105, -1, -1, - 932, -1, -1, 51, 90, 53, 54, 55, 56, -1, - -1, 140, -1, -1, 374, -1, 790, -1, 147, 105, - -1, 69, 1026, 63, 64, 65, 1006, -1, 480, 481, - 806, 807, 140, -1, -1, 395, 812, 813, 398, 147, - 400, 509, -1, 403, -1, 996, 754, 998, 516, 1053, - 1001, 1055, 138, 1057, 140, 1059, -1, -1, 144, 767, - 528, 147, 838, 839, 1025, 841, 842, 1039, 40, 41, - 42, 43, 44, 433, -1, 1079, 116, 117, 1039, 531, - 1041, 1042, 790, 443, 444, -1, 538, -1, 1039, 319, - 90, -1, 949, -1, 142, -1, -1, 26, 458, -1, - 460, 461, 876, -1, 878, 105, -1, -1, 882, -1, - -1, 471, -1, 581, 582, 475, -1, 90, 1040, 479, - -1, -1, 61, -1, 484, 64, 65, 970, -1, 489, - 973, -1, 105, 976, 90, 978, 1040, 90, -1, -1, - 140, 371, 918, 611, -1, 970, -1, 147, 973, 105, - -1, 976, 105, 978, 51, -1, 53, 54, 55, 56, - 819, 90, 522, -1, -1, 941, -1, 140, 876, -1, - -1, 531, 69, 832, 147, -1, 105, 116, 117, -1, - 954, 955, 1039, 1026, 140, 844, 845, 140, -1, 549, - -1, 147, -1, 852, 147, 897, 898, 557, 90, -1, - -1, 1026, 976, -1, 978, 864, -1, -1, -1, 138, - 1053, 140, 1055, 105, 1057, 144, 1059, -1, 147, -1, - 688, -1, 26, 90, 584, -1, 678, -1, 1053, -1, - 1055, -1, 1057, -1, 1059, -1, 1079, -1, 105, 1013, - -1, -1, 1016, 603, -1, 142, 90, -1, 140, 90, - -1, -1, 8, 9, 1079, 147, -1, 90, 14, 15, - 16, 105, -1, 19, 105, 973, 718, -1, 976, 928, - -1, 973, 105, 140, 1048, 743, -1, 936, -1, 1053, - 147, 1055, -1, -1, 115, 1059, 90, 118, 119, -1, - 46, 47, 48, 49, -1, 763, 140, 53, 54, 140, - -1, 105, -1, 147, -1, 1079, 147, 140, -1, 65, - 66, 142, -1, -1, 147, 146, -1, 148, -1, 679, - 680, 551, -1, 62, 776, 64, 65, 1029, 1030, 1031, - -1, 1033, 1034, -1, 138, -1, 140, 996, -1, 998, - 144, -1, 1001, 147, 62, 1053, 64, 65, 63, 64, - 65, -1, -1, 713, -1, 63, 64, 65, 63, 64, - 65, 117, -1, -1, 51, -1, 53, 54, 55, 56, - 822, 1073, 1074, 1075, 1076, -1, -1, 116, 117, -1, - -1, 1083, 69, -1, -1, -1, 51, 855, 53, 54, - 55, 56, -1, -1, -1, 847, 83, -1, 116, 117, - -1, 116, 117, 871, 69, -1, -1, 94, 116, 117, - -1, 116, 117, 100, 101, 102, 103, -1, 83, -1, - 63, 64, 65, 63, 64, 65, -1, -1, -1, 94, - -1, 791, -1, -1, 121, 100, 101, 102, 103, 799, - 800, 128, -1, 803, 131, -1, 806, 807, 63, 64, - 65, -1, 812, 813, -1, -1, -1, 144, 818, 819, - -1, -1, -1, 128, -1, -1, 131, 223, 224, -1, - -1, -1, 832, 116, 117, 835, 116, 117, -1, 144, - -1, 933, -1, -1, 844, 845, -1, 939, -1, -1, - -1, -1, 852, 51, -1, 53, 54, 55, 56, -1, - -1, 116, 117, 863, 864, -1, 262, 263, 264, 265, - -1, 69, 51, -1, 53, 54, 55, 56, -1, -1, - 276, -1, 51, 279, 53, 54, 55, 56, 284, 285, - 69, -1, -1, -1, -1, -1, 94, -1, -1, -1, - 69, -1, 100, 101, 102, 103, -1, -1, 51, -1, - 53, 54, 55, 56, -1, 94, -1, -1, 918, -1, - -1, 100, 101, 102, 103, 94, 69, -1, 928, 929, - 128, 100, -1, 131, -1, 51, 936, 53, 54, 55, - 56, 115, -1, -1, 118, 119, 144, -1, -1, 128, - -1, 94, 131, 69, 350, 351, 352, 353, 115, 355, - 356, 118, 119, 142, 115, -1, -1, 118, 119, -1, - -1, 145, 146, -1, 148, -1, -1, -1, 94, 375, - -1, -1, -1, -1, 100, -1, -1, -1, -1, 146, - 386, 148, -1, -1, -1, 146, 996, 148, 998, -1, - -1, 1001, 398, -1, -1, -1, -1, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 101, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, -1, -1, 433, -1, 1039, - 51, -1, 53, 54, 55, 56, -1, 443, 444, -1, - 129, 130, 131, 132, 133, -1, -1, -1, 69, -1, - -1, -1, 458, -1, -1, 461, 51, -1, 53, 54, - 55, 56, -1, -1, 85, -1, -1, 473, -1, 475, - -1, 477, 478, 94, 69, -1, -1, -1, 484, 100, - 101, 102, 103, -1, -1, -1, -1, 493, -1, -1, - 496, 497, -1, -1, -1, 501, -1, -1, 504, -1, - 506, -1, 508, 509, -1, -1, -1, 128, -1, -1, - 131, -1, -1, -1, -1, 1, -1, 3, 4, 5, - 526, -1, -1, -1, -1, -1, 12, -1, -1, -1, - 536, -1, 51, 539, 53, 54, 55, 56, -1, -1, - -1, -1, -1, 549, -1, -1, 88, 89, -1, -1, - 69, -1, -1, 51, -1, 53, 54, 55, 56, 101, - 566, 567, -1, -1, -1, 51, 85, -1, -1, 55, - -1, 69, 88, 89, -1, 94, -1, -1, 584, -1, - -1, 100, 101, 102, 103, 101, 128, 129, 130, 131, - 132, 133, -1, -1, -1, 81, 94, 603, -1, -1, - 606, -1, -1, 101, 102, 103, -1, -1, -1, 128, - -1, -1, 131, 129, 130, 131, 132, 133, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - 128, -1, -1, 119, 13, 14, 15, 16, 17, 18, - -1, 20, -1, -1, -1, -1, -1, 26, 27, 28, - -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, - -1, 40, 41, 42, 43, 44, -1, -1, -1, -1, - -1, -1, -1, 679, -1, 1, -1, 3, 4, 5, - -1, -1, -1, -1, -1, 691, 12, -1, 694, 695, - -1, -1, -1, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, -1, -1, 713, -1, 88, - 89, 90, -1, -1, 93, -1, -1, -1, 724, -1, - 99, -1, 101, -1, 210, 51, 105, 733, 734, 55, - -1, -1, -1, -1, -1, -1, 115, -1, -1, 118, - 119, -1, -1, 122, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 81, -1, -1, -1, 138, - 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, - 51, -1, 53, 54, 55, 56, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 69, 795, - -1, -1, -1, 119, 800, 801, -1, 803, -1, -1, - 806, 807, 288, -1, 85, 811, 812, 813, -1, 295, - 296, -1, -1, 94, -1, -1, -1, 303, -1, 100, - 101, 102, 103, -1, -1, -1, -1, -1, 314, 835, - -1, -1, 838, 839, -1, 841, 842, -1, -1, -1, - -1, -1, -1, -1, -1, 851, -1, 128, -1, 855, - 131, 51, -1, 53, 54, 55, 56, -1, -1, -1, - -1, -1, -1, 349, -1, -1, 872, 873, 354, 69, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 885, - 886, -1, -1, -1, 210, -1, -1, -1, 374, -1, - -1, -1, -1, -1, 94, 901, -1, -1, -1, -1, - 100, 101, 102, 103, -1, 911, 912, 88, 89, 395, - -1, -1, 918, -1, 400, 401, -1, 403, -1, -1, - 101, -1, -1, -1, -1, -1, -1, -1, 128, -1, - -1, 131, -1, -1, -1, 941, -1, -1, -1, -1, - -1, -1, -1, 949, -1, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 443, 444, -1, - -1, -1, 288, -1, -1, -1, -1, -1, -1, 295, - 296, -1, -1, -1, 460, -1, -1, 303, -1, -1, - -1, -1, -1, -1, -1, 471, -1, -1, 314, -1, - -1, -1, -1, 479, -1, -1, -1, 72, 73, 74, - 75, 76, 77, 489, -1, 80, 81, -1, -1, -1, - -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, 349, -1, -1, 101, -1, 354, -1, - -1, -1, -1, 1039, -1, -1, 522, -1, -1, -1, - -1, -1, -1, -1, -1, 531, -1, -1, 374, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 545, - -1, 547, -1, -1, -1, -1, -1, -1, -1, 395, - 0, 557, -1, -1, 400, 401, -1, 403, -1, -1, - -1, -1, -1, 13, 14, 15, 16, 17, 18, -1, - 20, -1, -1, -1, -1, -1, 26, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, - 40, 41, 42, 43, 44, -1, -1, 443, 444, -1, - -1, -1, -1, -1, -1, -1, 612, -1, -1, -1, - -1, -1, -1, -1, 460, -1, -1, -1, -1, -1, + 1, 26, 222, 88, 285, 481, 86, 87, 13, 27, + 1, 9, 3, 4, 5, 81, 14, 8, 9, 20, + 68, 12, 27, 14, 15, 16, 272, 490, 19, 55, + 4, 5, 14, 594, 433, 65, 597, 6, 12, 314, + 21, 716, 51, 3, 597, 716, 118, 508, 791, 1, + 547, 3, 53, 54, 15, 16, 332, 307, 19, 458, + 51, 311, 6, 431, 55, 379, 594, 435, 692, 13, + 438, 26, 73, 74, 65, 319, 475, 74, 539, 703, + 25, 55, 374, 27, 26, 484, 68, 763, 57, 74, + 81, 459, 403, 15, 16, 20, 21, 19, 504, 296, + 972, 29, 508, 395, 669, 670, 474, 81, 476, 997, + 111, 144, 16, 57, 25, 612, 57, 485, 15, 16, + 15, 16, 19, 104, 19, 122, 117, 371, 119, 15, + 16, 53, 54, 19, 90, 103, 25, 55, 218, 594, + 73, 74, 59, 60, 61, 62, 0, 18, 90, 229, + 549, 25, 90, 79, 25, 121, 53, 525, 53, 54, + 128, 25, 25, 105, 333, 26, 90, 336, 460, 338, + 51, 340, 25, 342, 55, 25, 142, 90, 121, 104, + 121, 105, 550, 138, 90, 113, 111, 112, 121, 122, + 90, 147, 90, 1081, 755, 90, 138, 142, 140, 144, + 126, 1073, 144, 400, 129, 147, 93, 768, 138, 147, + 290, 115, 213, 214, 118, 119, 270, 214, 272, 210, + 26, 28, 57, 147, 403, 223, 224, 755, 213, 214, + 791, 142, 223, 224, 147, 142, 316, 443, 444, 126, + 768, 147, 146, 18, 148, 20, 90, 147, 314, 147, + 298, 994, 306, 142, 997, 144, 821, 92, 306, 307, + 90, 105, 121, 311, 443, 444, 92, 513, 142, 270, + 252, 272, 547, 242, 735, 276, 90, 138, 142, 142, + 213, 214, 558, 144, 90, 276, 121, 296, 279, 142, + 90, 966, 142, 284, 285, 966, 140, 288, 242, 105, + 755, 977, 799, 147, 295, 296, 20, 551, 810, 125, + 90, 25, 303, 768, 816, 276, 298, 147, 279, 16, + 90, 92, 60, 314, 144, 63, 55, 92, 734, 735, + 51, 892, 138, 147, 140, 105, 121, 612, 1081, 892, + 314, 147, 92, 295, 968, 665, 55, 147, 668, 25, + 121, 303, 350, 351, 352, 353, 121, 279, 349, 350, + 351, 352, 353, 354, 355, 356, 686, 147, 398, 107, + 140, 142, 848, 403, 144, 401, 377, 147, 379, 276, + 691, 276, 279, 374, 279, 457, 319, 556, 680, 349, + 92, 400, 20, 279, 92, 1070, 215, 349, 119, 1070, + 92, 1025, 354, 222, 395, 804, 812, 398, 325, 400, + 401, 142, 403, 443, 444, 142, 27, 92, 115, 121, + 57, 118, 119, 121, 58, 59, 138, 401, 101, 121, + 145, 886, 433, 994, 121, 803, 997, 805, 371, 90, + 259, 896, 433, 724, 142, 142, 121, 37, 38, 146, + 142, 148, 443, 444, 105, 101, 141, 458, 512, 513, + 139, 775, 55, 92, 142, 466, 101, 458, 101, 460, + 461, 121, 433, 57, 475, 142, 388, 502, 390, 545, + 471, 547, 728, 484, 475, 131, 132, 133, 479, 140, + 1114, 435, 121, 484, 438, 745, 147, 458, 489, 719, + 792, 398, 90, 521, 115, 968, 403, 118, 119, 970, + 435, 512, 513, 142, 475, 459, 521, 105, 92, 26, + 1081, 522, 121, 484, 799, 806, 51, 819, 90, 511, + 349, 522, 476, 142, 459, 146, 92, 148, 433, 994, + 531, 485, 622, 105, 363, 92, 612, 121, 549, 58, + 59, 476, 140, 90, 545, 609, 547, 142, 549, 147, + 485, 92, 381, 458, 970, 121, 557, 288, 105, 142, + 522, 545, 51, 547, 121, 296, 142, 521, 140, 531, + 475, 525, 504, 90, 51, 147, 142, 879, 549, 484, + 121, 17, 18, 584, 908, 909, 493, 878, 105, 121, + 525, 807, 90, 140, 605, 659, 550, 813, 814, 504, + 147, 142, 603, 508, 536, 640, 142, 105, 551, 51, + 1075, 612, 801, 584, 99, 550, 872, 92, 807, 15, + 1085, 138, 13, 140, 813, 814, 121, 144, 612, 859, + 147, 536, 603, 121, 539, 51, 16, 53, 54, 55, + 56, 92, 140, 945, 549, 63, 121, 90, 659, 147, + 15, 480, 481, 69, 665, 719, 1065, 668, 669, 670, + 8, 9, 105, 145, 728, 656, 14, 26, 587, 400, + 121, 679, 591, 145, 665, 686, 139, 668, 679, 680, + 691, 692, 142, 26, 142, 696, 714, 745, 1066, 319, + 142, 92, 703, 1, 15, 3, 15, 140, 142, 714, + 8, 9, 531, 44, 147, 713, 14, 15, 16, 538, + 689, 19, 713, 26, 121, 716, 141, 728, 934, 949, + 121, 656, 817, 799, 141, 955, 142, 1051, 904, 905, + 665, 90, 716, 668, 92, 689, 587, 90, 15, 90, + 471, 371, 92, 51, 18, 934, 105, 90, 479, 684, + 139, 686, 105, 16, 105, 121, 122, 65, 489, 141, + 714, 801, 105, 121, 775, 141, 15, 807, 808, 117, + 139, 121, 139, 813, 814, 44, 92, 90, 141, 138, + 142, 140, 57, 1074, 691, 144, 142, 140, 147, 140, + 142, 792, 105, 804, 147, 138, 147, 140, 799, 800, + 801, 144, 734, 804, 147, 121, 807, 808, 872, 117, + 821, 119, 813, 814, 142, 799, 44, 142, 819, 820, + 831, 15, 93, 834, 14, 138, 557, 140, 836, 734, + 735, 144, 833, 804, 147, 836, 15, 115, 800, 60, + 118, 119, 63, 16, 845, 846, 15, 443, 444, 678, + 115, 805, 115, 118, 119, 118, 119, 55, 780, 781, + 782, 872, 784, 145, 786, 15, 142, 868, 1098, 90, + 805, 141, 791, 15, 142, 223, 224, 139, 879, 880, + 812, 477, 478, 146, 105, 148, 107, 142, 142, 142, + 719, 913, 914, 15, 934, 15, 51, 908, 909, 804, + 57, 15, 210, 90, 139, 906, 142, 812, 115, 126, + 911, 118, 119, 126, 55, 223, 224, 139, 105, 140, + 15, 551, 906, 55, 1014, 144, 147, 911, 142, 15, + 526, 142, 142, 934, 51, 15, 284, 285, 142, 90, + 791, 148, 115, 944, 945, 118, 119, 948, 777, 142, + 580, 952, 69, 140, 105, 144, 142, 968, 115, 142, + 147, 118, 119, 964, 948, 966, 123, 597, 276, 141, + 600, 279, 994, 146, 300, 148, 284, 285, 304, 142, + 288, 12, 966, 522, 101, 102, 103, 295, 296, 140, + 1068, 148, 5, 791, 823, 303, 147, 1032, 1073, 818, + 791, 1114, 350, 351, 352, 353, 966, 355, 356, 1070, + 1067, 128, 254, 6, 1025, -1, 1017, 587, 1019, 848, + 1, 1022, 3, 4, 5, 40, 41, 42, 43, 44, + 859, 12, 991, 1055, 1056, 1057, 994, 1059, 1060, -1, + 1051, 349, 350, 351, 352, 353, 354, 355, 356, 61, + -1, -1, 64, 65, 1065, -1, 1067, 1068, -1, 981, + 982, 983, 984, -1, 1065, 970, 374, -1, -1, 1070, + 51, -1, 991, 90, 55, 994, 37, 38, 997, -1, + 999, 1103, 1104, 1105, 1106, -1, 1070, 395, 105, 820, + 398, -1, 400, 1115, 1065, 403, -1, -1, -1, -1, + 81, -1, 833, 1114, 116, 117, 51, 1108, 53, 54, + 55, 56, 1066, 461, 845, 846, 63, 64, 65, -1, + 949, -1, -1, 140, 69, 433, 955, 90, -1, -1, + 147, 1066, 90, 1052, -1, 443, 444, 868, 119, -1, + 991, -1, 105, 994, -1, -1, 997, 105, 999, 880, + 458, -1, 460, 461, 115, -1, 1078, 118, 119, 90, + 1065, 791, 1081, 471, 1083, -1, 1085, 475, 1087, 116, + 117, 479, -1, -1, 105, -1, 484, 140, 90, -1, + -1, 489, 140, 509, 147, 146, -1, 148, -1, 147, + 516, 1110, -1, 105, -1, 90, -1, 142, -1, -1, + 991, 1052, 528, 994, -1, -1, 997, -1, 999, 140, + 105, 807, 808, 944, 522, -1, 147, 813, 814, -1, + -1, 952, 51, 531, 53, 54, 55, 56, 140, 210, + 1081, -1, 1083, 964, 1085, 147, 1087, -1, -1, -1, + 69, 549, -1, 839, 840, 140, 842, 843, 90, 557, + 115, 90, 147, 118, 119, 581, 582, -1, -1, 1110, + -1, 1052, 892, 105, 894, 94, 105, -1, 898, 1098, + -1, 100, 101, 102, 103, 51, 584, 53, 54, 55, + 56, 146, -1, 148, -1, 611, 1017, -1, 1019, -1, + 1081, 1022, 1083, 69, 1085, 603, 1087, -1, 140, 128, + -1, 140, 131, -1, -1, 147, 90, 288, 147, 85, + -1, -1, -1, 142, 295, 296, -1, -1, 94, 1110, + -1, 105, 303, -1, 100, 101, 102, 103, -1, -1, + -1, 679, 61, 314, -1, 64, 65, -1, 934, 51, + -1, 53, 54, 55, 56, 975, 976, 1, -1, 3, + 4, 5, 128, -1, -1, 131, 140, 69, 12, -1, + -1, 957, 688, 147, -1, 713, -1, 997, 349, 999, + -1, 679, 680, 354, -1, -1, -1, 1108, -1, -1, + -1, 51, 94, 53, 54, 55, 56, 116, 117, 101, + 102, 103, -1, 374, -1, -1, -1, 51, -1, 69, + 62, 55, 64, 65, -1, 713, 63, 64, 65, 1039, + -1, -1, 1042, 83, 395, -1, 128, -1, 744, 400, + 401, -1, 403, 62, 94, 64, 65, 81, -1, -1, + 100, 101, 102, 103, -1, -1, -1, -1, 764, -1, + -1, 63, 64, 65, -1, -1, -1, 1077, -1, -1, + -1, 1081, -1, 1083, 116, 117, -1, 1087, 128, 116, + 117, 131, 443, 444, -1, 119, -1, 51, -1, 53, + 54, 55, 56, -1, 144, -1, -1, 116, 117, 460, + 1110, -1, -1, -1, 792, 69, -1, -1, 836, -1, + 471, -1, 800, 801, 116, 117, 804, -1, 479, 807, + 808, 85, -1, -1, -1, 813, 814, -1, 489, -1, + 94, 819, 820, -1, -1, -1, 100, 101, 102, 103, + -1, 63, 64, 65, -1, 833, -1, -1, 836, -1, + 51, -1, 53, 54, 55, 56, 115, 845, 846, 118, + 119, 522, -1, -1, 128, 871, -1, 131, 69, -1, + 531, 63, 64, 65, -1, -1, 210, -1, -1, -1, + 868, 887, 83, 142, 545, -1, 547, 146, -1, 148, + -1, 879, 880, 94, 116, 117, 557, -1, -1, 100, + 101, 102, 103, 44, -1, 63, 64, 65, -1, -1, + -1, -1, 63, 64, 65, -1, -1, 63, 64, 65, + 121, -1, -1, -1, 116, 117, -1, 128, -1, -1, + 131, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 144, -1, -1, 934, 88, 89, -1, + -1, 612, -1, -1, 288, -1, 944, 945, 116, 117, + 101, 295, 296, -1, 952, 116, 117, -1, -1, 303, + 116, 117, -1, -1, -1, 115, 964, -1, 118, 119, + 314, 122, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, -1, 1, -1, 3, 4, 5, -1, + -1, 142, -1, -1, -1, 12, 146, 51, 148, 53, + 54, 55, 56, -1, -1, 349, -1, -1, -1, 680, + 354, -1, -1, -1, -1, 69, -1, -1, -1, 1017, + -1, 1019, -1, 51, 1022, 53, 54, 55, 56, -1, + 374, -1, 115, -1, 51, 118, 119, -1, 55, -1, + 94, 69, 88, 89, -1, 716, 100, 101, 102, 103, + -1, 395, -1, -1, -1, 101, 400, 401, -1, 403, + -1, -1, 145, 146, 81, 148, 94, 1065, -1, -1, + -1, -1, 100, -1, 128, -1, 51, 131, 53, 54, + 55, 56, 128, 129, 130, 131, 132, 133, -1, -1, + 144, -1, -1, 51, 69, 53, 54, 55, 56, 443, + 444, -1, 119, -1, 51, -1, 53, 54, 55, 56, + 1108, 69, -1, -1, -1, -1, 460, -1, -1, 94, + -1, 792, 69, -1, -1, 100, -1, 471, 799, 800, + 801, -1, -1, -1, -1, 479, 807, -1, 85, -1, + -1, -1, 813, 814, -1, 489, -1, 94, 819, 820, + -1, -1, -1, 100, 101, 102, 103, -1, -1, -1, + 101, -1, 833, -1, -1, 1, -1, 3, 4, 5, + 6, -1, -1, -1, 845, 846, 12, -1, 522, -1, + -1, 128, 88, 89, 131, -1, -1, 531, 129, 130, + 131, 132, 133, 210, -1, 101, -1, 868, -1, -1, + -1, 545, -1, 547, -1, 88, 89, -1, 879, 880, + -1, -1, -1, 557, -1, 51, 0, -1, 101, 55, + 126, 127, 128, 129, 130, 131, 132, 133, -1, 13, + 14, 15, 16, 17, 18, 906, 20, -1, -1, -1, + 911, 25, 26, 27, -1, 81, 129, 130, 131, 132, + 133, -1, -1, 37, 38, -1, 40, 41, 42, 43, + 44, -1, 51, 934, 53, 54, 55, 56, 612, -1, + -1, 288, -1, 944, 945, -1, -1, 948, 295, 296, + 69, 952, -1, 119, -1, 51, 303, 53, 54, 55, + 56, -1, -1, 964, -1, 966, -1, 314, -1, -1, + -1, -1, -1, 69, -1, 94, 90, -1, -1, -1, + -1, 100, 101, 102, 103, -1, -1, -1, -1, -1, + -1, 105, -1, -1, -1, -1, -1, -1, 94, -1, + -1, 115, 349, -1, 118, 119, 680, 354, -1, 128, + -1, -1, 131, -1, -1, -1, 1017, -1, 1019, -1, + -1, 1022, -1, -1, 138, 139, -1, 374, -1, -1, + 144, 145, 146, 147, 148, -1, -1, -1, -1, -1, + -1, -1, 716, -1, 210, -1, -1, -1, 395, -1, + -1, -1, -1, 400, 401, -1, 403, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1070, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 443, 444, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1108, -1, -1, + -1, -1, -1, 460, -1, -1, -1, -1, 792, -1, + -1, -1, 288, -1, 471, 799, 800, 801, -1, 295, + 296, -1, 479, 807, -1, -1, -1, 303, -1, 813, + 814, -1, 489, -1, -1, 819, 820, -1, 314, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 833, + 72, 73, 74, 75, 76, 77, 78, -1, 80, 81, + -1, 845, 846, -1, -1, 522, 88, 89, -1, -1, + -1, -1, -1, 349, 531, -1, -1, -1, 354, 101, + -1, -1, -1, -1, 868, -1, -1, -1, 545, -1, + 547, -1, -1, -1, -1, 879, 880, -1, 374, -1, + 557, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, -1, -1, -1, -1, -1, -1, 395, + -1, -1, 906, -1, 400, 401, -1, 911, -1, -1, + -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, + -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, + 934, -1, -1, -1, -1, 612, -1, -1, -1, -1, + 944, 945, -1, -1, 948, -1, -1, -1, 952, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 964, 51, 966, -1, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 471, -1, -1, -1, -1, -1, -1, -1, 479, -1, -1, -1, -1, -1, -1, - 90, -1, -1, 489, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 105, 1, -1, 3, 4, - 5, -1, -1, -1, -1, 115, -1, 12, 118, 119, - -1, -1, -1, -1, 680, -1, 522, -1, -1, -1, - -1, -1, -1, -1, -1, 531, -1, -1, 138, 139, - -1, -1, -1, -1, 144, 145, 146, 147, 148, 545, - -1, 547, -1, -1, -1, -1, 51, -1, -1, -1, - 55, 557, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, -1, 81, -1, -1, 88, - 89, -1, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 612, -1, -1, -1, - -1, -1, -1, 122, 119, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 791, -1, -1, -1, -1, - -1, -1, 798, 799, 800, -1, -1, -1, -1, -1, - 806, -1, -1, -1, -1, -1, 812, 813, -1, -1, - -1, -1, 818, 819, -1, -1, 1, -1, 3, 4, - 5, 6, -1, -1, -1, -1, 832, 12, -1, -1, - -1, -1, -1, -1, 680, -1, -1, -1, 844, 845, - -1, -1, -1, -1, -1, -1, 852, 72, 73, 74, - 75, 76, 77, 78, -1, 80, 81, 863, 864, -1, - -1, -1, -1, 88, 89, 210, 51, -1, -1, -1, - 55, -1, -1, -1, -1, -1, 101, -1, -1, -1, - -1, -1, -1, -1, 890, -1, -1, -1, -1, 895, - -1, -1, -1, -1, -1, -1, 81, -1, -1, 124, + -1, -1, -1, 489, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 680, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1017, -1, 1019, -1, -1, 1022, -1, + -1, -1, -1, -1, -1, -1, 522, -1, -1, 119, + -1, -1, -1, -1, -1, 531, -1, -1, -1, 716, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 545, + -1, 547, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 557, -1, -1, -1, -1, 1070, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1108, -1, -1, 1, -1, 3, + -1, -1, -1, -1, -1, 792, 612, -1, -1, -1, + 210, -1, 799, 800, 801, -1, -1, -1, -1, -1, + 807, -1, -1, -1, -1, -1, 813, 814, -1, -1, + -1, -1, 819, 820, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 833, 51, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 845, 846, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 680, -1, -1, -1, -1, -1, + -1, 868, 72, 73, 74, 75, 76, 77, 288, -1, + 80, 81, 879, 880, -1, 295, 296, -1, 88, 89, + -1, -1, -1, 303, -1, -1, -1, -1, -1, -1, + 716, 101, -1, -1, -1, 119, -1, -1, -1, 906, + -1, -1, -1, -1, 911, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, -1, -1, -1, 934, -1, 349, + -1, -1, -1, -1, 354, -1, -1, 944, 945, -1, + -1, 948, -1, -1, -1, 952, -1, -1, -1, -1, + -1, -1, -1, -1, 374, -1, -1, 964, -1, 966, + -1, -1, -1, -1, -1, -1, 792, -1, -1, -1, + -1, -1, -1, 799, 800, 395, -1, -1, -1, -1, + 400, -1, -1, 403, -1, -1, 210, -1, -1, -1, + -1, -1, -1, 819, 820, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 833, -1, -1, + 1017, -1, 1019, -1, -1, 1022, -1, -1, -1, 845, + 846, -1, -1, 443, 444, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 460, -1, 868, -1, -1, -1, -1, -1, -1, -1, + -1, 471, -1, 879, 880, -1, -1, -1, -1, 479, + -1, -1, -1, 1070, 288, -1, -1, -1, -1, 489, + -1, 295, 296, -1, -1, -1, -1, -1, -1, 303, + 906, -1, -1, -1, -1, 911, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1108, 522, -1, -1, -1, -1, -1, -1, -1, + -1, 531, -1, -1, -1, -1, -1, -1, 944, 945, + -1, -1, 948, 44, -1, 349, 952, -1, -1, -1, + 354, -1, -1, -1, -1, -1, -1, 557, 964, -1, + 966, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 374, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, + -1, 395, -1, -1, -1, -1, 400, -1, -1, 403, + 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1017, -1, 1019, -1, -1, 1022, -1, -1, -1, + -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, -1, -1, -1, -1, -1, -1, 443, + 444, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, -1, -1, -1, -1, 460, 19, -1, 21, + 22, 23, 24, -1, 1070, -1, -1, 471, 30, 31, + 32, 33, 34, 35, 36, 479, -1, 39, -1, -1, + 680, -1, -1, -1, -1, 489, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, 1108, -1, 66, 67, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, + -1, -1, 84, 85, -1, -1, -1, 531, -1, 91, + 92, -1, 94, 95, -1, 97, 98, -1, 100, -1, + 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, 557, -1, -1, -1, -1, -1, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, 135, 136, -1, -1, -1, -1, -1, + -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 792, -1, -1, -1, -1, -1, -1, -1, + 800, 801, -1, -1, -1, -1, -1, 807, -1, -1, + -1, -1, -1, 813, 814, -1, -1, -1, -1, 819, + 820, -1, -1, -1, 8, 9, -1, -1, -1, -1, + 14, 15, 16, 833, -1, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 845, 846, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 46, 47, 48, 49, -1, -1, 868, 53, + 54, -1, -1, -1, -1, -1, 680, -1, -1, 879, + 880, 65, 66, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 51, 52, -1, -1, 55, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, + -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, + 89, -1, -1, 117, 934, -1, -1, -1, -1, -1, + -1, 100, 101, 102, 944, 945, -1, -1, 948, -1, + -1, -1, 952, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 964, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, 135, 136, -1, -1, + -1, -1, -1, -1, 143, 144, -1, -1, 792, -1, + -1, -1, -1, -1, -1, -1, 800, 801, -1, -1, + -1, -1, -1, 807, -1, -1, -1, -1, -1, 813, + 814, -1, -1, -1, -1, 819, 820, 1017, -1, 1019, + -1, -1, 1022, -1, -1, -1, -1, -1, -1, 833, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, + 224, 845, 846, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, + 75, 76, 77, -1, 868, 80, 81, -1, -1, -1, + -1, -1, -1, 88, 89, 879, 880, -1, 262, 263, + 264, 265, -1, -1, -1, -1, 101, -1, -1, -1, + -1, -1, 276, -1, -1, 279, -1, -1, -1, -1, + 284, 285, -1, -1, -1, -1, -1, -1, 1108, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, 918, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 928, 929, -1, -1, 932, -1, -1, -1, - 936, -1, -1, -1, 119, -1, -1, -1, -1, -1, - -1, -1, -1, 288, -1, 791, -1, -1, -1, -1, - 295, 296, 798, 799, 800, -1, -1, -1, 303, -1, - 806, -1, -1, -1, -1, -1, 812, 813, -1, 314, - -1, -1, 818, 819, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 832, -1, -1, -1, - 996, -1, 998, -1, -1, 1001, -1, -1, 844, 845, - -1, -1, -1, -1, 349, -1, 852, -1, -1, 354, - -1, -1, -1, -1, -1, -1, -1, 863, 864, -1, - -1, -1, -1, -1, -1, 210, -1, -1, -1, 374, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 890, -1, -1, -1, -1, 895, - 395, -1, -1, -1, -1, 400, 401, -1, 403, -1, + 934, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 944, 945, -1, -1, -1, -1, -1, -1, 952, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 918, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 928, 929, -1, -1, 932, -1, -1, 1, - 936, 3, -1, -1, -1, -1, -1, -1, 443, 444, - 12, -1, -1, 288, -1, -1, -1, -1, -1, -1, - 295, 296, -1, -1, -1, 460, -1, -1, 303, -1, - -1, -1, -1, -1, -1, -1, 471, -1, -1, 314, - -1, -1, -1, -1, 479, -1, -1, -1, -1, 51, - -1, -1, -1, -1, 489, -1, -1, -1, -1, -1, - 996, -1, 998, -1, -1, 1001, -1, -1, -1, -1, - -1, -1, -1, -1, 349, -1, -1, -1, -1, 354, - -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, - -1, -1, -1, -1, -1, -1, 531, -1, -1, 374, - -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, - 545, -1, 547, -1, -1, -1, -1, 119, -1, -1, - 395, -1, 557, -1, -1, 400, 401, -1, -1, -1, - -1, -1, -1, -1, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, - 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 612, -1, -1, - 1, -1, 3, -1, 122, 460, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 471, -1, -1, -1, - -1, -1, -1, -1, 479, -1, -1, -1, 210, -1, - -1, -1, -1, -1, 489, -1, -1, -1, -1, -1, + 964, -1, -1, -1, -1, -1, 350, 351, 352, 353, + -1, 355, 356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 51, -1, -1, -1, -1, -1, -1, -1, 51, 52, - -1, -1, 55, -1, -1, 680, -1, 522, -1, -1, - -1, -1, -1, -1, -1, -1, 531, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, - 545, -1, 547, 86, 87, 88, 89, -1, -1, -1, - -1, -1, 557, -1, -1, -1, 288, 100, 101, 102, - -1, -1, -1, 295, 296, -1, -1, -1, 119, -1, - -1, 303, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, 135, 136, -1, -1, -1, -1, -1, -1, - 143, 144, -1, -1, -1, -1, -1, 612, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 349, -1, -1, - -1, -1, 354, -1, -1, -1, 791, -1, -1, -1, - -1, -1, -1, 798, 799, 800, -1, -1, -1, -1, - -1, 806, 374, -1, -1, -1, -1, 812, 813, -1, - -1, -1, -1, 818, 819, -1, -1, -1, -1, 210, - -1, -1, -1, 395, -1, -1, -1, 832, 400, -1, - -1, 403, -1, -1, -1, 680, -1, -1, -1, 844, - 845, -1, -1, -1, -1, -1, -1, 852, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 863, 864, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 443, 444, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 890, -1, -1, 460, -1, - 895, -1, -1, -1, -1, -1, -1, 288, -1, 471, - -1, -1, -1, -1, 295, 296, -1, 479, -1, -1, - -1, -1, 303, 918, -1, -1, -1, 489, -1, -1, - -1, -1, -1, 928, 929, -1, -1, 932, -1, -1, - -1, 936, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, - 522, -1, -1, 798, 799, -1, -1, -1, 349, 531, - -1, -1, -1, 354, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 818, 819, -1, -1, -1, -1, -1, - -1, -1, -1, 374, -1, 557, -1, 832, -1, -1, - -1, 996, -1, 998, -1, -1, 1001, -1, -1, 844, - 845, -1, -1, -1, 395, -1, -1, 852, -1, 400, - -1, -1, 403, -1, -1, -1, -1, -1, 863, 864, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 890, -1, -1, -1, -1, - 895, -1, 443, 444, -1, -1, -1, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 460, - -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, - 471, -1, -1, 928, 929, -1, 101, 932, 479, -1, - -1, 936, -1, -1, -1, -1, -1, -1, 489, -1, - -1, -1, -1, -1, -1, -1, -1, 122, 680, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - 72, 73, 74, 75, 76, 77, -1, 142, 80, 81, - -1, 522, -1, -1, -1, -1, 88, 89, -1, -1, - 531, -1, -1, -1, -1, -1, -1, -1, -1, 101, - -1, 996, -1, 998, -1, -1, 1001, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 557, -1, -1, -1, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, - -1, -1, -1, -1, -1, -1, -1, 799, 800, -1, - -1, -1, -1, -1, 806, -1, -1, -1, -1, -1, - 812, 813, -1, -1, 0, -1, 818, 819, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, - 832, 17, 18, -1, 20, -1, -1, -1, -1, -1, - 26, -1, 844, 845, -1, -1, -1, -1, -1, -1, - 852, 37, 38, -1, 40, 41, 42, 43, 44, 680, - -1, 863, 864, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, - -1, -1, 88, 89, 90, -1, 92, 93, -1, -1, - -1, -1, -1, -1, -1, 101, 918, -1, -1, 105, - -1, -1, -1, -1, -1, -1, 928, 929, -1, 115, - 932, -1, 118, 119, 936, 121, 122, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, 139, 140, -1, 142, -1, -1, 145, - 146, 147, 148, -1, -1, -1, -1, -1, -1, -1, - 791, -1, -1, -1, -1, -1, -1, -1, 799, 800, - -1, -1, -1, 51, 52, 806, -1, 55, -1, -1, - -1, 812, 813, -1, 996, -1, 998, 818, 819, 1001, - -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, - -1, 832, 80, 81, -1, -1, -1, -1, 86, 87, - 88, 89, -1, 844, 845, -1, -1, -1, -1, -1, - -1, 852, 100, 101, 102, -1, -1, -1, -1, -1, - -1, -1, 863, 864, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, 135, 136, -1, - -1, -1, -1, -1, -1, 143, 144, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 918, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 928, 929, -1, - -1, -1, -1, -1, -1, 936, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - -1, -1, -1, -1, -1, -1, 19, -1, 21, 22, - 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, - 33, 34, 35, 36, -1, 996, 39, 998, -1, -1, - 1001, -1, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, - 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, - -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, - -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, - 0, 114, 115, -1, -1, 118, 119, -1, -1, -1, - -1, -1, -1, 13, 14, 15, 16, 17, 18, -1, - 20, 134, 135, 136, -1, -1, -1, 27, 28, 29, - -1, -1, -1, 146, -1, 148, -1, 37, 38, -1, - 40, 41, 42, 43, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, - 90, -1, -1, 93, -1, -1, -1, -1, -1, 99, - -1, 101, -1, -1, -1, 105, -1, -1, -1, -1, - -1, -1, -1, 113, -1, 115, -1, -1, 118, 119, - -1, -1, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, 0, -1, -1, 139, - 140, 141, 142, -1, -1, 145, 146, 147, 148, 13, + -1, 375, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 386, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1017, 398, 1019, -1, -1, 1022, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, -1, -1, 433, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 443, + 444, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 458, -1, -1, 461, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, + -1, 475, -1, 477, 478, -1, -1, -1, -1, -1, + 484, -1, -1, -1, 1108, -1, -1, -1, -1, 493, + -1, -1, 496, 497, -1, -1, 0, 501, -1, -1, + 504, -1, 506, -1, 508, 509, -1, -1, -1, 13, 14, 15, 16, 17, 18, -1, 20, -1, -1, -1, - -1, -1, -1, 27, 28, -1, -1, -1, -1, -1, - -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 25, 526, 27, 28, 29, -1, -1, -1, -1, + -1, -1, 536, 37, 38, 539, 40, 41, 42, 43, + 44, -1, -1, -1, -1, 549, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, + -1, -1, 566, 567, -1, -1, -1, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - -1, -1, -1, -1, 88, 89, 90, -1, 92, 93, - -1, -1, -1, -1, -1, 99, -1, 101, -1, -1, - -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 115, -1, -1, 118, 119, -1, 121, 122, -1, + 584, -1, -1, -1, 88, 89, 90, -1, -1, 93, + -1, -1, -1, -1, -1, 99, -1, 101, -1, 603, + -1, 105, 606, -1, -1, -1, -1, -1, -1, 113, + -1, 115, -1, -1, 118, 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, 0, -1, -1, 139, 140, 141, 142, -1, - -1, 145, 146, 147, 148, 13, 14, 15, 16, 17, - 18, -1, 20, -1, -1, -1, -1, -1, 26, 27, + -1, -1, -1, -1, -1, 139, 140, 141, 142, -1, + -1, 145, 146, 147, 148, -1, -1, -1, -1, -1, + 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, + -1, -1, -1, -1, -1, -1, 19, -1, 21, 22, + 23, 24, -1, -1, -1, 679, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, 691, -1, -1, + 694, 695, -1, -1, -1, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, -1, 713, + 63, -1, -1, 66, 67, -1, 69, -1, -1, -1, + -1, 725, -1, -1, -1, -1, -1, -1, -1, -1, + 734, 735, -1, -1, 44, -1, -1, -1, 91, -1, + -1, 94, 95, -1, 97, 98, -1, -1, -1, -1, + -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, + -1, 114, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, + -1, 134, -1, -1, -1, -1, -1, -1, -1, 142, + -1, 101, 796, -1, -1, -1, -1, 801, 802, -1, + 804, -1, -1, 807, 808, -1, -1, -1, 812, 813, + 814, -1, 122, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, -1, -1, -1, -1, -1, -1, + -1, -1, 836, -1, -1, 839, 840, -1, 842, 843, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, -1, -1, 867, -1, 88, 89, 871, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, + -1, -1, -1, -1, 888, 889, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 901, 902, 122, + -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, -1, 917, -1, -1, -1, -1, -1, 142, + -1, -1, -1, 927, 928, -1, -1, -1, 0, 1, + 934, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, -1, -1, -1, -1, -1, -1, 19, -1, 21, + 22, 23, 24, 957, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, 970, 39, -1, -1, + -1, -1, -1, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, 1065, 134, 135, 136, 13, 14, 15, 16, 17, + 18, -1, 20, -1, 146, -1, 148, 25, 26, 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -5108,48 +5206,48 @@ static const yytype_int16 yycheck[] = 128, 129, 130, 131, 132, 133, -1, -1, 0, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 13, 14, 15, 16, 17, 18, -1, 20, -1, - -1, -1, -1, -1, -1, 27, 28, -1, -1, -1, + -1, -1, -1, 25, -1, 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, 90, -1, - -1, 93, -1, -1, -1, -1, -1, 99, -1, 101, + 92, 93, -1, -1, -1, -1, -1, 99, -1, 101, -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 115, -1, -1, 118, 119, -1, -1, + -1, -1, -1, 115, -1, -1, 118, 119, -1, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, 0, -1, -1, 139, 140, 141, - 142, -1, 144, 145, 146, 147, 148, 13, 14, 15, - -1, 17, 18, -1, 20, -1, -1, -1, -1, -1, - 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 142, -1, -1, 145, 146, 147, 148, 13, 14, 15, + 16, 17, 18, -1, 20, -1, -1, -1, -1, 25, + 26, 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, - -1, -1, 88, 89, 90, -1, 92, 93, -1, -1, - -1, -1, -1, -1, -1, 101, -1, -1, -1, 105, + -1, -1, 88, 89, 90, -1, -1, 93, -1, -1, + -1, -1, -1, 99, -1, 101, -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, - -1, -1, 118, 119, -1, 121, 122, -1, 124, 125, + -1, -1, 118, 119, -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - 0, -1, 138, 139, 140, -1, 142, -1, -1, 145, - 146, 147, 148, 13, 14, 15, -1, 17, 18, -1, - 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -1, 138, 139, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 13, 14, 15, 16, 17, 18, -1, + 20, -1, -1, -1, -1, 25, -1, 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, - 90, -1, 92, 93, -1, -1, -1, -1, -1, -1, + 90, -1, -1, 93, -1, -1, -1, -1, -1, 99, -1, 101, -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, 118, 119, - -1, 121, 122, -1, 124, 125, 126, 127, 128, 129, + -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, 0, -1, -1, 139, - 140, -1, 142, -1, -1, 145, 146, 147, 148, 13, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 13, 14, 15, -1, 17, 18, -1, 20, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -5160,10 +5258,80 @@ static const yytype_int16 yycheck[] = -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, 118, 119, -1, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, -1, 139, 140, -1, 142, -1, - -1, 145, 146, 147, 148, 1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - -1, -1, 18, 19, -1, 21, 22, 23, 24, -1, + -1, -1, 0, -1, 138, 139, 140, -1, 142, -1, + -1, 145, 146, 147, 148, 13, 14, 15, -1, 17, + 18, -1, 20, -1, -1, -1, -1, 25, 26, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, + 38, -1, 40, 41, 42, 43, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, + 88, 89, 90, -1, 92, 93, -1, -1, -1, -1, + -1, -1, -1, 101, -1, -1, -1, 105, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, + 118, 119, -1, 121, 122, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, -1, 0, -1, + 138, 139, 140, -1, 142, -1, -1, 145, 146, 147, + 148, 13, 14, 15, -1, 17, 18, -1, 20, -1, + -1, -1, -1, 25, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, + 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, -1, -1, -1, -1, 88, 89, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 115, -1, -1, 118, 119, -1, 121, + 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, -1, 0, -1, -1, 139, 140, -1, + 142, -1, -1, 145, 146, 147, 148, 13, 14, 15, + -1, 17, 18, -1, 20, -1, -1, -1, -1, 25, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 37, 38, -1, 40, 41, 42, 43, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, + -1, -1, 88, 89, 90, -1, 92, 93, -1, -1, + -1, -1, -1, -1, -1, 101, -1, -1, -1, 105, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, + -1, -1, 118, 119, -1, 121, 122, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, + -1, -1, -1, 139, 140, -1, 142, -1, -1, 145, + 146, 147, 148, 1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, + 18, 19, -1, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, 115, -1, -1, + 118, 119, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 134, 135, 136, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 146, 1, + 148, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, -1, -1, 15, -1, 17, 18, 19, -1, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, 135, 136, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 146, 1, 148, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, -1, -1, 15, + -1, -1, 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, @@ -5177,8 +5345,8 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, 146, 1, 148, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, -1, -1, 15, -1, 17, 18, 19, - -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 10, 11, 12, -1, -1, 15, -1, -1, 18, 19, + -1, 21, 22, 23, 24, 25, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, @@ -5192,7 +5360,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, 134, 135, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, 146, 1, 148, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, 15, -1, -1, 18, 19, 20, 21, 22, 23, + -1, 15, -1, -1, 18, 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, 52, 53, @@ -5202,343 +5370,23 @@ static const yytype_int16 yycheck[] = 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, - 114, 115, -1, -1, 118, 119, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 134, 135, 136, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 146, 1, 148, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, -1, -1, 15, -1, -1, - 18, 19, -1, 21, 22, 23, 24, -1, -1, -1, - -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, - -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, 115, -1, -1, - 118, 119, 1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, -1, -1, 134, 135, 136, -1, - 19, -1, 21, 22, 23, 24, -1, -1, 146, -1, - 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, - 39, -1, -1, -1, -1, -1, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, - -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, - -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, - -1, 110, 111, 112, -1, 114, 115, -1, -1, 118, - 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 134, 135, 136, -1, -1, - 139, -1, -1, -1, -1, -1, -1, 146, 1, 148, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - -1, 14, 15, -1, -1, -1, 19, -1, 21, 22, - 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, - 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, - -1, -1, 45, -1, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, - 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, - -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, - -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, - -1, 114, 115, -1, -1, 118, 119, 1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, 134, 135, 136, -1, 19, -1, 21, 22, 23, - 24, -1, -1, 146, -1, 148, 30, 31, 32, 33, - 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, - -1, 45, -1, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, - -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, - 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, 115, -1, -1, 118, 119, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 134, 135, 136, -1, 19, -1, 21, 22, 23, 24, - -1, 145, 146, -1, 148, 30, 31, 32, 33, 34, + -1, -1, 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, - 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, - 115, -1, -1, 118, 119, 1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, -1, -1, 134, - 135, 136, -1, 19, -1, 21, 22, 23, 24, -1, - 145, 146, -1, 148, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, - -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, - 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, - -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, - 106, 107, 108, -1, 110, 111, 112, -1, 114, 115, - -1, -1, 118, 119, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 134, 135, - 136, -1, -1, 139, -1, -1, -1, -1, -1, -1, - 146, 1, 148, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, -1, -1, 15, -1, -1, -1, 19, - -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, - 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, - -1, -1, -1, -1, -1, 45, -1, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, - 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, - 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, - -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, - 110, 111, 112, -1, 114, 115, -1, -1, 118, 119, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, -1, -1, 134, 135, 136, -1, 19, -1, - 21, 22, 23, 24, -1, -1, 146, -1, 148, 30, - 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, - -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, - -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, - 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, - -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, - 111, 112, -1, 114, 115, -1, -1, 118, 119, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, -1, -1, 134, 135, 136, -1, 19, -1, 21, - 22, 23, 24, -1, -1, 146, -1, 148, 30, 31, - 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, - -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, - -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, - -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, - -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, - 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - -1, -1, 134, 135, 136, -1, 19, -1, 21, 22, - 23, 24, -1, -1, 146, -1, 148, 30, 31, 32, - 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, - -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, - 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, - -1, 94, 95, -1, 97, 98, -1, -1, -1, -1, - -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, - -1, 114, 115, -1, -1, 118, 119, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, - -1, 134, 135, 136, -1, 19, -1, 21, 22, 23, - 24, -1, -1, 146, -1, 148, 30, 31, 32, 33, - 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, - -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, - -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, -1, -1, -1, -1, - 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, - 114, 115, -1, -1, 118, 119, -1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - 134, 135, 136, -1, 19, -1, 21, 22, 23, 24, - -1, -1, 146, -1, 148, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, - -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, - 95, -1, 97, 98, -1, -1, -1, -1, -1, 104, - -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, - 135, 136, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 148, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, - -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, -1, -1, -1, -1, -1, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, 135, 136, -1, -1, - -1, -1, -1, -1, 143, 144, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, 19, -1, 21, 22, 23, 24, -1, 26, - -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, - -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, - -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, - 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, - 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, - -1, 138, -1, -1, -1, -1, -1, 144, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, -1, -1, 19, -1, 21, 22, 23, 24, - -1, 26, -1, -1, -1, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, - -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, - 95, -1, 97, 98, -1, 100, -1, 102, 103, 104, - -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, - -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, - 135, 136, 19, 138, 21, 22, 23, 24, -1, 144, - -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, - -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, - -1, -1, -1, -1, 91, 92, -1, 94, 95, -1, - 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, - 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, - -1, -1, -1, -1, 121, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, 134, 135, 136, - -1, 19, -1, 21, 22, 23, 24, 144, -1, -1, - -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, - -1, -1, -1, 91, 92, -1, 94, 95, -1, 97, - 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, - -1, -1, -1, 121, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, 134, 135, 136, -1, - 19, -1, 21, 22, 23, 24, 144, -1, -1, -1, - -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, - 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, - -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, - -1, 100, -1, 102, 103, 104, -1, 106, 107, 108, - -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, - 21, 22, 23, 24, -1, 144, -1, -1, -1, 30, - 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, - -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, - -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, - 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, - -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, - 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 134, 135, 136, -1, -1, -1, -1, - -1, -1, -1, 144, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, - -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, -1, -1, -1, -1, -1, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, -1, - -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, - 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 100, 101, 102, -1, -1, -1, -1, 107, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, 135, 136, -1, -1, - -1, -1, -1, -1, 143, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, - -1, -1, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, -1, -1, -1, -1, -1, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, - -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, - -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, - 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 100, 101, 102, -1, -1, -1, -1, 107, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, 135, 136, -1, - -1, -1, -1, -1, -1, 143, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, -1, -1, -1, -1, -1, 45, 46, - 47, 48, 49, 50, 51, 52, -1, -1, 55, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, - 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 100, 101, 102, -1, -1, -1, 106, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, - -1, -1, -1, -1, -1, -1, 143, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, -1, -1, -1, -1, -1, 45, - 46, 47, 48, 49, 50, 51, 52, -1, -1, 55, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, - 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, - 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, - 136, -1, -1, -1, -1, -1, -1, 143, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, -1, -1, 19, -1, 21, 22, 23, 24, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, - -1, 66, 67, -1, 69, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, - 95, -1, 97, 98, -1, -1, -1, -1, -1, 104, - -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, -1, -1, -1, -1, -1, -1, 19, 134, - 21, 22, 23, 24, -1, -1, -1, 142, -1, 30, - 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, - -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, - -1, -1, 63, -1, -1, 66, 67, -1, 69, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, - -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, - 111, 112, -1, 114, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, - -1, -1, 19, 134, 21, 22, 23, 24, -1, -1, - -1, 142, -1, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 39, -1, -1, -1, -1, -1, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, - -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, - 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, - 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, - -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, -1, -1, -1, 134, 135, 136, + 135, 136, -1, -1, 139, -1, -1, -1, -1, -1, + -1, 146, 1, 148, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, 48, @@ -5548,22 +5396,137 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, - -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, + -1, 110, 111, 112, -1, 114, 115, -1, -1, 118, + 119, 1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, -1, -1, 134, 135, 136, -1, 19, + -1, 21, 22, 23, 24, -1, -1, 146, -1, 148, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, 45, -1, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, 115, -1, -1, 118, 119, + 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, -1, -1, 134, 135, 136, -1, 19, -1, + 21, 22, 23, 24, -1, 145, 146, -1, 148, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, 45, -1, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, + -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, + 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, + -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, + 111, 112, -1, 114, 115, -1, -1, 118, 119, 1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, -1, -1, 134, 135, 136, -1, 19, -1, 21, + 22, 23, 24, -1, 145, 146, -1, 148, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, 135, 136, -1, -1, 139, -1, -1, + -1, -1, -1, -1, 146, 1, 148, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, -1, -1, 15, + -1, -1, -1, 19, -1, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, + -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, + 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, + -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, + 106, 107, 108, -1, 110, 111, 112, -1, 114, 115, + -1, -1, 118, 119, -1, -1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, -1, -1, 134, 135, + 136, -1, 19, -1, 21, 22, 23, 24, -1, -1, + 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 39, -1, -1, -1, -1, -1, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, + 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, + -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, + 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, + 107, 108, -1, 110, 111, 112, -1, 114, 115, -1, + -1, 118, 119, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, -1, -1, 134, 135, 136, + -1, 19, -1, 21, 22, 23, 24, -1, -1, 146, + -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, 115, -1, -1, + 118, 119, -1, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, -1, -1, -1, 134, 135, 136, -1, + 19, -1, 21, 22, 23, 24, -1, -1, 146, -1, + 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, + 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, + 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, + -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, + -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, + -1, 110, 111, 112, -1, 114, 115, -1, -1, 118, + 119, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, 134, 135, 136, -1, 19, + -1, 21, 22, 23, 24, -1, -1, 146, -1, 148, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, - 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + 11, -1, -1, -1, 134, 135, 136, -1, 19, -1, + 21, 22, 23, 24, -1, -1, 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, - 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, - -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, - 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, + 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, + -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, + 111, 112, -1, 114, 115, -1, -1, 118, 119, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 134, 135, 136, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 148, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 69, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 135, 136, -1, -1, -1, -1, -1, -1, 143, 144, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, - 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, 19, -1, 21, 22, + 23, 24, -1, 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, @@ -5572,104 +5535,12 @@ static const yytype_int16 yycheck[] = -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, - -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, 134, 135, 136, 19, -1, 21, 22, 23, 24, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, - -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, - 95, -1, 97, 98, -1, 100, -1, 102, 103, 104, - -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, - -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, - 135, 136, 19, -1, 21, 22, 23, 24, -1, -1, - -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, - -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, - -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, - 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, - 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, - -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, - 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, - -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, - 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, - -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, - -1, 100, -1, 102, -1, 104, -1, 106, 107, 108, - -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, - 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, - 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, - -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, - -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, - 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, - -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, - 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, - 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, - 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, - -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, - 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, + -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, - -1, 94, 95, -1, 97, 98, -1, 100, -1, 102, - -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, - -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, 134, 135, 136, 19, -1, 21, 22, 23, 24, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, - -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, - 95, -1, 97, 98, -1, -1, -1, 102, -1, 104, - -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, - -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, - 135, 136, 19, -1, 21, 22, 23, 24, -1, -1, - -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, - -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, - -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, - 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, - 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, - -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, - 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, - -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, - 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, - -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, - -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, - -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, - 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + -1, 134, 135, 136, -1, 138, -1, -1, -1, -1, + -1, 144, 3, 4, 5, 6, 7, 8, 9, 10, + 11, -1, -1, -1, -1, -1, -1, -1, 19, -1, + 21, 22, 23, 24, -1, 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, @@ -5677,172 +5548,94 @@ static const yytype_int16 yycheck[] = 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, - -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, + -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, - 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + -1, -1, -1, 134, 135, 136, 19, 138, 21, 22, + 23, 24, -1, 144, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, - -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, - -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, - -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, 134, 135, 136, 19, -1, 21, 22, 23, 24, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, - -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, - 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, - -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, - -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, - 135, 136, 19, -1, 21, 22, 23, 24, -1, -1, - -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, - -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, - -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, - 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, - 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, - -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, - 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, - -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, - 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, - -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, - -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, - -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, - 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, - 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, - -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, - -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, - 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, - -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, - 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, - 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, - 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, - -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, - 63, -1, -1, 66, 67, -1, 69, -1, -1, -1, + -1, 84, 85, -1, -1, -1, -1, -1, 91, 92, + -1, 94, 95, -1, 97, 98, -1, 100, -1, 102, + 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, + -1, 114, -1, -1, -1, -1, -1, -1, 121, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, + -1, 134, 135, 136, -1, 19, -1, 21, 22, 23, + 24, 144, -1, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, + -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, -1, -1, 91, -1, - -1, 94, 95, -1, 97, 98, -1, -1, -1, -1, - -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, - -1, 114, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - 19, 134, 21, 22, 23, 24, -1, -1, -1, -1, - -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, - 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, - 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, + 94, 95, -1, 97, 98, -1, 100, -1, 102, 103, + 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, + 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, + 144, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, + 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, + -1, 97, 98, -1, 100, -1, 102, 103, 104, -1, + 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, - -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, - -1, 110, 111, 112, -1, 114, -1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, -1, -1, 19, 134, 21, 22, 23, 24, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, - -1, 66, 67, -1, 69, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 134, 135, + 136, -1, -1, -1, -1, -1, -1, -1, 144, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, + -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, -1, -1, -1, -1, -1, -1, 63, + -1, -1, -1, -1, -1, 69, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, + -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, - 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, - -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, -1, -1, -1, -1, -1, -1, 19, 134, - 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, - 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, - -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, - -1, -1, 63, -1, -1, 66, 67, -1, 69, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, - -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, - 111, 112, -1, 114, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, 19, 134, 21, 22, 23, 24, -1, -1, - -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, - -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, - 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, - 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - -1, -1, -1, -1, -1, -1, 19, 134, 21, 22, - 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, - 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, - -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, - 63, -1, -1, 66, 67, -1, 69, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, - -1, 94, 95, -1, 97, 98, -1, -1, -1, -1, - -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, - -1, 114, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - 19, 134, 21, 22, 23, 24, -1, -1, -1, -1, - -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, - 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, - 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, - -1, -1, 51, 52, -1, 104, 55, 106, 107, 108, - -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, - -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, 80, 81, -1, -1, 134, -1, 86, 87, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, 135, 136, 51, 52, - -1, -1, 55, -1, 143, 144, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -1, 135, 136, -1, -1, -1, -1, -1, -1, 143, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, + -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, -1, -1, -1, -1, -1, + 63, -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, 135, 136, 51, 52, -1, -1, 55, -1, - 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, - 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, + 133, -1, 135, 136, -1, -1, -1, -1, -1, -1, + 143, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, + -1, -1, -1, 45, 46, 47, 48, 49, 50, 51, + 52, -1, -1, 55, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, + 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, + -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + 102, -1, -1, -1, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, - 51, 52, -1, -1, 55, -1, 143, 144, -1, -1, + -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, 135, 136, -1, -1, -1, -1, -1, + -1, 143, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, -1, + -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, + 51, 52, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, @@ -5850,153 +5643,512 @@ static const yytype_int16 yycheck[] = 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, 135, 136, 51, 52, -1, -1, - 55, -1, 143, 144, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, - -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - 135, 136, 51, 52, -1, -1, 55, -1, 143, 144, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, 135, 136, 51, 52, - -1, -1, 55, -1, 143, 144, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, - -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, 135, 136, 51, 52, -1, -1, 55, -1, - 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, - 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, - 51, 52, -1, -1, 55, -1, 143, 144, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, - 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, 135, 136, 51, 52, -1, -1, - 55, -1, 143, 144, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, - -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - 135, 136, 51, 52, -1, -1, 55, -1, 143, 144, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, 135, 136, 51, 52, - -1, -1, 55, -1, 143, 144, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, - -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, 135, 136, 51, 52, -1, -1, 55, -1, - 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, - 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, - 51, 52, -1, -1, 55, -1, 143, 144, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, - 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, - -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, -1, -1, -1, -1, - -1, -1, 143, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 101, -1, -1, -1, -1, 44, -1, -1, + -1, -1, 143, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, + -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, - -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, - -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, 19, 134, 21, 22, 23, 24, -1, + -1, -1, 142, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, + 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, + -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, + 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, + -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, -1, -1, -1, 134, 135, + 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, + -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, + 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, + -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, + 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, + -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, + 94, 95, -1, 97, 98, -1, 100, -1, 102, 103, + 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, + 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, + 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, + -1, 97, 98, -1, 100, -1, 102, 103, 104, -1, + 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, + -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, + 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, 102, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, + -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + -1, -1, 102, 103, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, + 102, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, + -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, + 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, + -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, + 94, 95, -1, 97, 98, -1, -1, -1, 102, -1, + 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, + 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, + 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, + -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, + 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, + -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, + 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, + -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, + -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, + 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, + -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, + 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, + 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, + 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, + 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, + -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, + 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, + -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, + 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, + -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 88, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 134, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, + -1, -1, -1, -1, -1, 19, 134, 21, 22, 23, + 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, + -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, + 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, + 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, + 114, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, + 134, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + -1, -1, -1, 19, 134, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, + 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, + -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, + 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, 19, 134, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 134, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, + -1, -1, -1, -1, -1, 19, 134, 21, 22, 23, + 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, + -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, + 94, 95, -1, 97, 98, -1, -1, 51, 52, -1, + 104, 55, 106, 107, 108, -1, 110, 111, 112, -1, + 114, -1, -1, -1, -1, -1, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, + 134, -1, 86, 87, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, -1, -1, -1, -1, 142, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, -1, -1, -1, -1, 142, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, + -1, 135, 136, 51, 52, -1, -1, 55, -1, 143, + 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, + -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, - -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, -1, -1, -1, -1, 142, + -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, 51, + 52, -1, -1, 55, -1, 143, 144, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, + 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, + -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, 135, 136, 51, 52, -1, -1, 55, + -1, 143, 144, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, + 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, + 136, 51, 52, -1, -1, 55, -1, 143, 144, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, + 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, -1, 135, 136, 51, 52, -1, + -1, 55, -1, 143, 144, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, + -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -1, 135, 136, 51, 52, -1, -1, 55, -1, 143, + 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, + -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, 51, + 52, -1, -1, 55, -1, 143, 144, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, + 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, + -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, 135, 136, 51, 52, -1, -1, 55, + -1, 143, 144, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, + 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, + 136, 51, 52, -1, -1, 55, -1, 143, 144, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, + 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, -1, 135, 136, 51, 52, -1, + -1, 55, -1, 143, 144, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, + -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -1, 135, 136, 51, 52, -1, -1, 55, -1, 143, + 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, + -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, 51, + 52, -1, -1, 55, -1, 143, 144, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, + 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, + -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, 135, 136, 51, 52, -1, -1, 55, + -1, 143, 144, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, + 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, + 136, 51, 52, -1, -1, 55, -1, 143, 144, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, + 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, -1, 135, 136, 51, 52, -1, + -1, 55, -1, 143, 144, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, + -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -1, 135, 136, -1, -1, -1, -1, -1, -1, 143, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, - 142, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 132, 133, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 72, 73, 74, 75, 76, 77, 78, + -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, -1, -1, -1, -1, -1, -1, + -1, -1, 142, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 72, 73, 74, 75, 76, + 129, 130, 131, 132, 133, -1, -1, -1, -1, -1, + -1, -1, -1, 142, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, + -1, -1, -1, -1, 142, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, - -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, 88, 89, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133 + -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, -1, -1, 88, 89, -1, -1, -1, 93, -1, + -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, + -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -6011,11 +6163,11 @@ static const yytype_int16 yystos[] = 91, 94, 95, 97, 98, 100, 104, 106, 107, 108, 110, 111, 112, 114, 134, 135, 136, 152, 153, 154, 160, 161, 163, 164, 166, 168, 169, 172, 173, 175, - 176, 177, 179, 180, 189, 203, 220, 241, 242, 252, - 253, 254, 258, 259, 260, 266, 267, 268, 270, 271, - 272, 273, 274, 275, 311, 324, 0, 154, 21, 22, + 176, 177, 179, 180, 189, 203, 220, 241, 242, 258, + 259, 260, 264, 265, 266, 272, 273, 274, 276, 277, + 278, 279, 280, 281, 317, 330, 0, 154, 21, 22, 30, 31, 32, 39, 51, 55, 69, 88, 91, 94, - 134, 164, 166, 181, 182, 203, 220, 272, 275, 311, + 134, 164, 166, 181, 182, 203, 220, 278, 281, 317, 182, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 30, 31, 32, 33, 34, @@ -6023,95 +6175,98 @@ static const yytype_int16 yystos[] = 50, 51, 52, 55, 70, 71, 72, 73, 74, 75, 76, 77, 80, 81, 86, 87, 88, 89, 100, 101, 102, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 135, 136, 143, 144, 183, 187, 188, 274, 306, - 204, 91, 163, 164, 166, 167, 180, 189, 220, 272, - 273, 275, 167, 210, 212, 69, 91, 173, 180, 220, - 225, 272, 275, 33, 34, 35, 36, 48, 49, 50, - 51, 55, 106, 183, 184, 185, 268, 115, 118, 119, - 146, 148, 167, 262, 263, 264, 317, 321, 322, 323, + 133, 135, 136, 143, 144, 183, 187, 188, 280, 312, + 204, 91, 163, 164, 166, 167, 180, 189, 220, 278, + 279, 281, 167, 210, 212, 69, 91, 173, 180, 220, + 225, 278, 281, 33, 34, 35, 36, 48, 49, 50, + 51, 55, 106, 183, 184, 185, 274, 115, 118, 119, + 146, 148, 167, 268, 269, 270, 323, 327, 328, 329, 51, 69, 100, 102, 103, 135, 172, 189, 195, 198, - 201, 254, 309, 310, 195, 195, 144, 192, 193, 196, - 197, 324, 192, 197, 144, 318, 184, 155, 138, 189, + 201, 260, 315, 316, 195, 195, 144, 192, 193, 196, + 197, 330, 192, 197, 144, 324, 184, 155, 138, 189, 220, 189, 189, 189, 55, 1, 94, 157, 158, 160, - 174, 175, 324, 205, 207, 190, 201, 309, 324, 189, - 308, 309, 324, 91, 142, 179, 220, 272, 275, 208, - 53, 54, 56, 63, 69, 107, 183, 269, 63, 64, - 65, 116, 117, 255, 256, 61, 255, 62, 255, 63, - 255, 63, 255, 58, 59, 168, 189, 189, 317, 323, + 174, 175, 330, 205, 207, 190, 201, 315, 330, 189, + 314, 315, 330, 91, 142, 179, 220, 278, 281, 208, + 53, 54, 56, 63, 69, 107, 183, 275, 63, 64, + 65, 116, 117, 261, 262, 61, 261, 62, 261, 63, + 261, 63, 261, 58, 59, 168, 189, 189, 323, 329, 40, 41, 42, 43, 44, 37, 38, 51, 53, 54, 55, 56, 69, 83, 94, 100, 101, 102, 103, 128, - 131, 144, 278, 279, 280, 281, 282, 285, 286, 287, - 288, 290, 291, 292, 293, 295, 296, 297, 300, 301, - 302, 303, 304, 324, 278, 280, 28, 240, 121, 142, + 131, 144, 284, 285, 286, 287, 288, 291, 292, 293, + 294, 296, 297, 298, 299, 301, 302, 303, 306, 307, + 308, 309, 310, 330, 284, 286, 28, 240, 121, 142, 94, 100, 176, 121, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 88, 89, 93, 101, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 90, 105, 140, 147, 315, 90, 315, 316, 26, - 138, 244, 254, 92, 92, 192, 197, 244, 163, 51, - 55, 181, 58, 59, 279, 125, 276, 90, 140, 315, - 219, 307, 90, 147, 314, 156, 157, 55, 278, 278, - 16, 221, 321, 121, 90, 140, 315, 92, 92, 221, - 167, 167, 55, 90, 140, 315, 25, 107, 142, 265, - 317, 115, 264, 20, 246, 321, 57, 57, 189, 189, - 189, 93, 142, 199, 200, 324, 57, 199, 200, 85, - 194, 195, 201, 309, 324, 195, 163, 317, 319, 163, - 322, 159, 138, 157, 90, 315, 92, 160, 174, 145, - 317, 323, 319, 160, 319, 141, 200, 320, 323, 200, - 320, 139, 320, 55, 176, 177, 178, 142, 90, 140, - 315, 144, 237, 290, 295, 63, 255, 257, 261, 262, - 63, 256, 61, 62, 63, 63, 101, 101, 154, 167, - 167, 167, 167, 160, 163, 163, 57, 121, 57, 321, - 294, 85, 290, 295, 121, 156, 189, 142, 305, 324, - 51, 142, 305, 321, 142, 289, 189, 142, 289, 51, - 142, 289, 51, 121, 156, 239, 100, 168, 189, 201, + 133, 90, 105, 140, 147, 321, 90, 321, 322, 26, + 138, 244, 260, 92, 92, 192, 197, 244, 163, 51, + 55, 181, 58, 59, 285, 125, 282, 90, 140, 321, + 219, 313, 90, 147, 320, 156, 157, 55, 284, 284, + 16, 221, 327, 121, 90, 140, 321, 92, 92, 221, + 167, 167, 55, 90, 140, 321, 25, 107, 142, 271, + 323, 115, 270, 20, 246, 327, 57, 57, 189, 189, + 189, 93, 142, 199, 200, 330, 57, 199, 200, 85, + 194, 195, 201, 315, 330, 195, 163, 323, 325, 163, + 328, 159, 138, 157, 90, 321, 92, 160, 174, 145, + 323, 329, 325, 160, 325, 141, 200, 326, 329, 200, + 326, 139, 326, 55, 176, 177, 178, 142, 90, 140, + 321, 144, 237, 296, 301, 63, 261, 263, 267, 268, + 63, 262, 61, 62, 63, 63, 101, 101, 154, 167, + 167, 167, 167, 160, 163, 163, 57, 121, 57, 327, + 300, 85, 296, 301, 121, 156, 189, 142, 311, 330, + 51, 142, 311, 327, 142, 295, 189, 142, 295, 51, + 142, 295, 51, 121, 156, 239, 100, 168, 189, 201, 202, 174, 142, 179, 142, 161, 162, 168, 180, 189, - 191, 202, 220, 275, 189, 189, 189, 189, 189, 189, + 191, 202, 220, 281, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 51, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 51, 52, 55, 187, 192, 312, 313, 194, 201, - 51, 52, 55, 187, 192, 312, 51, 55, 312, 245, - 243, 162, 189, 191, 162, 191, 99, 171, 217, 277, - 216, 51, 55, 181, 312, 194, 312, 156, 163, 165, - 15, 13, 248, 324, 121, 121, 157, 16, 51, 55, - 194, 51, 55, 157, 27, 222, 321, 222, 51, 55, - 194, 51, 55, 214, 186, 157, 246, 189, 201, 15, - 189, 189, 189, 318, 100, 189, 198, 309, 189, 310, - 319, 145, 317, 200, 200, 319, 145, 184, 152, 139, - 191, 319, 160, 206, 309, 176, 178, 51, 55, 194, - 51, 55, 290, 209, 142, 63, 157, 262, 189, 189, - 51, 69, 100, 226, 295, 319, 319, 142, 172, 189, - 15, 51, 69, 282, 287, 304, 85, 288, 293, 300, - 302, 295, 297, 302, 51, 295, 172, 189, 15, 79, - 126, 231, 233, 324, 189, 200, 319, 178, 142, 44, - 121, 44, 90, 140, 315, 318, 92, 92, 192, 197, - 141, 200, 92, 92, 193, 197, 193, 197, 231, 231, - 170, 321, 167, 156, 141, 15, 319, 183, 189, 202, - 249, 324, 18, 224, 324, 17, 223, 224, 92, 92, - 141, 92, 92, 224, 211, 213, 141, 167, 184, 139, - 15, 200, 221, 189, 199, 85, 309, 139, 319, 320, - 141, 234, 318, 29, 113, 238, 139, 142, 292, 319, - 142, 85, 44, 44, 305, 321, 142, 289, 142, 289, - 142, 289, 142, 289, 289, 44, 44, 228, 230, 232, - 281, 283, 284, 287, 295, 296, 298, 299, 302, 304, - 156, 100, 189, 178, 160, 189, 51, 55, 194, 51, - 55, 57, 123, 162, 191, 168, 191, 171, 92, 162, - 191, 162, 191, 171, 244, 240, 156, 157, 231, 218, - 321, 15, 93, 250, 324, 157, 14, 251, 324, 167, - 15, 92, 15, 157, 157, 222, 189, 157, 319, 200, - 145, 146, 156, 157, 227, 142, 100, 319, 189, 189, - 295, 302, 295, 295, 189, 189, 234, 234, 91, 220, - 142, 305, 305, 142, 229, 220, 142, 229, 142, 229, - 15, 189, 141, 189, 189, 162, 191, 15, 139, 157, - 156, 91, 180, 220, 272, 275, 221, 157, 221, 15, - 15, 215, 224, 246, 247, 51, 235, 236, 291, 15, - 139, 295, 295, 142, 292, 289, 142, 289, 289, 289, - 126, 126, 55, 90, 283, 287, 142, 228, 229, 299, - 302, 295, 298, 302, 295, 139, 15, 55, 90, 140, - 315, 157, 157, 157, 142, 318, 142, 295, 142, 295, - 51, 55, 305, 142, 229, 142, 229, 142, 229, 142, - 229, 229, 51, 55, 194, 51, 55, 248, 223, 15, - 236, 295, 289, 295, 302, 295, 295, 141, 229, 142, - 229, 229, 229, 295, 229 + 189, 51, 52, 55, 187, 192, 318, 319, 194, 201, + 51, 52, 55, 187, 192, 318, 51, 55, 318, 245, + 243, 162, 189, 191, 162, 191, 99, 171, 217, 283, + 216, 51, 55, 181, 318, 194, 318, 156, 163, 165, + 15, 13, 254, 330, 121, 121, 157, 16, 51, 55, + 194, 51, 55, 157, 27, 222, 327, 222, 51, 55, + 194, 51, 55, 214, 186, 157, 25, 246, 189, 201, + 15, 189, 189, 189, 324, 100, 189, 198, 315, 189, + 316, 325, 145, 323, 200, 200, 325, 145, 184, 152, + 139, 191, 325, 160, 206, 315, 176, 178, 51, 55, + 194, 51, 55, 296, 209, 142, 63, 157, 268, 189, + 189, 51, 69, 100, 226, 301, 325, 325, 142, 172, + 189, 15, 51, 69, 288, 293, 310, 85, 294, 299, + 306, 308, 301, 303, 308, 51, 301, 172, 189, 15, + 79, 126, 231, 233, 330, 189, 200, 325, 178, 142, + 44, 121, 44, 90, 140, 321, 324, 92, 92, 192, + 197, 141, 200, 92, 92, 193, 197, 193, 197, 231, + 231, 170, 327, 167, 156, 141, 15, 325, 183, 189, + 202, 255, 330, 18, 224, 330, 17, 223, 224, 92, + 92, 141, 92, 92, 224, 211, 213, 141, 167, 184, + 139, 34, 35, 36, 51, 55, 63, 91, 220, 249, + 250, 251, 252, 253, 273, 277, 15, 200, 221, 189, + 199, 85, 315, 139, 325, 326, 141, 234, 324, 29, + 113, 238, 139, 142, 298, 325, 142, 85, 44, 44, + 311, 327, 142, 295, 142, 295, 142, 295, 142, 295, + 295, 44, 44, 228, 230, 232, 287, 289, 290, 293, + 301, 302, 304, 305, 308, 310, 156, 100, 189, 178, + 160, 189, 51, 55, 194, 51, 55, 57, 123, 162, + 191, 168, 191, 171, 92, 162, 191, 162, 191, 171, + 244, 240, 156, 157, 231, 218, 327, 15, 93, 256, + 330, 157, 14, 257, 330, 167, 15, 92, 15, 157, + 157, 222, 55, 90, 221, 93, 126, 189, 157, 325, + 200, 145, 146, 156, 157, 227, 142, 100, 325, 189, + 189, 301, 308, 301, 301, 189, 189, 234, 234, 91, + 220, 142, 311, 311, 142, 229, 220, 142, 229, 142, + 229, 15, 189, 141, 189, 189, 162, 191, 15, 139, + 157, 156, 91, 180, 220, 278, 281, 221, 157, 221, + 15, 15, 215, 51, 55, 157, 51, 252, 224, 246, + 247, 51, 235, 236, 297, 15, 139, 301, 301, 142, + 298, 295, 142, 295, 295, 295, 126, 126, 55, 90, + 289, 293, 142, 228, 229, 305, 308, 301, 304, 308, + 301, 139, 15, 55, 90, 140, 321, 157, 157, 157, + 25, 224, 248, 142, 324, 142, 301, 142, 301, 55, + 311, 142, 229, 142, 229, 142, 229, 142, 229, 229, + 51, 55, 194, 51, 55, 254, 223, 15, 249, 15, + 236, 301, 295, 301, 308, 301, 301, 141, 221, 229, + 142, 229, 229, 229, 157, 301, 248, 229 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -6149,37 +6304,38 @@ static const yytype_int16 yyr1[] = 203, 203, 203, 203, 204, 203, 205, 206, 203, 207, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 208, 209, 203, 203, 203, 210, 211, - 203, 212, 213, 203, 203, 203, 214, 215, 203, 216, - 203, 217, 218, 203, 219, 203, 203, 203, 203, 203, - 203, 203, 220, 221, 221, 221, 222, 222, 223, 223, - 224, 224, 225, 225, 226, 226, 226, 226, 226, 226, - 226, 226, 227, 226, 228, 228, 228, 228, 229, 229, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 231, 231, 232, 233, 233, - 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, - 238, 239, 240, 241, 241, 241, 241, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 243, 244, 245, 244, - 246, 247, 247, 248, 248, 249, 249, 249, 250, 250, - 251, 251, 252, 252, 252, 252, 253, 253, 254, 254, - 254, 254, 255, 255, 256, 257, 256, 256, 256, 258, - 258, 259, 259, 260, 261, 261, 262, 262, 263, 263, - 264, 265, 264, 266, 266, 267, 267, 267, 268, 269, - 269, 269, 269, 269, 269, 270, 270, 271, 271, 271, - 271, 272, 272, 272, 272, 272, 273, 273, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 275, 275, 276, - 277, 276, 278, 278, 279, 279, 279, 280, 280, 280, - 280, 281, 281, 282, 282, 283, 283, 284, 284, 285, - 285, 286, 286, 287, 287, 288, 288, 288, 288, 289, - 289, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 291, 291, 291, 291, - 291, 292, 292, 293, 294, 293, 295, 295, 296, 297, - 298, 299, 299, 300, 300, 301, 301, 302, 302, 303, - 303, 304, 304, 305, 305, 306, 307, 306, 308, 308, - 309, 309, 310, 310, 310, 310, 310, 310, 310, 310, - 311, 311, 311, 312, 312, 312, 312, 313, 313, 313, - 314, 314, 315, 315, 316, 316, 317, 317, 318, 318, - 319, 320, 320, 320, 321, 321, 322, 322, 323, 323, - 324 + 203, 212, 213, 203, 203, 203, 203, 214, 215, 203, + 216, 203, 217, 218, 203, 219, 203, 203, 203, 203, + 203, 203, 203, 220, 221, 221, 221, 222, 222, 223, + 223, 224, 224, 225, 225, 226, 226, 226, 226, 226, + 226, 226, 226, 227, 226, 228, 228, 228, 228, 229, + 229, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 231, 231, 232, 233, + 233, 233, 234, 234, 235, 235, 236, 236, 237, 237, + 238, 238, 239, 240, 241, 241, 241, 241, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 243, 244, 245, + 244, 246, 247, 247, 248, 248, 249, 250, 250, 251, + 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 253, 254, 254, 255, 255, 255, 256, 256, 257, + 257, 258, 258, 258, 258, 259, 259, 260, 260, 260, + 260, 261, 261, 262, 263, 262, 262, 262, 264, 264, + 265, 265, 266, 267, 267, 268, 268, 269, 269, 270, + 271, 270, 272, 272, 273, 273, 273, 274, 275, 275, + 275, 275, 275, 275, 276, 276, 277, 277, 277, 277, + 278, 278, 278, 278, 278, 279, 279, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 281, 281, 282, 283, + 282, 284, 284, 285, 285, 285, 286, 286, 286, 286, + 287, 287, 288, 288, 289, 289, 290, 290, 291, 291, + 292, 292, 293, 293, 294, 294, 294, 294, 295, 295, + 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, + 296, 296, 296, 296, 296, 297, 297, 297, 297, 297, + 298, 298, 299, 300, 299, 301, 301, 302, 303, 304, + 305, 305, 306, 306, 307, 307, 308, 308, 309, 309, + 310, 310, 311, 311, 312, 313, 312, 314, 314, 315, + 315, 316, 316, 316, 316, 316, 316, 316, 316, 317, + 317, 317, 318, 318, 318, 318, 319, 319, 319, 320, + 320, 321, 321, 322, 322, 323, 323, 324, 324, 325, + 326, 326, 326, 327, 327, 328, 328, 329, 329, 330 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -6217,37 +6373,38 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 0, 4, 0, 0, 5, 0, 3, 3, 3, 2, 3, 3, 1, 2, 4, 3, 2, 1, 2, 0, 0, 5, 6, 6, 0, 0, - 7, 0, 0, 7, 5, 4, 0, 0, 9, 0, - 6, 0, 0, 8, 0, 5, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 1, 1, 5, - 1, 2, 1, 1, 1, 4, 6, 3, 5, 2, - 4, 1, 0, 4, 4, 2, 2, 1, 2, 0, - 6, 8, 4, 6, 4, 3, 6, 2, 4, 6, - 2, 4, 2, 4, 1, 1, 1, 0, 4, 1, - 4, 1, 4, 1, 3, 1, 1, 4, 1, 3, - 3, 0, 5, 2, 4, 5, 5, 2, 4, 4, - 3, 3, 3, 2, 1, 4, 0, 5, 0, 5, - 5, 1, 1, 6, 1, 1, 1, 1, 2, 1, - 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, - 2, 3, 1, 2, 1, 0, 4, 1, 2, 2, - 3, 2, 3, 1, 1, 2, 1, 2, 1, 2, - 1, 0, 4, 2, 3, 1, 4, 2, 2, 1, - 1, 1, 1, 1, 2, 2, 3, 1, 1, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 0, 4, 1, 1, 3, 5, 3, 1, 2, 4, - 2, 2, 2, 2, 1, 2, 1, 1, 3, 1, - 3, 1, 1, 2, 1, 4, 2, 2, 1, 2, - 0, 6, 8, 4, 6, 4, 6, 2, 4, 6, - 2, 4, 2, 4, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 1, 3, 2, 2, - 2, 1, 3, 1, 3, 1, 1, 2, 1, 1, - 1, 2, 1, 2, 1, 1, 0, 4, 1, 2, - 1, 3, 3, 3, 2, 2, 3, 3, 2, 1, + 7, 0, 0, 7, 5, 4, 9, 0, 0, 9, + 0, 6, 0, 0, 8, 0, 5, 4, 4, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 5, 1, 2, 1, 1, 1, 4, 6, 3, 5, + 2, 4, 1, 0, 4, 4, 2, 2, 1, 2, + 0, 6, 8, 4, 6, 4, 3, 6, 2, 4, + 6, 2, 4, 2, 4, 1, 1, 1, 0, 4, + 1, 4, 1, 4, 1, 3, 1, 1, 4, 1, + 3, 3, 0, 5, 2, 4, 5, 5, 2, 4, + 4, 3, 3, 3, 2, 1, 4, 0, 5, 0, + 5, 5, 1, 1, 1, 5, 1, 1, 3, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 2, 1, 6, 1, 1, 1, 1, 2, 1, 2, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, + 3, 1, 2, 1, 0, 4, 1, 2, 2, 3, + 2, 3, 1, 1, 2, 1, 2, 1, 2, 1, + 0, 4, 2, 3, 1, 4, 2, 2, 1, 1, + 1, 1, 1, 2, 2, 3, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 0, 2, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, - 0 + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 4, 1, 1, 3, 5, 3, 1, 2, 4, 2, + 2, 2, 2, 1, 2, 1, 1, 3, 1, 3, + 1, 1, 2, 1, 4, 2, 2, 1, 2, 0, + 6, 8, 4, 6, 4, 6, 2, 4, 6, 2, + 4, 2, 4, 1, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 1, 3, 2, 2, 2, + 1, 3, 1, 3, 1, 1, 2, 1, 1, 1, + 2, 1, 2, 1, 1, 0, 4, 1, 2, 1, + 3, 3, 3, 2, 2, 3, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 0, 2, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 2, 0 }; @@ -6914,7 +7071,7 @@ YYLTYPE yylloc = yyloc_default; -#line 6918 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7075 "mrbgems/mruby-compiler/core/y.tab.c" yylsp[0] = yylloc; goto yysetstate; @@ -7127,84 +7284,84 @@ yyreduce: switch (yyn) { case 2: /* $@1: %empty */ -#line 2055 "mrbgems/mruby-compiler/core/parse.y" +#line 2126 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_BEG; if (!p->locals) p->locals = cons(0,0); } -#line 7136 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7293 "mrbgems/mruby-compiler/core/y.tab.c" break; case 3: /* program: $@1 top_compstmt */ -#line 2060 "mrbgems/mruby-compiler/core/parse.y" +#line 2131 "mrbgems/mruby-compiler/core/parse.y" { p->tree = new_scope(p, (yyvsp[0].nd)); } -#line 7144 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7301 "mrbgems/mruby-compiler/core/y.tab.c" break; case 4: /* top_compstmt: top_stmts opt_terms */ -#line 2066 "mrbgems/mruby-compiler/core/parse.y" +#line 2137 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7152 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7309 "mrbgems/mruby-compiler/core/y.tab.c" break; case 5: /* top_stmts: none */ -#line 2072 "mrbgems/mruby-compiler/core/parse.y" +#line 2143 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7160 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7317 "mrbgems/mruby-compiler/core/y.tab.c" break; case 6: /* top_stmts: top_stmt */ -#line 2076 "mrbgems/mruby-compiler/core/parse.y" +#line 2147 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7168 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7325 "mrbgems/mruby-compiler/core/y.tab.c" break; case 7: /* top_stmts: top_stmts terms top_stmt */ -#line 2080 "mrbgems/mruby-compiler/core/parse.y" +#line 2151 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = stmts_push(p, (yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7176 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7333 "mrbgems/mruby-compiler/core/y.tab.c" break; case 8: /* top_stmts: error top_stmt */ -#line 2084 "mrbgems/mruby-compiler/core/parse.y" +#line 2155 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7184 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7341 "mrbgems/mruby-compiler/core/y.tab.c" break; case 10: /* @2: %empty */ -#line 2091 "mrbgems/mruby-compiler/core/parse.y" +#line 2162 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = local_switch(p); nvars_block(p); } -#line 7193 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7350 "mrbgems/mruby-compiler/core/y.tab.c" break; case 11: /* top_stmt: "'BEGIN'" @2 '{' top_compstmt '}' */ -#line 2096 "mrbgems/mruby-compiler/core/parse.y" +#line 2167 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "BEGIN not supported"); local_resume(p, (yyvsp[-3].nd)); nvars_unnest(p); (yyval.nd) = 0; } -#line 7204 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7361 "mrbgems/mruby-compiler/core/y.tab.c" break; case 12: /* bodystmt: compstmt opt_rescue opt_else opt_ensure */ -#line 2108 "mrbgems/mruby-compiler/core/parse.y" +#line 2179 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd)) { (yyval.nd) = new_rescue(p, (yyvsp[-3].nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); @@ -7225,89 +7382,89 @@ yyreduce: } } } -#line 7229 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7386 "mrbgems/mruby-compiler/core/y.tab.c" break; case 13: /* compstmt: stmts opt_terms */ -#line 2131 "mrbgems/mruby-compiler/core/parse.y" +#line 2202 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7237 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7394 "mrbgems/mruby-compiler/core/y.tab.c" break; case 14: /* stmts: none */ -#line 2137 "mrbgems/mruby-compiler/core/parse.y" +#line 2208 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7245 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7402 "mrbgems/mruby-compiler/core/y.tab.c" break; case 15: /* stmts: stmt */ -#line 2141 "mrbgems/mruby-compiler/core/parse.y" +#line 2212 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7253 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7410 "mrbgems/mruby-compiler/core/y.tab.c" break; case 16: /* stmts: stmts terms stmt */ -#line 2145 "mrbgems/mruby-compiler/core/parse.y" +#line 2216 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = stmts_push(p, (yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7261 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7418 "mrbgems/mruby-compiler/core/y.tab.c" break; case 17: /* stmts: error stmt */ -#line 2149 "mrbgems/mruby-compiler/core/parse.y" +#line 2220 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7269 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7426 "mrbgems/mruby-compiler/core/y.tab.c" break; case 18: /* $@3: %empty */ -#line 2154 "mrbgems/mruby-compiler/core/parse.y" +#line 2225 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_FNAME;} -#line 7275 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7432 "mrbgems/mruby-compiler/core/y.tab.c" break; case 19: /* stmt: "'alias'" fsym $@3 fsym */ -#line 2155 "mrbgems/mruby-compiler/core/parse.y" +#line 2226 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_alias(p, (yyvsp[-2].id), (yyvsp[0].id)); } -#line 7283 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7440 "mrbgems/mruby-compiler/core/y.tab.c" break; case 20: /* stmt: "'undef'" undef_list */ -#line 2159 "mrbgems/mruby-compiler/core/parse.y" +#line 2230 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_undef(p, (yyvsp[0].nd)); } -#line 7291 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7448 "mrbgems/mruby-compiler/core/y.tab.c" break; case 21: /* stmt: stmt "'if' modifier" expr_value */ -#line 2163 "mrbgems/mruby-compiler/core/parse.y" +#line 2234 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0); } -#line 7299 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7456 "mrbgems/mruby-compiler/core/y.tab.c" break; case 22: /* stmt: stmt "'unless' modifier" expr_value */ -#line 2167 "mrbgems/mruby-compiler/core/parse.y" +#line 2238 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), 0, (yyvsp[-2].nd)); } -#line 7307 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7464 "mrbgems/mruby-compiler/core/y.tab.c" break; case 23: /* stmt: stmt "'while' modifier" expr_value */ -#line 2171 "mrbgems/mruby-compiler/core/parse.y" +#line 2242 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd) && node_type_p((yyvsp[-2].nd), NODE_BEGIN)) { (yyval.nd) = new_while_mod(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); @@ -7316,11 +7473,11 @@ yyreduce: (yyval.nd) = new_while(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 7320 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7477 "mrbgems/mruby-compiler/core/y.tab.c" break; case 24: /* stmt: stmt "'until' modifier" expr_value */ -#line 2180 "mrbgems/mruby-compiler/core/parse.y" +#line 2251 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd) && node_type_p((yyvsp[-2].nd), NODE_BEGIN)) { (yyval.nd) = new_until_mod(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); @@ -7329,127 +7486,127 @@ yyreduce: (yyval.nd) = new_until(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 7333 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7490 "mrbgems/mruby-compiler/core/y.tab.c" break; case 25: /* stmt: stmt "'rescue' modifier" stmt */ -#line 2189 "mrbgems/mruby-compiler/core/parse.y" +#line 2260 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7341 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7498 "mrbgems/mruby-compiler/core/y.tab.c" break; case 26: /* stmt: "'END'" '{' compstmt '}' */ -#line 2193 "mrbgems/mruby-compiler/core/parse.y" +#line 2264 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-3]), p, "END not supported"); (yyval.nd) = new_postexe(p, (yyvsp[-1].nd)); } -#line 7350 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7507 "mrbgems/mruby-compiler/core/y.tab.c" break; case 28: /* stmt: mlhs '=' command_call */ -#line 2199 "mrbgems/mruby-compiler/core/parse.y" +#line 2270 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7358 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7515 "mrbgems/mruby-compiler/core/y.tab.c" break; case 29: /* stmt: lhs '=' mrhs */ -#line 2203 "mrbgems/mruby-compiler/core/parse.y" +#line 2274 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 7366 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7523 "mrbgems/mruby-compiler/core/y.tab.c" break; case 30: /* stmt: mlhs '=' arg */ -#line 2207 "mrbgems/mruby-compiler/core/parse.y" +#line 2278 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7374 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7531 "mrbgems/mruby-compiler/core/y.tab.c" break; case 31: /* stmt: mlhs '=' mrhs */ -#line 2211 "mrbgems/mruby-compiler/core/parse.y" +#line 2282 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 7382 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7539 "mrbgems/mruby-compiler/core/y.tab.c" break; case 32: /* stmt: arg "=>" "local variable or method" */ -#line 2215 "mrbgems/mruby-compiler/core/parse.y" +#line 2286 "mrbgems/mruby-compiler/core/parse.y" { node *lhs = new_lvar(p, (yyvsp[0].id)); assignable(p, lhs); (yyval.nd) = new_asgn(p, lhs, (yyvsp[-2].nd)); } -#line 7392 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7549 "mrbgems/mruby-compiler/core/y.tab.c" break; case 34: /* command_asgn: lhs '=' command_rhs */ -#line 2224 "mrbgems/mruby-compiler/core/parse.y" +#line 2295 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7400 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7557 "mrbgems/mruby-compiler/core/y.tab.c" break; case 35: /* command_asgn: var_lhs tOP_ASGN command_rhs */ -#line 2228 "mrbgems/mruby-compiler/core/parse.y" +#line 2299 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7408 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7565 "mrbgems/mruby-compiler/core/y.tab.c" break; case 36: /* command_asgn: primary_value '[' opt_call_args ']' tOP_ASGN command_rhs */ -#line 2232 "mrbgems/mruby-compiler/core/parse.y" +#line 2303 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7416 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7573 "mrbgems/mruby-compiler/core/y.tab.c" break; case 37: /* command_asgn: primary_value call_op "local variable or method" tOP_ASGN command_rhs */ -#line 2236 "mrbgems/mruby-compiler/core/parse.y" +#line 2307 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7424 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7581 "mrbgems/mruby-compiler/core/y.tab.c" break; case 38: /* command_asgn: primary_value call_op "constant" tOP_ASGN command_rhs */ -#line 2240 "mrbgems/mruby-compiler/core/parse.y" +#line 2311 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7432 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7589 "mrbgems/mruby-compiler/core/y.tab.c" break; case 39: /* command_asgn: primary_value "::" "constant" tOP_ASGN command_call */ -#line 2244 "mrbgems/mruby-compiler/core/parse.y" +#line 2315 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "constant re-assignment"); (yyval.nd) = 0; } -#line 7441 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7598 "mrbgems/mruby-compiler/core/y.tab.c" break; case 40: /* command_asgn: primary_value "::" "local variable or method" tOP_ASGN command_rhs */ -#line 2249 "mrbgems/mruby-compiler/core/parse.y" +#line 2320 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7449 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7606 "mrbgems/mruby-compiler/core/y.tab.c" break; case 41: /* command_asgn: defn_head f_opt_arglist_paren '=' command */ -#line 2253 "mrbgems/mruby-compiler/core/parse.y" +#line 2324 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); endless_method_name(p, (yyvsp[-3].nd)); @@ -7458,11 +7615,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 7462 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7619 "mrbgems/mruby-compiler/core/y.tab.c" break; case 42: /* command_asgn: defn_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ -#line 2262 "mrbgems/mruby-compiler/core/parse.y" +#line 2333 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); endless_method_name(p, (yyvsp[-5].nd)); @@ -7471,11 +7628,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 7475 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7632 "mrbgems/mruby-compiler/core/y.tab.c" break; case 43: /* command_asgn: defs_head f_opt_arglist_paren '=' command */ -#line 2271 "mrbgems/mruby-compiler/core/parse.y" +#line 2342 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); void_expr_error(p, (yyvsp[0].nd)); @@ -7484,11 +7641,11 @@ yyreduce: p->in_def--; p->in_single--; } -#line 7488 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7645 "mrbgems/mruby-compiler/core/y.tab.c" break; case 44: /* command_asgn: defs_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ -#line 2280 "mrbgems/mruby-compiler/core/parse.y" +#line 2351 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); void_expr_error(p, (yyvsp[-2].nd)); @@ -7497,79 +7654,79 @@ yyreduce: p->in_def--; p->in_single--; } -#line 7501 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7658 "mrbgems/mruby-compiler/core/y.tab.c" break; case 45: /* command_asgn: backref tOP_ASGN command_rhs */ -#line 2289 "mrbgems/mruby-compiler/core/parse.y" +#line 2360 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 7510 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7667 "mrbgems/mruby-compiler/core/y.tab.c" break; case 47: /* command_rhs: command_call "'rescue' modifier" stmt */ -#line 2297 "mrbgems/mruby-compiler/core/parse.y" +#line 2368 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7518 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7675 "mrbgems/mruby-compiler/core/y.tab.c" break; case 50: /* expr: expr "'and'" expr */ -#line 2305 "mrbgems/mruby-compiler/core/parse.y" +#line 2376 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7526 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7683 "mrbgems/mruby-compiler/core/y.tab.c" break; case 51: /* expr: expr "'or'" expr */ -#line 2309 "mrbgems/mruby-compiler/core/parse.y" +#line 2380 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7534 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7691 "mrbgems/mruby-compiler/core/y.tab.c" break; case 52: /* expr: "'not'" opt_nl expr */ -#line 2313 "mrbgems/mruby-compiler/core/parse.y" +#line 2384 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 7542 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7699 "mrbgems/mruby-compiler/core/y.tab.c" break; case 53: /* expr: '!' command_call */ -#line 2317 "mrbgems/mruby-compiler/core/parse.y" +#line 2388 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 7550 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7707 "mrbgems/mruby-compiler/core/y.tab.c" break; case 55: /* defn_head: "'def'" fname */ -#line 2324 "mrbgems/mruby-compiler/core/parse.y" +#line 2395 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_def(p, (yyvsp[0].id)); p->cmdarg_stack = 0; p->in_def++; nvars_block(p); } -#line 7561 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7718 "mrbgems/mruby-compiler/core/y.tab.c" break; case 56: /* $@4: %empty */ -#line 2333 "mrbgems/mruby-compiler/core/parse.y" +#line 2404 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_FNAME; } -#line 7569 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7726 "mrbgems/mruby-compiler/core/y.tab.c" break; case 57: /* defs_head: "'def'" singleton dot_or_colon $@4 fname */ -#line 2337 "mrbgems/mruby-compiler/core/parse.y" +#line 2408 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sdef(p, (yyvsp[-3].nd), (yyvsp[0].id)); p->cmdarg_stack = 0; @@ -7578,1054 +7735,1054 @@ yyreduce: nvars_block(p); p->lstate = EXPR_ENDFN; /* force for args */ } -#line 7582 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7739 "mrbgems/mruby-compiler/core/y.tab.c" break; case 58: /* expr_value: expr */ -#line 2348 "mrbgems/mruby-compiler/core/parse.y" +#line 2419 "mrbgems/mruby-compiler/core/parse.y" { if (!(yyvsp[0].nd)) (yyval.nd) = new_nil(p); else { (yyval.nd) = (yyvsp[0].nd); } } -#line 7593 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7750 "mrbgems/mruby-compiler/core/y.tab.c" break; case 62: /* block_command: block_call call_op2 operation2 command_args */ -#line 2362 "mrbgems/mruby-compiler/core/parse.y" +#line 2433 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 7601 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7758 "mrbgems/mruby-compiler/core/y.tab.c" break; case 63: /* $@5: %empty */ -#line 2368 "mrbgems/mruby-compiler/core/parse.y" +#line 2439 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); } -#line 7610 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7767 "mrbgems/mruby-compiler/core/y.tab.c" break; case 64: /* cmd_brace_block: "{" $@5 opt_block_param compstmt '}' */ -#line 2375 "mrbgems/mruby-compiler/core/parse.y" +#line 2446 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block(p, (yyvsp[-2].nd), (yyvsp[-1].nd)); local_unnest(p); nvars_unnest(p); } -#line 7620 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7777 "mrbgems/mruby-compiler/core/y.tab.c" break; case 65: /* command: operation command_args */ -#line 2383 "mrbgems/mruby-compiler/core/parse.y" +#line 2454 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7628 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7785 "mrbgems/mruby-compiler/core/y.tab.c" break; case 66: /* command: operation command_args cmd_brace_block */ -#line 2387 "mrbgems/mruby-compiler/core/parse.y" +#line 2458 "mrbgems/mruby-compiler/core/parse.y" { args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_fcall(p, (yyvsp[-2].id), (yyvsp[-1].nd)); } -#line 7637 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7794 "mrbgems/mruby-compiler/core/y.tab.c" break; case 67: /* command: primary_value call_op operation2 command_args */ -#line 2392 "mrbgems/mruby-compiler/core/parse.y" +#line 2463 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 7645 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7802 "mrbgems/mruby-compiler/core/y.tab.c" break; case 68: /* command: primary_value call_op operation2 command_args cmd_brace_block */ -#line 2396 "mrbgems/mruby-compiler/core/parse.y" +#line 2467 "mrbgems/mruby-compiler/core/parse.y" { args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); } -#line 7654 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7811 "mrbgems/mruby-compiler/core/y.tab.c" break; case 69: /* command: primary_value "::" operation2 command_args */ -#line 2401 "mrbgems/mruby-compiler/core/parse.y" +#line 2472 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); } -#line 7662 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7819 "mrbgems/mruby-compiler/core/y.tab.c" break; case 70: /* command: primary_value "::" operation2 command_args cmd_brace_block */ -#line 2405 "mrbgems/mruby-compiler/core/parse.y" +#line 2476 "mrbgems/mruby-compiler/core/parse.y" { args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), tCOLON2); } -#line 7671 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7828 "mrbgems/mruby-compiler/core/y.tab.c" break; case 71: /* command: "'super'" command_args */ -#line 2410 "mrbgems/mruby-compiler/core/parse.y" +#line 2481 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_super(p, (yyvsp[0].nd)); } -#line 7679 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7836 "mrbgems/mruby-compiler/core/y.tab.c" break; case 72: /* command: "'yield'" command_args */ -#line 2414 "mrbgems/mruby-compiler/core/parse.y" +#line 2485 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 7687 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7844 "mrbgems/mruby-compiler/core/y.tab.c" break; case 73: /* command: "'return'" call_args */ -#line 2418 "mrbgems/mruby-compiler/core/parse.y" +#line 2489 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_return(p, ret_args(p, (yyvsp[0].nd))); } -#line 7695 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7852 "mrbgems/mruby-compiler/core/y.tab.c" break; case 74: /* command: "'break'" call_args */ -#line 2422 "mrbgems/mruby-compiler/core/parse.y" +#line 2493 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_break(p, ret_args(p, (yyvsp[0].nd))); } -#line 7703 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7860 "mrbgems/mruby-compiler/core/y.tab.c" break; case 75: /* command: "'next'" call_args */ -#line 2426 "mrbgems/mruby-compiler/core/parse.y" +#line 2497 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_next(p, ret_args(p, (yyvsp[0].nd))); } -#line 7711 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7868 "mrbgems/mruby-compiler/core/y.tab.c" break; case 76: /* mlhs: mlhs_basic */ -#line 2432 "mrbgems/mruby-compiler/core/parse.y" +#line 2503 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 7719 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7876 "mrbgems/mruby-compiler/core/y.tab.c" break; case 77: /* mlhs: tLPAREN mlhs_inner rparen */ -#line 2436 "mrbgems/mruby-compiler/core/parse.y" +#line 2507 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7727 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7884 "mrbgems/mruby-compiler/core/y.tab.c" break; case 79: /* mlhs_inner: tLPAREN mlhs_inner rparen */ -#line 2443 "mrbgems/mruby-compiler/core/parse.y" +#line 2514 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7735 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7892 "mrbgems/mruby-compiler/core/y.tab.c" break; case 80: /* mlhs_basic: mlhs_list */ -#line 2449 "mrbgems/mruby-compiler/core/parse.y" +#line 2520 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 7743 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7900 "mrbgems/mruby-compiler/core/y.tab.c" break; case 81: /* mlhs_basic: mlhs_list mlhs_item */ -#line 2453 "mrbgems/mruby-compiler/core/parse.y" +#line 2524 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(push((yyvsp[-1].nd),(yyvsp[0].nd))); } -#line 7751 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7908 "mrbgems/mruby-compiler/core/y.tab.c" break; case 82: /* mlhs_basic: mlhs_list "*" mlhs_node */ -#line 2457 "mrbgems/mruby-compiler/core/parse.y" +#line 2528 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list2((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7759 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7916 "mrbgems/mruby-compiler/core/y.tab.c" break; case 83: /* mlhs_basic: mlhs_list "*" mlhs_node ',' mlhs_post */ -#line 2461 "mrbgems/mruby-compiler/core/parse.y" +#line 2532 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7767 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 84: /* mlhs_basic: mlhs_list "*" */ -#line 2465 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list2((yyvsp[-1].nd), new_nil(p)); - } -#line 7775 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 85: /* mlhs_basic: mlhs_list "*" ',' mlhs_post */ -#line 2469 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list3((yyvsp[-3].nd), new_nil(p), (yyvsp[0].nd)); - } -#line 7783 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 86: /* mlhs_basic: "*" mlhs_node */ -#line 2473 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list2(0, (yyvsp[0].nd)); - } -#line 7791 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 87: /* mlhs_basic: "*" mlhs_node ',' mlhs_post */ -#line 2477 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list3(0, (yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 7799 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 88: /* mlhs_basic: "*" */ -#line 2481 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list2(0, new_nil(p)); - } -#line 7807 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 89: /* mlhs_basic: "*" ',' mlhs_post */ -#line 2485 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list3(0, new_nil(p), (yyvsp[0].nd)); - } -#line 7815 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 91: /* mlhs_item: tLPAREN mlhs_inner rparen */ -#line 2492 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_masgn(p, (yyvsp[-1].nd), NULL); - } -#line 7823 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 92: /* mlhs_list: mlhs_item ',' */ -#line 2498 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1((yyvsp[-1].nd)); - } -#line 7831 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 93: /* mlhs_list: mlhs_list mlhs_item ',' */ -#line 2502 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd)); - } -#line 7839 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 94: /* mlhs_post: mlhs_item */ -#line 2508 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1((yyvsp[0].nd)); - } -#line 7847 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 95: /* mlhs_post: mlhs_list mlhs_item */ -#line 2512 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 7855 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 96: /* mlhs_node: variable */ -#line 2518 "mrbgems/mruby-compiler/core/parse.y" - { - assignable(p, (yyvsp[0].nd)); - } -#line 7863 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 97: /* mlhs_node: primary_value '[' opt_call_args ']' */ -#line 2522 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); - } -#line 7871 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 98: /* mlhs_node: primary_value call_op "local variable or method" */ -#line 2526 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); - } -#line 7879 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 99: /* mlhs_node: primary_value "::" "local variable or method" */ -#line 2530 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); - } -#line 7887 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 100: /* mlhs_node: primary_value call_op "constant" */ -#line 2534 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); - } -#line 7895 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 101: /* mlhs_node: primary_value "::" "constant" */ -#line 2538 "mrbgems/mruby-compiler/core/parse.y" - { - if (p->in_def || p->in_single) - yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); - (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); - } -#line 7905 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 102: /* mlhs_node: tCOLON3 "constant" */ -#line 2544 "mrbgems/mruby-compiler/core/parse.y" - { - if (p->in_def || p->in_single) - yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); - (yyval.nd) = new_colon3(p, (yyvsp[0].id)); - } -#line 7915 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 103: /* mlhs_node: backref */ -#line 2550 "mrbgems/mruby-compiler/core/parse.y" - { - backref_error(p, (yyvsp[0].nd)); - (yyval.nd) = 0; - } #line 7924 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 104: /* lhs: variable */ -#line 2557 "mrbgems/mruby-compiler/core/parse.y" + case 84: /* mlhs_basic: mlhs_list "*" */ +#line 2536 "mrbgems/mruby-compiler/core/parse.y" { - assignable(p, (yyvsp[0].nd)); + (yyval.nd) = list2((yyvsp[-1].nd), new_nil(p)); } #line 7932 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 105: /* lhs: primary_value '[' opt_call_args ']' */ -#line 2561 "mrbgems/mruby-compiler/core/parse.y" + case 85: /* mlhs_basic: mlhs_list "*" ',' mlhs_post */ +#line 2540 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); + (yyval.nd) = list3((yyvsp[-3].nd), new_nil(p), (yyvsp[0].nd)); } #line 7940 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 106: /* lhs: primary_value call_op "local variable or method" */ -#line 2565 "mrbgems/mruby-compiler/core/parse.y" + case 86: /* mlhs_basic: "*" mlhs_node */ +#line 2544 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + (yyval.nd) = list2(0, (yyvsp[0].nd)); } #line 7948 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 107: /* lhs: primary_value "::" "local variable or method" */ -#line 2569 "mrbgems/mruby-compiler/core/parse.y" + case 87: /* mlhs_basic: "*" mlhs_node ',' mlhs_post */ +#line 2548 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); + (yyval.nd) = list3(0, (yyvsp[-2].nd), (yyvsp[0].nd)); } #line 7956 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 108: /* lhs: primary_value call_op "constant" */ -#line 2573 "mrbgems/mruby-compiler/core/parse.y" + case 88: /* mlhs_basic: "*" */ +#line 2552 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + (yyval.nd) = list2(0, new_nil(p)); } #line 7964 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 109: /* lhs: primary_value "::" "constant" */ -#line 2577 "mrbgems/mruby-compiler/core/parse.y" + case 89: /* mlhs_basic: "*" ',' mlhs_post */ +#line 2556 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list3(0, new_nil(p), (yyvsp[0].nd)); + } +#line 7972 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 91: /* mlhs_item: tLPAREN mlhs_inner rparen */ +#line 2563 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_masgn(p, (yyvsp[-1].nd), NULL); + } +#line 7980 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 92: /* mlhs_list: mlhs_item ',' */ +#line 2569 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1((yyvsp[-1].nd)); + } +#line 7988 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 93: /* mlhs_list: mlhs_list mlhs_item ',' */ +#line 2573 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd)); + } +#line 7996 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 94: /* mlhs_post: mlhs_item */ +#line 2579 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1((yyvsp[0].nd)); + } +#line 8004 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 95: /* mlhs_post: mlhs_list mlhs_item */ +#line 2583 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 8012 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 96: /* mlhs_node: variable */ +#line 2589 "mrbgems/mruby-compiler/core/parse.y" + { + assignable(p, (yyvsp[0].nd)); + } +#line 8020 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 97: /* mlhs_node: primary_value '[' opt_call_args ']' */ +#line 2593 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); + } +#line 8028 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 98: /* mlhs_node: primary_value call_op "local variable or method" */ +#line 2597 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + } +#line 8036 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 99: /* mlhs_node: primary_value "::" "local variable or method" */ +#line 2601 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); + } +#line 8044 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 100: /* mlhs_node: primary_value call_op "constant" */ +#line 2605 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + } +#line 8052 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 101: /* mlhs_node: primary_value "::" "constant" */ +#line 2609 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 7974 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8062 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 110: /* lhs: tCOLON3 "constant" */ -#line 2583 "mrbgems/mruby-compiler/core/parse.y" + case 102: /* mlhs_node: tCOLON3 "constant" */ +#line 2615 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 7984 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8072 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 111: /* lhs: backref */ -#line 2589 "mrbgems/mruby-compiler/core/parse.y" + case 103: /* mlhs_node: backref */ +#line 2621 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[0].nd)); (yyval.nd) = 0; } -#line 7993 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8081 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 104: /* lhs: variable */ +#line 2628 "mrbgems/mruby-compiler/core/parse.y" + { + assignable(p, (yyvsp[0].nd)); + } +#line 8089 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 105: /* lhs: primary_value '[' opt_call_args ']' */ +#line 2632 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); + } +#line 8097 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 106: /* lhs: primary_value call_op "local variable or method" */ +#line 2636 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + } +#line 8105 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 107: /* lhs: primary_value "::" "local variable or method" */ +#line 2640 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); + } +#line 8113 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 108: /* lhs: primary_value call_op "constant" */ +#line 2644 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + } +#line 8121 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 109: /* lhs: primary_value "::" "constant" */ +#line 2648 "mrbgems/mruby-compiler/core/parse.y" + { + if (p->in_def || p->in_single) + yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); + (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); + } +#line 8131 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 110: /* lhs: tCOLON3 "constant" */ +#line 2654 "mrbgems/mruby-compiler/core/parse.y" + { + if (p->in_def || p->in_single) + yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); + (yyval.nd) = new_colon3(p, (yyvsp[0].id)); + } +#line 8141 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 111: /* lhs: backref */ +#line 2660 "mrbgems/mruby-compiler/core/parse.y" + { + backref_error(p, (yyvsp[0].nd)); + (yyval.nd) = 0; + } +#line 8150 "mrbgems/mruby-compiler/core/y.tab.c" break; case 112: /* lhs: "numbered parameter" */ -#line 2594 "mrbgems/mruby-compiler/core/parse.y" +#line 2665 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); } -#line 8001 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8158 "mrbgems/mruby-compiler/core/y.tab.c" break; case 113: /* cname: "local variable or method" */ -#line 2600 "mrbgems/mruby-compiler/core/parse.y" +#line 2671 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "class/module name must be CONSTANT"); } -#line 8009 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8166 "mrbgems/mruby-compiler/core/y.tab.c" break; case 115: /* cpath: tCOLON3 cname */ -#line 2607 "mrbgems/mruby-compiler/core/parse.y" +#line 2678 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(int_to_node(1), sym_to_node((yyvsp[0].id))); } -#line 8017 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8174 "mrbgems/mruby-compiler/core/y.tab.c" break; case 116: /* cpath: cname */ -#line 2611 "mrbgems/mruby-compiler/core/parse.y" +#line 2682 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(int_to_node(0), sym_to_node((yyvsp[0].id))); } -#line 8025 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8182 "mrbgems/mruby-compiler/core/y.tab.c" break; case 117: /* cpath: primary_value "::" cname */ -#line 2615 "mrbgems/mruby-compiler/core/parse.y" +#line 2686 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[-2].nd)); (yyval.nd) = cons((yyvsp[-2].nd), sym_to_node((yyvsp[0].id))); } -#line 8034 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8191 "mrbgems/mruby-compiler/core/y.tab.c" break; case 121: /* fname: op */ -#line 2625 "mrbgems/mruby-compiler/core/parse.y" +#line 2696 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_ENDFN; (yyval.id) = (yyvsp[0].id); } -#line 8043 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 122: /* fname: reswords */ -#line 2630 "mrbgems/mruby-compiler/core/parse.y" - { - p->lstate = EXPR_ENDFN; - (yyval.id) = (yyvsp[0].id); - } -#line 8052 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 125: /* undef_list: fsym */ -#line 2641 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = cons(sym_to_node((yyvsp[0].id)), 0); - } -#line 8060 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 126: /* $@6: %empty */ -#line 2644 "mrbgems/mruby-compiler/core/parse.y" - {p->lstate = EXPR_FNAME;} -#line 8066 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 127: /* undef_list: undef_list ',' $@6 fsym */ -#line 2645 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-3].nd), sym_to_node((yyvsp[0].id))); - } -#line 8074 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 128: /* op: '|' */ -#line 2650 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(or); } -#line 8080 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 129: /* op: '^' */ -#line 2651 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(xor); } -#line 8086 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 130: /* op: '&' */ -#line 2652 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(and); } -#line 8092 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 131: /* op: "<=>" */ -#line 2653 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(cmp); } -#line 8098 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 132: /* op: "==" */ -#line 2654 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(eq); } -#line 8104 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 133: /* op: "===" */ -#line 2655 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(eqq); } -#line 8110 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 134: /* op: "=~" */ -#line 2656 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(match); } -#line 8116 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 135: /* op: "!~" */ -#line 2657 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(nmatch); } -#line 8122 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 136: /* op: '>' */ -#line 2658 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(gt); } -#line 8128 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 137: /* op: ">=" */ -#line 2659 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(ge); } -#line 8134 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 138: /* op: '<' */ -#line 2660 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(lt); } -#line 8140 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 139: /* op: "<=" */ -#line 2661 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(le); } -#line 8146 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 140: /* op: "!=" */ -#line 2662 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(neq); } -#line 8152 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 141: /* op: "<<" */ -#line 2663 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(lshift); } -#line 8158 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 142: /* op: ">>" */ -#line 2664 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(rshift); } -#line 8164 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 143: /* op: '+' */ -#line 2665 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(add); } -#line 8170 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 144: /* op: '-' */ -#line 2666 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(sub); } -#line 8176 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 145: /* op: '*' */ -#line 2667 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(mul); } -#line 8182 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 146: /* op: "*" */ -#line 2668 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(mul); } -#line 8188 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 147: /* op: '/' */ -#line 2669 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(div); } -#line 8194 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 148: /* op: '%' */ -#line 2670 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(mod); } #line 8200 "mrbgems/mruby-compiler/core/y.tab.c" break; + case 122: /* fname: reswords */ +#line 2701 "mrbgems/mruby-compiler/core/parse.y" + { + p->lstate = EXPR_ENDFN; + (yyval.id) = (yyvsp[0].id); + } +#line 8209 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 125: /* undef_list: fsym */ +#line 2712 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = cons(sym_to_node((yyvsp[0].id)), 0); + } +#line 8217 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 126: /* $@6: %empty */ +#line 2715 "mrbgems/mruby-compiler/core/parse.y" + {p->lstate = EXPR_FNAME;} +#line 8223 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 127: /* undef_list: undef_list ',' $@6 fsym */ +#line 2716 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-3].nd), sym_to_node((yyvsp[0].id))); + } +#line 8231 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 128: /* op: '|' */ +#line 2721 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(or); } +#line 8237 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 129: /* op: '^' */ +#line 2722 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(xor); } +#line 8243 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 130: /* op: '&' */ +#line 2723 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(and); } +#line 8249 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 131: /* op: "<=>" */ +#line 2724 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(cmp); } +#line 8255 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 132: /* op: "==" */ +#line 2725 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(eq); } +#line 8261 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 133: /* op: "===" */ +#line 2726 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(eqq); } +#line 8267 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 134: /* op: "=~" */ +#line 2727 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(match); } +#line 8273 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 135: /* op: "!~" */ +#line 2728 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(nmatch); } +#line 8279 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 136: /* op: '>' */ +#line 2729 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(gt); } +#line 8285 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 137: /* op: ">=" */ +#line 2730 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(ge); } +#line 8291 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 138: /* op: '<' */ +#line 2731 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(lt); } +#line 8297 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 139: /* op: "<=" */ +#line 2732 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(le); } +#line 8303 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 140: /* op: "!=" */ +#line 2733 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(neq); } +#line 8309 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 141: /* op: "<<" */ +#line 2734 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(lshift); } +#line 8315 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 142: /* op: ">>" */ +#line 2735 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(rshift); } +#line 8321 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 143: /* op: '+' */ +#line 2736 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(add); } +#line 8327 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 144: /* op: '-' */ +#line 2737 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(sub); } +#line 8333 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 145: /* op: '*' */ +#line 2738 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(mul); } +#line 8339 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 146: /* op: "*" */ +#line 2739 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(mul); } +#line 8345 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 147: /* op: '/' */ +#line 2740 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(div); } +#line 8351 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 148: /* op: '%' */ +#line 2741 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(mod); } +#line 8357 "mrbgems/mruby-compiler/core/y.tab.c" + break; + case 149: /* op: tPOW */ -#line 2671 "mrbgems/mruby-compiler/core/parse.y" +#line 2742 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 8206 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8363 "mrbgems/mruby-compiler/core/y.tab.c" break; case 150: /* op: "**" */ -#line 2672 "mrbgems/mruby-compiler/core/parse.y" +#line 2743 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 8212 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8369 "mrbgems/mruby-compiler/core/y.tab.c" break; case 151: /* op: '!' */ -#line 2673 "mrbgems/mruby-compiler/core/parse.y" +#line 2744 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(not); } -#line 8218 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8375 "mrbgems/mruby-compiler/core/y.tab.c" break; case 152: /* op: '~' */ -#line 2674 "mrbgems/mruby-compiler/core/parse.y" +#line 2745 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(neg); } -#line 8224 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8381 "mrbgems/mruby-compiler/core/y.tab.c" break; case 153: /* op: "unary plus" */ -#line 2675 "mrbgems/mruby-compiler/core/parse.y" +#line 2746 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(plus); } -#line 8230 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8387 "mrbgems/mruby-compiler/core/y.tab.c" break; case 154: /* op: "unary minus" */ -#line 2676 "mrbgems/mruby-compiler/core/parse.y" +#line 2747 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(minus); } -#line 8236 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8393 "mrbgems/mruby-compiler/core/y.tab.c" break; case 155: /* op: tAREF */ -#line 2677 "mrbgems/mruby-compiler/core/parse.y" +#line 2748 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(aref); } -#line 8242 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8399 "mrbgems/mruby-compiler/core/y.tab.c" break; case 156: /* op: tASET */ -#line 2678 "mrbgems/mruby-compiler/core/parse.y" +#line 2749 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(aset); } -#line 8248 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8405 "mrbgems/mruby-compiler/core/y.tab.c" break; case 157: /* op: '`' */ -#line 2679 "mrbgems/mruby-compiler/core/parse.y" +#line 2750 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(tick); } -#line 8254 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8411 "mrbgems/mruby-compiler/core/y.tab.c" break; case 198: /* arg: lhs '=' arg_rhs */ -#line 2697 "mrbgems/mruby-compiler/core/parse.y" +#line 2768 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8262 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8419 "mrbgems/mruby-compiler/core/y.tab.c" break; case 199: /* arg: var_lhs tOP_ASGN arg_rhs */ -#line 2701 "mrbgems/mruby-compiler/core/parse.y" +#line 2772 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8270 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8427 "mrbgems/mruby-compiler/core/y.tab.c" break; case 200: /* arg: primary_value '[' opt_call_args ']' tOP_ASGN arg_rhs */ -#line 2705 "mrbgems/mruby-compiler/core/parse.y" +#line 2776 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8278 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8435 "mrbgems/mruby-compiler/core/y.tab.c" break; case 201: /* arg: primary_value call_op "local variable or method" tOP_ASGN arg_rhs */ -#line 2709 "mrbgems/mruby-compiler/core/parse.y" +#line 2780 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8286 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8443 "mrbgems/mruby-compiler/core/y.tab.c" break; case 202: /* arg: primary_value call_op "constant" tOP_ASGN arg_rhs */ -#line 2713 "mrbgems/mruby-compiler/core/parse.y" +#line 2784 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8294 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8451 "mrbgems/mruby-compiler/core/y.tab.c" break; case 203: /* arg: primary_value "::" "local variable or method" tOP_ASGN arg_rhs */ -#line 2717 "mrbgems/mruby-compiler/core/parse.y" +#line 2788 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8302 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8459 "mrbgems/mruby-compiler/core/y.tab.c" break; case 204: /* arg: primary_value "::" "constant" tOP_ASGN arg_rhs */ -#line 2721 "mrbgems/mruby-compiler/core/parse.y" +#line 2792 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "constant re-assignment"); (yyval.nd) = new_stmts(p, 0); } -#line 8311 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8468 "mrbgems/mruby-compiler/core/y.tab.c" break; case 205: /* arg: tCOLON3 "constant" tOP_ASGN arg_rhs */ -#line 2726 "mrbgems/mruby-compiler/core/parse.y" +#line 2797 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-3]), p, "constant re-assignment"); (yyval.nd) = new_stmts(p, 0); } -#line 8320 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8477 "mrbgems/mruby-compiler/core/y.tab.c" break; case 206: /* arg: backref tOP_ASGN arg_rhs */ -#line 2731 "mrbgems/mruby-compiler/core/parse.y" +#line 2802 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 8329 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8486 "mrbgems/mruby-compiler/core/y.tab.c" break; case 207: /* arg: arg ".." arg */ -#line 2736 "mrbgems/mruby-compiler/core/parse.y" +#line 2807 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8337 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8494 "mrbgems/mruby-compiler/core/y.tab.c" break; case 208: /* arg: arg ".." */ -#line 2740 "mrbgems/mruby-compiler/core/parse.y" +#line 2811 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, (yyvsp[-1].nd), new_nil(p)); } -#line 8345 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8502 "mrbgems/mruby-compiler/core/y.tab.c" break; case 209: /* arg: tBDOT2 arg */ -#line 2744 "mrbgems/mruby-compiler/core/parse.y" +#line 2815 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, new_nil(p), (yyvsp[0].nd)); } -#line 8353 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8510 "mrbgems/mruby-compiler/core/y.tab.c" break; case 210: /* arg: arg "..." arg */ -#line 2748 "mrbgems/mruby-compiler/core/parse.y" +#line 2819 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8361 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8518 "mrbgems/mruby-compiler/core/y.tab.c" break; case 211: /* arg: arg "..." */ -#line 2752 "mrbgems/mruby-compiler/core/parse.y" +#line 2823 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, (yyvsp[-1].nd), new_nil(p)); } -#line 8369 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8526 "mrbgems/mruby-compiler/core/y.tab.c" break; case 212: /* arg: tBDOT3 arg */ -#line 2756 "mrbgems/mruby-compiler/core/parse.y" +#line 2827 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, new_nil(p), (yyvsp[0].nd)); } -#line 8377 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8534 "mrbgems/mruby-compiler/core/y.tab.c" break; case 213: /* arg: arg '+' arg */ -#line 2760 "mrbgems/mruby-compiler/core/parse.y" +#line 2831 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "+", (yyvsp[0].nd)); } -#line 8385 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8542 "mrbgems/mruby-compiler/core/y.tab.c" break; case 214: /* arg: arg '-' arg */ -#line 2764 "mrbgems/mruby-compiler/core/parse.y" +#line 2835 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "-", (yyvsp[0].nd)); } -#line 8393 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8550 "mrbgems/mruby-compiler/core/y.tab.c" break; case 215: /* arg: arg '*' arg */ -#line 2768 "mrbgems/mruby-compiler/core/parse.y" +#line 2839 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "*", (yyvsp[0].nd)); } -#line 8401 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8558 "mrbgems/mruby-compiler/core/y.tab.c" break; case 216: /* arg: arg '/' arg */ -#line 2772 "mrbgems/mruby-compiler/core/parse.y" +#line 2843 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "/", (yyvsp[0].nd)); } -#line 8409 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8566 "mrbgems/mruby-compiler/core/y.tab.c" break; case 217: /* arg: arg '%' arg */ -#line 2776 "mrbgems/mruby-compiler/core/parse.y" +#line 2847 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "%", (yyvsp[0].nd)); } -#line 8417 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8574 "mrbgems/mruby-compiler/core/y.tab.c" break; case 218: /* arg: arg tPOW arg */ -#line 2780 "mrbgems/mruby-compiler/core/parse.y" +#line 2851 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)); } -#line 8425 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8582 "mrbgems/mruby-compiler/core/y.tab.c" break; case 219: /* arg: tUMINUS_NUM "integer literal" tPOW arg */ -#line 2784 "mrbgems/mruby-compiler/core/parse.y" +#line 2855 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 8433 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8590 "mrbgems/mruby-compiler/core/y.tab.c" break; case 220: /* arg: tUMINUS_NUM "float literal" tPOW arg */ -#line 2788 "mrbgems/mruby-compiler/core/parse.y" +#line 2859 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 8441 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8598 "mrbgems/mruby-compiler/core/y.tab.c" break; case 221: /* arg: "unary plus" arg */ -#line 2792 "mrbgems/mruby-compiler/core/parse.y" +#line 2863 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "+@"); } -#line 8449 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8606 "mrbgems/mruby-compiler/core/y.tab.c" break; case 222: /* arg: "unary minus" arg */ -#line 2796 "mrbgems/mruby-compiler/core/parse.y" +#line 2867 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 8457 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8614 "mrbgems/mruby-compiler/core/y.tab.c" break; case 223: /* arg: arg '|' arg */ -#line 2800 "mrbgems/mruby-compiler/core/parse.y" +#line 2871 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "|", (yyvsp[0].nd)); } -#line 8465 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8622 "mrbgems/mruby-compiler/core/y.tab.c" break; case 224: /* arg: arg '^' arg */ -#line 2804 "mrbgems/mruby-compiler/core/parse.y" +#line 2875 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "^", (yyvsp[0].nd)); } -#line 8473 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8630 "mrbgems/mruby-compiler/core/y.tab.c" break; case 225: /* arg: arg '&' arg */ -#line 2808 "mrbgems/mruby-compiler/core/parse.y" +#line 2879 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "&", (yyvsp[0].nd)); } -#line 8481 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8638 "mrbgems/mruby-compiler/core/y.tab.c" break; case 226: /* arg: arg "<=>" arg */ -#line 2812 "mrbgems/mruby-compiler/core/parse.y" +#line 2883 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=>", (yyvsp[0].nd)); } -#line 8489 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8646 "mrbgems/mruby-compiler/core/y.tab.c" break; case 227: /* arg: arg '>' arg */ -#line 2816 "mrbgems/mruby-compiler/core/parse.y" +#line 2887 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">", (yyvsp[0].nd)); } -#line 8497 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8654 "mrbgems/mruby-compiler/core/y.tab.c" break; case 228: /* arg: arg ">=" arg */ -#line 2820 "mrbgems/mruby-compiler/core/parse.y" +#line 2891 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">=", (yyvsp[0].nd)); } -#line 8505 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8662 "mrbgems/mruby-compiler/core/y.tab.c" break; case 229: /* arg: arg '<' arg */ -#line 2824 "mrbgems/mruby-compiler/core/parse.y" +#line 2895 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<", (yyvsp[0].nd)); } -#line 8513 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8670 "mrbgems/mruby-compiler/core/y.tab.c" break; case 230: /* arg: arg "<=" arg */ -#line 2828 "mrbgems/mruby-compiler/core/parse.y" +#line 2899 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=", (yyvsp[0].nd)); } -#line 8521 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8678 "mrbgems/mruby-compiler/core/y.tab.c" break; case 231: /* arg: arg "==" arg */ -#line 2832 "mrbgems/mruby-compiler/core/parse.y" +#line 2903 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "==", (yyvsp[0].nd)); } -#line 8529 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8686 "mrbgems/mruby-compiler/core/y.tab.c" break; case 232: /* arg: arg "===" arg */ -#line 2836 "mrbgems/mruby-compiler/core/parse.y" +#line 2907 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "===", (yyvsp[0].nd)); } -#line 8537 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8694 "mrbgems/mruby-compiler/core/y.tab.c" break; case 233: /* arg: arg "!=" arg */ -#line 2840 "mrbgems/mruby-compiler/core/parse.y" +#line 2911 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!=", (yyvsp[0].nd)); } -#line 8545 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8702 "mrbgems/mruby-compiler/core/y.tab.c" break; case 234: /* arg: arg "=~" arg */ -#line 2844 "mrbgems/mruby-compiler/core/parse.y" +#line 2915 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "=~", (yyvsp[0].nd)); } -#line 8553 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8710 "mrbgems/mruby-compiler/core/y.tab.c" break; case 235: /* arg: arg "!~" arg */ -#line 2848 "mrbgems/mruby-compiler/core/parse.y" +#line 2919 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!~", (yyvsp[0].nd)); } -#line 8561 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8718 "mrbgems/mruby-compiler/core/y.tab.c" break; case 236: /* arg: '!' arg */ -#line 2852 "mrbgems/mruby-compiler/core/parse.y" +#line 2923 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 8569 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8726 "mrbgems/mruby-compiler/core/y.tab.c" break; case 237: /* arg: '~' arg */ -#line 2856 "mrbgems/mruby-compiler/core/parse.y" +#line 2927 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "~"); } -#line 8577 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8734 "mrbgems/mruby-compiler/core/y.tab.c" break; case 238: /* arg: arg "<<" arg */ -#line 2860 "mrbgems/mruby-compiler/core/parse.y" +#line 2931 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<<", (yyvsp[0].nd)); } -#line 8585 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8742 "mrbgems/mruby-compiler/core/y.tab.c" break; case 239: /* arg: arg ">>" arg */ -#line 2864 "mrbgems/mruby-compiler/core/parse.y" +#line 2935 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">>", (yyvsp[0].nd)); } -#line 8593 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8750 "mrbgems/mruby-compiler/core/y.tab.c" break; case 240: /* arg: arg "&&" arg */ -#line 2868 "mrbgems/mruby-compiler/core/parse.y" +#line 2939 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8601 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8758 "mrbgems/mruby-compiler/core/y.tab.c" break; case 241: /* arg: arg "||" arg */ -#line 2872 "mrbgems/mruby-compiler/core/parse.y" +#line 2943 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8609 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8766 "mrbgems/mruby-compiler/core/y.tab.c" break; case 242: /* arg: arg '?' arg opt_nl ':' arg */ -#line 2876 "mrbgems/mruby-compiler/core/parse.y" +#line 2947 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 8617 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8774 "mrbgems/mruby-compiler/core/y.tab.c" break; case 243: /* arg: arg '?' arg opt_nl "label" arg */ -#line 2880 "mrbgems/mruby-compiler/core/parse.y" +#line 2951 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 8625 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8782 "mrbgems/mruby-compiler/core/y.tab.c" break; case 244: /* arg: defn_head f_opt_arglist_paren '=' arg */ -#line 2884 "mrbgems/mruby-compiler/core/parse.y" +#line 2955 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); endless_method_name(p, (yyvsp[-3].nd)); @@ -8634,11 +8791,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8638 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8795 "mrbgems/mruby-compiler/core/y.tab.c" break; case 245: /* arg: defn_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ -#line 2893 "mrbgems/mruby-compiler/core/parse.y" +#line 2964 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); endless_method_name(p, (yyvsp[-5].nd)); @@ -8647,11 +8804,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8651 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8808 "mrbgems/mruby-compiler/core/y.tab.c" break; case 246: /* arg: defs_head f_opt_arglist_paren '=' arg */ -#line 2902 "mrbgems/mruby-compiler/core/parse.y" +#line 2973 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); void_expr_error(p, (yyvsp[0].nd)); @@ -8660,11 +8817,11 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8664 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8821 "mrbgems/mruby-compiler/core/y.tab.c" break; case 247: /* arg: defs_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ -#line 2911 "mrbgems/mruby-compiler/core/parse.y" +#line 2982 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); void_expr_error(p, (yyvsp[-2].nd)); @@ -8673,68 +8830,68 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8677 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8834 "mrbgems/mruby-compiler/core/y.tab.c" break; case 248: /* arg: primary */ -#line 2920 "mrbgems/mruby-compiler/core/parse.y" +#line 2991 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 8685 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8842 "mrbgems/mruby-compiler/core/y.tab.c" break; case 250: /* aref_args: args trailer */ -#line 2927 "mrbgems/mruby-compiler/core/parse.y" +#line 2998 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 8693 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8850 "mrbgems/mruby-compiler/core/y.tab.c" break; case 251: /* aref_args: args comma assocs trailer */ -#line 2931 "mrbgems/mruby-compiler/core/parse.y" +#line 3002 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), new_hash(p, (yyvsp[-1].nd))); } -#line 8701 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8858 "mrbgems/mruby-compiler/core/y.tab.c" break; case 252: /* aref_args: assocs trailer */ -#line 2935 "mrbgems/mruby-compiler/core/parse.y" +#line 3006 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_hash(p, (yyvsp[-1].nd)), 0); } -#line 8709 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8866 "mrbgems/mruby-compiler/core/y.tab.c" break; case 253: /* arg_rhs: arg */ -#line 2941 "mrbgems/mruby-compiler/core/parse.y" +#line 3012 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 8717 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8874 "mrbgems/mruby-compiler/core/y.tab.c" break; case 254: /* arg_rhs: arg "'rescue' modifier" arg */ -#line 2945 "mrbgems/mruby-compiler/core/parse.y" +#line 3016 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8726 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8883 "mrbgems/mruby-compiler/core/y.tab.c" break; case 255: /* paren_args: '(' opt_call_args ')' */ -#line 2952 "mrbgems/mruby-compiler/core/parse.y" +#line 3023 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 8734 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8891 "mrbgems/mruby-compiler/core/y.tab.c" break; case 256: /* paren_args: '(' args comma tBDOT3 rparen */ -#line 2956 "mrbgems/mruby-compiler/core/parse.y" +#line 3027 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym r = intern_op(mul); mrb_sym k = intern_op(pow); @@ -8743,11 +8900,11 @@ yyreduce: list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))), new_block_arg(p, new_lvar(p, b))); } -#line 8747 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8904 "mrbgems/mruby-compiler/core/y.tab.c" break; case 257: /* paren_args: '(' tBDOT3 rparen */ -#line 2965 "mrbgems/mruby-compiler/core/parse.y" +#line 3036 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym r = intern_op(mul); mrb_sym k = intern_op(pow); @@ -8762,390 +8919,390 @@ yyreduce: (yyval.nd) = 0; } } -#line 8766 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 262: /* opt_call_args: args comma */ -#line 2988 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_callargs(p,(yyvsp[-1].nd),0,0); - } -#line 8774 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 263: /* opt_call_args: args comma assocs comma */ -#line 2992 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_callargs(p,(yyvsp[-3].nd),(yyvsp[-1].nd),0); - } -#line 8782 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 264: /* opt_call_args: assocs comma */ -#line 2996 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_callargs(p,0,(yyvsp[-1].nd),0); - } -#line 8790 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 265: /* call_args: command */ -#line 3002 "mrbgems/mruby-compiler/core/parse.y" - { - void_expr_error(p, (yyvsp[0].nd)); - (yyval.nd) = new_callargs(p, list1((yyvsp[0].nd)), 0, 0); - } -#line 8799 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 266: /* call_args: args opt_block_arg */ -#line 3007 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_callargs(p, (yyvsp[-1].nd), 0, (yyvsp[0].nd)); - } -#line 8807 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 267: /* call_args: assocs opt_block_arg */ -#line 3011 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_callargs(p, 0, (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 8815 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 268: /* call_args: args comma assocs opt_block_arg */ -#line 3015 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_callargs(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 8823 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 269: /* call_args: block_arg */ -#line 3019 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_callargs(p, 0, 0, (yyvsp[0].nd)); - } -#line 8831 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 270: /* @7: %empty */ -#line 3024 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.stack) = p->cmdarg_stack; - CMDARG_PUSH(1); - } -#line 8840 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 271: /* command_args: @7 call_args */ -#line 3029 "mrbgems/mruby-compiler/core/parse.y" - { - p->cmdarg_stack = (yyvsp[-1].stack); - (yyval.nd) = (yyvsp[0].nd); - } -#line 8849 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 272: /* block_arg: "&" arg */ -#line 3036 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_block_arg(p, (yyvsp[0].nd)); - } -#line 8857 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 273: /* block_arg: "&" */ -#line 3040 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_block_arg(p, 0); - } -#line 8865 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 274: /* opt_block_arg: comma block_arg */ -#line 3046 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[0].nd); - } -#line 8873 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 275: /* opt_block_arg: none */ -#line 3050 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = 0; - } -#line 8881 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 277: /* args: arg */ -#line 3059 "mrbgems/mruby-compiler/core/parse.y" - { - void_expr_error(p, (yyvsp[0].nd)); - (yyval.nd) = list1((yyvsp[0].nd)); - } -#line 8890 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 278: /* args: "*" */ -#line 3064 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1(new_splat(p, new_lvar(p, intern_op(mul)))); - } -#line 8898 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 279: /* args: "*" arg */ -#line 3068 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); - } -#line 8906 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 280: /* args: args comma arg */ -#line 3072 "mrbgems/mruby-compiler/core/parse.y" - { - void_expr_error(p, (yyvsp[0].nd)); - (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 8915 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 281: /* args: args comma "*" */ -#line 3077 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-2].nd), new_splat(p, new_lvar(p, intern_op(mul)))); - } #line 8923 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 282: /* args: args comma "*" arg */ -#line 3081 "mrbgems/mruby-compiler/core/parse.y" + case 262: /* opt_call_args: args comma */ +#line 3059 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); + (yyval.nd) = new_callargs(p,(yyvsp[-1].nd),0,0); } #line 8931 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 283: /* mrhs: args comma arg */ -#line 3087 "mrbgems/mruby-compiler/core/parse.y" + case 263: /* opt_call_args: args comma assocs comma */ +#line 3063 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_callargs(p,(yyvsp[-3].nd),(yyvsp[-1].nd),0); + } +#line 8939 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 264: /* opt_call_args: assocs comma */ +#line 3067 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_callargs(p,0,(yyvsp[-1].nd),0); + } +#line 8947 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 265: /* call_args: command */ +#line 3073 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); - (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 8940 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 284: /* mrhs: args comma "*" arg */ -#line 3092 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); - } -#line 8948 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 285: /* mrhs: "*" arg */ -#line 3096 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); + (yyval.nd) = new_callargs(p, list1((yyvsp[0].nd)), 0, 0); } #line 8956 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 287: /* primary: string */ -#line 3103 "mrbgems/mruby-compiler/core/parse.y" + case 266: /* call_args: args opt_block_arg */ +#line 3078 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_str(p, (yyvsp[0].nd)); + (yyval.nd) = new_callargs(p, (yyvsp[-1].nd), 0, (yyvsp[0].nd)); } #line 8964 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 288: /* primary: xstring */ -#line 3107 "mrbgems/mruby-compiler/core/parse.y" + case 267: /* call_args: assocs opt_block_arg */ +#line 3082 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_xstr(p, (yyvsp[0].nd)); + (yyval.nd) = new_callargs(p, 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } #line 8972 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 293: /* primary: "method" */ -#line 3115 "mrbgems/mruby-compiler/core/parse.y" + case 268: /* call_args: args comma assocs opt_block_arg */ +#line 3086 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_fcall(p, (yyvsp[0].id), 0); + (yyval.nd) = new_callargs(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].nd)); } #line 8980 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 294: /* @8: %empty */ -#line 3119 "mrbgems/mruby-compiler/core/parse.y" + case 269: /* call_args: block_arg */ +#line 3090 "mrbgems/mruby-compiler/core/parse.y" { + (yyval.nd) = new_callargs(p, 0, 0, (yyvsp[0].nd)); + } +#line 8988 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 270: /* @7: %empty */ +#line 3095 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.stack) = p->cmdarg_stack; - p->cmdarg_stack = 0; + CMDARG_PUSH(1); } -#line 8989 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8997 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 295: /* primary: "'begin'" @8 bodystmt "'end'" */ -#line 3125 "mrbgems/mruby-compiler/core/parse.y" + case 271: /* command_args: @7 call_args */ +#line 3100 "mrbgems/mruby-compiler/core/parse.y" { - p->cmdarg_stack = (yyvsp[-2].stack); - (yyval.nd) = new_begin(p, (yyvsp[-1].nd)); + p->cmdarg_stack = (yyvsp[-1].stack); + (yyval.nd) = (yyvsp[0].nd); } -#line 8998 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9006 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 296: /* @9: %empty */ -#line 3130 "mrbgems/mruby-compiler/core/parse.y" + case 272: /* block_arg: "&" arg */ +#line 3107 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.stack) = p->cmdarg_stack; - p->cmdarg_stack = 0; + (yyval.nd) = new_block_arg(p, (yyvsp[0].nd)); } -#line 9007 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9014 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 297: /* $@10: %empty */ -#line 3134 "mrbgems/mruby-compiler/core/parse.y" - {p->lstate = EXPR_ENDARG;} -#line 9013 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 298: /* primary: "(" @9 stmt $@10 rparen */ -#line 3135 "mrbgems/mruby-compiler/core/parse.y" + case 273: /* block_arg: "&" */ +#line 3111 "mrbgems/mruby-compiler/core/parse.y" { - p->cmdarg_stack = (yyvsp[-3].stack); - (yyval.nd) = (yyvsp[-2].nd); + (yyval.nd) = new_block_arg(p, 0); } #line 9022 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 299: /* $@11: %empty */ + case 274: /* opt_block_arg: comma block_arg */ +#line 3117 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[0].nd); + } +#line 9030 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 275: /* opt_block_arg: none */ +#line 3121 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = 0; + } +#line 9038 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 277: /* args: arg */ +#line 3130 "mrbgems/mruby-compiler/core/parse.y" + { + void_expr_error(p, (yyvsp[0].nd)); + (yyval.nd) = list1((yyvsp[0].nd)); + } +#line 9047 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 278: /* args: "*" */ +#line 3135 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1(new_splat(p, new_lvar(p, intern_op(mul)))); + } +#line 9055 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 279: /* args: "*" arg */ #line 3139 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); + } +#line 9063 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 280: /* args: args comma arg */ +#line 3143 "mrbgems/mruby-compiler/core/parse.y" + { + void_expr_error(p, (yyvsp[0].nd)); + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 9072 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 281: /* args: args comma "*" */ +#line 3148 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-2].nd), new_splat(p, new_lvar(p, intern_op(mul)))); + } +#line 9080 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 282: /* args: args comma "*" arg */ +#line 3152 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); + } +#line 9088 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 283: /* mrhs: args comma arg */ +#line 3158 "mrbgems/mruby-compiler/core/parse.y" + { + void_expr_error(p, (yyvsp[0].nd)); + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 9097 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 284: /* mrhs: args comma "*" arg */ +#line 3163 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); + } +#line 9105 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 285: /* mrhs: "*" arg */ +#line 3167 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); + } +#line 9113 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 287: /* primary: string */ +#line 3174 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_str(p, (yyvsp[0].nd)); + } +#line 9121 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 288: /* primary: xstring */ +#line 3178 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_xstr(p, (yyvsp[0].nd)); + } +#line 9129 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 293: /* primary: "method" */ +#line 3186 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_fcall(p, (yyvsp[0].id), 0); + } +#line 9137 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 294: /* @8: %empty */ +#line 3190 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.stack) = p->cmdarg_stack; + p->cmdarg_stack = 0; + } +#line 9146 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 295: /* primary: "'begin'" @8 bodystmt "'end'" */ +#line 3196 "mrbgems/mruby-compiler/core/parse.y" + { + p->cmdarg_stack = (yyvsp[-2].stack); + (yyval.nd) = new_begin(p, (yyvsp[-1].nd)); + } +#line 9155 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 296: /* @9: %empty */ +#line 3201 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.stack) = p->cmdarg_stack; + p->cmdarg_stack = 0; + } +#line 9164 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 297: /* $@10: %empty */ +#line 3205 "mrbgems/mruby-compiler/core/parse.y" + {p->lstate = EXPR_ENDARG;} +#line 9170 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 298: /* primary: "(" @9 stmt $@10 rparen */ +#line 3206 "mrbgems/mruby-compiler/core/parse.y" + { + p->cmdarg_stack = (yyvsp[-3].stack); + (yyval.nd) = (yyvsp[-2].nd); + } +#line 9179 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 299: /* $@11: %empty */ +#line 3210 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_ENDARG;} -#line 9028 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9185 "mrbgems/mruby-compiler/core/y.tab.c" break; case 300: /* primary: "(" $@11 rparen */ -#line 3140 "mrbgems/mruby-compiler/core/parse.y" +#line 3211 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nil(p); } -#line 9036 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9193 "mrbgems/mruby-compiler/core/y.tab.c" break; case 301: /* primary: tLPAREN compstmt ')' */ -#line 3144 "mrbgems/mruby-compiler/core/parse.y" +#line 3215 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 9044 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9201 "mrbgems/mruby-compiler/core/y.tab.c" break; case 302: /* primary: primary_value "::" "constant" */ -#line 3148 "mrbgems/mruby-compiler/core/parse.y" +#line 3219 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 9052 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9209 "mrbgems/mruby-compiler/core/y.tab.c" break; case 303: /* primary: tCOLON3 "constant" */ -#line 3152 "mrbgems/mruby-compiler/core/parse.y" +#line 3223 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 9060 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9217 "mrbgems/mruby-compiler/core/y.tab.c" break; case 304: /* primary: "[" aref_args ']' */ -#line 3156 "mrbgems/mruby-compiler/core/parse.y" +#line 3227 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_array(p, (yyvsp[-1].nd)); } -#line 9068 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9225 "mrbgems/mruby-compiler/core/y.tab.c" break; case 305: /* primary: tLBRACE assoc_list '}' */ -#line 3160 "mrbgems/mruby-compiler/core/parse.y" +#line 3231 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_hash(p, (yyvsp[-1].nd)); } -#line 9076 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9233 "mrbgems/mruby-compiler/core/y.tab.c" break; case 306: /* primary: "'return'" */ -#line 3164 "mrbgems/mruby-compiler/core/parse.y" +#line 3235 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_return(p, 0); } -#line 9084 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9241 "mrbgems/mruby-compiler/core/y.tab.c" break; case 307: /* primary: "'yield'" opt_paren_args */ -#line 3168 "mrbgems/mruby-compiler/core/parse.y" +#line 3239 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 9092 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9249 "mrbgems/mruby-compiler/core/y.tab.c" break; case 308: /* primary: "'not'" '(' expr rparen */ -#line 3172 "mrbgems/mruby-compiler/core/parse.y" +#line 3243 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!"); } -#line 9100 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9257 "mrbgems/mruby-compiler/core/y.tab.c" break; case 309: /* primary: "'not'" '(' rparen */ -#line 3176 "mrbgems/mruby-compiler/core/parse.y" +#line 3247 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, new_nil(p), "!"); } -#line 9108 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9265 "mrbgems/mruby-compiler/core/y.tab.c" break; case 310: /* primary: operation brace_block */ -#line 3180 "mrbgems/mruby-compiler/core/parse.y" +#line 3251 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), new_callargs(p, 0, 0, (yyvsp[0].nd))); } -#line 9116 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9273 "mrbgems/mruby-compiler/core/y.tab.c" break; case 312: /* primary: method_call brace_block */ -#line 3185 "mrbgems/mruby-compiler/core/parse.y" +#line 3256 "mrbgems/mruby-compiler/core/parse.y" { call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 9125 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9282 "mrbgems/mruby-compiler/core/y.tab.c" break; case 313: /* @12: %empty */ -#line 3190 "mrbgems/mruby-compiler/core/parse.y" +#line 3261 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lpar_beg; p->lpar_beg = ++p->paren_nest; } -#line 9136 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9293 "mrbgems/mruby-compiler/core/y.tab.c" break; case 314: /* @13: %empty */ -#line 3197 "mrbgems/mruby-compiler/core/parse.y" +#line 3268 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9145 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9302 "mrbgems/mruby-compiler/core/y.tab.c" break; case 315: /* primary: "->" @12 f_larglist @13 lambda_body */ -#line 3202 "mrbgems/mruby-compiler/core/parse.y" +#line 3273 "mrbgems/mruby-compiler/core/parse.y" { p->lpar_beg = (yyvsp[-3].num); (yyval.nd) = new_lambda(p, (yyvsp[-2].nd), (yyvsp[0].nd)); @@ -9154,149 +9311,158 @@ yyreduce: p->cmdarg_stack = (yyvsp[-1].stack); CMDARG_LEXPOP(); } -#line 9158 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9315 "mrbgems/mruby-compiler/core/y.tab.c" break; case 316: /* primary: "'if'" expr_value then compstmt if_tail "'end'" */ -#line 3214 "mrbgems/mruby-compiler/core/parse.y" +#line 3285 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); } -#line 9167 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9324 "mrbgems/mruby-compiler/core/y.tab.c" break; case 317: /* primary: "'unless'" expr_value then compstmt opt_else "'end'" */ -#line 3222 "mrbgems/mruby-compiler/core/parse.y" +#line 3293 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd), (yyvsp[-2].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); } -#line 9176 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9333 "mrbgems/mruby-compiler/core/y.tab.c" break; case 318: /* $@14: %empty */ -#line 3226 "mrbgems/mruby-compiler/core/parse.y" +#line 3297 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9182 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9339 "mrbgems/mruby-compiler/core/y.tab.c" break; case 319: /* $@15: %empty */ -#line 3226 "mrbgems/mruby-compiler/core/parse.y" +#line 3297 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9188 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9345 "mrbgems/mruby-compiler/core/y.tab.c" break; case 320: /* primary: "'while'" $@14 expr_value do $@15 compstmt "'end'" */ -#line 3229 "mrbgems/mruby-compiler/core/parse.y" +#line 3300 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_while(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-6].num)); } -#line 9197 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9354 "mrbgems/mruby-compiler/core/y.tab.c" break; case 321: /* $@16: %empty */ -#line 3233 "mrbgems/mruby-compiler/core/parse.y" +#line 3304 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9203 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9360 "mrbgems/mruby-compiler/core/y.tab.c" break; case 322: /* $@17: %empty */ -#line 3233 "mrbgems/mruby-compiler/core/parse.y" +#line 3304 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9209 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9366 "mrbgems/mruby-compiler/core/y.tab.c" break; case 323: /* primary: "'until'" $@16 expr_value do $@17 compstmt "'end'" */ -#line 3236 "mrbgems/mruby-compiler/core/parse.y" +#line 3307 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_until(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-6].num)); } -#line 9218 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9375 "mrbgems/mruby-compiler/core/y.tab.c" break; case 324: /* primary: "'case'" expr_value opt_terms case_body "'end'" */ -#line 3243 "mrbgems/mruby-compiler/core/parse.y" +#line 3314 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_case(p, (yyvsp[-3].nd), (yyvsp[-1].nd)); } -#line 9226 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9383 "mrbgems/mruby-compiler/core/y.tab.c" break; case 325: /* primary: "'case'" opt_terms case_body "'end'" */ -#line 3247 "mrbgems/mruby-compiler/core/parse.y" +#line 3318 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_case(p, 0, (yyvsp[-1].nd)); } -#line 9234 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9391 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 326: /* $@18: %empty */ -#line 3251 "mrbgems/mruby-compiler/core/parse.y" + case 326: /* primary: "'case'" expr_value opt_terms "'in'" p_expr then compstmt in_clauses "'end'" */ +#line 3326 "mrbgems/mruby-compiler/core/parse.y" + { + node *in_clause = new_in(p, (yyvsp[-4].nd), NULL, (yyvsp[-2].nd), FALSE); + (yyval.nd) = new_case_match(p, (yyvsp[-7].nd), cons(in_clause, (yyvsp[-1].nd))); + } +#line 9400 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 327: /* $@18: %empty */ +#line 3331 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9240 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9406 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 327: /* $@19: %empty */ -#line 3253 "mrbgems/mruby-compiler/core/parse.y" + case 328: /* $@19: %empty */ +#line 3333 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9246 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9412 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 328: /* primary: "'for'" for_var "'in'" $@18 expr_value do $@19 compstmt "'end'" */ -#line 3256 "mrbgems/mruby-compiler/core/parse.y" + case 329: /* primary: "'for'" for_var "'in'" $@18 expr_value do $@19 compstmt "'end'" */ +#line 3336 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_for(p, (yyvsp[-7].nd), (yyvsp[-4].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-8].num)); } -#line 9255 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9421 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 329: /* @20: %empty */ -#line 3262 "mrbgems/mruby-compiler/core/parse.y" + case 330: /* @20: %empty */ +#line 3342 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-2]), p, "class definition in method body"); (yyval.nd) = local_switch(p); nvars_block(p); } -#line 9266 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9432 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 330: /* primary: "'class'" cpath superclass @20 bodystmt "'end'" */ -#line 3270 "mrbgems/mruby-compiler/core/parse.y" + case 331: /* primary: "'class'" cpath superclass @20 bodystmt "'end'" */ +#line 3350 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_class(p, (yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); local_resume(p, (yyvsp[-2].nd)); nvars_unnest(p); } -#line 9277 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9443 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 331: /* @21: %empty */ -#line 3278 "mrbgems/mruby-compiler/core/parse.y" + case 332: /* @21: %empty */ +#line 3358 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = p->in_def; p->in_def = 0; } -#line 9286 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9452 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 332: /* @22: %empty */ -#line 3283 "mrbgems/mruby-compiler/core/parse.y" + case 333: /* @22: %empty */ +#line 3363 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(local_switch(p), int_to_node(p->in_single)); nvars_block(p); p->in_single = 0; } -#line 9296 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9462 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 333: /* primary: "'class'" "<<" expr @21 term @22 bodystmt "'end'" */ -#line 3290 "mrbgems/mruby-compiler/core/parse.y" + case 334: /* primary: "'class'" "<<" expr @21 term @22 bodystmt "'end'" */ +#line 3370 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sclass(p, (yyvsp[-5].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-7].num)); @@ -9305,44 +9471,44 @@ yyreduce: p->in_def = (yyvsp[-4].num); p->in_single = node_to_int((yyvsp[-2].nd)->cdr); } -#line 9309 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9475 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 334: /* @23: %empty */ -#line 3300 "mrbgems/mruby-compiler/core/parse.y" + case 335: /* @23: %empty */ +#line 3380 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-1]), p, "module definition in method body"); (yyval.nd) = local_switch(p); nvars_block(p); } -#line 9320 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9486 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 335: /* primary: "'module'" cpath @23 bodystmt "'end'" */ -#line 3308 "mrbgems/mruby-compiler/core/parse.y" + case 336: /* primary: "'module'" cpath @23 bodystmt "'end'" */ +#line 3388 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_module(p, (yyvsp[-3].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-4].num)); local_resume(p, (yyvsp[-2].nd)); nvars_unnest(p); } -#line 9331 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9497 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 336: /* primary: defn_head f_arglist bodystmt "'end'" */ -#line 3318 "mrbgems/mruby-compiler/core/parse.y" + case 337: /* primary: defn_head f_arglist bodystmt "'end'" */ +#line 3398 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); nvars_unnest(p); p->in_def--; } -#line 9342 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9508 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 337: /* primary: defs_head f_arglist bodystmt "'end'" */ -#line 3328 "mrbgems/mruby-compiler/core/parse.y" + case 338: /* primary: defs_head f_arglist bodystmt "'end'" */ +#line 3408 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); @@ -9350,610 +9516,610 @@ yyreduce: p->in_def--; p->in_single--; } -#line 9354 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9520 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 338: /* primary: "'break'" */ -#line 3336 "mrbgems/mruby-compiler/core/parse.y" + case 339: /* primary: "'break'" */ +#line 3416 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_break(p, 0); } -#line 9362 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9528 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 339: /* primary: "'next'" */ -#line 3340 "mrbgems/mruby-compiler/core/parse.y" + case 340: /* primary: "'next'" */ +#line 3420 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_next(p, 0); } -#line 9370 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9536 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 340: /* primary: "'redo'" */ -#line 3344 "mrbgems/mruby-compiler/core/parse.y" + case 341: /* primary: "'redo'" */ +#line 3424 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_redo(p); } -#line 9378 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9544 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 341: /* primary: "'retry'" */ -#line 3348 "mrbgems/mruby-compiler/core/parse.y" + case 342: /* primary: "'retry'" */ +#line 3428 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_retry(p); } -#line 9386 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9552 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 342: /* primary_value: primary */ -#line 3354 "mrbgems/mruby-compiler/core/parse.y" + case 343: /* primary_value: primary */ +#line 3434 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); if (!(yyval.nd)) (yyval.nd) = new_nil(p); } -#line 9395 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9561 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 349: /* if_tail: "'elsif'" expr_value then compstmt if_tail */ -#line 3373 "mrbgems/mruby-compiler/core/parse.y" + case 350: /* if_tail: "'elsif'" expr_value then compstmt if_tail */ +#line 3453 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-3].nd)), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9403 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9569 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 351: /* opt_else: "'else'" compstmt */ -#line 3380 "mrbgems/mruby-compiler/core/parse.y" + case 352: /* opt_else: "'else'" compstmt */ +#line 3460 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9411 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9577 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 352: /* for_var: lhs */ -#line 3386 "mrbgems/mruby-compiler/core/parse.y" + case 353: /* for_var: lhs */ +#line 3466 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(list1((yyvsp[0].nd))); } -#line 9419 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9585 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 354: /* f_margs: f_arg */ -#line 3393 "mrbgems/mruby-compiler/core/parse.y" + case 355: /* f_margs: f_arg */ +#line 3473 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[0].nd),0,0); } -#line 9427 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9593 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 355: /* f_margs: f_arg ',' "*" f_norm_arg */ -#line 3397 "mrbgems/mruby-compiler/core/parse.y" + case 356: /* f_margs: f_arg ',' "*" f_norm_arg */ +#line 3477 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-3].nd), new_lvar(p, (yyvsp[0].id)), 0); } -#line 9435 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9601 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 356: /* f_margs: f_arg ',' "*" f_norm_arg ',' f_arg */ -#line 3401 "mrbgems/mruby-compiler/core/parse.y" + case 357: /* f_margs: f_arg ',' "*" f_norm_arg ',' f_arg */ +#line 3481 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-5].nd), new_lvar(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 9443 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9609 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 357: /* f_margs: f_arg ',' "*" */ -#line 3405 "mrbgems/mruby-compiler/core/parse.y" + case 358: /* f_margs: f_arg ',' "*" */ +#line 3485 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); (yyval.nd) = list3((yyvsp[-2].nd), int_to_node(-1), 0); } -#line 9452 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9618 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 358: /* f_margs: f_arg ',' "*" ',' f_arg */ -#line 3410 "mrbgems/mruby-compiler/core/parse.y" + case 359: /* f_margs: f_arg ',' "*" ',' f_arg */ +#line 3490 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-4].nd), int_to_node(-1), (yyvsp[0].nd)); } -#line 9460 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9626 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 359: /* f_margs: "*" f_norm_arg */ -#line 3414 "mrbgems/mruby-compiler/core/parse.y" + case 360: /* f_margs: "*" f_norm_arg */ +#line 3494 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_lvar(p, (yyvsp[0].id)), 0); } -#line 9468 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9634 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 360: /* f_margs: "*" f_norm_arg ',' f_arg */ -#line 3418 "mrbgems/mruby-compiler/core/parse.y" + case 361: /* f_margs: "*" f_norm_arg ',' f_arg */ +#line 3498 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_lvar(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 9476 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9642 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 361: /* f_margs: "*" */ -#line 3422 "mrbgems/mruby-compiler/core/parse.y" + case 362: /* f_margs: "*" */ +#line 3502 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); (yyval.nd) = list3(0, int_to_node(-1), 0); } -#line 9485 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9651 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 362: /* $@24: %empty */ -#line 3427 "mrbgems/mruby-compiler/core/parse.y" + case 363: /* $@24: %empty */ +#line 3507 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); } -#line 9493 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9659 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 363: /* f_margs: "*" ',' $@24 f_arg */ -#line 3431 "mrbgems/mruby-compiler/core/parse.y" + case 364: /* f_margs: "*" ',' $@24 f_arg */ +#line 3511 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, int_to_node(-1), (yyvsp[0].nd)); } -#line 9501 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9667 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 364: /* block_args_tail: f_block_kwarg ',' f_kwrest opt_f_block_arg */ -#line 3437 "mrbgems/mruby-compiler/core/parse.y" + case 365: /* block_args_tail: f_block_kwarg ',' f_kwrest opt_f_block_arg */ +#line 3517 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].id)); } -#line 9509 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9675 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 365: /* block_args_tail: f_block_kwarg opt_f_block_arg */ -#line 3441 "mrbgems/mruby-compiler/core/parse.y" + case 366: /* block_args_tail: f_block_kwarg opt_f_block_arg */ +#line 3521 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); } -#line 9517 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9683 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 366: /* block_args_tail: f_kwrest opt_f_block_arg */ -#line 3445 "mrbgems/mruby-compiler/core/parse.y" + case 367: /* block_args_tail: f_kwrest opt_f_block_arg */ +#line 3525 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].id), (yyvsp[0].id)); } -#line 9525 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9691 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 367: /* block_args_tail: f_block_arg */ -#line 3449 "mrbgems/mruby-compiler/core/parse.y" + case 368: /* block_args_tail: f_block_arg */ +#line 3529 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); } -#line 9533 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9699 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 368: /* opt_block_args_tail: ',' block_args_tail */ -#line 3455 "mrbgems/mruby-compiler/core/parse.y" + case 369: /* opt_block_args_tail: ',' block_args_tail */ +#line 3535 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9541 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9707 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 369: /* opt_block_args_tail: %empty */ -#line 3459 "mrbgems/mruby-compiler/core/parse.y" + case 370: /* opt_block_args_tail: %empty */ +#line 3539 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 9549 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9715 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 370: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg opt_block_args_tail */ -#line 3465 "mrbgems/mruby-compiler/core/parse.y" + case 371: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg opt_block_args_tail */ +#line 3545 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9557 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9723 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 371: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3469 "mrbgems/mruby-compiler/core/parse.y" + case 372: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ +#line 3549 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9565 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9731 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 372: /* block_param: f_arg ',' f_block_optarg opt_block_args_tail */ -#line 3473 "mrbgems/mruby-compiler/core/parse.y" + case 373: /* block_param: f_arg ',' f_block_optarg opt_block_args_tail */ +#line 3553 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 9573 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9739 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 373: /* block_param: f_arg ',' f_block_optarg ',' f_arg opt_block_args_tail */ -#line 3477 "mrbgems/mruby-compiler/core/parse.y" + case 374: /* block_param: f_arg ',' f_block_optarg ',' f_arg opt_block_args_tail */ +#line 3557 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9581 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9747 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 374: /* block_param: f_arg ',' f_rest_arg opt_block_args_tail */ -#line 3481 "mrbgems/mruby-compiler/core/parse.y" + case 375: /* block_param: f_arg ',' f_rest_arg opt_block_args_tail */ +#line 3561 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9589 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9755 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 375: /* block_param: f_arg ',' opt_block_args_tail */ -#line 3485 "mrbgems/mruby-compiler/core/parse.y" + case 376: /* block_param: f_arg ',' opt_block_args_tail */ +#line 3565 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 9597 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9763 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 376: /* block_param: f_arg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3489 "mrbgems/mruby-compiler/core/parse.y" + case 377: /* block_param: f_arg ',' f_rest_arg ',' f_arg opt_block_args_tail */ +#line 3569 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9605 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9771 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 377: /* block_param: f_arg opt_block_args_tail */ -#line 3493 "mrbgems/mruby-compiler/core/parse.y" + case 378: /* block_param: f_arg opt_block_args_tail */ +#line 3573 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 9613 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9779 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 378: /* block_param: f_block_optarg ',' f_rest_arg opt_block_args_tail */ -#line 3497 "mrbgems/mruby-compiler/core/parse.y" + case 379: /* block_param: f_block_optarg ',' f_rest_arg opt_block_args_tail */ +#line 3577 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9621 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9787 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 379: /* block_param: f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3501 "mrbgems/mruby-compiler/core/parse.y" + case 380: /* block_param: f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ +#line 3581 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9629 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9795 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 380: /* block_param: f_block_optarg opt_block_args_tail */ -#line 3505 "mrbgems/mruby-compiler/core/parse.y" + case 381: /* block_param: f_block_optarg opt_block_args_tail */ +#line 3585 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 9637 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9803 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 381: /* block_param: f_block_optarg ',' f_arg opt_block_args_tail */ -#line 3509 "mrbgems/mruby-compiler/core/parse.y" + case 382: /* block_param: f_block_optarg ',' f_arg opt_block_args_tail */ +#line 3589 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9645 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9811 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 382: /* block_param: f_rest_arg opt_block_args_tail */ -#line 3513 "mrbgems/mruby-compiler/core/parse.y" + case 383: /* block_param: f_rest_arg opt_block_args_tail */ +#line 3593 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9653 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9819 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 383: /* block_param: f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3517 "mrbgems/mruby-compiler/core/parse.y" + case 384: /* block_param: f_rest_arg ',' f_arg opt_block_args_tail */ +#line 3597 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9661 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9827 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 384: /* block_param: block_args_tail */ -#line 3521 "mrbgems/mruby-compiler/core/parse.y" + case 385: /* block_param: block_args_tail */ +#line 3601 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); } -#line 9669 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9835 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 385: /* opt_block_param: none */ -#line 3527 "mrbgems/mruby-compiler/core/parse.y" + case 386: /* opt_block_param: none */ +#line 3607 "mrbgems/mruby-compiler/core/parse.y" { local_add_blk(p); (yyval.nd) = 0; } -#line 9678 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9844 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 386: /* opt_block_param: block_param_def */ -#line 3532 "mrbgems/mruby-compiler/core/parse.y" + case 387: /* opt_block_param: block_param_def */ +#line 3612 "mrbgems/mruby-compiler/core/parse.y" { p->cmd_start = TRUE; (yyval.nd) = (yyvsp[0].nd); } -#line 9687 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9853 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 387: /* $@25: %empty */ -#line 3538 "mrbgems/mruby-compiler/core/parse.y" + case 388: /* $@25: %empty */ +#line 3618 "mrbgems/mruby-compiler/core/parse.y" {local_add_blk(p);} -#line 9693 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9859 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 388: /* block_param_def: '|' $@25 opt_bv_decl '|' */ -#line 3539 "mrbgems/mruby-compiler/core/parse.y" + case 389: /* block_param_def: '|' $@25 opt_bv_decl '|' */ +#line 3619 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 9701 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9867 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 389: /* block_param_def: "||" */ -#line 3543 "mrbgems/mruby-compiler/core/parse.y" + case 390: /* block_param_def: "||" */ +#line 3623 "mrbgems/mruby-compiler/core/parse.y" { local_add_blk(p); (yyval.nd) = 0; } -#line 9710 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9876 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 390: /* block_param_def: '|' block_param opt_bv_decl '|' */ -#line 3548 "mrbgems/mruby-compiler/core/parse.y" + case 391: /* block_param_def: '|' block_param opt_bv_decl '|' */ +#line 3628 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-2].nd); } -#line 9718 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9884 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 391: /* opt_bv_decl: opt_nl */ -#line 3554 "mrbgems/mruby-compiler/core/parse.y" + case 392: /* opt_bv_decl: opt_nl */ +#line 3634 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 9726 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9892 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 392: /* opt_bv_decl: opt_nl ';' bv_decls opt_nl */ -#line 3558 "mrbgems/mruby-compiler/core/parse.y" + case 393: /* opt_bv_decl: opt_nl ';' bv_decls opt_nl */ +#line 3638 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 9734 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9900 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 395: /* bvar: "local variable or method" */ -#line 3568 "mrbgems/mruby-compiler/core/parse.y" + case 396: /* bvar: "local variable or method" */ +#line 3648 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); new_bv(p, (yyvsp[0].id)); } -#line 9743 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9909 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 397: /* f_larglist: '(' f_args opt_bv_decl ')' */ -#line 3576 "mrbgems/mruby-compiler/core/parse.y" + case 398: /* f_larglist: '(' f_args opt_bv_decl ')' */ +#line 3656 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-2].nd); } -#line 9751 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9917 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 398: /* f_larglist: f_args */ -#line 3580 "mrbgems/mruby-compiler/core/parse.y" + case 399: /* f_larglist: f_args */ +#line 3660 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9759 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9925 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 399: /* lambda_body: tLAMBEG compstmt '}' */ -#line 3586 "mrbgems/mruby-compiler/core/parse.y" + case 400: /* lambda_body: tLAMBEG compstmt '}' */ +#line 3666 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 9767 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9933 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 400: /* lambda_body: "'do' for lambda" bodystmt "'end'" */ -#line 3590 "mrbgems/mruby-compiler/core/parse.y" + case 401: /* lambda_body: "'do' for lambda" bodystmt "'end'" */ +#line 3670 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 9775 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9941 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 401: /* @26: %empty */ -#line 3596 "mrbgems/mruby-compiler/core/parse.y" + case 402: /* @26: %empty */ +#line 3676 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 9785 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9951 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 402: /* do_block: "'do' for block" @26 opt_block_param bodystmt "'end'" */ -#line 3604 "mrbgems/mruby-compiler/core/parse.y" + case 403: /* do_block: "'do' for block" @26 opt_block_param bodystmt "'end'" */ +#line 3684 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-3].num)); local_unnest(p); nvars_unnest(p); } -#line 9796 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9962 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 403: /* block_call: command do_block */ -#line 3613 "mrbgems/mruby-compiler/core/parse.y" + case 404: /* block_call: command do_block */ +#line 3693 "mrbgems/mruby-compiler/core/parse.y" { call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 9805 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9971 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 404: /* block_call: block_call call_op2 operation2 opt_paren_args */ -#line 3618 "mrbgems/mruby-compiler/core/parse.y" + case 405: /* block_call: block_call call_op2 operation2 opt_paren_args */ +#line 3698 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 9813 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9979 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 405: /* block_call: block_call call_op2 operation2 opt_paren_args brace_block */ -#line 3622 "mrbgems/mruby-compiler/core/parse.y" + case 406: /* block_call: block_call call_op2 operation2 opt_paren_args brace_block */ +#line 3702 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); call_with_block(p, (yyval.nd), (yyvsp[0].nd)); } -#line 9822 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9988 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 406: /* block_call: block_call call_op2 operation2 command_args do_block */ -#line 3627 "mrbgems/mruby-compiler/core/parse.y" + case 407: /* block_call: block_call call_op2 operation2 command_args do_block */ +#line 3707 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); call_with_block(p, (yyval.nd), (yyvsp[0].nd)); } -#line 9831 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9997 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 407: /* method_call: operation paren_args */ -#line 3634 "mrbgems/mruby-compiler/core/parse.y" + case 408: /* method_call: operation paren_args */ +#line 3714 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 9839 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10005 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 408: /* method_call: primary_value call_op operation2 opt_paren_args */ -#line 3638 "mrbgems/mruby-compiler/core/parse.y" + case 409: /* method_call: primary_value call_op operation2 opt_paren_args */ +#line 3718 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 9847 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10013 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 409: /* method_call: primary_value "::" operation2 paren_args */ -#line 3642 "mrbgems/mruby-compiler/core/parse.y" + case 410: /* method_call: primary_value "::" operation2 paren_args */ +#line 3722 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); } -#line 9855 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10021 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 410: /* method_call: primary_value "::" operation3 */ -#line 3646 "mrbgems/mruby-compiler/core/parse.y" + case 411: /* method_call: primary_value "::" operation3 */ +#line 3726 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 9863 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10029 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 411: /* method_call: primary_value call_op paren_args */ -#line 3650 "mrbgems/mruby-compiler/core/parse.y" + case 412: /* method_call: primary_value call_op paren_args */ +#line 3730 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), (yyvsp[-1].num)); } -#line 9871 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10037 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 412: /* method_call: primary_value "::" paren_args */ -#line 3654 "mrbgems/mruby-compiler/core/parse.y" + case 413: /* method_call: primary_value "::" paren_args */ +#line 3734 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), tCOLON2); } -#line 9879 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10045 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 413: /* method_call: "'super'" paren_args */ -#line 3658 "mrbgems/mruby-compiler/core/parse.y" + case 414: /* method_call: "'super'" paren_args */ +#line 3738 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_super(p, (yyvsp[0].nd)); } -#line 9887 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10053 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 414: /* method_call: "'super'" */ -#line 3662 "mrbgems/mruby-compiler/core/parse.y" + case 415: /* method_call: "'super'" */ +#line 3742 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_zsuper(p); } -#line 9895 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10061 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 415: /* method_call: primary_value '[' opt_call_args ']' */ -#line 3666 "mrbgems/mruby-compiler/core/parse.y" + case 416: /* method_call: primary_value '[' opt_call_args ']' */ +#line 3746 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 9903 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10069 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 416: /* @27: %empty */ -#line 3672 "mrbgems/mruby-compiler/core/parse.y" + case 417: /* @27: %empty */ +#line 3752 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 9913 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10079 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 417: /* brace_block: '{' @27 opt_block_param compstmt '}' */ -#line 3679 "mrbgems/mruby-compiler/core/parse.y" + case 418: /* brace_block: '{' @27 opt_block_param compstmt '}' */ +#line 3759 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-3].num)); local_unnest(p); nvars_unnest(p); } -#line 9924 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10090 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 418: /* @28: %empty */ -#line 3686 "mrbgems/mruby-compiler/core/parse.y" + case 419: /* @28: %empty */ +#line 3766 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 9934 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10100 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 419: /* brace_block: "'do'" @28 opt_block_param bodystmt "'end'" */ -#line 3693 "mrbgems/mruby-compiler/core/parse.y" + case 420: /* brace_block: "'do'" @28 opt_block_param bodystmt "'end'" */ +#line 3773 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-3].num)); local_unnest(p); nvars_unnest(p); } -#line 9945 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10111 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 420: /* case_body: "'when'" args then compstmt cases */ -#line 3704 "mrbgems/mruby-compiler/core/parse.y" + case 421: /* case_body: "'when'" args then compstmt cases */ +#line 3784 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(cons((yyvsp[-3].nd), (yyvsp[-1].nd)), (yyvsp[0].nd)); } -#line 9953 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10119 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 421: /* cases: opt_else */ -#line 3710 "mrbgems/mruby-compiler/core/parse.y" + case 422: /* cases: opt_else */ +#line 3790 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[0].nd)) { (yyval.nd) = cons(cons(0, (yyvsp[0].nd)), 0); @@ -9962,155 +10128,268 @@ yyreduce: (yyval.nd) = 0; } } -#line 9966 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10132 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 423: /* opt_rescue: "'rescue'" exc_list exc_var then compstmt opt_rescue */ -#line 3724 "mrbgems/mruby-compiler/core/parse.y" + case 424: /* in_clauses: opt_else */ +#line 3803 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[0].nd) ? list1(new_in(p, NULL, NULL, (yyvsp[0].nd), FALSE)) : 0; + } +#line 10140 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 425: /* in_clauses: "'in'" p_expr then compstmt in_clauses */ +#line 3807 "mrbgems/mruby-compiler/core/parse.y" + { + node *in_clause = new_in(p, (yyvsp[-3].nd), NULL, (yyvsp[-1].nd), FALSE); + (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); + } +#line 10149 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 428: /* p_as: p_alt "=>" "local variable or method" */ +#line 3819 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_as(p, (yyvsp[-2].nd), (yyvsp[0].id)); + } +#line 10157 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 430: /* p_alt: p_alt '|' p_value */ +#line 3826 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_alt(p, (yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 10165 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 432: /* p_value: numeric */ +#line 3833 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); + } +#line 10173 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 433: /* p_value: symbol */ +#line 3837 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); + } +#line 10181 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 434: /* p_value: tSTRING */ +#line 3841 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); + } +#line 10189 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 435: /* p_value: "'nil'" */ +#line 3845 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_value(p, new_nil(p)); + } +#line 10197 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 436: /* p_value: "'true'" */ +#line 3849 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_value(p, new_true(p)); + } +#line 10205 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 437: /* p_value: "'false'" */ +#line 3853 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_value(p, new_false(p)); + } +#line 10213 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 438: /* p_value: "constant" */ +#line 3857 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_value(p, new_const(p, (yyvsp[0].id))); + } +#line 10221 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 439: /* p_value: primary_value "::" "constant" */ +#line 3861 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_value(p, new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id))); + } +#line 10229 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 440: /* p_value: tCOLON3 "constant" */ +#line 3865 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_value(p, new_colon3(p, (yyvsp[0].id))); + } +#line 10237 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 441: /* p_var: "local variable or method" */ +#line 3871 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_var(p, (yyvsp[0].id)); + } +#line 10245 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 442: /* opt_rescue: "'rescue'" exc_list exc_var then compstmt opt_rescue */ +#line 3879 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(list3((yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd))); if ((yyvsp[0].nd)) (yyval.nd) = append((yyval.nd), (yyvsp[0].nd)); } -#line 9975 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10254 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 425: /* exc_list: arg */ -#line 3732 "mrbgems/mruby-compiler/core/parse.y" + case 444: /* exc_list: arg */ +#line 3887 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 9983 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10262 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 428: /* exc_var: "=>" lhs */ -#line 3740 "mrbgems/mruby-compiler/core/parse.y" + case 447: /* exc_var: "=>" lhs */ +#line 3895 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9991 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10270 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 430: /* opt_ensure: "'ensure'" compstmt */ -#line 3747 "mrbgems/mruby-compiler/core/parse.y" + case 449: /* opt_ensure: "'ensure'" compstmt */ +#line 3902 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9999 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10278 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 437: /* string: string string_fragment */ -#line 3761 "mrbgems/mruby-compiler/core/parse.y" + case 456: /* string: string string_fragment */ +#line 3916 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10007 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10286 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 438: /* string_fragment: "character literal" */ -#line 3767 "mrbgems/mruby-compiler/core/parse.y" + case 457: /* string_fragment: "character literal" */ +#line 3922 "mrbgems/mruby-compiler/core/parse.y" { /* tCHAR is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10016 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10295 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 439: /* string_fragment: tSTRING */ -#line 3772 "mrbgems/mruby-compiler/core/parse.y" + case 458: /* string_fragment: tSTRING */ +#line 3927 "mrbgems/mruby-compiler/core/parse.y" { /* tSTRING is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10025 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10304 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 440: /* string_fragment: "string literal" tSTRING */ -#line 3777 "mrbgems/mruby-compiler/core/parse.y" + case 459: /* string_fragment: "string literal" tSTRING */ +#line 3932 "mrbgems/mruby-compiler/core/parse.y" { /* $2 is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10034 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10313 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 441: /* string_fragment: "string literal" string_rep tSTRING */ -#line 3782 "mrbgems/mruby-compiler/core/parse.y" + case 460: /* string_fragment: "string literal" string_rep tSTRING */ +#line 3937 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10042 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10321 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 443: /* string_rep: string_rep string_interp */ -#line 3789 "mrbgems/mruby-compiler/core/parse.y" + case 462: /* string_rep: string_rep string_interp */ +#line 3944 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10050 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10329 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 444: /* string_interp: tSTRING_MID */ -#line 3795 "mrbgems/mruby-compiler/core/parse.y" + case 463: /* string_interp: tSTRING_MID */ +#line 3950 "mrbgems/mruby-compiler/core/parse.y" { /* $1 is already in (len . str) format */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10059 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10338 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 445: /* @29: %empty */ -#line 3800 "mrbgems/mruby-compiler/core/parse.y" + case 464: /* @29: %empty */ +#line 3955 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push_strterm(p); } -#line 10067 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10346 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 446: /* string_interp: tSTRING_PART @29 compstmt '}' */ -#line 3805 "mrbgems/mruby-compiler/core/parse.y" + case 465: /* string_interp: tSTRING_PART @29 compstmt '}' */ +#line 3960 "mrbgems/mruby-compiler/core/parse.y" { pop_strterm(p,(yyvsp[-2].nd)); /* $1 is already in (len . str) format, create (-1 . node) for expression */ node *expr_elem = cons(int_to_node(-1), (yyvsp[-1].nd)); (yyval.nd) = list2((yyvsp[-3].nd), expr_elem); } -#line 10078 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10357 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 447: /* string_interp: tLITERAL_DELIM */ -#line 3812 "mrbgems/mruby-compiler/core/parse.y" + case 466: /* string_interp: tLITERAL_DELIM */ +#line 3967 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10086 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10365 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 448: /* string_interp: tHD_LITERAL_DELIM heredoc_bodies */ -#line 3816 "mrbgems/mruby-compiler/core/parse.y" + case 467: /* string_interp: tHD_LITERAL_DELIM heredoc_bodies */ +#line 3971 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10094 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10373 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 449: /* xstring: tXSTRING_BEG tXSTRING */ -#line 3822 "mrbgems/mruby-compiler/core/parse.y" + case 468: /* xstring: tXSTRING_BEG tXSTRING */ +#line 3977 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons((yyvsp[0].nd), (node*)NULL); } -#line 10102 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10381 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 450: /* xstring: tXSTRING_BEG string_rep tXSTRING */ -#line 3826 "mrbgems/mruby-compiler/core/parse.y" + case 469: /* xstring: tXSTRING_BEG string_rep tXSTRING */ +#line 3981 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10110 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10389 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 451: /* regexp: tREGEXP_BEG tREGEXP */ -#line 3832 "mrbgems/mruby-compiler/core/parse.y" + case 470: /* regexp: tREGEXP_BEG tREGEXP */ +#line 3987 "mrbgems/mruby-compiler/core/parse.y" { node *data = (yyvsp[0].nd); /* ((len . pattern) . (flags . encoding)) */ const char *flags = (const char*)data->cdr->car; @@ -10119,11 +10398,11 @@ yyreduce: node *pattern_list = cons(data->car, (node*)NULL); (yyval.nd) = new_regx(p, pattern_list, flags, encoding); } -#line 10123 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10402 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 452: /* regexp: tREGEXP_BEG string_rep tREGEXP */ -#line 3841 "mrbgems/mruby-compiler/core/parse.y" + case 471: /* regexp: tREGEXP_BEG string_rep tREGEXP */ +#line 3996 "mrbgems/mruby-compiler/core/parse.y" { node *data = (yyvsp[0].nd); /* ((len . pattern) . (flags . encoding)) */ const char *flags = (const char*)data->cdr->car; @@ -10132,47 +10411,47 @@ yyreduce: node *complete_list = push((yyvsp[-1].nd), data->car); (yyval.nd) = new_regx(p, complete_list, flags, encoding); } -#line 10136 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10415 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 456: /* heredoc_body: tHEREDOC_END */ -#line 3859 "mrbgems/mruby-compiler/core/parse.y" + case 475: /* heredoc_body: tHEREDOC_END */ +#line 4014 "mrbgems/mruby-compiler/core/parse.y" { parser_heredoc_info *info = parsing_heredoc_info(p); info->doc = push(info->doc, new_str_empty(p)); heredoc_end(p); } -#line 10146 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10425 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 457: /* heredoc_body: heredoc_string_rep tHEREDOC_END */ -#line 3865 "mrbgems/mruby-compiler/core/parse.y" + case 476: /* heredoc_body: heredoc_string_rep tHEREDOC_END */ +#line 4020 "mrbgems/mruby-compiler/core/parse.y" { heredoc_end(p); } -#line 10154 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10433 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 460: /* heredoc_string_interp: tHD_STRING_MID */ -#line 3875 "mrbgems/mruby-compiler/core/parse.y" + case 479: /* heredoc_string_interp: tHD_STRING_MID */ +#line 4030 "mrbgems/mruby-compiler/core/parse.y" { parser_heredoc_info *info = parsing_heredoc_info(p); info->doc = push(info->doc, (yyvsp[0].nd)); heredoc_treat_nextline(p); } -#line 10164 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10443 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 461: /* @30: %empty */ -#line 3881 "mrbgems/mruby-compiler/core/parse.y" + case 480: /* @30: %empty */ +#line 4036 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push_strterm(p); } -#line 10172 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10451 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 462: /* heredoc_string_interp: tHD_STRING_PART @30 compstmt '}' */ -#line 3886 "mrbgems/mruby-compiler/core/parse.y" + case 481: /* heredoc_string_interp: tHD_STRING_PART @30 compstmt '}' */ +#line 4041 "mrbgems/mruby-compiler/core/parse.y" { pop_strterm(p, (yyvsp[-2].nd)); parser_heredoc_info *info = parsing_heredoc_info(p); @@ -10180,37 +10459,37 @@ yyreduce: node *expr_elem = cons(int_to_node(-1), (yyvsp[-1].nd)); info->doc = push(push(info->doc, (yyvsp[-3].nd)), expr_elem); } -#line 10184 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10463 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 463: /* words: tWORDS_BEG tSTRING */ -#line 3896 "mrbgems/mruby-compiler/core/parse.y" + case 482: /* words: tWORDS_BEG tSTRING */ +#line 4051 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_words(p, list1((yyvsp[0].nd))); } -#line 10192 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10471 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 464: /* words: tWORDS_BEG string_rep tSTRING */ -#line 3900 "mrbgems/mruby-compiler/core/parse.y" + case 483: /* words: tWORDS_BEG string_rep tSTRING */ +#line 4055 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_words(p, n); } -#line 10202 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10481 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 465: /* symbol: basic_symbol */ -#line 3908 "mrbgems/mruby-compiler/core/parse.y" + case 484: /* symbol: basic_symbol */ +#line 4063 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sym(p, (yyvsp[0].id)); } -#line 10210 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10489 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 466: /* symbol: "symbol" "string literal" string_rep tSTRING */ -#line 3912 "mrbgems/mruby-compiler/core/parse.y" + case 485: /* symbol: "symbol" "string literal" string_rep tSTRING */ +#line 4067 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); p->lstate = EXPR_ENDARG; @@ -10222,183 +10501,183 @@ yyreduce: } (yyval.nd) = new_dsym(p, n); } -#line 10226 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10505 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 467: /* symbol: "symbol" "numbered parameter" */ -#line 3924 "mrbgems/mruby-compiler/core/parse.y" + case 486: /* symbol: "symbol" "numbered parameter" */ +#line 4079 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym sym = intern_numparam((yyvsp[0].num)); (yyval.nd) = new_sym(p, sym); } -#line 10235 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10514 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 468: /* basic_symbol: "symbol" sym */ -#line 3931 "mrbgems/mruby-compiler/core/parse.y" + case 487: /* basic_symbol: "symbol" sym */ +#line 4086 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_END; (yyval.id) = (yyvsp[0].id); } -#line 10244 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10523 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 473: /* sym: tSTRING */ -#line 3942 "mrbgems/mruby-compiler/core/parse.y" + case 492: /* sym: tSTRING */ +#line 4097 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 10252 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10531 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 474: /* sym: "string literal" tSTRING */ -#line 3946 "mrbgems/mruby-compiler/core/parse.y" + case 493: /* sym: "string literal" tSTRING */ +#line 4101 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 10260 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10539 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 475: /* symbols: tSYMBOLS_BEG tSTRING */ -#line 3952 "mrbgems/mruby-compiler/core/parse.y" + case 494: /* symbols: tSYMBOLS_BEG tSTRING */ +#line 4107 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd))); } -#line 10268 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10547 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 476: /* symbols: tSYMBOLS_BEG string_rep tSTRING */ -#line 3956 "mrbgems/mruby-compiler/core/parse.y" + case 495: /* symbols: tSYMBOLS_BEG string_rep tSTRING */ +#line 4111 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_symbols(p, n); } -#line 10278 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10557 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 479: /* numeric: tUMINUS_NUM "integer literal" */ -#line 3966 "mrbgems/mruby-compiler/core/parse.y" + case 498: /* numeric: tUMINUS_NUM "integer literal" */ +#line 4121 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 10286 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10565 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 480: /* numeric: tUMINUS_NUM "float literal" */ -#line 3970 "mrbgems/mruby-compiler/core/parse.y" + case 499: /* numeric: tUMINUS_NUM "float literal" */ +#line 4125 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 10294 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10573 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 481: /* variable: "local variable or method" */ -#line 3976 "mrbgems/mruby-compiler/core/parse.y" + case 500: /* variable: "local variable or method" */ +#line 4131 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_lvar(p, (yyvsp[0].id)); } -#line 10302 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10581 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 482: /* variable: "instance variable" */ -#line 3980 "mrbgems/mruby-compiler/core/parse.y" + case 501: /* variable: "instance variable" */ +#line 4135 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_ivar(p, (yyvsp[0].id)); } -#line 10310 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10589 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 483: /* variable: "global variable" */ -#line 3984 "mrbgems/mruby-compiler/core/parse.y" + case 502: /* variable: "global variable" */ +#line 4139 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_gvar(p, (yyvsp[0].id)); } -#line 10318 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10597 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 484: /* variable: "class variable" */ -#line 3988 "mrbgems/mruby-compiler/core/parse.y" + case 503: /* variable: "class variable" */ +#line 4143 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_cvar(p, (yyvsp[0].id)); } -#line 10326 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10605 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 485: /* variable: "constant" */ -#line 3992 "mrbgems/mruby-compiler/core/parse.y" + case 504: /* variable: "constant" */ +#line 4147 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_const(p, (yyvsp[0].id)); } -#line 10334 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10613 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 486: /* var_lhs: variable */ -#line 3998 "mrbgems/mruby-compiler/core/parse.y" + case 505: /* var_lhs: variable */ +#line 4153 "mrbgems/mruby-compiler/core/parse.y" { assignable(p, (yyvsp[0].nd)); } -#line 10342 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10621 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 487: /* var_lhs: "numbered parameter" */ -#line 4002 "mrbgems/mruby-compiler/core/parse.y" + case 506: /* var_lhs: "numbered parameter" */ +#line 4157 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); } -#line 10350 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10629 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 488: /* var_ref: variable */ -#line 4008 "mrbgems/mruby-compiler/core/parse.y" + case 507: /* var_ref: variable */ +#line 4163 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = var_reference(p, (yyvsp[0].nd)); } -#line 10358 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10637 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 489: /* var_ref: "numbered parameter" */ -#line 4012 "mrbgems/mruby-compiler/core/parse.y" + case 508: /* var_ref: "numbered parameter" */ +#line 4167 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nvar(p, (yyvsp[0].num)); } -#line 10366 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10645 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 490: /* var_ref: "'nil'" */ -#line 4016 "mrbgems/mruby-compiler/core/parse.y" + case 509: /* var_ref: "'nil'" */ +#line 4171 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nil(p); } -#line 10374 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10653 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 491: /* var_ref: "'self'" */ -#line 4020 "mrbgems/mruby-compiler/core/parse.y" + case 510: /* var_ref: "'self'" */ +#line 4175 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_self(p); } -#line 10382 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10661 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 492: /* var_ref: "'true'" */ -#line 4024 "mrbgems/mruby-compiler/core/parse.y" + case 511: /* var_ref: "'true'" */ +#line 4179 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_true(p); } -#line 10390 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10669 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 493: /* var_ref: "'false'" */ -#line 4028 "mrbgems/mruby-compiler/core/parse.y" + case 512: /* var_ref: "'false'" */ +#line 4183 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_false(p); } -#line 10398 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10677 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 494: /* var_ref: "'__FILE__'" */ -#line 4032 "mrbgems/mruby-compiler/core/parse.y" + case 513: /* var_ref: "'__FILE__'" */ +#line 4187 "mrbgems/mruby-compiler/core/parse.y" { const char *fn = mrb_sym_name_len(p->mrb, p->filename_sym, NULL); if (!fn) { @@ -10406,686 +10685,686 @@ yyreduce: } (yyval.nd) = new_str(p, cons(cons(int_to_node(strlen(fn)), (node*)fn), (node*)NULL)); } -#line 10410 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10689 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 495: /* var_ref: "'__LINE__'" */ -#line 4040 "mrbgems/mruby-compiler/core/parse.y" + case 514: /* var_ref: "'__LINE__'" */ +#line 4195 "mrbgems/mruby-compiler/core/parse.y" { char buf[16]; dump_int(p->lineno, buf); (yyval.nd) = new_int(p, buf, 10, 0); } -#line 10421 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10700 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 496: /* var_ref: "'__ENCODING__'" */ -#line 4047 "mrbgems/mruby-compiler/core/parse.y" + case 515: /* var_ref: "'__ENCODING__'" */ +#line 4202 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, MRB_SYM_2(p->mrb, __ENCODING__), 0); } -#line 10429 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10708 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 499: /* superclass: %empty */ -#line 4057 "mrbgems/mruby-compiler/core/parse.y" + case 518: /* superclass: %empty */ +#line 4212 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 10437 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10716 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 500: /* $@31: %empty */ -#line 4061 "mrbgems/mruby-compiler/core/parse.y" + case 519: /* $@31: %empty */ +#line 4216 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 10446 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10725 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 501: /* superclass: '<' $@31 expr_value term */ -#line 4066 "mrbgems/mruby-compiler/core/parse.y" + case 520: /* superclass: '<' $@31 expr_value term */ +#line 4221 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 10454 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10733 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 504: /* f_arglist_paren: '(' f_args rparen */ -#line 4082 "mrbgems/mruby-compiler/core/parse.y" + case 523: /* f_arglist_paren: '(' f_args rparen */ +#line 4237 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 10464 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10743 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 505: /* f_arglist_paren: '(' f_arg ',' tBDOT3 rparen */ -#line 4088 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); - } -#line 10472 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 506: /* f_arglist_paren: '(' tBDOT3 rparen */ -#line 4092 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_dots(p, 0); - } -#line 10480 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 508: /* f_arglist: f_args term */ -#line 4099 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[-1].nd); - } -#line 10488 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 509: /* f_arglist: f_arg ',' tBDOT3 term */ -#line 4103 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); - } -#line 10496 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 510: /* f_arglist: "..." term */ -#line 4107 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_dots(p, 0); - } -#line 10504 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 511: /* f_label: "local variable or method" "label" */ -#line 4113 "mrbgems/mruby-compiler/core/parse.y" - { - local_nest(p); - } -#line 10512 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 512: /* f_label: "numbered parameter" "label" */ -#line 4117 "mrbgems/mruby-compiler/core/parse.y" - { - local_nest(p); - } -#line 10520 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 513: /* f_kw: f_label arg */ -#line 4123 "mrbgems/mruby-compiler/core/parse.y" - { - void_expr_error(p, (yyvsp[0].nd)); - (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); - local_unnest(p); - } -#line 10530 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 514: /* f_kw: f_label */ -#line 4129 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); - local_unnest(p); - } -#line 10539 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 515: /* f_block_kw: f_label primary_value */ -#line 4136 "mrbgems/mruby-compiler/core/parse.y" - { - void_expr_error(p, (yyvsp[0].nd)); - (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); - local_unnest(p); - } -#line 10549 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 516: /* f_block_kw: f_label */ -#line 4142 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); - local_unnest(p); - } -#line 10558 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 517: /* f_block_kwarg: f_block_kw */ -#line 4149 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1((yyvsp[0].nd)); - } -#line 10566 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 518: /* f_block_kwarg: f_block_kwarg ',' f_block_kw */ -#line 4153 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 10574 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 519: /* f_kwarg: f_kw */ -#line 4159 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1((yyvsp[0].nd)); - } -#line 10582 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 520: /* f_kwarg: f_kwarg ',' f_kw */ -#line 4163 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 10590 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 523: /* f_kwrest: kwrest_mark "local variable or method" */ -#line 4173 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.id) = (yyvsp[0].id); - } -#line 10598 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 524: /* f_kwrest: kwrest_mark */ -#line 4177 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.id) = intern_op(pow); - } -#line 10606 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 525: /* args_tail: f_kwarg ',' f_kwrest opt_f_block_arg */ -#line 4183 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].id)); - } -#line 10614 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 526: /* args_tail: f_kwarg opt_f_block_arg */ -#line 4187 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); - } -#line 10622 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 527: /* args_tail: f_kwrest opt_f_block_arg */ -#line 4191 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].id), (yyvsp[0].id)); - } -#line 10630 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 528: /* args_tail: f_block_arg */ -#line 4195 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); - } -#line 10638 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 529: /* opt_args_tail: ',' args_tail */ -#line 4201 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[0].nd); - } -#line 10646 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 530: /* opt_args_tail: %empty */ -#line 4205 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_tail(p, 0, 0, 0); - } -#line 10654 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 531: /* f_args: f_arg ',' f_optarg ',' f_rest_arg opt_args_tail */ -#line 4211 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); - } -#line 10662 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 532: /* f_args: f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4215 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 10670 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 533: /* f_args: f_arg ',' f_optarg opt_args_tail */ -#line 4219 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); - } -#line 10678 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 534: /* f_args: f_arg ',' f_optarg ',' f_arg opt_args_tail */ -#line 4223 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 10686 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 535: /* f_args: f_arg ',' f_rest_arg opt_args_tail */ -#line 4227 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); - } -#line 10694 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 536: /* f_args: f_arg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4231 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 10702 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 537: /* f_args: f_arg opt_args_tail */ -#line 4235 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); - } -#line 10710 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 538: /* f_args: f_optarg ',' f_rest_arg opt_args_tail */ -#line 4239 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); - } -#line 10718 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 539: /* f_args: f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ + case 524: /* f_arglist_paren: '(' f_arg ',' tBDOT3 rparen */ #line 4243 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); + (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); } -#line 10726 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10751 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 540: /* f_args: f_optarg opt_args_tail */ + case 525: /* f_arglist_paren: '(' tBDOT3 rparen */ #line 4247 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); + (yyval.nd) = new_args_dots(p, 0); } -#line 10734 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10759 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 541: /* f_args: f_optarg ',' f_arg opt_args_tail */ -#line 4251 "mrbgems/mruby-compiler/core/parse.y" + case 527: /* f_arglist: f_args term */ +#line 4254 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); + (yyval.nd) = (yyvsp[-1].nd); } -#line 10742 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10767 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 542: /* f_args: f_rest_arg opt_args_tail */ -#line 4255 "mrbgems/mruby-compiler/core/parse.y" + case 528: /* f_arglist: f_arg ',' tBDOT3 term */ +#line 4258 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); - } -#line 10750 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 543: /* f_args: f_rest_arg ',' f_arg opt_args_tail */ -#line 4259 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 10758 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 544: /* f_args: args_tail */ -#line 4263 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); - } -#line 10766 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 545: /* f_args: %empty */ -#line 4267 "mrbgems/mruby-compiler/core/parse.y" - { - local_add_f(p, 0); - (yyval.nd) = new_args(p, 0, 0, 0, 0, 0); + (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); } #line 10775 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 546: /* f_bad_arg: "constant" */ -#line 4274 "mrbgems/mruby-compiler/core/parse.y" + case 529: /* f_arglist: "..." term */ +#line 4262 "mrbgems/mruby-compiler/core/parse.y" { - yyerror(&(yylsp[0]), p, "formal argument cannot be a constant"); - (yyval.nd) = 0; + (yyval.nd) = new_args_dots(p, 0); } -#line 10784 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10783 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 547: /* f_bad_arg: "instance variable" */ -#line 4279 "mrbgems/mruby-compiler/core/parse.y" + case 530: /* f_label: "local variable or method" "label" */ +#line 4268 "mrbgems/mruby-compiler/core/parse.y" { - yyerror(&(yylsp[0]), p, "formal argument cannot be an instance variable"); - (yyval.nd) = 0; + local_nest(p); } -#line 10793 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10791 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 548: /* f_bad_arg: "global variable" */ + case 531: /* f_label: "numbered parameter" "label" */ +#line 4272 "mrbgems/mruby-compiler/core/parse.y" + { + local_nest(p); + } +#line 10799 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 532: /* f_kw: f_label arg */ +#line 4278 "mrbgems/mruby-compiler/core/parse.y" + { + void_expr_error(p, (yyvsp[0].nd)); + (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); + local_unnest(p); + } +#line 10809 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 533: /* f_kw: f_label */ #line 4284 "mrbgems/mruby-compiler/core/parse.y" { - yyerror(&(yylsp[0]), p, "formal argument cannot be a global variable"); - (yyval.nd) = 0; + (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); + local_unnest(p); } -#line 10802 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10818 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 549: /* f_bad_arg: "class variable" */ -#line 4289 "mrbgems/mruby-compiler/core/parse.y" + case 534: /* f_block_kw: f_label primary_value */ +#line 4291 "mrbgems/mruby-compiler/core/parse.y" { - yyerror(&(yylsp[0]), p, "formal argument cannot be a class variable"); - (yyval.nd) = 0; - } -#line 10811 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 550: /* f_bad_arg: "numbered parameter" */ -#line 4294 "mrbgems/mruby-compiler/core/parse.y" - { - yyerror(&(yylsp[0]), p, "formal argument cannot be a numbered parameter"); - (yyval.nd) = 0; - } -#line 10820 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 551: /* f_norm_arg: f_bad_arg */ -#line 4301 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.id) = 0; + void_expr_error(p, (yyvsp[0].nd)); + (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); + local_unnest(p); } #line 10828 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 552: /* f_norm_arg: "local variable or method" */ -#line 4305 "mrbgems/mruby-compiler/core/parse.y" + case 535: /* f_block_kw: f_label */ +#line 4297 "mrbgems/mruby-compiler/core/parse.y" { - local_add_f(p, (yyvsp[0].id)); - (yyval.id) = (yyvsp[0].id); + (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); + local_unnest(p); } #line 10837 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 553: /* f_arg_item: f_norm_arg */ -#line 4312 "mrbgems/mruby-compiler/core/parse.y" + case 536: /* f_block_kwarg: f_block_kw */ +#line 4304 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_lvar(p, (yyvsp[0].id)); + (yyval.nd) = list1((yyvsp[0].nd)); } #line 10845 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 554: /* @32: %empty */ -#line 4316 "mrbgems/mruby-compiler/core/parse.y" + case 537: /* f_block_kwarg: f_block_kwarg ',' f_block_kw */ +#line 4308 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = local_switch(p); + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } #line 10853 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 555: /* f_arg_item: tLPAREN @32 f_margs rparen */ -#line 4320 "mrbgems/mruby-compiler/core/parse.y" + case 538: /* f_kwarg: f_kw */ +#line 4314 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1((yyvsp[0].nd)); + } +#line 10861 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 539: /* f_kwarg: f_kwarg ',' f_kw */ +#line 4318 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 10869 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 542: /* f_kwrest: kwrest_mark "local variable or method" */ +#line 4328 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.id) = (yyvsp[0].id); + } +#line 10877 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 543: /* f_kwrest: kwrest_mark */ +#line 4332 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.id) = intern_op(pow); + } +#line 10885 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 544: /* args_tail: f_kwarg ',' f_kwrest opt_f_block_arg */ +#line 4338 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].id)); + } +#line 10893 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 545: /* args_tail: f_kwarg opt_f_block_arg */ +#line 4342 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); + } +#line 10901 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 546: /* args_tail: f_kwrest opt_f_block_arg */ +#line 4346 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].id), (yyvsp[0].id)); + } +#line 10909 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 547: /* args_tail: f_block_arg */ +#line 4350 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); + } +#line 10917 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 548: /* opt_args_tail: ',' args_tail */ +#line 4356 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[0].nd); + } +#line 10925 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 549: /* opt_args_tail: %empty */ +#line 4360 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args_tail(p, 0, 0, 0); + } +#line 10933 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 550: /* f_args: f_arg ',' f_optarg ',' f_rest_arg opt_args_tail */ +#line 4366 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); + } +#line 10941 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 551: /* f_args: f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ +#line 4370 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 10949 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 552: /* f_args: f_arg ',' f_optarg opt_args_tail */ +#line 4374 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); + } +#line 10957 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 553: /* f_args: f_arg ',' f_optarg ',' f_arg opt_args_tail */ +#line 4378 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 10965 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 554: /* f_args: f_arg ',' f_rest_arg opt_args_tail */ +#line 4382 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); + } +#line 10973 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 555: /* f_args: f_arg ',' f_rest_arg ',' f_arg opt_args_tail */ +#line 4386 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 10981 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 556: /* f_args: f_arg opt_args_tail */ +#line 4390 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); + } +#line 10989 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 557: /* f_args: f_optarg ',' f_rest_arg opt_args_tail */ +#line 4394 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); + } +#line 10997 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 558: /* f_args: f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ +#line 4398 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 11005 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 559: /* f_args: f_optarg opt_args_tail */ +#line 4402 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); + } +#line 11013 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 560: /* f_args: f_optarg ',' f_arg opt_args_tail */ +#line 4406 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 11021 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 561: /* f_args: f_rest_arg opt_args_tail */ +#line 4410 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); + } +#line 11029 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 562: /* f_args: f_rest_arg ',' f_arg opt_args_tail */ +#line 4414 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 11037 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 563: /* f_args: args_tail */ +#line 4418 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); + } +#line 11045 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 564: /* f_args: %empty */ +#line 4422 "mrbgems/mruby-compiler/core/parse.y" + { + local_add_f(p, 0); + (yyval.nd) = new_args(p, 0, 0, 0, 0, 0); + } +#line 11054 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 565: /* f_bad_arg: "constant" */ +#line 4429 "mrbgems/mruby-compiler/core/parse.y" + { + yyerror(&(yylsp[0]), p, "formal argument cannot be a constant"); + (yyval.nd) = 0; + } +#line 11063 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 566: /* f_bad_arg: "instance variable" */ +#line 4434 "mrbgems/mruby-compiler/core/parse.y" + { + yyerror(&(yylsp[0]), p, "formal argument cannot be an instance variable"); + (yyval.nd) = 0; + } +#line 11072 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 567: /* f_bad_arg: "global variable" */ +#line 4439 "mrbgems/mruby-compiler/core/parse.y" + { + yyerror(&(yylsp[0]), p, "formal argument cannot be a global variable"); + (yyval.nd) = 0; + } +#line 11081 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 568: /* f_bad_arg: "class variable" */ +#line 4444 "mrbgems/mruby-compiler/core/parse.y" + { + yyerror(&(yylsp[0]), p, "formal argument cannot be a class variable"); + (yyval.nd) = 0; + } +#line 11090 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 569: /* f_bad_arg: "numbered parameter" */ +#line 4449 "mrbgems/mruby-compiler/core/parse.y" + { + yyerror(&(yylsp[0]), p, "formal argument cannot be a numbered parameter"); + (yyval.nd) = 0; + } +#line 11099 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 570: /* f_norm_arg: f_bad_arg */ +#line 4456 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.id) = 0; + } +#line 11107 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 571: /* f_norm_arg: "local variable or method" */ +#line 4460 "mrbgems/mruby-compiler/core/parse.y" + { + local_add_f(p, (yyvsp[0].id)); + (yyval.id) = (yyvsp[0].id); + } +#line 11116 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 572: /* f_arg_item: f_norm_arg */ +#line 4467 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_lvar(p, (yyvsp[0].id)); + } +#line 11124 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 573: /* @32: %empty */ +#line 4471 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = local_switch(p); + } +#line 11132 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 574: /* f_arg_item: tLPAREN @32 f_margs rparen */ +#line 4475 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_marg(p, (yyvsp[-1].nd)); local_resume(p, (yyvsp[-2].nd)); local_add_f(p, 0); } -#line 10863 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11142 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 556: /* f_arg: f_arg_item */ -#line 4328 "mrbgems/mruby-compiler/core/parse.y" + case 575: /* f_arg: f_arg_item */ +#line 4483 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10871 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11150 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 557: /* f_arg: f_arg ',' f_arg_item */ -#line 4332 "mrbgems/mruby-compiler/core/parse.y" + case 576: /* f_arg: f_arg ',' f_arg_item */ +#line 4487 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10879 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11158 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 558: /* f_opt_asgn: "local variable or method" '=' */ -#line 4338 "mrbgems/mruby-compiler/core/parse.y" + case 577: /* f_opt_asgn: "local variable or method" '=' */ +#line 4493 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[-1].id)); local_nest(p); (yyval.id) = (yyvsp[-1].id); } -#line 10889 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11168 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 559: /* f_opt: f_opt_asgn arg */ -#line 4346 "mrbgems/mruby-compiler/core/parse.y" + case 578: /* f_opt: f_opt_asgn arg */ +#line 4501 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(sym_to_node((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 10899 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11178 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 560: /* f_block_opt: f_opt_asgn primary_value */ -#line 4354 "mrbgems/mruby-compiler/core/parse.y" + case 579: /* f_block_opt: f_opt_asgn primary_value */ +#line 4509 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(sym_to_node((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 10909 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11188 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 561: /* f_block_optarg: f_block_opt */ -#line 4362 "mrbgems/mruby-compiler/core/parse.y" + case 580: /* f_block_optarg: f_block_opt */ +#line 4517 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10917 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11196 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 562: /* f_block_optarg: f_block_optarg ',' f_block_opt */ -#line 4366 "mrbgems/mruby-compiler/core/parse.y" + case 581: /* f_block_optarg: f_block_optarg ',' f_block_opt */ +#line 4521 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10925 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11204 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 563: /* f_optarg: f_opt */ -#line 4372 "mrbgems/mruby-compiler/core/parse.y" + case 582: /* f_optarg: f_opt */ +#line 4527 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10933 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11212 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 564: /* f_optarg: f_optarg ',' f_opt */ -#line 4376 "mrbgems/mruby-compiler/core/parse.y" + case 583: /* f_optarg: f_optarg ',' f_opt */ +#line 4531 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10941 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11220 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 567: /* f_rest_arg: restarg_mark "local variable or method" */ -#line 4386 "mrbgems/mruby-compiler/core/parse.y" + case 586: /* f_rest_arg: restarg_mark "local variable or method" */ +#line 4541 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); (yyval.id) = (yyvsp[0].id); } -#line 10950 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11229 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 568: /* f_rest_arg: restarg_mark */ -#line 4391 "mrbgems/mruby-compiler/core/parse.y" + case 587: /* f_rest_arg: restarg_mark */ +#line 4546 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); local_add_f(p, (yyval.id)); } -#line 10959 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11238 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 571: /* f_block_arg: blkarg_mark "local variable or method" */ -#line 4402 "mrbgems/mruby-compiler/core/parse.y" + case 590: /* f_block_arg: blkarg_mark "local variable or method" */ +#line 4557 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 10967 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11246 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 572: /* f_block_arg: blkarg_mark */ -#line 4406 "mrbgems/mruby-compiler/core/parse.y" + case 591: /* f_block_arg: blkarg_mark */ +#line 4561 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(and); } -#line 10975 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11254 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 573: /* opt_f_block_arg: ',' f_block_arg */ -#line 4412 "mrbgems/mruby-compiler/core/parse.y" + case 592: /* opt_f_block_arg: ',' f_block_arg */ +#line 4567 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 10983 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11262 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 574: /* opt_f_block_arg: none */ -#line 4416 "mrbgems/mruby-compiler/core/parse.y" + case 593: /* opt_f_block_arg: none */ +#line 4571 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = 0; } -#line 10991 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11270 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 575: /* singleton: var_ref */ -#line 4422 "mrbgems/mruby-compiler/core/parse.y" + case 594: /* singleton: var_ref */ +#line 4577 "mrbgems/mruby-compiler/core/parse.y" { prohibit_literals(p, (yyvsp[0].nd)); (yyval.nd) = (yyvsp[0].nd); if (!(yyval.nd)) (yyval.nd) = new_nil(p); } -#line 11001 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11280 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 576: /* $@33: %empty */ -#line 4427 "mrbgems/mruby-compiler/core/parse.y" + case 595: /* $@33: %empty */ +#line 4582 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_BEG;} -#line 11007 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11286 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 577: /* singleton: '(' $@33 expr rparen */ -#line 4428 "mrbgems/mruby-compiler/core/parse.y" + case 596: /* singleton: '(' $@33 expr rparen */ +#line 4583 "mrbgems/mruby-compiler/core/parse.y" { prohibit_literals(p, (yyvsp[-1].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 11016 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11295 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 579: /* assoc_list: assocs trailer */ -#line 4436 "mrbgems/mruby-compiler/core/parse.y" + case 598: /* assoc_list: assocs trailer */ +#line 4591 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 11024 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11303 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 580: /* assocs: assoc */ -#line 4442 "mrbgems/mruby-compiler/core/parse.y" + case 599: /* assocs: assoc */ +#line 4597 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11032 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11311 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 581: /* assocs: assocs comma assoc */ -#line 4446 "mrbgems/mruby-compiler/core/parse.y" + case 600: /* assocs: assocs comma assoc */ +#line 4601 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11040 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11319 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 582: /* assoc: arg "=>" arg */ -#line 4452 "mrbgems/mruby-compiler/core/parse.y" + case 601: /* assoc: arg "=>" arg */ +#line 4607 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[-2].nd)); void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11050 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11329 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 583: /* assoc: "local variable or method" "label" arg */ -#line 4458 "mrbgems/mruby-compiler/core/parse.y" + case 602: /* assoc: "local variable or method" "label" arg */ +#line 4613 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_sym(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 11059 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11338 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 584: /* assoc: "local variable or method" "label" */ -#line 4463 "mrbgems/mruby-compiler/core/parse.y" + case 603: /* assoc: "local variable or method" "label" */ +#line 4618 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_sym(p, (yyvsp[-1].id)), label_reference(p, (yyvsp[-1].id))); } -#line 11067 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11346 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 585: /* assoc: "numbered parameter" "label" */ -#line 4467 "mrbgems/mruby-compiler/core/parse.y" + case 604: /* assoc: "numbered parameter" "label" */ +#line 4622 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym sym = intern_numparam((yyvsp[-1].num)); (yyval.nd) = cons(new_sym(p, sym), label_reference(p, sym)); } -#line 11076 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11355 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 586: /* assoc: "numbered parameter" "label" arg */ -#line 4472 "mrbgems/mruby-compiler/core/parse.y" + case 605: /* assoc: "numbered parameter" "label" arg */ +#line 4627 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_sym(p, intern_numparam((yyvsp[-2].num))), (yyvsp[0].nd)); } -#line 11085 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11364 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 587: /* assoc: string_fragment "label" arg */ -#line 4477 "mrbgems/mruby-compiler/core/parse.y" + case 606: /* assoc: string_fragment "label" arg */ +#line 4632 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); if ((yyvsp[-2].nd)->cdr) { @@ -11101,75 +11380,75 @@ yyreduce: (yyval.nd) = cons(new_sym(p, new_strsym(p, (yyvsp[-2].nd)->car)), (yyvsp[0].nd)); } } -#line 11105 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11384 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 588: /* assoc: "**" arg */ -#line 4493 "mrbgems/mruby-compiler/core/parse.y" + case 607: /* assoc: "**" arg */ +#line 4648 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_kw_rest_args(p, 0), (yyvsp[0].nd)); } -#line 11114 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11393 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 589: /* assoc: "**" */ -#line 4498 "mrbgems/mruby-compiler/core/parse.y" + case 608: /* assoc: "**" */ +#line 4653 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_kw_rest_args(p, 0), new_lvar(p, intern_op(pow))); } -#line 11122 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11401 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 602: /* call_op: '.' */ -#line 4524 "mrbgems/mruby-compiler/core/parse.y" + case 621: /* call_op: '.' */ +#line 4679 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = '.'; } -#line 11130 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11409 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 603: /* call_op: "&." */ -#line 4528 "mrbgems/mruby-compiler/core/parse.y" + case 622: /* call_op: "&." */ +#line 4683 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = 0; } -#line 11138 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11417 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 605: /* call_op2: "::" */ -#line 4535 "mrbgems/mruby-compiler/core/parse.y" + case 624: /* call_op2: "::" */ +#line 4690 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = tCOLON2; } -#line 11146 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11425 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 614: /* term: ';' */ -#line 4556 "mrbgems/mruby-compiler/core/parse.y" + case 633: /* term: ';' */ +#line 4711 "mrbgems/mruby-compiler/core/parse.y" {yyerrok;} -#line 11152 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11431 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 616: /* nl: '\n' */ -#line 4561 "mrbgems/mruby-compiler/core/parse.y" + case 635: /* nl: '\n' */ +#line 4716 "mrbgems/mruby-compiler/core/parse.y" { p->lineno += (yyvsp[0].num); p->column = 0; } -#line 11161 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11440 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 620: /* none: %empty */ -#line 4573 "mrbgems/mruby-compiler/core/parse.y" + case 639: /* none: %empty */ +#line 4728 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 11169 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11448 "mrbgems/mruby-compiler/core/y.tab.c" break; -#line 11173 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11452 "mrbgems/mruby-compiler/core/y.tab.c" default: break; } @@ -11402,7 +11681,7 @@ yyreturnlab: return yyresult; } -#line 4577 "mrbgems/mruby-compiler/core/parse.y" +#line 4732 "mrbgems/mruby-compiler/core/parse.y" #define pylval (*((YYSTYPE*)(p->ylval)))