// (see accompanying GPPGcopyright.rtf) // GPPG version 1.3.6 // Machine: DESKTOP-L2INHKG // DateTime: 22.02.2026 20:16:29 // UserName: user // Input file // options: no-lines gplex using System; using System.Collections.Generic; using System.Globalization; using System.Text; using QUT.Gppg; using PascalABCCompiler.SyntaxTree; using Languages.Pascal.Frontend.Errors; using PascalABCCompiler.ParserTools; using System.Linq; namespace Languages.Pascal.Frontend.Core { public enum Tokens { error=1,EOF=2,tkDirectiveName=3,tkAmpersend=4,tkColon=5,tkDotDot=6, tkPoint=7,tkRoundOpen=8,tkRoundClose=9,tkSemiColon=10,tkSquareOpen=11,tkSquareClose=12, tkQuestion=13,tkUnderscore=14,tkQuestionPoint=15,tkDoubleQuestion=16,tkQuestionSquareOpen=17,tkBackSlashRoundOpen=18, tkAsync=19,tkAwait=20,tkSizeOf=21,tkTypeOf=22,tkWhere=23,tkArray=24, tkCase=25,tkClass=26,tkAuto=27,tkStatic=28,tkConst=29,tkConstructor=30, tkDestructor=31,tkElse=32,tkExcept=33,tkFile=34,tkFor=35,tkForeach=36, tkFunction=37,tkMatch=38,tkWhen=39,tkIf=40,tkImplementation=41,tkInherited=42, tkInterface=43,tkProcedure=44,tkOperator=45,tkProperty=46,tkRaise=47,tkRecord=48, tkSet=49,tkType=50,tkThen=51,tkUses=52,tkVar=53,tkWhile=54, tkWith=55,tkNil=56,tkGoto=57,tkOf=58,tkLabel=59,tkLock=60, tkProgram=61,tkEvent=62,tkDefault=63,tkTemplate=64,tkExports=65,tkResourceString=66, tkThreadvar=67,tkSealed=68,tkPartial=69,tkTo=70,tkDownto=71,tkLoop=72, tkSequence=73,tkYield=74,tkShortProgram=75,tkVertParen=76,tkShortSFProgram=77,tkNew=78, tkOn=79,tkName=80,tkPrivate=81,tkProtected=82,tkPublic=83,tkInternal=84, tkRead=85,tkWrite=86,tkIndex=87,tkParseModeExpression=88,tkParseModeStatement=89,tkParseModeType=90, tkBegin=91,tkEnd=92,tkAsmBody=93,tkILCode=94,tkError=95,INVISIBLE=96, tkRepeat=97,tkUntil=98,tkDo=99,tkComma=100,tkFinally=101,tkTry=102, tkInitialization=103,tkFinalization=104,tkUnit=105,tkLibrary=106,tkExternal=107,tkParams=108, tkNamespace=109,tkAssign=110,tkPlusEqual=111,tkMinusEqual=112,tkMultEqual=113,tkDivEqual=114, tkMinus=115,tkPlus=116,tkSlash=117,tkStar=118,tkStarStar=119,tkEqual=120, tkGreater=121,tkGreaterEqual=122,tkLower=123,tkLowerEqual=124,tkNotEqual=125,tkCSharpStyleOr=126, tkArrow=127,tkOr=128,tkXor=129,tkAnd=130,tkDiv=131,tkMod=132, tkShl=133,tkShr=134,tkNot=135,tkAs=136,tkIn=137,tkIs=138, tkImplicit=139,tkExplicit=140,tkAddressOf=141,tkDeref=142,tkIdentifier=143,tkStringLiteral=144, tkFormatStringLiteral=145,tkMultilineStringLiteral=146,tkAsciiChar=147,tkAbstract=148,tkForward=149,tkOverload=150, tkReintroduce=151,tkOverride=152,tkVirtual=153,tkExtensionMethod=154,tkInteger=155,tkBigInteger=156, tkFloat=157,tkHex=158,tkUnknown=159,tkStep=160}; // Abstract base class for GPLEX scanners public abstract class ScanBase : AbstractScanner { private LexLocation __yylloc = new LexLocation(); public override LexLocation yylloc { get { return __yylloc; } set { __yylloc = value; } } protected virtual bool yywrap() { return true; } } public partial class GPPGParser: ShiftReduceParser { // Verbatim content from ABCPascal.y // Э�?и об�?явления добавля�?�?ся в класс GPPGParser, п�?едс�?авля�?�?ий собой па�?се�?, гене�?и�?�?ем�?й сис�?емой gppg public syntax_tree_node root; // �?о�?невой �?зел син�?акси�?еского де�?ева // private int maxErrors = 10; private PascalParserTools parserTools; private ParserLambdaHelper lambdaHelper = new ParserLambdaHelper(); public GPPGParser(AbstractScanner scanner, PascalParserTools parserTools) : base(scanner) { this.parserTools = parserTools; } // End verbatim content from ABCPascal.y #pragma warning disable 649 private static Dictionary aliasses; #pragma warning restore 649 private static Rule[] rules = new Rule[1030]; private static State[] states = new State[1708]; private static string[] nonTerms = new string[] { "parse_goal", "unit_key_word", "class_or_static", "assignment", "optional_array_initializer", "attribute_declarations", "ot_visibility_specifier", "one_attribute", "attribute_variable", "const_factor", "const_factor_without_unary_op", "const_variable_2", "const_term", "const_variable", "literal_or_number", "unsigned_number", "program_block", "optional_var", "class_attribute", "class_attributes", "class_attributes1", "lambda_unpacked_params_or_id", "lambda_list_of_unpacked_params_or_id", "member_list_section", "optional_component_list_seq_end", "const_decl", "only_const_decl", "const_decl_sect", "object_type", "record_type", "member_list", "method_decl_list", "field_or_const_definition_list", "case_stmt", "case_list", "program_decl_sect_list", "int_decl_sect_list1", "inclass_decl_sect_list1", "interface_decl_sect_list", "decl_sect_list", "decl_sect_list1", "inclass_decl_sect_list", "decl_sect_list_proc_func_only", "field_or_const_definition", "abc_decl_sect", "decl_sect", "int_decl_sect", "type_decl", "simple_type_decl", "simple_field_or_const_definition", "res_str_decl_sect", "method_decl_withattr", "method_or_property_decl", "property_definition", "fp_sect", "default_expr", "tuple", "expr_as_stmt", "exception_block", "external_block", "exception_handler", "exception_handler_list", "exception_identifier", "typed_const_list1", "typed_const_list", "optional_expr_list", "optional_expr_list_func_param", "elem_list", "optional_expr_list_with_bracket", "optional_expr_list_func_param_with_bracket", "expr_list", "expr_list_func_param", "const_elem_list1", "case_label_list", "const_elem_list", "optional_const_func_expr_list", "elem_list1", "enumeration_id", "expr_l1_or_unpacked_list", "enumeration_id_list", "const_simple_expr", "term", "term1", "typed_const", "typed_const_plus", "typed_var_init_expression", "expr", "expr_with_func_decl_lambda", "expr_with_func_decl_lambda_ass", "const_expr", "const_relop_expr", "elem", "range_expr", "const_elem", "array_const", "factor", "factor_without_unary_op", "relop_expr", "expr_dq", "lambda_unpacked_params", "expr_l1", "expr_l1_or_unpacked", "expr_l1_func_decl_lambda", "expr_l1_for_lambda", "simple_expr", "range_term", "range_factor", "external_directive_ident", "init_const_expr", "case_label", "variable", "proc_func_call", "var_reference", "optional_read_expr", "simple_expr_or_nothing", "var_question_point", "expr_l1_for_question_expr", "expr_l1_for_new_question_expr", "for_cycle_type", "format_expr", "format_const_expr", "const_expr_or_nothing", "foreach_stmt", "for_stmt", "loop_stmt", "yield_stmt", "yield_sequence_stmt", "fp_list", "fp_sect_list", "file_type", "sequence_type", "var_address", "goto_stmt", "func_name_ident", "param_name", "const_field_name", "func_name_with_template_args", "identifier_or_keyword", "unit_name", "exception_variable", "const_name", "func_meth_name_ident", "label_name", "type_decl_identifier", "template_identifier_with_equal", "program_param", "identifier", "identifier_keyword_operatorname", "func_class_name_ident", "visibility_specifier", "property_specifier_directives", "non_reserved", "if_stmt", "initialization_part", "template_arguments", "label_list", "ident_or_keyword_pointseparator_list", "ident_list", "param_name_list", "inherited_message", "implementation_part", "interface_part", "abc_interface_part", "simple_type_list", "literal", "one_literal", "literal_list", "label_decl_sect", "lock_stmt", "func_name", "proc_name", "optional_proc_name", "new_expr", "allowable_expr_as_stmt", "parts", "inclass_block", "block", "proc_func_external_block", "exception_class_type_identifier", "simple_type_identifier", "base_class_name", "base_classes_names_list", "optional_base_classes", "one_compiler_directive", "optional_head_compiler_directives", "head_compiler_directives", "program_heading_2", "optional_tk_point", "program_param_list", "optional_semicolon", "operator_name_ident", "const_relop", "const_addop", "assign_operator", "const_mulop", "relop", "addop", "mulop", "sign", "overload_operator", "typecast_op", "property_specifiers", "write_property_specifiers", "read_property_specifiers", "array_defaultproperty", "meth_modificators", "optional_method_modificators", "optional_method_modificators1", "meth_modificator", "property_modificator", "optional_property_initialization", "proc_call", "proc_func_constr_destr_decl", "proc_func_decl", "inclass_proc_func_decl", "inclass_proc_func_decl_without_modifiers", "constr_destr_decl", "inclass_constr_destr_decl", "method_decl", "proc_func_constr_destr_decl_with_attr", "proc_func_decl_without_modifiers", "method_header", "proc_type_decl", "procedural_type_kind", "proc_header", "procedural_type", "constr_destr_header", "proc_func_header", "func_header", "method_procfunc_header", "int_func_header", "int_proc_header", "property_interface", "program_file", "program_header", "parameter_decl", "parameter_decl_list", "property_parameter_list", "const_set", "pascal_set_const", "question_expr", "question_constexpr", "new_question_expr", "record_const", "const_field_list_1", "const_field_list", "const_field", "repeat_stmt", "raise_stmt", "pointer_type", "attribute_declaration", "one_or_some_attribute", "stmt_list", "else_case", "exception_block_else_branch", "compound_stmt", "string_type", "sizeof_expr", "simple_property_definition", "stmt_or_expression", "unlabelled_stmt", "stmt", "case_item", "set_type", "as_is_expr", "as_is_constexpr", "is_type_expr", "as_expr", "power_expr", "power_constexpr", "unsized_array_type", "simple_type_or_", "simple_type", "simple_type_question", "optional_type_specification", "fptype", "type_ref", "fptype_noproctype", "array_type", "template_param", "template_empty_param", "structured_type", "empty_template_type_reference", "simple_or_template_type_reference", "simple_or_template_or_question_type_reference", "type_ref_or_secific", "type_decl_type", "type_ref_and_secific_list", "type_decl_sect", "try_handler", "class_or_interface_keyword", "optional_tk_do", "keyword", "reserved_keyword", "typeof_expr", "simple_fp_sect", "template_param_list", "template_empty_param_list", "template_type_params", "template_type_empty_params", "template_type", "try_stmt", "uses_clause", "used_units_list", "uses_clause_one", "uses_clause_one_or_empty", "unit_file", "used_unit_name", "unit_header", "var_decl_sect", "var_decl", "var_decl_part", "field_definition", "var_decl_with_assign_var_tuple", "var_stmt", "where_part", "where_part_list", "optional_where_section", "while_stmt", "with_stmt", "variable_as_type", "dotted_identifier", "func_decl_lambda", "expl_func_decl_lambda", "lambda_type_ref", "lambda_type_ref_noproctype", "full_lambda_fp_list", "lambda_simple_fp_sect", "lambda_function_body", "lambda_procedure_body", "common_lambda_body", "optional_full_lambda_fp_list", "field_in_unnamed_object", "list_fields_in_unnamed_object", "func_class_name_ident_list", "rem_lambda", "variable_list", "var_ident_list", "tkAssignOrEqual", "const_pattern_expression", "pattern", "deconstruction_or_const_pattern", "pattern_optional_var", "collection_pattern", "tuple_pattern", "collection_pattern_list_item", "tuple_pattern_item", "collection_pattern_var_item", "match_with", "pattern_case", "pattern_cases", "pattern_out_param", "pattern_out_param_optional_var", "pattern_out_param_list", "pattern_out_param_list_optional_var", "collection_pattern_expr_list", "tuple_pattern_item_list", "const_pattern_expr_list", "var_with_init_for_expr_with_let", "var_with_init_for_expr_with_let_list", "index_or_nothing", "$accept", }; static GPPGParser() { states[0] = new State(new int[]{61,1607,105,1674,106,1675,109,1676,88,1681,90,1686,89,1693,75,1698,77,1704,3,-27,52,-27,91,-27,59,-27,29,-27,66,-27,50,-27,53,-27,62,-27,11,-27,44,-27,37,-27,28,-27,26,-27,19,-27,30,-27,31,-27},new int[]{-1,1,-234,3,-235,4,-307,1619,-309,1620,-2,1669,-175,1680}); states[1] = new State(new int[]{2,2}); states[2] = new State(-1); states[3] = new State(-2); states[4] = new State(new int[]{3,1603,52,-14,91,-14,59,-14,29,-14,66,-14,50,-14,53,-14,62,-14,11,-14,44,-14,37,-14,28,-14,26,-14,19,-14,30,-14,31,-14},new int[]{-185,5,-186,1601,-184,1606}); states[5] = new State(-41,new int[]{-303,6}); states[6] = new State(new int[]{52,1589,59,-67,29,-67,66,-67,50,-67,53,-67,62,-67,11,-67,44,-67,37,-67,28,-67,26,-67,19,-67,30,-67,31,-67,91,-67},new int[]{-17,7,-305,14,-36,15,-40,1524,-41,1525}); states[7] = new State(new int[]{7,9,10,10,5,11,100,12,6,13,2,-26},new int[]{-188,8}); states[8] = new State(-20); states[9] = new State(-21); states[10] = new State(-22); states[11] = new State(-23); states[12] = new State(-24); states[13] = new State(-25); states[14] = new State(-42); states[15] = new State(new int[]{91,17},new int[]{-256,16}); states[16] = new State(-34); states[17] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493},new int[]{-253,18,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[18] = new State(new int[]{92,19,10,20}); states[19] = new State(-529); states[20] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493},new int[]{-262,21,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[21] = new State(-531); states[22] = new State(-491); states[23] = new State(-494); states[24] = new State(new int[]{110,429,111,430,112,431,113,432,114,433,92,-527,10,-527,98,-527,101,-527,33,-527,104,-527,2,-527,9,-527,12,-527,100,-527,99,-527,32,-527,85,-527,84,-527,83,-527,82,-527,81,-527,86,-527},new int[]{-194,25}); states[25] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-88,26,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[26] = new State(-521); states[27] = new State(new int[]{70,28,92,-597,10,-597,98,-597,101,-597,33,-597,104,-597,2,-597,9,-597,12,-597,100,-597,99,-597,32,-597,85,-597,84,-597,83,-597,82,-597,81,-597,86,-597}); states[28] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,29,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[29] = new State(-606); states[30] = new State(new int[]{16,31,70,-607,92,-607,10,-607,98,-607,101,-607,33,-607,104,-607,2,-607,9,-607,12,-607,100,-607,99,-607,32,-607,85,-607,84,-607,83,-607,82,-607,81,-607,86,-607,6,-607,76,-607,5,-607,51,-607,58,-607,141,-607,143,-607,80,-607,78,-607,160,-607,87,-607,45,-607,42,-607,8,-607,21,-607,22,-607,144,-607,147,-607,145,-607,146,-607,155,-607,158,-607,157,-607,156,-607,11,-607,57,-607,91,-607,40,-607,25,-607,97,-607,54,-607,35,-607,55,-607,102,-607,47,-607,36,-607,53,-607,60,-607,74,-607,72,-607,38,-607,71,-607,13,-610}); states[31] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-98,32,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578}); states[32] = new State(new int[]{120,157,125,158,123,159,121,160,124,161,122,162,137,163,135,164,16,-620,70,-620,92,-620,10,-620,98,-620,101,-620,33,-620,104,-620,2,-620,9,-620,12,-620,100,-620,99,-620,32,-620,85,-620,84,-620,83,-620,82,-620,81,-620,86,-620,13,-620,6,-620,76,-620,5,-620,51,-620,58,-620,141,-620,143,-620,80,-620,78,-620,160,-620,87,-620,45,-620,42,-620,8,-620,21,-620,22,-620,144,-620,147,-620,145,-620,146,-620,155,-620,158,-620,157,-620,156,-620,11,-620,57,-620,91,-620,40,-620,25,-620,97,-620,54,-620,35,-620,55,-620,102,-620,47,-620,36,-620,53,-620,60,-620,74,-620,72,-620,38,-620,71,-620,116,-620,115,-620,128,-620,129,-620,126,-620,138,-620,136,-620,118,-620,117,-620,131,-620,132,-620,133,-620,134,-620,130,-620},new int[]{-196,33}); states[33] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-105,34,-243,1523,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578}); states[34] = new State(new int[]{6,35,120,-647,125,-647,123,-647,121,-647,124,-647,122,-647,137,-647,135,-647,16,-647,70,-647,92,-647,10,-647,98,-647,101,-647,33,-647,104,-647,2,-647,9,-647,12,-647,100,-647,99,-647,32,-647,85,-647,84,-647,83,-647,82,-647,81,-647,86,-647,13,-647,76,-647,5,-647,51,-647,58,-647,141,-647,143,-647,80,-647,78,-647,160,-647,87,-647,45,-647,42,-647,8,-647,21,-647,22,-647,144,-647,147,-647,145,-647,146,-647,155,-647,158,-647,157,-647,156,-647,11,-647,57,-647,91,-647,40,-647,25,-647,97,-647,54,-647,35,-647,55,-647,102,-647,47,-647,36,-647,53,-647,60,-647,74,-647,72,-647,38,-647,71,-647,116,-647,115,-647,128,-647,129,-647,126,-647,138,-647,136,-647,118,-647,117,-647,131,-647,132,-647,133,-647,134,-647,130,-647}); states[35] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-83,36,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578}); states[36] = new State(new int[]{116,172,115,173,128,174,129,175,126,176,6,-726,5,-726,120,-726,125,-726,123,-726,121,-726,124,-726,122,-726,137,-726,135,-726,16,-726,70,-726,92,-726,10,-726,98,-726,101,-726,33,-726,104,-726,2,-726,9,-726,12,-726,100,-726,99,-726,32,-726,85,-726,84,-726,83,-726,82,-726,81,-726,86,-726,13,-726,76,-726,51,-726,58,-726,141,-726,143,-726,80,-726,78,-726,160,-726,87,-726,45,-726,42,-726,8,-726,21,-726,22,-726,144,-726,147,-726,145,-726,146,-726,155,-726,158,-726,157,-726,156,-726,11,-726,57,-726,91,-726,40,-726,25,-726,97,-726,54,-726,35,-726,55,-726,102,-726,47,-726,36,-726,53,-726,60,-726,74,-726,72,-726,38,-726,71,-726,138,-726,136,-726,118,-726,117,-726,131,-726,132,-726,133,-726,134,-726,130,-726},new int[]{-197,37}); states[37] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-82,38,-243,1522,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578}); states[38] = new State(new int[]{138,178,136,1512,118,1515,117,1516,131,1517,132,1518,133,1519,134,1520,130,1521,116,-728,115,-728,128,-728,129,-728,126,-728,6,-728,5,-728,120,-728,125,-728,123,-728,121,-728,124,-728,122,-728,137,-728,135,-728,16,-728,70,-728,92,-728,10,-728,98,-728,101,-728,33,-728,104,-728,2,-728,9,-728,12,-728,100,-728,99,-728,32,-728,85,-728,84,-728,83,-728,82,-728,81,-728,86,-728,13,-728,76,-728,51,-728,58,-728,141,-728,143,-728,80,-728,78,-728,160,-728,87,-728,45,-728,42,-728,8,-728,21,-728,22,-728,144,-728,147,-728,145,-728,146,-728,155,-728,158,-728,157,-728,156,-728,11,-728,57,-728,91,-728,40,-728,25,-728,97,-728,54,-728,35,-728,55,-728,102,-728,47,-728,36,-728,53,-728,60,-728,74,-728,72,-728,38,-728,71,-728},new int[]{-198,39}); states[39] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-96,40,-269,41,-243,42,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-97,461}); states[40] = new State(-749); states[41] = new State(-750); states[42] = new State(-751); states[43] = new State(-764); states[44] = new State(new int[]{7,45,11,150,17,380,138,-765,136,-765,118,-765,117,-765,131,-765,132,-765,133,-765,134,-765,130,-765,116,-765,115,-765,128,-765,129,-765,126,-765,6,-765,5,-765,120,-765,125,-765,123,-765,121,-765,124,-765,122,-765,137,-765,135,-765,16,-765,70,-765,92,-765,10,-765,98,-765,101,-765,33,-765,104,-765,2,-765,9,-765,12,-765,100,-765,99,-765,32,-765,85,-765,84,-765,83,-765,82,-765,81,-765,86,-765,13,-765,76,-765,51,-765,58,-765,141,-765,143,-765,80,-765,78,-765,160,-765,87,-765,45,-765,42,-765,8,-765,21,-765,22,-765,144,-765,147,-765,145,-765,146,-765,155,-765,158,-765,157,-765,156,-765,57,-765,91,-765,40,-765,25,-765,97,-765,54,-765,35,-765,55,-765,102,-765,47,-765,36,-765,53,-765,60,-765,74,-765,72,-765,38,-765,71,-765,119,-762}); states[45] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,46,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148}); states[46] = new State(-799); states[47] = new State(-840); states[48] = new State(-835); states[49] = new State(-836); states[50] = new State(-856); states[51] = new State(-857); states[52] = new State(-837); states[53] = new State(-858); states[54] = new State(-859); states[55] = new State(-838); states[56] = new State(-839); states[57] = new State(-841); states[58] = new State(-864); states[59] = new State(-860); states[60] = new State(-861); states[61] = new State(-862); states[62] = new State(-863); states[63] = new State(-865); states[64] = new State(-866); states[65] = new State(-867); states[66] = new State(-868); states[67] = new State(-869); states[68] = new State(-870); states[69] = new State(-871); states[70] = new State(-872); states[71] = new State(-873); states[72] = new State(-874); states[73] = new State(-875); states[74] = new State(-876); states[75] = new State(-877); states[76] = new State(-878); states[77] = new State(-879); states[78] = new State(-880); states[79] = new State(-881); states[80] = new State(-882); states[81] = new State(-883); states[82] = new State(-884); states[83] = new State(-885); states[84] = new State(-886); states[85] = new State(-887); states[86] = new State(-888); states[87] = new State(-889); states[88] = new State(-890); states[89] = new State(-891); states[90] = new State(-892); states[91] = new State(-893); states[92] = new State(-894); states[93] = new State(-895); states[94] = new State(-896); states[95] = new State(-897); states[96] = new State(-898); states[97] = new State(-899); states[98] = new State(-900); states[99] = new State(-901); states[100] = new State(-902); states[101] = new State(-903); states[102] = new State(-904); states[103] = new State(-905); states[104] = new State(-906); states[105] = new State(-907); states[106] = new State(-908); states[107] = new State(-909); states[108] = new State(-910); states[109] = new State(-911); states[110] = new State(-912); states[111] = new State(-913); states[112] = new State(-914); states[113] = new State(-915); states[114] = new State(-916); states[115] = new State(-917); states[116] = new State(-918); states[117] = new State(-919); states[118] = new State(-920); states[119] = new State(-921); states[120] = new State(-922); states[121] = new State(-923); states[122] = new State(-924); states[123] = new State(-925); states[124] = new State(-926); states[125] = new State(-927); states[126] = new State(-928); states[127] = new State(-929); states[128] = new State(-930); states[129] = new State(-931); states[130] = new State(-932); states[131] = new State(-933); states[132] = new State(-934); states[133] = new State(-935); states[134] = new State(-936); states[135] = new State(-937); states[136] = new State(-938); states[137] = new State(-939); states[138] = new State(-940); states[139] = new State(-941); states[140] = new State(-942); states[141] = new State(-943); states[142] = new State(-944); states[143] = new State(-945); states[144] = new State(-946); states[145] = new State(-947); states[146] = new State(-948); states[147] = new State(-949); states[148] = new State(-842); states[149] = new State(-950); states[150] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-71,151,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[151] = new State(new int[]{12,152,100,153}); states[152] = new State(-801); states[153] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-88,154,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[154] = new State(-592); states[155] = new State(-604); states[156] = new State(new int[]{120,157,125,158,123,159,121,160,124,161,122,162,137,163,135,164,16,-619,70,-619,92,-619,10,-619,98,-619,101,-619,33,-619,104,-619,2,-619,9,-619,12,-619,100,-619,99,-619,32,-619,85,-619,84,-619,83,-619,82,-619,81,-619,86,-619,13,-619,6,-619,76,-619,5,-619,51,-619,58,-619,141,-619,143,-619,80,-619,78,-619,160,-619,87,-619,45,-619,42,-619,8,-619,21,-619,22,-619,144,-619,147,-619,145,-619,146,-619,155,-619,158,-619,157,-619,156,-619,11,-619,57,-619,91,-619,40,-619,25,-619,97,-619,54,-619,35,-619,55,-619,102,-619,47,-619,36,-619,53,-619,60,-619,74,-619,72,-619,38,-619,71,-619,116,-619,115,-619,128,-619,129,-619,126,-619,138,-619,136,-619,118,-619,117,-619,131,-619,132,-619,133,-619,134,-619,130,-619},new int[]{-196,33}); states[157] = new State(-717); states[158] = new State(-718); states[159] = new State(-719); states[160] = new State(-720); states[161] = new State(-721); states[162] = new State(-722); states[163] = new State(-723); states[164] = new State(new int[]{137,165}); states[165] = new State(-724); states[166] = new State(new int[]{6,35,5,167,120,-646,125,-646,123,-646,121,-646,124,-646,122,-646,137,-646,135,-646,16,-646,70,-646,92,-646,10,-646,98,-646,101,-646,33,-646,104,-646,2,-646,9,-646,12,-646,100,-646,99,-646,32,-646,85,-646,84,-646,83,-646,82,-646,81,-646,86,-646,13,-646,76,-646}); states[167] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,5,-706,70,-706,92,-706,10,-706,98,-706,101,-706,33,-706,104,-706,2,-706,9,-706,12,-706,100,-706,99,-706,32,-706,84,-706,83,-706,82,-706,81,-706,6,-706},new int[]{-115,168,-105,603,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578}); states[168] = new State(new int[]{5,169,70,-709,92,-709,10,-709,98,-709,101,-709,33,-709,104,-709,2,-709,9,-709,12,-709,100,-709,99,-709,32,-709,85,-709,84,-709,83,-709,82,-709,81,-709,86,-709,6,-709,76,-709}); states[169] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-105,170,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578}); states[170] = new State(new int[]{6,35,70,-711,92,-711,10,-711,98,-711,101,-711,33,-711,104,-711,2,-711,9,-711,12,-711,100,-711,99,-711,32,-711,85,-711,84,-711,83,-711,82,-711,81,-711,86,-711,76,-711}); states[171] = new State(new int[]{116,172,115,173,128,174,129,175,126,176,6,-725,5,-725,120,-725,125,-725,123,-725,121,-725,124,-725,122,-725,137,-725,135,-725,16,-725,70,-725,92,-725,10,-725,98,-725,101,-725,33,-725,104,-725,2,-725,9,-725,12,-725,100,-725,99,-725,32,-725,85,-725,84,-725,83,-725,82,-725,81,-725,86,-725,13,-725,76,-725,51,-725,58,-725,141,-725,143,-725,80,-725,78,-725,160,-725,87,-725,45,-725,42,-725,8,-725,21,-725,22,-725,144,-725,147,-725,145,-725,146,-725,155,-725,158,-725,157,-725,156,-725,11,-725,57,-725,91,-725,40,-725,25,-725,97,-725,54,-725,35,-725,55,-725,102,-725,47,-725,36,-725,53,-725,60,-725,74,-725,72,-725,38,-725,71,-725,138,-725,136,-725,118,-725,117,-725,131,-725,132,-725,133,-725,134,-725,130,-725},new int[]{-197,37}); states[172] = new State(-730); states[173] = new State(-731); states[174] = new State(-732); states[175] = new State(-733); states[176] = new State(-734); states[177] = new State(new int[]{138,178,136,1512,118,1515,117,1516,131,1517,132,1518,133,1519,134,1520,130,1521,116,-727,115,-727,128,-727,129,-727,126,-727,6,-727,5,-727,120,-727,125,-727,123,-727,121,-727,124,-727,122,-727,137,-727,135,-727,16,-727,70,-727,92,-727,10,-727,98,-727,101,-727,33,-727,104,-727,2,-727,9,-727,12,-727,100,-727,99,-727,32,-727,85,-727,84,-727,83,-727,82,-727,81,-727,86,-727,13,-727,76,-727,51,-727,58,-727,141,-727,143,-727,80,-727,78,-727,160,-727,87,-727,45,-727,42,-727,8,-727,21,-727,22,-727,144,-727,147,-727,145,-727,146,-727,155,-727,158,-727,157,-727,156,-727,11,-727,57,-727,91,-727,40,-727,25,-727,97,-727,54,-727,35,-727,55,-727,102,-727,47,-727,36,-727,53,-727,60,-727,74,-727,72,-727,38,-727,71,-727},new int[]{-198,39}); states[178] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,24,494},new int[]{-284,179,-279,180,-180,181,-147,218,-151,49,-152,52,-271,500}); states[179] = new State(-741); states[180] = new State(-742); states[181] = new State(new int[]{7,182,4,185,123,187,8,-628,138,-628,136,-628,118,-628,117,-628,131,-628,132,-628,133,-628,134,-628,130,-628,116,-628,115,-628,128,-628,129,-628,126,-628,6,-628,5,-628,120,-628,125,-628,121,-628,124,-628,122,-628,137,-628,135,-628,16,-628,70,-628,92,-628,10,-628,98,-628,101,-628,33,-628,104,-628,2,-628,9,-628,12,-628,100,-628,99,-628,32,-628,85,-628,84,-628,83,-628,82,-628,81,-628,86,-628,13,-628,76,-628,51,-628,58,-628,141,-628,143,-628,80,-628,78,-628,160,-628,87,-628,45,-628,42,-628,21,-628,22,-628,144,-628,147,-628,145,-628,146,-628,155,-628,158,-628,157,-628,156,-628,11,-628,57,-628,91,-628,40,-628,25,-628,97,-628,54,-628,35,-628,55,-628,102,-628,47,-628,36,-628,53,-628,60,-628,74,-628,72,-628,38,-628,71,-628},new int[]{-299,184}); states[182] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,183,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148}); states[183] = new State(-262); states[184] = new State(-629); states[185] = new State(new int[]{123,187},new int[]{-299,186}); states[186] = new State(-630); states[187] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-297,188,-280,313,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472}); states[188] = new State(new int[]{121,189,100,190}); states[189] = new State(-236); states[190] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,191,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472}); states[191] = new State(-240); states[192] = new State(new int[]{13,193,121,-244,100,-244,120,-244,9,-244,10,-244,8,-244,138,-244,136,-244,118,-244,117,-244,131,-244,132,-244,133,-244,134,-244,130,-244,116,-244,115,-244,128,-244,129,-244,126,-244,6,-244,5,-244,125,-244,123,-244,124,-244,122,-244,137,-244,135,-244,16,-244,70,-244,92,-244,98,-244,101,-244,33,-244,104,-244,2,-244,12,-244,99,-244,32,-244,85,-244,84,-244,83,-244,82,-244,81,-244,86,-244,76,-244,51,-244,58,-244,141,-244,143,-244,80,-244,78,-244,160,-244,87,-244,45,-244,42,-244,21,-244,22,-244,144,-244,147,-244,145,-244,146,-244,155,-244,158,-244,157,-244,156,-244,11,-244,57,-244,91,-244,40,-244,25,-244,97,-244,54,-244,35,-244,55,-244,102,-244,47,-244,36,-244,53,-244,60,-244,74,-244,72,-244,38,-244,71,-244,127,-244,110,-244}); states[193] = new State(-245); states[194] = new State(new int[]{6,1510,116,247,115,248,128,249,129,250,13,-249,121,-249,100,-249,120,-249,9,-249,10,-249,8,-249,138,-249,136,-249,118,-249,117,-249,131,-249,132,-249,133,-249,134,-249,130,-249,126,-249,5,-249,125,-249,123,-249,124,-249,122,-249,137,-249,135,-249,16,-249,70,-249,92,-249,98,-249,101,-249,33,-249,104,-249,2,-249,12,-249,99,-249,32,-249,85,-249,84,-249,83,-249,82,-249,81,-249,86,-249,76,-249,51,-249,58,-249,141,-249,143,-249,80,-249,78,-249,160,-249,87,-249,45,-249,42,-249,21,-249,22,-249,144,-249,147,-249,145,-249,146,-249,155,-249,158,-249,157,-249,156,-249,11,-249,57,-249,91,-249,40,-249,25,-249,97,-249,54,-249,35,-249,55,-249,102,-249,47,-249,36,-249,53,-249,60,-249,74,-249,72,-249,38,-249,71,-249,127,-249,110,-249},new int[]{-193,195}); states[195] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285},new int[]{-106,196,-107,315,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283}); states[196] = new State(new int[]{118,254,117,255,131,256,132,257,133,258,134,259,130,260,6,-253,116,-253,115,-253,128,-253,129,-253,13,-253,121,-253,100,-253,120,-253,9,-253,10,-253,8,-253,138,-253,136,-253,126,-253,5,-253,125,-253,123,-253,124,-253,122,-253,137,-253,135,-253,16,-253,70,-253,92,-253,98,-253,101,-253,33,-253,104,-253,2,-253,12,-253,99,-253,32,-253,85,-253,84,-253,83,-253,82,-253,81,-253,86,-253,76,-253,51,-253,58,-253,141,-253,143,-253,80,-253,78,-253,160,-253,87,-253,45,-253,42,-253,21,-253,22,-253,144,-253,147,-253,145,-253,146,-253,155,-253,158,-253,157,-253,156,-253,11,-253,57,-253,91,-253,40,-253,25,-253,97,-253,54,-253,35,-253,55,-253,102,-253,47,-253,36,-253,53,-253,60,-253,74,-253,72,-253,38,-253,71,-253,127,-253,110,-253},new int[]{-195,197}); states[197] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285},new int[]{-107,198,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283}); states[198] = new State(new int[]{8,199,118,-255,117,-255,131,-255,132,-255,133,-255,134,-255,130,-255,6,-255,116,-255,115,-255,128,-255,129,-255,13,-255,121,-255,100,-255,120,-255,9,-255,10,-255,138,-255,136,-255,126,-255,5,-255,125,-255,123,-255,124,-255,122,-255,137,-255,135,-255,16,-255,70,-255,92,-255,98,-255,101,-255,33,-255,104,-255,2,-255,12,-255,99,-255,32,-255,85,-255,84,-255,83,-255,82,-255,81,-255,86,-255,76,-255,51,-255,58,-255,141,-255,143,-255,80,-255,78,-255,160,-255,87,-255,45,-255,42,-255,21,-255,22,-255,144,-255,147,-255,145,-255,146,-255,155,-255,158,-255,157,-255,156,-255,11,-255,57,-255,91,-255,40,-255,25,-255,97,-255,54,-255,35,-255,55,-255,102,-255,47,-255,36,-255,53,-255,60,-255,74,-255,72,-255,38,-255,71,-255,127,-255,110,-255}); states[199] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,9,-186},new int[]{-75,200,-73,202,-94,1509,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[200] = new State(new int[]{9,201}); states[201] = new State(-260); states[202] = new State(new int[]{100,203,9,-185,12,-185}); states[203] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-94,204,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[204] = new State(-188); states[205] = new State(new int[]{13,206,16,210,6,1503,100,-189,9,-189,12,-189,5,-189}); states[206] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,207,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[207] = new State(new int[]{5,208,13,206,16,210}); states[208] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,209,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[209] = new State(new int[]{13,206,16,210,6,-123,100,-123,9,-123,12,-123,5,-123,92,-123,10,-123,98,-123,101,-123,33,-123,104,-123,2,-123,99,-123,32,-123,85,-123,84,-123,83,-123,82,-123,81,-123,86,-123}); states[210] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-91,211,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849}); states[211] = new State(new int[]{120,237,125,238,123,239,121,240,124,241,122,242,137,243,135,244,13,-122,16,-122,6,-122,100,-122,9,-122,12,-122,5,-122,92,-122,10,-122,98,-122,101,-122,33,-122,104,-122,2,-122,99,-122,32,-122,85,-122,84,-122,83,-122,82,-122,81,-122,86,-122},new int[]{-192,212}); states[212] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-81,213,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849}); states[213] = new State(new int[]{116,247,115,248,128,249,129,250,120,-119,125,-119,123,-119,121,-119,124,-119,122,-119,137,-119,135,-119,13,-119,16,-119,6,-119,100,-119,9,-119,12,-119,5,-119,92,-119,10,-119,98,-119,101,-119,33,-119,104,-119,2,-119,99,-119,32,-119,85,-119,84,-119,83,-119,82,-119,81,-119,86,-119},new int[]{-193,214}); states[214] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-13,215,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849}); states[215] = new State(new int[]{136,252,138,253,118,254,117,255,131,256,132,257,133,258,134,259,130,260,116,-133,115,-133,128,-133,129,-133,120,-133,125,-133,123,-133,121,-133,124,-133,122,-133,137,-133,135,-133,13,-133,16,-133,6,-133,100,-133,9,-133,12,-133,5,-133,92,-133,10,-133,98,-133,101,-133,33,-133,104,-133,2,-133,99,-133,32,-133,85,-133,84,-133,83,-133,82,-133,81,-133,86,-133},new int[]{-201,216,-195,219}); states[216] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-284,217,-180,181,-147,218,-151,49,-152,52}); states[217] = new State(-138); states[218] = new State(-261); states[219] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-10,220,-270,221,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-11,849}); states[220] = new State(-145); states[221] = new State(-146); states[222] = new State(new int[]{4,224,11,226,7,826,142,828,8,829,136,-156,138,-156,118,-156,117,-156,131,-156,132,-156,133,-156,134,-156,130,-156,116,-156,115,-156,128,-156,129,-156,120,-156,125,-156,123,-156,121,-156,124,-156,122,-156,137,-156,135,-156,13,-156,16,-156,6,-156,100,-156,9,-156,12,-156,5,-156,92,-156,10,-156,98,-156,101,-156,33,-156,104,-156,2,-156,99,-156,32,-156,85,-156,84,-156,83,-156,82,-156,81,-156,86,-156,119,-154},new int[]{-12,223}); states[223] = new State(-176); states[224] = new State(new int[]{123,187},new int[]{-299,225}); states[225] = new State(-177); states[226] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,5,1505,12,-186},new int[]{-121,227,-75,229,-90,231,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-73,202,-94,1509}); states[227] = new State(new int[]{12,228}); states[228] = new State(-178); states[229] = new State(new int[]{12,230}); states[230] = new State(-182); states[231] = new State(new int[]{5,232,13,206,16,210,6,1503,100,-189,12,-189}); states[232] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,5,-708,12,-708},new int[]{-122,233,-90,1502,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[233] = new State(new int[]{5,234,12,-713}); states[234] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,235,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[235] = new State(new int[]{13,206,16,210,12,-715}); states[236] = new State(new int[]{120,237,125,238,123,239,121,240,124,241,122,242,137,243,135,244,13,-120,16,-120,6,-120,100,-120,9,-120,12,-120,5,-120,92,-120,10,-120,98,-120,101,-120,33,-120,104,-120,2,-120,99,-120,32,-120,85,-120,84,-120,83,-120,82,-120,81,-120,86,-120},new int[]{-192,212}); states[237] = new State(-124); states[238] = new State(-125); states[239] = new State(-126); states[240] = new State(-127); states[241] = new State(-128); states[242] = new State(-129); states[243] = new State(-130); states[244] = new State(new int[]{137,245}); states[245] = new State(-131); states[246] = new State(new int[]{116,247,115,248,128,249,129,250,120,-118,125,-118,123,-118,121,-118,124,-118,122,-118,137,-118,135,-118,13,-118,16,-118,6,-118,100,-118,9,-118,12,-118,5,-118,92,-118,10,-118,98,-118,101,-118,33,-118,104,-118,2,-118,99,-118,32,-118,85,-118,84,-118,83,-118,82,-118,81,-118,86,-118},new int[]{-193,214}); states[247] = new State(-134); states[248] = new State(-135); states[249] = new State(-136); states[250] = new State(-137); states[251] = new State(new int[]{136,252,138,253,118,254,117,255,131,256,132,257,133,258,134,259,130,260,116,-132,115,-132,128,-132,129,-132,120,-132,125,-132,123,-132,121,-132,124,-132,122,-132,137,-132,135,-132,13,-132,16,-132,6,-132,100,-132,9,-132,12,-132,5,-132,92,-132,10,-132,98,-132,101,-132,33,-132,104,-132,2,-132,99,-132,32,-132,85,-132,84,-132,83,-132,82,-132,81,-132,86,-132},new int[]{-201,216,-195,219}); states[252] = new State(-735); states[253] = new State(-736); states[254] = new State(-147); states[255] = new State(-148); states[256] = new State(-149); states[257] = new State(-150); states[258] = new State(-151); states[259] = new State(-152); states[260] = new State(-153); states[261] = new State(-142); states[262] = new State(-170); states[263] = new State(new int[]{26,1491,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,-859,17,-859,8,-859,7,-859,142,-859,4,-859,15,-859,110,-859,111,-859,112,-859,113,-859,114,-859,92,-859,10,-859,5,-859,98,-859,101,-859,33,-859,104,-859,2,-859,127,-859,138,-859,136,-859,118,-859,117,-859,131,-859,132,-859,133,-859,134,-859,130,-859,116,-859,115,-859,128,-859,129,-859,126,-859,6,-859,120,-859,125,-859,123,-859,121,-859,124,-859,122,-859,137,-859,135,-859,16,-859,70,-859,9,-859,12,-859,100,-859,99,-859,32,-859,84,-859,83,-859,82,-859,81,-859,13,-859,119,-859,76,-859,51,-859,58,-859,141,-859,45,-859,42,-859,21,-859,22,-859,144,-859,147,-859,145,-859,146,-859,155,-859,158,-859,157,-859,156,-859,57,-859,91,-859,40,-859,25,-859,97,-859,54,-859,35,-859,55,-859,102,-859,47,-859,36,-859,53,-859,60,-859,74,-859,72,-859,38,-859,71,-859},new int[]{-284,264,-180,181,-147,218,-151,49,-152,52}); states[264] = new State(new int[]{11,266,8,1488,92,-644,10,-644,98,-644,101,-644,33,-644,104,-644,2,-644,138,-644,136,-644,118,-644,117,-644,131,-644,132,-644,133,-644,134,-644,130,-644,116,-644,115,-644,128,-644,129,-644,126,-644,6,-644,5,-644,120,-644,125,-644,123,-644,121,-644,124,-644,122,-644,137,-644,135,-644,16,-644,70,-644,9,-644,12,-644,100,-644,99,-644,32,-644,85,-644,84,-644,83,-644,82,-644,81,-644,86,-644,13,-644,76,-644,51,-644,58,-644,141,-644,143,-644,80,-644,78,-644,160,-644,87,-644,45,-644,42,-644,21,-644,22,-644,144,-644,147,-644,145,-644,146,-644,155,-644,158,-644,157,-644,156,-644,57,-644,91,-644,40,-644,25,-644,97,-644,54,-644,35,-644,55,-644,102,-644,47,-644,36,-644,53,-644,60,-644,74,-644,72,-644,38,-644,71,-644},new int[]{-70,265}); states[265] = new State(-635); states[266] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,12,-812},new int[]{-66,267,-71,640,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[267] = new State(new int[]{12,268}); states[268] = new State(new int[]{8,270,92,-634,10,-634,98,-634,101,-634,33,-634,104,-634,2,-634,138,-634,136,-634,118,-634,117,-634,131,-634,132,-634,133,-634,134,-634,130,-634,116,-634,115,-634,128,-634,129,-634,126,-634,6,-634,5,-634,120,-634,125,-634,123,-634,121,-634,124,-634,122,-634,137,-634,135,-634,16,-634,70,-634,9,-634,12,-634,100,-634,99,-634,32,-634,85,-634,84,-634,83,-634,82,-634,81,-634,86,-634,13,-634,76,-634,51,-634,58,-634,141,-634,143,-634,80,-634,78,-634,160,-634,87,-634,45,-634,42,-634,21,-634,22,-634,144,-634,147,-634,145,-634,146,-634,155,-634,158,-634,157,-634,156,-634,11,-634,57,-634,91,-634,40,-634,25,-634,97,-634,54,-634,35,-634,55,-634,102,-634,47,-634,36,-634,53,-634,60,-634,74,-634,72,-634,38,-634,71,-634},new int[]{-5,269}); states[269] = new State(-636); states[270] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339,9,-199},new int[]{-65,271,-64,273,-85,1003,-84,276,-90,277,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005}); states[271] = new State(new int[]{9,272}); states[272] = new State(-633); states[273] = new State(new int[]{100,274,9,-200}); states[274] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339},new int[]{-85,275,-84,276,-90,277,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005}); states[275] = new State(-202); states[276] = new State(-418); states[277] = new State(new int[]{13,206,16,210,100,-195,9,-195,92,-195,10,-195,98,-195,101,-195,33,-195,104,-195,2,-195,12,-195,99,-195,32,-195,85,-195,84,-195,83,-195,82,-195,81,-195,86,-195}); states[278] = new State(-171); states[279] = new State(new int[]{144,281,147,282,7,-823,11,-823,17,-823,138,-823,136,-823,118,-823,117,-823,131,-823,132,-823,133,-823,134,-823,130,-823,116,-823,115,-823,128,-823,129,-823,126,-823,6,-823,5,-823,120,-823,125,-823,123,-823,121,-823,124,-823,122,-823,137,-823,135,-823,16,-823,70,-823,92,-823,10,-823,98,-823,101,-823,33,-823,104,-823,2,-823,9,-823,12,-823,100,-823,99,-823,32,-823,85,-823,84,-823,83,-823,82,-823,81,-823,86,-823,13,-823,119,-823,76,-823,51,-823,58,-823,141,-823,143,-823,80,-823,78,-823,160,-823,87,-823,45,-823,42,-823,8,-823,21,-823,22,-823,145,-823,146,-823,155,-823,158,-823,157,-823,156,-823,57,-823,91,-823,40,-823,25,-823,97,-823,54,-823,35,-823,55,-823,102,-823,47,-823,36,-823,53,-823,60,-823,74,-823,72,-823,38,-823,71,-823,127,-823,110,-823,4,-823,142,-823},new int[]{-166,280}); states[280] = new State(-827); states[281] = new State(-821); states[282] = new State(-822); states[283] = new State(-826); states[284] = new State(-824); states[285] = new State(-825); states[286] = new State(-172); states[287] = new State(-191); states[288] = new State(-192); states[289] = new State(-193); states[290] = new State(-194); states[291] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,292,-151,49,-152,52}); states[292] = new State(-173); states[293] = new State(-174); states[294] = new State(new int[]{8,295}); states[295] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-284,296,-180,181,-147,218,-151,49,-152,52}); states[296] = new State(new int[]{9,297}); states[297] = new State(-621); states[298] = new State(-175); states[299] = new State(new int[]{8,300}); states[300] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-284,301,-283,303,-180,305,-147,218,-151,49,-152,52}); states[301] = new State(new int[]{9,302}); states[302] = new State(-622); states[303] = new State(new int[]{9,304}); states[304] = new State(-623); states[305] = new State(new int[]{7,182,4,306,123,308,125,1486,9,-628},new int[]{-299,184,-300,1487}); states[306] = new State(new int[]{123,308,125,1486},new int[]{-299,186,-300,307}); states[307] = new State(-627); states[308] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,24,494,48,502,49,549,34,553,73,557,44,563,37,604,121,-243,100,-243},new int[]{-297,188,-298,309,-280,313,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472,-281,1485}); states[309] = new State(new int[]{121,310,100,311}); states[310] = new State(-238); states[311] = new State(-243,new int[]{-281,312}); states[312] = new State(-242); states[313] = new State(-239); states[314] = new State(new int[]{118,254,117,255,131,256,132,257,133,258,134,259,130,260,6,-252,116,-252,115,-252,128,-252,129,-252,13,-252,121,-252,100,-252,120,-252,9,-252,10,-252,8,-252,138,-252,136,-252,126,-252,5,-252,125,-252,123,-252,124,-252,122,-252,137,-252,135,-252,16,-252,70,-252,92,-252,98,-252,101,-252,33,-252,104,-252,2,-252,12,-252,99,-252,32,-252,85,-252,84,-252,83,-252,82,-252,81,-252,86,-252,76,-252,51,-252,58,-252,141,-252,143,-252,80,-252,78,-252,160,-252,87,-252,45,-252,42,-252,21,-252,22,-252,144,-252,147,-252,145,-252,146,-252,155,-252,158,-252,157,-252,156,-252,11,-252,57,-252,91,-252,40,-252,25,-252,97,-252,54,-252,35,-252,55,-252,102,-252,47,-252,36,-252,53,-252,60,-252,74,-252,72,-252,38,-252,71,-252,127,-252,110,-252},new int[]{-195,197}); states[315] = new State(new int[]{8,199,118,-254,117,-254,131,-254,132,-254,133,-254,134,-254,130,-254,6,-254,116,-254,115,-254,128,-254,129,-254,13,-254,121,-254,100,-254,120,-254,9,-254,10,-254,138,-254,136,-254,126,-254,5,-254,125,-254,123,-254,124,-254,122,-254,137,-254,135,-254,16,-254,70,-254,92,-254,98,-254,101,-254,33,-254,104,-254,2,-254,12,-254,99,-254,32,-254,85,-254,84,-254,83,-254,82,-254,81,-254,86,-254,76,-254,51,-254,58,-254,141,-254,143,-254,80,-254,78,-254,160,-254,87,-254,45,-254,42,-254,21,-254,22,-254,144,-254,147,-254,145,-254,146,-254,155,-254,158,-254,157,-254,156,-254,11,-254,57,-254,91,-254,40,-254,25,-254,97,-254,54,-254,35,-254,55,-254,102,-254,47,-254,36,-254,53,-254,60,-254,74,-254,72,-254,38,-254,71,-254,127,-254,110,-254}); states[316] = new State(new int[]{7,182,127,317,123,187,8,-256,118,-256,117,-256,131,-256,132,-256,133,-256,134,-256,130,-256,6,-256,116,-256,115,-256,128,-256,129,-256,13,-256,121,-256,100,-256,120,-256,9,-256,10,-256,138,-256,136,-256,126,-256,5,-256,125,-256,124,-256,122,-256,137,-256,135,-256,16,-256,70,-256,92,-256,98,-256,101,-256,33,-256,104,-256,2,-256,12,-256,99,-256,32,-256,85,-256,84,-256,83,-256,82,-256,81,-256,86,-256,76,-256,51,-256,58,-256,141,-256,143,-256,80,-256,78,-256,160,-256,87,-256,45,-256,42,-256,21,-256,22,-256,144,-256,147,-256,145,-256,146,-256,155,-256,158,-256,157,-256,156,-256,11,-256,57,-256,91,-256,40,-256,25,-256,97,-256,54,-256,35,-256,55,-256,102,-256,47,-256,36,-256,53,-256,60,-256,74,-256,72,-256,38,-256,71,-256,110,-256},new int[]{-299,636}); states[317] = new State(new int[]{8,319,143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,318,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472}); states[318] = new State(-289); states[319] = new State(new int[]{9,320,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[320] = new State(new int[]{127,321,121,-293,100,-293,120,-293,9,-293,10,-293,8,-293,138,-293,136,-293,118,-293,117,-293,131,-293,132,-293,133,-293,134,-293,130,-293,116,-293,115,-293,128,-293,129,-293,126,-293,6,-293,5,-293,125,-293,123,-293,124,-293,122,-293,137,-293,135,-293,16,-293,70,-293,92,-293,98,-293,101,-293,33,-293,104,-293,2,-293,12,-293,99,-293,32,-293,85,-293,84,-293,83,-293,82,-293,81,-293,86,-293,13,-293,76,-293,51,-293,58,-293,141,-293,143,-293,80,-293,78,-293,160,-293,87,-293,45,-293,42,-293,21,-293,22,-293,144,-293,147,-293,145,-293,146,-293,155,-293,158,-293,157,-293,156,-293,11,-293,57,-293,91,-293,40,-293,25,-293,97,-293,54,-293,35,-293,55,-293,102,-293,47,-293,36,-293,53,-293,60,-293,74,-293,72,-293,38,-293,71,-293,110,-293}); states[321] = new State(new int[]{8,323,143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,322,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472}); states[322] = new State(-291); states[323] = new State(new int[]{9,324,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[324] = new State(new int[]{127,321,121,-295,100,-295,120,-295,9,-295,10,-295,8,-295,138,-295,136,-295,118,-295,117,-295,131,-295,132,-295,133,-295,134,-295,130,-295,116,-295,115,-295,128,-295,129,-295,126,-295,6,-295,5,-295,125,-295,123,-295,124,-295,122,-295,137,-295,135,-295,16,-295,70,-295,92,-295,98,-295,101,-295,33,-295,104,-295,2,-295,12,-295,99,-295,32,-295,85,-295,84,-295,83,-295,82,-295,81,-295,86,-295,13,-295,76,-295,51,-295,58,-295,141,-295,143,-295,80,-295,78,-295,160,-295,87,-295,45,-295,42,-295,21,-295,22,-295,144,-295,147,-295,145,-295,146,-295,155,-295,158,-295,157,-295,156,-295,11,-295,57,-295,91,-295,40,-295,25,-295,97,-295,54,-295,35,-295,55,-295,102,-295,47,-295,36,-295,53,-295,60,-295,74,-295,72,-295,38,-295,71,-295,110,-295}); states[325] = new State(new int[]{9,326,100,359}); states[326] = new State(new int[]{127,327,13,-251,121,-251,100,-251,120,-251,9,-251,10,-251,8,-251,138,-251,136,-251,118,-251,117,-251,131,-251,132,-251,133,-251,134,-251,130,-251,116,-251,115,-251,128,-251,129,-251,126,-251,6,-251,5,-251,125,-251,123,-251,124,-251,122,-251,137,-251,135,-251,16,-251,70,-251,92,-251,98,-251,101,-251,33,-251,104,-251,2,-251,12,-251,99,-251,32,-251,85,-251,84,-251,83,-251,82,-251,81,-251,86,-251,76,-251,51,-251,58,-251,141,-251,143,-251,80,-251,78,-251,160,-251,87,-251,45,-251,42,-251,21,-251,22,-251,144,-251,147,-251,145,-251,146,-251,155,-251,158,-251,157,-251,156,-251,11,-251,57,-251,91,-251,40,-251,25,-251,97,-251,54,-251,35,-251,55,-251,102,-251,47,-251,36,-251,53,-251,60,-251,74,-251,72,-251,38,-251,71,-251,110,-251}); states[327] = new State(new int[]{8,329,143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,328,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472}); states[328] = new State(-292); states[329] = new State(new int[]{9,330,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[330] = new State(new int[]{127,321,121,-296,100,-296,120,-296,9,-296,10,-296,8,-296,138,-296,136,-296,118,-296,117,-296,131,-296,132,-296,133,-296,134,-296,130,-296,116,-296,115,-296,128,-296,129,-296,126,-296,6,-296,5,-296,125,-296,123,-296,124,-296,122,-296,137,-296,135,-296,16,-296,70,-296,92,-296,98,-296,101,-296,33,-296,104,-296,2,-296,12,-296,99,-296,32,-296,85,-296,84,-296,83,-296,82,-296,81,-296,86,-296,13,-296,76,-296,51,-296,58,-296,141,-296,143,-296,80,-296,78,-296,160,-296,87,-296,45,-296,42,-296,21,-296,22,-296,144,-296,147,-296,145,-296,146,-296,155,-296,158,-296,157,-296,156,-296,11,-296,57,-296,91,-296,40,-296,25,-296,97,-296,54,-296,35,-296,55,-296,102,-296,47,-296,36,-296,53,-296,60,-296,74,-296,72,-296,38,-296,71,-296,110,-296}); states[331] = new State(-263); states[332] = new State(new int[]{120,333,9,-265,100,-265}); states[333] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,334,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[334] = new State(new int[]{70,28,9,-266,100,-266}); states[335] = new State(-746); states[336] = new State(-772); states[337] = new State(-773); states[338] = new State(-766); states[339] = new State(new int[]{8,340}); states[340] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,356},new int[]{-285,341,-284,343,-180,344,-147,218,-151,49,-152,52,-274,346,-273,347,-93,194,-106,314,-107,315,-16,349,-199,350,-165,355,-167,279,-166,283,-301,1484}); states[341] = new State(new int[]{9,342}); states[342] = new State(-760); states[343] = new State(-631); states[344] = new State(new int[]{7,182,4,185,123,187,9,-628,8,-256,118,-256,117,-256,131,-256,132,-256,133,-256,134,-256,130,-256,6,-256,116,-256,115,-256,128,-256,129,-256,13,-256},new int[]{-299,345}); states[345] = new State(new int[]{9,-629,13,-235}); states[346] = new State(-632); states[347] = new State(new int[]{13,348}); states[348] = new State(-226); states[349] = new State(-257); states[350] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285},new int[]{-107,351,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283}); states[351] = new State(new int[]{8,199,118,-258,117,-258,131,-258,132,-258,133,-258,134,-258,130,-258,6,-258,116,-258,115,-258,128,-258,129,-258,13,-258,121,-258,100,-258,120,-258,9,-258,10,-258,138,-258,136,-258,126,-258,5,-258,125,-258,123,-258,124,-258,122,-258,137,-258,135,-258,16,-258,70,-258,92,-258,98,-258,101,-258,33,-258,104,-258,2,-258,12,-258,99,-258,32,-258,85,-258,84,-258,83,-258,82,-258,81,-258,86,-258,76,-258,51,-258,58,-258,141,-258,143,-258,80,-258,78,-258,160,-258,87,-258,45,-258,42,-258,21,-258,22,-258,144,-258,147,-258,145,-258,146,-258,155,-258,158,-258,157,-258,156,-258,11,-258,57,-258,91,-258,40,-258,25,-258,97,-258,54,-258,35,-258,55,-258,102,-258,47,-258,36,-258,53,-258,60,-258,74,-258,72,-258,38,-258,71,-258,127,-258,110,-258}); states[352] = new State(new int[]{7,182,8,-256,118,-256,117,-256,131,-256,132,-256,133,-256,134,-256,130,-256,6,-256,116,-256,115,-256,128,-256,129,-256,13,-256,121,-256,100,-256,120,-256,9,-256,10,-256,138,-256,136,-256,126,-256,5,-256,125,-256,123,-256,124,-256,122,-256,137,-256,135,-256,16,-256,70,-256,92,-256,98,-256,101,-256,33,-256,104,-256,2,-256,12,-256,99,-256,32,-256,85,-256,84,-256,83,-256,82,-256,81,-256,86,-256,76,-256,51,-256,58,-256,141,-256,143,-256,80,-256,78,-256,160,-256,87,-256,45,-256,42,-256,21,-256,22,-256,144,-256,147,-256,145,-256,146,-256,155,-256,158,-256,157,-256,156,-256,11,-256,57,-256,91,-256,40,-256,25,-256,97,-256,54,-256,35,-256,55,-256,102,-256,47,-256,36,-256,53,-256,60,-256,74,-256,72,-256,38,-256,71,-256,127,-256,110,-256}); states[353] = new State(-168); states[354] = new State(-169); states[355] = new State(-259); states[356] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,357,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[357] = new State(new int[]{9,358,100,359}); states[358] = new State(-251); states[359] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-78,360,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[360] = new State(-264); states[361] = new State(new int[]{13,348,120,-228,9,-228,100,-228,10,-228,121,-228,8,-228,138,-228,136,-228,118,-228,117,-228,131,-228,132,-228,133,-228,134,-228,130,-228,116,-228,115,-228,128,-228,129,-228,126,-228,6,-228,5,-228,125,-228,123,-228,124,-228,122,-228,137,-228,135,-228,16,-228,70,-228,92,-228,98,-228,101,-228,33,-228,104,-228,2,-228,12,-228,99,-228,32,-228,85,-228,84,-228,83,-228,82,-228,81,-228,86,-228,76,-228,51,-228,58,-228,141,-228,143,-228,80,-228,78,-228,160,-228,87,-228,45,-228,42,-228,21,-228,22,-228,144,-228,147,-228,145,-228,146,-228,155,-228,158,-228,157,-228,156,-228,11,-228,57,-228,91,-228,40,-228,25,-228,97,-228,54,-228,35,-228,55,-228,102,-228,47,-228,36,-228,53,-228,60,-228,74,-228,72,-228,38,-228,71,-228,127,-228,110,-228}); states[362] = new State(new int[]{11,363,7,-835,127,-835,123,-835,8,-835,118,-835,117,-835,131,-835,132,-835,133,-835,134,-835,130,-835,6,-835,116,-835,115,-835,128,-835,129,-835,13,-835,120,-835,9,-835,100,-835,10,-835,121,-835,138,-835,136,-835,126,-835,5,-835,125,-835,124,-835,122,-835,137,-835,135,-835,16,-835,70,-835,92,-835,98,-835,101,-835,33,-835,104,-835,2,-835,12,-835,99,-835,32,-835,85,-835,84,-835,83,-835,82,-835,81,-835,86,-835,76,-835,51,-835,58,-835,141,-835,143,-835,80,-835,78,-835,160,-835,87,-835,45,-835,42,-835,21,-835,22,-835,144,-835,147,-835,145,-835,146,-835,155,-835,158,-835,157,-835,156,-835,57,-835,91,-835,40,-835,25,-835,97,-835,54,-835,35,-835,55,-835,102,-835,47,-835,36,-835,53,-835,60,-835,74,-835,72,-835,38,-835,71,-835,110,-835}); states[363] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,364,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[364] = new State(new int[]{12,365,13,206,16,210}); states[365] = new State(-284); states[366] = new State(-157); states[367] = new State(-166); states[368] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,12,-816},new int[]{-68,369,-77,371,-92,449,-87,374,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[369] = new State(new int[]{12,370}); states[370] = new State(-165); states[371] = new State(new int[]{100,372,12,-815,76,-815}); states[372] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-92,373,-87,374,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[373] = new State(-818); states[374] = new State(new int[]{70,28,6,375,100,-819,12,-819,76,-819}); states[375] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,376,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[376] = new State(new int[]{70,28,100,-820,12,-820,76,-820}); states[377] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,378,-15,379,-165,336,-167,279,-166,283,-16,337,-56,338,-199,389,-113,390,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458}); states[378] = new State(-767); states[379] = new State(new int[]{7,45,11,150,17,380,138,-765,136,-765,118,-765,117,-765,131,-765,132,-765,133,-765,134,-765,130,-765,116,-765,115,-765,128,-765,129,-765,126,-765,6,-765,5,-765,120,-765,125,-765,123,-765,121,-765,124,-765,122,-765,137,-765,135,-765,16,-765,70,-765,92,-765,10,-765,98,-765,101,-765,33,-765,104,-765,2,-765,9,-765,12,-765,100,-765,99,-765,32,-765,85,-765,84,-765,83,-765,82,-765,81,-765,86,-765,13,-765,76,-765,51,-765,58,-765,141,-765,143,-765,80,-765,78,-765,160,-765,87,-765,45,-765,42,-765,8,-765,21,-765,22,-765,144,-765,147,-765,145,-765,146,-765,155,-765,158,-765,157,-765,156,-765,57,-765,91,-765,40,-765,25,-765,97,-765,54,-765,35,-765,55,-765,102,-765,47,-765,36,-765,53,-765,60,-765,74,-765,72,-765,38,-765,71,-765}); states[380] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,5,598},new int[]{-120,381,-105,383,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578}); states[381] = new State(new int[]{12,382}); states[382] = new State(-803); states[383] = new State(new int[]{5,167,6,35}); states[384] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,385,-269,386,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-97,461}); states[385] = new State(-768); states[386] = new State(-745); states[387] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,388,-15,379,-165,336,-167,279,-166,283,-16,337,-56,338,-199,389,-113,390,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458}); states[388] = new State(-769); states[389] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,385,-15,379,-165,336,-167,279,-166,283,-16,337,-56,338,-199,389,-113,390,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458}); states[390] = new State(-770); states[391] = new State(new int[]{141,1483,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,1113,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368},new int[]{-111,392,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728}); states[392] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,110,-776,111,-776,112,-776,113,-776,114,-776,92,-776,10,-776,98,-776,101,-776,33,-776,104,-776,2,-776,138,-776,136,-776,118,-776,117,-776,131,-776,132,-776,133,-776,134,-776,130,-776,116,-776,115,-776,128,-776,129,-776,126,-776,6,-776,5,-776,120,-776,125,-776,123,-776,121,-776,124,-776,122,-776,137,-776,135,-776,16,-776,70,-776,9,-776,12,-776,100,-776,99,-776,32,-776,85,-776,84,-776,83,-776,82,-776,81,-776,86,-776,13,-776,119,-776,76,-776,51,-776,58,-776,141,-776,143,-776,80,-776,78,-776,160,-776,87,-776,45,-776,42,-776,21,-776,22,-776,144,-776,147,-776,145,-776,146,-776,155,-776,158,-776,157,-776,156,-776,57,-776,91,-776,40,-776,25,-776,97,-776,54,-776,35,-776,55,-776,102,-776,47,-776,36,-776,53,-776,60,-776,74,-776,72,-776,38,-776,71,-776}); states[393] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-71,394,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[394] = new State(new int[]{12,395,100,153}); states[395] = new State(-800); states[396] = new State(-591); states[397] = new State(new int[]{138,-770,136,-770,118,-770,117,-770,131,-770,132,-770,133,-770,134,-770,130,-770,116,-770,115,-770,128,-770,129,-770,126,-770,6,-770,5,-770,120,-770,125,-770,123,-770,121,-770,124,-770,122,-770,137,-770,135,-770,16,-770,70,-770,92,-770,10,-770,98,-770,101,-770,33,-770,104,-770,2,-770,9,-770,12,-770,100,-770,99,-770,32,-770,85,-770,84,-770,83,-770,82,-770,81,-770,86,-770,13,-770,76,-770,51,-770,58,-770,141,-770,143,-770,80,-770,78,-770,160,-770,87,-770,45,-770,42,-770,8,-770,21,-770,22,-770,144,-770,147,-770,145,-770,146,-770,155,-770,158,-770,157,-770,156,-770,11,-770,57,-770,91,-770,40,-770,25,-770,97,-770,54,-770,35,-770,55,-770,102,-770,47,-770,36,-770,53,-770,60,-770,74,-770,72,-770,38,-770,71,-770,119,-763}); states[398] = new State(-780); states[399] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,15,1118,110,-777,111,-777,112,-777,113,-777,114,-777,92,-777,10,-777,98,-777,101,-777,33,-777,104,-777,2,-777,138,-777,136,-777,118,-777,117,-777,131,-777,132,-777,133,-777,134,-777,130,-777,116,-777,115,-777,128,-777,129,-777,126,-777,6,-777,5,-777,120,-777,125,-777,123,-777,121,-777,124,-777,122,-777,137,-777,135,-777,16,-777,70,-777,9,-777,12,-777,100,-777,99,-777,32,-777,85,-777,84,-777,83,-777,82,-777,81,-777,86,-777,13,-777,119,-777,76,-777,51,-777,58,-777,141,-777,143,-777,80,-777,78,-777,160,-777,87,-777,45,-777,42,-777,21,-777,22,-777,144,-777,147,-777,145,-777,146,-777,155,-777,158,-777,157,-777,156,-777,57,-777,91,-777,40,-777,25,-777,97,-777,54,-777,35,-777,55,-777,102,-777,47,-777,36,-777,53,-777,60,-777,74,-777,72,-777,38,-777,71,-777}); states[400] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,5,598},new int[]{-120,401,-105,383,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578}); states[401] = new State(new int[]{12,402}); states[402] = new State(-802); states[403] = new State(-792); states[404] = new State(-793); states[405] = new State(new int[]{115,407,116,408,117,409,118,410,120,411,121,412,122,413,123,414,124,415,125,416,128,417,129,418,130,419,131,420,132,421,133,422,134,423,135,424,137,425,139,426,140,427,110,429,111,430,112,431,113,432,114,433,119,434},new int[]{-200,406,-194,428}); states[406] = new State(-828); states[407] = new State(-951); states[408] = new State(-952); states[409] = new State(-953); states[410] = new State(-954); states[411] = new State(-955); states[412] = new State(-956); states[413] = new State(-957); states[414] = new State(-958); states[415] = new State(-959); states[416] = new State(-960); states[417] = new State(-961); states[418] = new State(-962); states[419] = new State(-963); states[420] = new State(-964); states[421] = new State(-965); states[422] = new State(-966); states[423] = new State(-967); states[424] = new State(-968); states[425] = new State(-969); states[426] = new State(-970); states[427] = new State(-971); states[428] = new State(-972); states[429] = new State(-974); states[430] = new State(-975); states[431] = new State(-976); states[432] = new State(-977); states[433] = new State(-978); states[434] = new State(-973); states[435] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,436,-151,49,-152,52}); states[436] = new State(-794); states[437] = new State(new int[]{53,687,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,532,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105}); states[438] = new State(new int[]{9,439,70,28}); states[439] = new State(-795); states[440] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,53,1114},new int[]{-87,441,-359,443,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[441] = new State(new int[]{9,442,70,28}); states[442] = new State(-796); states[443] = new State(-790); states[444] = new State(-797); states[445] = new State(-798); states[446] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-68,447,-77,371,-92,449,-87,374,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[447] = new State(new int[]{76,448}); states[448] = new State(-804); states[449] = new State(-817); states[450] = new State(-805); states[451] = new State(-806); states[452] = new State(new int[]{7,453,138,-771,136,-771,118,-771,117,-771,131,-771,132,-771,133,-771,134,-771,130,-771,116,-771,115,-771,128,-771,129,-771,126,-771,6,-771,5,-771,120,-771,125,-771,123,-771,121,-771,124,-771,122,-771,137,-771,135,-771,16,-771,70,-771,92,-771,10,-771,98,-771,101,-771,33,-771,104,-771,2,-771,9,-771,12,-771,100,-771,99,-771,32,-771,85,-771,84,-771,83,-771,82,-771,81,-771,86,-771,13,-771,76,-771,51,-771,58,-771,141,-771,143,-771,80,-771,78,-771,160,-771,87,-771,45,-771,42,-771,8,-771,21,-771,22,-771,144,-771,147,-771,145,-771,146,-771,155,-771,158,-771,157,-771,156,-771,11,-771,57,-771,91,-771,40,-771,25,-771,97,-771,54,-771,35,-771,55,-771,102,-771,47,-771,36,-771,53,-771,60,-771,74,-771,72,-771,38,-771,71,-771}); states[453] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,405},new int[]{-148,454,-147,455,-151,49,-152,52,-293,456,-150,58,-191,457}); states[454] = new State(-808); states[455] = new State(-843); states[456] = new State(-844); states[457] = new State(-845); states[458] = new State(-778); states[459] = new State(-747); states[460] = new State(-748); states[461] = new State(new int[]{119,462}); states[462] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,463,-269,464,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-97,461}); states[463] = new State(-743); states[464] = new State(-744); states[465] = new State(-752); states[466] = new State(new int[]{8,467,138,-737,136,-737,118,-737,117,-737,131,-737,132,-737,133,-737,134,-737,130,-737,116,-737,115,-737,128,-737,129,-737,126,-737,6,-737,5,-737,120,-737,125,-737,123,-737,121,-737,124,-737,122,-737,137,-737,135,-737,16,-737,70,-737,92,-737,10,-737,98,-737,101,-737,33,-737,104,-737,2,-737,9,-737,12,-737,100,-737,99,-737,32,-737,85,-737,84,-737,83,-737,82,-737,81,-737,86,-737,13,-737,76,-737,51,-737,58,-737,141,-737,143,-737,80,-737,78,-737,160,-737,87,-737,45,-737,42,-737,21,-737,22,-737,144,-737,147,-737,145,-737,146,-737,155,-737,158,-737,157,-737,156,-737,11,-737,57,-737,91,-737,40,-737,25,-737,97,-737,54,-737,35,-737,55,-737,102,-737,47,-737,36,-737,53,-737,60,-737,74,-737,72,-737,38,-737,71,-737}); states[467] = new State(new int[]{14,472,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,474,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-354,468,-352,1482,-15,473,-165,336,-167,279,-166,283,-16,337,-341,1473,-284,1474,-180,181,-147,218,-151,49,-152,52,-344,1480,-345,1481}); states[468] = new State(new int[]{9,469,10,470,100,1478}); states[469] = new State(-649); states[470] = new State(new int[]{14,472,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,474,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-352,471,-15,473,-165,336,-167,279,-166,283,-16,337,-341,1473,-284,1474,-180,181,-147,218,-151,49,-152,52,-344,1480,-345,1481}); states[471] = new State(-686); states[472] = new State(-688); states[473] = new State(-689); states[474] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,475,-151,49,-152,52}); states[475] = new State(new int[]{5,476,9,-691,10,-691,100,-691}); states[476] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,477,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[477] = new State(-690); states[478] = new State(new int[]{9,479,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[479] = new State(new int[]{127,321}); states[480] = new State(-229); states[481] = new State(new int[]{13,482,127,483,120,-234,9,-234,100,-234,10,-234,121,-234,8,-234,138,-234,136,-234,118,-234,117,-234,131,-234,132,-234,133,-234,134,-234,130,-234,116,-234,115,-234,128,-234,129,-234,126,-234,6,-234,5,-234,125,-234,123,-234,124,-234,122,-234,137,-234,135,-234,16,-234,70,-234,92,-234,98,-234,101,-234,33,-234,104,-234,2,-234,12,-234,99,-234,32,-234,85,-234,84,-234,83,-234,82,-234,81,-234,86,-234,76,-234,51,-234,58,-234,141,-234,143,-234,80,-234,78,-234,160,-234,87,-234,45,-234,42,-234,21,-234,22,-234,144,-234,147,-234,145,-234,146,-234,155,-234,158,-234,157,-234,156,-234,11,-234,57,-234,91,-234,40,-234,25,-234,97,-234,54,-234,35,-234,55,-234,102,-234,47,-234,36,-234,53,-234,60,-234,74,-234,72,-234,38,-234,71,-234,110,-234}); states[482] = new State(-227); states[483] = new State(new int[]{8,485,143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,484,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472}); states[484] = new State(-290); states[485] = new State(new int[]{9,486,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[486] = new State(new int[]{127,321,121,-294,100,-294,120,-294,9,-294,10,-294,8,-294,138,-294,136,-294,118,-294,117,-294,131,-294,132,-294,133,-294,134,-294,130,-294,116,-294,115,-294,128,-294,129,-294,126,-294,6,-294,5,-294,125,-294,123,-294,124,-294,122,-294,137,-294,135,-294,16,-294,70,-294,92,-294,98,-294,101,-294,33,-294,104,-294,2,-294,12,-294,99,-294,32,-294,85,-294,84,-294,83,-294,82,-294,81,-294,86,-294,13,-294,76,-294,51,-294,58,-294,141,-294,143,-294,80,-294,78,-294,160,-294,87,-294,45,-294,42,-294,21,-294,22,-294,144,-294,147,-294,145,-294,146,-294,155,-294,158,-294,157,-294,156,-294,11,-294,57,-294,91,-294,40,-294,25,-294,97,-294,54,-294,35,-294,55,-294,102,-294,47,-294,36,-294,53,-294,60,-294,74,-294,72,-294,38,-294,71,-294,110,-294}); states[487] = new State(-230); states[488] = new State(-231); states[489] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,490,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[490] = new State(-267); states[491] = new State(-485); states[492] = new State(-232); states[493] = new State(-268); states[494] = new State(new int[]{11,495,58,1468}); states[495] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,356,12,-280,100,-280},new int[]{-164,496,-272,1467,-273,1466,-93,194,-106,314,-107,315,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283}); states[496] = new State(new int[]{12,497,100,1464}); states[497] = new State(new int[]{58,498}); states[498] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,499,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[499] = new State(-274); states[500] = new State(-275); states[501] = new State(-269); states[502] = new State(new int[]{8,1344,23,-316,11,-316,92,-316,84,-316,83,-316,82,-316,81,-316,29,-316,143,-316,85,-316,86,-316,80,-316,78,-316,160,-316,87,-316,62,-316,28,-316,26,-316,44,-316,37,-316,19,-316,30,-316,31,-316,46,-316,27,-316},new int[]{-183,503}); states[503] = new State(new int[]{23,1335,11,-323,92,-323,84,-323,83,-323,82,-323,81,-323,29,-323,143,-323,85,-323,86,-323,80,-323,78,-323,160,-323,87,-323,62,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323},new int[]{-318,504,-317,1333,-316,1355}); states[504] = new State(new int[]{11,628,92,-340,84,-340,83,-340,82,-340,81,-340,29,-213,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,62,-213,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-24,505,-31,1256,-33,509,-44,1257,-6,1258,-251,1155,-32,1420,-53,1422,-52,515,-54,1421}); states[505] = new State(new int[]{92,506,84,1252,83,1253,82,1254,81,1255},new int[]{-7,507}); states[506] = new State(-298); states[507] = new State(new int[]{11,628,92,-340,84,-340,83,-340,82,-340,81,-340,29,-213,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,62,-213,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-31,508,-33,509,-44,1257,-6,1258,-251,1155,-32,1420,-53,1422,-52,515,-54,1421}); states[508] = new State(-335); states[509] = new State(new int[]{10,511,92,-346,84,-346,83,-346,82,-346,81,-346},new int[]{-190,510}); states[510] = new State(-341); states[511] = new State(new int[]{11,628,92,-347,84,-347,83,-347,82,-347,81,-347,29,-213,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,62,-213,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-44,512,-32,513,-6,1258,-251,1155,-53,1422,-52,515,-54,1421}); states[512] = new State(-349); states[513] = new State(new int[]{11,628,92,-343,84,-343,83,-343,82,-343,81,-343,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-53,514,-52,515,-6,516,-251,1155,-54,1421}); states[514] = new State(-352); states[515] = new State(-353); states[516] = new State(new int[]{28,1380,26,1381,44,1328,37,1363,19,1383,30,1391,31,1398,11,628,46,1405,27,1414},new int[]{-222,517,-251,518,-219,519,-259,520,-3,521,-230,1382,-228,1316,-225,1327,-229,1362,-227,1389,-215,1402,-216,1403,-218,1404}); states[517] = new State(-362); states[518] = new State(-212); states[519] = new State(-363); states[520] = new State(-379); states[521] = new State(new int[]{30,523,19,1198,46,1270,27,1308,44,1328,37,1363},new int[]{-230,522,-216,1197,-228,1316,-225,1327,-229,1362}); states[522] = new State(-366); states[523] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,110,-378,10,-378},new int[]{-172,524,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[524] = new State(new int[]{8,565,110,-469,10,-469},new int[]{-128,525}); states[525] = new State(new int[]{110,527,10,1169},new int[]{-207,526}); states[526] = new State(-375); states[527] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,528,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[528] = new State(new int[]{10,529}); states[529] = new State(-424); states[530] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,92,-573,10,-573,98,-573,101,-573,33,-573,104,-573,2,-573,9,-573,12,-573,100,-573,99,-573,32,-573,84,-573,83,-573,82,-573,81,-573},new int[]{-147,436,-151,49,-152,52}); states[531] = new State(new int[]{53,1157,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,532,-111,694,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105}); states[532] = new State(new int[]{100,533}); states[533] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,18,669},new int[]{-79,534,-102,1148,-101,1147,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-100,1105}); states[534] = new State(new int[]{100,1145,5,546,10,-1008,9,-1008},new int[]{-325,535}); states[535] = new State(new int[]{10,538,9,-996},new int[]{-332,536}); states[536] = new State(new int[]{9,537}); states[537] = new State(-761); states[538] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,539,-328,1096,-158,542,-147,809,-151,49,-152,52}); states[539] = new State(new int[]{10,540,9,-997}); states[540] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-328,541,-158,542,-147,809,-151,49,-152,52}); states[541] = new State(-1006); states[542] = new State(new int[]{100,544,5,546,10,-1008,9,-1008},new int[]{-325,543}); states[543] = new State(-1007); states[544] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,545,-151,49,-152,52}); states[545] = new State(-345); states[546] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,547,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[547] = new State(-1009); states[548] = new State(-270); states[549] = new State(new int[]{58,550}); states[550] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,551,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[551] = new State(-281); states[552] = new State(-271); states[553] = new State(new int[]{58,554,121,-283,100,-283,120,-283,9,-283,10,-283,8,-283,138,-283,136,-283,118,-283,117,-283,131,-283,132,-283,133,-283,134,-283,130,-283,116,-283,115,-283,128,-283,129,-283,126,-283,6,-283,5,-283,125,-283,123,-283,124,-283,122,-283,137,-283,135,-283,16,-283,70,-283,92,-283,98,-283,101,-283,33,-283,104,-283,2,-283,12,-283,99,-283,32,-283,85,-283,84,-283,83,-283,82,-283,81,-283,86,-283,13,-283,76,-283,51,-283,141,-283,143,-283,80,-283,78,-283,160,-283,87,-283,45,-283,42,-283,21,-283,22,-283,144,-283,147,-283,145,-283,146,-283,155,-283,158,-283,157,-283,156,-283,11,-283,57,-283,91,-283,40,-283,25,-283,97,-283,54,-283,35,-283,55,-283,102,-283,47,-283,36,-283,53,-283,60,-283,74,-283,72,-283,38,-283,71,-283,127,-283,110,-283}); states[554] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,555,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[555] = new State(-282); states[556] = new State(-272); states[557] = new State(new int[]{58,558}); states[558] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,559,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[559] = new State(-273); states[560] = new State(-233); states[561] = new State(-285); states[562] = new State(-286); states[563] = new State(new int[]{8,565,121,-469,100,-469,120,-469,9,-469,10,-469,138,-469,136,-469,118,-469,117,-469,131,-469,132,-469,133,-469,134,-469,130,-469,116,-469,115,-469,128,-469,129,-469,126,-469,6,-469,5,-469,125,-469,123,-469,124,-469,122,-469,137,-469,135,-469,16,-469,70,-469,92,-469,98,-469,101,-469,33,-469,104,-469,2,-469,12,-469,99,-469,32,-469,85,-469,84,-469,83,-469,82,-469,81,-469,86,-469,13,-469,76,-469,51,-469,58,-469,141,-469,143,-469,80,-469,78,-469,160,-469,87,-469,45,-469,42,-469,21,-469,22,-469,144,-469,147,-469,145,-469,146,-469,155,-469,158,-469,157,-469,156,-469,11,-469,57,-469,91,-469,40,-469,25,-469,97,-469,54,-469,35,-469,55,-469,102,-469,47,-469,36,-469,53,-469,60,-469,74,-469,72,-469,38,-469,71,-469,127,-469,110,-469},new int[]{-128,564}); states[564] = new State(-287); states[565] = new State(new int[]{9,566,11,628,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,53,-213,29,-213,108,-213},new int[]{-129,567,-55,1156,-6,571,-251,1155}); states[566] = new State(-470); states[567] = new State(new int[]{9,568,10,569}); states[568] = new State(-471); states[569] = new State(new int[]{11,628,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,53,-213,29,-213,108,-213},new int[]{-55,570,-6,571,-251,1155}); states[570] = new State(-473); states[571] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,612,29,618,108,624,11,628},new int[]{-296,572,-251,518,-159,573,-135,611,-147,610,-151,49,-152,52}); states[572] = new State(-474); states[573] = new State(new int[]{5,574,100,608}); states[574] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,575,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[575] = new State(new int[]{110,576,9,-475,10,-475}); states[576] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,577,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[577] = new State(new int[]{70,28,9,-479,10,-479}); states[578] = new State(-738); states[579] = new State(new int[]{70,-608,92,-608,10,-608,98,-608,101,-608,33,-608,104,-608,2,-608,9,-608,12,-608,100,-608,99,-608,32,-608,85,-608,84,-608,83,-608,82,-608,81,-608,86,-608,6,-608,76,-608,5,-608,51,-608,58,-608,141,-608,143,-608,80,-608,78,-608,160,-608,87,-608,45,-608,42,-608,8,-608,21,-608,22,-608,144,-608,147,-608,145,-608,146,-608,155,-608,158,-608,157,-608,156,-608,11,-608,57,-608,91,-608,40,-608,25,-608,97,-608,54,-608,35,-608,55,-608,102,-608,47,-608,36,-608,53,-608,60,-608,74,-608,72,-608,38,-608,71,-608,13,-611}); states[580] = new State(new int[]{13,581}); states[581] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-117,582,-99,585,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,587}); states[582] = new State(new int[]{5,583,13,581}); states[583] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-117,584,-99,585,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,587}); states[584] = new State(new int[]{13,581,70,-624,92,-624,10,-624,98,-624,101,-624,33,-624,104,-624,2,-624,9,-624,12,-624,100,-624,99,-624,32,-624,85,-624,84,-624,83,-624,82,-624,81,-624,86,-624,6,-624,76,-624,5,-624,51,-624,58,-624,141,-624,143,-624,80,-624,78,-624,160,-624,87,-624,45,-624,42,-624,8,-624,21,-624,22,-624,144,-624,147,-624,145,-624,146,-624,155,-624,158,-624,157,-624,156,-624,11,-624,57,-624,91,-624,40,-624,25,-624,97,-624,54,-624,35,-624,55,-624,102,-624,47,-624,36,-624,53,-624,60,-624,74,-624,72,-624,38,-624,71,-624}); states[585] = new State(new int[]{16,31,5,-610,13,-610,70,-610,92,-610,10,-610,98,-610,101,-610,33,-610,104,-610,2,-610,9,-610,12,-610,100,-610,99,-610,32,-610,85,-610,84,-610,83,-610,82,-610,81,-610,86,-610,6,-610,76,-610,51,-610,58,-610,141,-610,143,-610,80,-610,78,-610,160,-610,87,-610,45,-610,42,-610,8,-610,21,-610,22,-610,144,-610,147,-610,145,-610,146,-610,155,-610,158,-610,157,-610,156,-610,11,-610,57,-610,91,-610,40,-610,25,-610,97,-610,54,-610,35,-610,55,-610,102,-610,47,-610,36,-610,53,-610,60,-610,74,-610,72,-610,38,-610,71,-610}); states[586] = new State(new int[]{6,35,120,-646,125,-646,123,-646,121,-646,124,-646,122,-646,137,-646,135,-646,16,-646,70,-646,92,-646,10,-646,98,-646,101,-646,33,-646,104,-646,2,-646,9,-646,12,-646,100,-646,99,-646,32,-646,85,-646,84,-646,83,-646,82,-646,81,-646,86,-646,76,-646,13,-646,5,-646,51,-646,58,-646,141,-646,143,-646,80,-646,78,-646,160,-646,87,-646,45,-646,42,-646,8,-646,21,-646,22,-646,144,-646,147,-646,145,-646,146,-646,155,-646,158,-646,157,-646,156,-646,11,-646,57,-646,91,-646,40,-646,25,-646,97,-646,54,-646,35,-646,55,-646,102,-646,47,-646,36,-646,53,-646,60,-646,74,-646,72,-646,38,-646,71,-646,116,-646,115,-646,128,-646,129,-646,126,-646,138,-646,136,-646,118,-646,117,-646,131,-646,132,-646,133,-646,134,-646,130,-646}); states[587] = new State(-611); states[588] = new State(-609); states[589] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-118,590,-99,595,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-243,596}); states[590] = new State(new int[]{51,591}); states[591] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-118,592,-99,595,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-243,596}); states[592] = new State(new int[]{32,593}); states[593] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-118,594,-99,595,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-243,596}); states[594] = new State(-625); states[595] = new State(new int[]{16,31,51,-612,32,-612,120,-612,125,-612,123,-612,121,-612,124,-612,122,-612,137,-612,135,-612,70,-612,92,-612,10,-612,98,-612,101,-612,33,-612,104,-612,2,-612,9,-612,12,-612,100,-612,99,-612,85,-612,84,-612,83,-612,82,-612,81,-612,86,-612,13,-612,6,-612,76,-612,5,-612,58,-612,141,-612,143,-612,80,-612,78,-612,160,-612,87,-612,45,-612,42,-612,8,-612,21,-612,22,-612,144,-612,147,-612,145,-612,146,-612,155,-612,158,-612,157,-612,156,-612,11,-612,57,-612,91,-612,40,-612,25,-612,97,-612,54,-612,35,-612,55,-612,102,-612,47,-612,36,-612,53,-612,60,-612,74,-612,72,-612,38,-612,71,-612,116,-612,115,-612,128,-612,129,-612,126,-612,138,-612,136,-612,118,-612,117,-612,131,-612,132,-612,133,-612,134,-612,130,-612}); states[596] = new State(-613); states[597] = new State(-605); states[598] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,5,-706,70,-706,92,-706,10,-706,98,-706,101,-706,33,-706,104,-706,2,-706,9,-706,12,-706,100,-706,99,-706,32,-706,84,-706,83,-706,82,-706,81,-706,6,-706},new int[]{-115,599,-105,603,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578}); states[599] = new State(new int[]{5,600,70,-710,92,-710,10,-710,98,-710,101,-710,33,-710,104,-710,2,-710,9,-710,12,-710,100,-710,99,-710,32,-710,85,-710,84,-710,83,-710,82,-710,81,-710,86,-710,6,-710,76,-710}); states[600] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-105,601,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578}); states[601] = new State(new int[]{6,35,70,-712,92,-712,10,-712,98,-712,101,-712,33,-712,104,-712,2,-712,9,-712,12,-712,100,-712,99,-712,32,-712,85,-712,84,-712,83,-712,82,-712,81,-712,86,-712,76,-712}); states[602] = new State(-737); states[603] = new State(new int[]{6,35,5,-705,70,-705,92,-705,10,-705,98,-705,101,-705,33,-705,104,-705,2,-705,9,-705,12,-705,100,-705,99,-705,32,-705,85,-705,84,-705,83,-705,82,-705,81,-705,86,-705,76,-705}); states[604] = new State(new int[]{8,565,5,-469},new int[]{-128,605}); states[605] = new State(new int[]{5,606}); states[606] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,607,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[607] = new State(-288); states[608] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-135,609,-147,610,-151,49,-152,52}); states[609] = new State(-483); states[610] = new State(-484); states[611] = new State(-482); states[612] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-159,613,-135,611,-147,610,-151,49,-152,52}); states[613] = new State(new int[]{5,614,100,608}); states[614] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,615,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[615] = new State(new int[]{110,616,9,-476,10,-476}); states[616] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,617,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[617] = new State(new int[]{70,28,9,-480,10,-480}); states[618] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-159,619,-135,611,-147,610,-151,49,-152,52}); states[619] = new State(new int[]{5,620,100,608}); states[620] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,621,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[621] = new State(new int[]{110,622,9,-477,10,-477}); states[622] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,623,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[623] = new State(new int[]{70,28,9,-481,10,-481}); states[624] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-159,625,-135,611,-147,610,-151,49,-152,52}); states[625] = new State(new int[]{5,626,100,608}); states[626] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,627,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[627] = new State(-478); states[628] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-252,629,-8,1154,-9,633,-180,634,-147,1149,-151,49,-152,52,-301,1152}); states[629] = new State(new int[]{12,630,100,631}); states[630] = new State(-214); states[631] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-8,632,-9,633,-180,634,-147,1149,-151,49,-152,52,-301,1152}); states[632] = new State(-216); states[633] = new State(-217); states[634] = new State(new int[]{7,182,8,637,123,187,12,-642,100,-642},new int[]{-69,635,-299,636}); states[635] = new State(-782); states[636] = new State(-235); states[637] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,9,-812},new int[]{-66,638,-71,640,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[638] = new State(new int[]{9,639}); states[639] = new State(-643); states[640] = new State(new int[]{100,153,12,-811,9,-811}); states[641] = new State(new int[]{127,642,11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,138,-792,136,-792,118,-792,117,-792,131,-792,132,-792,133,-792,134,-792,130,-792,116,-792,115,-792,128,-792,129,-792,126,-792,6,-792,5,-792,120,-792,125,-792,123,-792,121,-792,124,-792,122,-792,137,-792,135,-792,16,-792,70,-792,92,-792,10,-792,98,-792,101,-792,33,-792,104,-792,2,-792,9,-792,12,-792,100,-792,99,-792,32,-792,85,-792,84,-792,83,-792,82,-792,81,-792,86,-792,13,-792,119,-792}); states[642] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,643,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[643] = new State(-988); states[644] = new State(-1025); states[645] = new State(new int[]{16,31,92,-616,10,-616,98,-616,101,-616,33,-616,104,-616,2,-616,9,-616,12,-616,100,-616,99,-616,32,-616,85,-616,84,-616,83,-616,82,-616,81,-616,86,-616,13,-610}); states[646] = new State(new int[]{53,687,9,714,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,1124,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,647,-147,1083,-4,1121,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,1123,-132,391,-111,399,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105}); states[647] = new State(new int[]{100,648}); states[648] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,18,669},new int[]{-79,649,-102,1148,-101,1147,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-100,1105}); states[649] = new State(new int[]{100,1145,5,546,10,-1008,9,-1008},new int[]{-325,650}); states[650] = new State(new int[]{10,538,9,-996},new int[]{-332,651}); states[651] = new State(new int[]{9,652}); states[652] = new State(new int[]{5,661,7,-761,138,-761,136,-761,118,-761,117,-761,131,-761,132,-761,133,-761,134,-761,130,-761,116,-761,115,-761,128,-761,129,-761,126,-761,6,-761,120,-761,125,-761,123,-761,121,-761,124,-761,122,-761,137,-761,135,-761,16,-761,70,-761,92,-761,10,-761,98,-761,101,-761,33,-761,104,-761,2,-761,9,-761,12,-761,100,-761,99,-761,32,-761,85,-761,84,-761,83,-761,82,-761,81,-761,86,-761,13,-761,127,-1010},new int[]{-336,653,-326,654}); states[653] = new State(-993); states[654] = new State(new int[]{127,655}); states[655] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,656,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[656] = new State(-998); states[657] = new State(new int[]{92,-617,10,-617,98,-617,101,-617,33,-617,104,-617,2,-617,9,-617,12,-617,100,-617,99,-617,32,-617,85,-617,84,-617,83,-617,82,-617,81,-617,86,-617,13,-611}); states[658] = new State(-618); states[659] = new State(new int[]{5,661,127,-1010},new int[]{-336,660,-326,654}); states[660] = new State(-994); states[661] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,356,142,489,24,494,48,502,49,549,34,553,73,557},new int[]{-278,662,-273,663,-93,194,-106,314,-107,315,-180,664,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-257,665,-250,666,-282,667,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-301,668}); states[662] = new State(-1011); states[663] = new State(-486); states[664] = new State(new int[]{7,182,123,187,8,-256,118,-256,117,-256,131,-256,132,-256,133,-256,134,-256,130,-256,6,-256,116,-256,115,-256,128,-256,129,-256,127,-256},new int[]{-299,636}); states[665] = new State(-487); states[666] = new State(-488); states[667] = new State(-489); states[668] = new State(-490); states[669] = new State(new int[]{18,669,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-23,670,-22,676,-100,674,-147,675,-151,49,-152,52}); states[670] = new State(new int[]{100,671}); states[671] = new State(new int[]{18,669,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-22,672,-100,674,-147,675,-151,49,-152,52}); states[672] = new State(new int[]{9,673,100,-983}); states[673] = new State(-979); states[674] = new State(-980); states[675] = new State(-981); states[676] = new State(-982); states[677] = new State(-995); states[678] = new State(new int[]{8,1135,5,661,127,-1010},new int[]{-326,679}); states[679] = new State(new int[]{127,680}); states[680] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,681,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[681] = new State(-999); states[682] = new State(new int[]{127,683,8,1127}); states[683] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,686,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-330,684,-212,685,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-4,1125,-331,1126,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[684] = new State(-1002); states[685] = new State(-1027); states[686] = new State(new int[]{53,687,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,1124,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,532,-111,694,-4,1121,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,1123,-132,391,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105}); states[687] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,688,-151,49,-152,52}); states[688] = new State(new int[]{110,689}); states[689] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-99,690,-87,692,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-101,155,-241,579,-117,580,-243,588,-120,597}); states[690] = new State(new int[]{9,691,16,31,10,-607,70,-607,13,-610}); states[691] = new State(-779); states[692] = new State(new int[]{10,693,70,28}); states[693] = new State(-788); states[694] = new State(new int[]{100,695,11,393,17,400,8,702,7,1108,142,1110,4,1111,15,1118,138,-777,136,-777,118,-777,117,-777,131,-777,132,-777,133,-777,134,-777,130,-777,116,-777,115,-777,128,-777,129,-777,126,-777,6,-777,5,-777,120,-777,125,-777,123,-777,121,-777,124,-777,122,-777,137,-777,135,-777,16,-777,9,-777,70,-777,13,-777,119,-777,110,-777,111,-777,112,-777,113,-777,114,-777}); states[695] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,1113,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368},new int[]{-337,696,-111,1117,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728}); states[696] = new State(new int[]{9,697,100,700}); states[697] = new State(new int[]{110,429,111,430,112,431,113,432,114,433},new int[]{-194,698}); states[698] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,699,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[699] = new State(new int[]{70,28,92,-522,10,-522,98,-522,101,-522,33,-522,104,-522,2,-522,9,-522,12,-522,100,-522,99,-522,32,-522,85,-522,84,-522,83,-522,82,-522,81,-522,86,-522}); states[700] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,1113,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368},new int[]{-111,701,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728}); states[701] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,9,-524,100,-524}); states[702] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,712,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,9,-814},new int[]{-67,703,-72,705,-89,1107,-87,708,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,709,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,1106,-100,659,-324,677}); states[703] = new State(new int[]{9,704}); states[704] = new State(-791); states[705] = new State(new int[]{100,706,9,-813}); states[706] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,712,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-89,707,-87,708,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,709,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,1106,-100,659,-324,677}); states[707] = new State(-594); states[708] = new State(new int[]{70,28,100,-600,9,-600}); states[709] = new State(new int[]{110,710,127,642,11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,138,-792,136,-792,118,-792,117,-792,131,-792,132,-792,133,-792,134,-792,130,-792,116,-792,115,-792,128,-792,129,-792,126,-792,6,-792,5,-792,120,-792,125,-792,123,-792,121,-792,124,-792,122,-792,137,-792,135,-792,16,-792,70,-792,100,-792,9,-792,13,-792,119,-792}); states[710] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,711,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[711] = new State(-601); states[712] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,100,-603,9,-603},new int[]{-147,436,-151,49,-152,52}); states[713] = new State(new int[]{53,687,9,714,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,647,-147,1083,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105}); states[714] = new State(new int[]{5,661,127,-1010},new int[]{-326,715}); states[715] = new State(new int[]{127,716}); states[716] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,717,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[717] = new State(-989); states[718] = new State(-1026); states[719] = new State(-1012); states[720] = new State(-1013); states[721] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,722,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[722] = new State(new int[]{51,723}); states[723] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,724,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[724] = new State(new int[]{32,725,92,-532,10,-532,98,-532,101,-532,33,-532,104,-532,2,-532,9,-532,12,-532,100,-532,99,-532,85,-532,84,-532,83,-532,82,-532,81,-532,86,-532}); states[725] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,726,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[726] = new State(-533); states[727] = new State(new int[]{7,45,11,150,17,380}); states[728] = new State(new int[]{7,453}); states[729] = new State(-495); states[730] = new State(-496); states[731] = new State(new int[]{155,733,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-143,732,-147,734,-151,49,-152,52}); states[732] = new State(-528); states[733] = new State(-99); states[734] = new State(-100); states[735] = new State(-497); states[736] = new State(-498); states[737] = new State(-499); states[738] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,739,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[739] = new State(new int[]{58,740}); states[740] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,32,748,92,-552},new int[]{-35,741,-254,1080,-263,1082,-74,1073,-110,1079,-94,1078,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[741] = new State(new int[]{10,744,32,748,92,-552},new int[]{-254,742}); states[742] = new State(new int[]{92,743}); states[743] = new State(-543); states[744] = new State(new int[]{32,748,143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,92,-552},new int[]{-254,745,-263,747,-74,1073,-110,1079,-94,1078,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[745] = new State(new int[]{92,746}); states[746] = new State(-544); states[747] = new State(-547); states[748] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,92,-493},new int[]{-253,749,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[749] = new State(new int[]{10,20,92,-553}); states[750] = new State(-530); states[751] = new State(new int[]{11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,110,-792,111,-792,112,-792,113,-792,114,-792,92,-792,10,-792,98,-792,101,-792,33,-792,104,-792,2,-792,5,-100}); states[752] = new State(new int[]{7,-191,11,-191,17,-191,5,-99}); states[753] = new State(-500); states[754] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,98,-493,10,-493},new int[]{-253,755,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[755] = new State(new int[]{98,756,10,20}); states[756] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,757,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[757] = new State(new int[]{70,28,92,-554,10,-554,98,-554,101,-554,33,-554,104,-554,2,-554,9,-554,12,-554,100,-554,99,-554,32,-554,85,-554,84,-554,83,-554,82,-554,81,-554,86,-554}); states[758] = new State(-501); states[759] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,760,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[760] = new State(new int[]{99,1069,141,-557,143,-557,85,-557,86,-557,80,-557,78,-557,160,-557,87,-557,45,-557,42,-557,8,-557,21,-557,22,-557,144,-557,147,-557,145,-557,146,-557,155,-557,158,-557,157,-557,156,-557,76,-557,11,-557,57,-557,91,-557,40,-557,25,-557,97,-557,54,-557,35,-557,55,-557,102,-557,47,-557,36,-557,53,-557,60,-557,74,-557,72,-557,38,-557,92,-557,10,-557,98,-557,101,-557,33,-557,104,-557,2,-557,9,-557,12,-557,100,-557,32,-557,84,-557,83,-557,82,-557,81,-557},new int[]{-292,761}); states[761] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,762,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[762] = new State(-555); states[763] = new State(-502); states[764] = new State(new int[]{53,1072,143,-564,85,-564,86,-564,80,-564,78,-564,160,-564,87,-564},new int[]{-18,765}); states[765] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,766,-151,49,-152,52}); states[766] = new State(new int[]{5,1022,110,-562},new int[]{-275,767}); states[767] = new State(new int[]{110,768}); states[768] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,769,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[769] = new State(new int[]{70,1070,71,1071},new int[]{-119,770}); states[770] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,771,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[771] = new State(new int[]{160,1065,99,1069,141,-557,143,-557,85,-557,86,-557,80,-557,78,-557,87,-557,45,-557,42,-557,8,-557,21,-557,22,-557,144,-557,147,-557,145,-557,146,-557,155,-557,158,-557,157,-557,156,-557,76,-557,11,-557,57,-557,91,-557,40,-557,25,-557,97,-557,54,-557,35,-557,55,-557,102,-557,47,-557,36,-557,53,-557,60,-557,74,-557,72,-557,38,-557,92,-557,10,-557,98,-557,101,-557,33,-557,104,-557,2,-557,9,-557,12,-557,100,-557,32,-557,84,-557,83,-557,82,-557,81,-557},new int[]{-292,772}); states[772] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,773,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[773] = new State(-570); states[774] = new State(-503); states[775] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-71,776,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[776] = new State(new int[]{99,777,100,153}); states[777] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,778,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[778] = new State(-572); states[779] = new State(-504); states[780] = new State(-505); states[781] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,101,-493,33,-493},new int[]{-253,782,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[782] = new State(new int[]{10,20,101,784,33,1043},new int[]{-290,783}); states[783] = new State(-574); states[784] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493},new int[]{-253,785,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[785] = new State(new int[]{92,786,10,20}); states[786] = new State(-575); states[787] = new State(-506); states[788] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,92,-589,10,-589,98,-589,101,-589,33,-589,104,-589,2,-589,9,-589,12,-589,100,-589,99,-589,32,-589,84,-589,83,-589,82,-589,81,-589},new int[]{-87,789,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[789] = new State(new int[]{70,28,92,-590,10,-590,98,-590,101,-590,33,-590,104,-590,2,-590,9,-590,12,-590,100,-590,99,-590,32,-590,85,-590,84,-590,83,-590,82,-590,81,-590,86,-590}); states[790] = new State(-507); states[791] = new State(new int[]{53,1024,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,792,-151,49,-152,52}); states[792] = new State(new int[]{5,1022,137,-562},new int[]{-275,793}); states[793] = new State(new int[]{137,794}); states[794] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,795,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[795] = new State(new int[]{87,1020,99,-560},new int[]{-361,796}); states[796] = new State(new int[]{99,797}); states[797] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,798,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[798] = new State(-567); states[799] = new State(-508); states[800] = new State(new int[]{8,802,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-312,801,-158,810,-147,809,-151,49,-152,52}); states[801] = new State(-518); states[802] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,803,-151,49,-152,52}); states[803] = new State(new int[]{100,804}); states[804] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,805,-147,809,-151,49,-152,52}); states[805] = new State(new int[]{9,806,100,544}); states[806] = new State(new int[]{110,807}); states[807] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,808,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[808] = new State(new int[]{70,28,92,-520,10,-520,98,-520,101,-520,33,-520,104,-520,2,-520,9,-520,12,-520,100,-520,99,-520,32,-520,85,-520,84,-520,83,-520,82,-520,81,-520,86,-520}); states[809] = new State(-344); states[810] = new State(new int[]{5,811,100,544,110,1018}); states[811] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,812,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[812] = new State(new int[]{110,1016,120,1017,92,-408,10,-408,98,-408,101,-408,33,-408,104,-408,2,-408,9,-408,12,-408,100,-408,99,-408,32,-408,85,-408,84,-408,83,-408,82,-408,81,-408,86,-408},new int[]{-339,813}); states[813] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,987,135,841,116,353,115,354,63,339,37,678,44,682,40,589},new int[]{-86,814,-85,815,-84,276,-90,277,-91,236,-81,816,-13,251,-10,261,-14,222,-147,856,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005,-324,1014,-243,1015}); states[814] = new State(-410); states[815] = new State(-411); states[816] = new State(new int[]{6,817,116,247,115,248,128,249,129,250,120,-118,125,-118,123,-118,121,-118,124,-118,122,-118,137,-118,135,-118,13,-118,16,-118,92,-118,10,-118,98,-118,101,-118,33,-118,104,-118,2,-118,9,-118,12,-118,100,-118,99,-118,32,-118,85,-118,84,-118,83,-118,82,-118,81,-118,86,-118},new int[]{-193,214}); states[817] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-13,818,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849}); states[818] = new State(new int[]{136,252,138,253,118,254,117,255,131,256,132,257,133,258,134,259,130,260,92,-412,10,-412,98,-412,101,-412,33,-412,104,-412,2,-412,9,-412,12,-412,100,-412,99,-412,32,-412,85,-412,84,-412,83,-412,82,-412,81,-412,86,-412},new int[]{-201,216,-195,219}); states[819] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-68,820,-77,371,-92,449,-87,374,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[820] = new State(new int[]{76,821}); states[821] = new State(-167); states[822] = new State(-158); states[823] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,835,135,841,116,353,115,354,63,339},new int[]{-10,824,-14,825,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,843,-173,845,-56,846}); states[824] = new State(-159); states[825] = new State(new int[]{4,224,11,226,7,826,142,828,8,829,136,-156,138,-156,118,-156,117,-156,131,-156,132,-156,133,-156,134,-156,130,-156,116,-156,115,-156,128,-156,129,-156,120,-156,125,-156,123,-156,121,-156,124,-156,122,-156,137,-156,135,-156,13,-156,16,-156,6,-156,100,-156,9,-156,12,-156,5,-156,92,-156,10,-156,98,-156,101,-156,33,-156,104,-156,2,-156,99,-156,32,-156,85,-156,84,-156,83,-156,82,-156,81,-156,86,-156},new int[]{-12,223}); states[826] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,827,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148}); states[827] = new State(-179); states[828] = new State(-180); states[829] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,9,-184},new int[]{-76,830,-71,832,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[830] = new State(new int[]{9,831}); states[831] = new State(-181); states[832] = new State(new int[]{100,153,9,-183}); states[833] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,92,-599,10,-599,98,-599,101,-599,33,-599,104,-599,2,-599,9,-599,12,-599,100,-599,99,-599,32,-599,84,-599,83,-599,82,-599,81,-599},new int[]{-147,436,-151,49,-152,52}); states[834] = new State(-598); states[835] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,836,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[836] = new State(new int[]{9,837,13,206,16,210}); states[837] = new State(-160); states[838] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,839,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[839] = new State(new int[]{9,840,13,206,16,210}); states[840] = new State(new int[]{136,-160,138,-160,118,-160,117,-160,131,-160,132,-160,133,-160,134,-160,130,-160,116,-160,115,-160,128,-160,129,-160,120,-160,125,-160,123,-160,121,-160,124,-160,122,-160,137,-160,135,-160,13,-160,16,-160,6,-160,100,-160,9,-160,12,-160,5,-160,92,-160,10,-160,98,-160,101,-160,33,-160,104,-160,2,-160,99,-160,32,-160,85,-160,84,-160,83,-160,82,-160,81,-160,86,-160,119,-155}); states[841] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,835,135,841,116,353,115,354,63,339},new int[]{-10,842,-14,825,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,843,-173,845,-56,846}); states[842] = new State(-161); states[843] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,835,135,841,116,353,115,354,63,339},new int[]{-10,844,-14,825,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,843,-173,845,-56,846}); states[844] = new State(-162); states[845] = new State(-163); states[846] = new State(-164); states[847] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-10,844,-270,848,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-11,849}); states[848] = new State(-141); states[849] = new State(new int[]{119,850}); states[850] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-10,851,-270,852,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-11,849}); states[851] = new State(-139); states[852] = new State(-140); states[853] = new State(-143); states[854] = new State(-144); states[855] = new State(-121); states[856] = new State(new int[]{127,857,4,-170,11,-170,7,-170,142,-170,8,-170,136,-170,138,-170,118,-170,117,-170,131,-170,132,-170,133,-170,134,-170,130,-170,6,-170,116,-170,115,-170,128,-170,129,-170,120,-170,125,-170,123,-170,121,-170,124,-170,122,-170,137,-170,135,-170,13,-170,16,-170,92,-170,10,-170,98,-170,101,-170,33,-170,104,-170,2,-170,9,-170,12,-170,100,-170,99,-170,32,-170,85,-170,84,-170,83,-170,82,-170,81,-170,86,-170,119,-170}); states[857] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,858,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[858] = new State(-414); states[859] = new State(-1014); states[860] = new State(-1015); states[861] = new State(-1016); states[862] = new State(-1017); states[863] = new State(-1018); states[864] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,865,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[865] = new State(new int[]{99,866}); states[866] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,867,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[867] = new State(-515); states[868] = new State(-509); states[869] = new State(-595); states[870] = new State(-596); states[871] = new State(-510); states[872] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,873,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[873] = new State(new int[]{99,874}); states[874] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,875,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[875] = new State(-558); states[876] = new State(-511); states[877] = new State(new int[]{73,879,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,878,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677}); states[878] = new State(-516); states[879] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,880,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677}); states[880] = new State(-517); states[881] = new State(-614); states[882] = new State(-615); states[883] = new State(-512); states[884] = new State(-513); states[885] = new State(-514); states[886] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,887,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[887] = new State(new int[]{55,888}); states[888] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,56,966,21,294,22,299,11,926,8,939},new int[]{-351,889,-350,980,-343,896,-284,901,-180,181,-147,218,-151,49,-152,52,-342,958,-358,961,-340,969,-15,964,-165,336,-167,279,-166,283,-16,337,-258,967,-295,968,-344,970,-345,973}); states[889] = new State(new int[]{10,892,32,748,92,-552},new int[]{-254,890}); states[890] = new State(new int[]{92,891}); states[891] = new State(-534); states[892] = new State(new int[]{32,748,143,48,85,50,86,51,80,53,78,54,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,56,966,21,294,22,299,11,926,8,939,92,-552},new int[]{-254,893,-350,895,-343,896,-284,901,-180,181,-147,218,-151,49,-152,52,-342,958,-358,961,-340,969,-15,964,-165,336,-167,279,-166,283,-16,337,-258,967,-295,968,-344,970,-345,973}); states[893] = new State(new int[]{92,894}); states[894] = new State(-535); states[895] = new State(-537); states[896] = new State(new int[]{39,897}); states[897] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,898,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[898] = new State(new int[]{5,899}); states[899] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,900,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[900] = new State(-538); states[901] = new State(new int[]{8,902,100,-657,5,-657}); states[902] = new State(new int[]{14,907,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,914,11,926,8,939},new int[]{-355,903,-353,957,-15,908,-165,336,-167,279,-166,283,-16,337,-199,909,-147,911,-151,49,-152,52,-343,918,-284,919,-180,181,-344,925,-345,956}); states[903] = new State(new int[]{9,904,10,905,100,923}); states[904] = new State(new int[]{39,-651,5,-652}); states[905] = new State(new int[]{14,907,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,914,11,926,8,939},new int[]{-353,906,-15,908,-165,336,-167,279,-166,283,-16,337,-199,909,-147,911,-151,49,-152,52,-343,918,-284,919,-180,181,-344,925,-345,956}); states[906] = new State(-683); states[907] = new State(-695); states[908] = new State(-696); states[909] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290},new int[]{-15,910,-165,336,-167,279,-166,283,-16,337}); states[910] = new State(-697); states[911] = new State(new int[]{5,912,9,-699,10,-699,100,-699,7,-261,4,-261,123,-261,8,-261}); states[912] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,913,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[913] = new State(-698); states[914] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,915,-151,49,-152,52}); states[915] = new State(new int[]{5,916,9,-701,10,-701,100,-701}); states[916] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,917,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[917] = new State(-700); states[918] = new State(-702); states[919] = new State(new int[]{8,920}); states[920] = new State(new int[]{14,907,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,914,11,926,8,939},new int[]{-355,921,-353,957,-15,908,-165,336,-167,279,-166,283,-16,337,-199,909,-147,911,-151,49,-152,52,-343,918,-284,919,-180,181,-344,925,-345,956}); states[921] = new State(new int[]{9,922,10,905,100,923}); states[922] = new State(-651); states[923] = new State(new int[]{14,907,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,914,11,926,8,939},new int[]{-353,924,-15,908,-165,336,-167,279,-166,283,-16,337,-199,909,-147,911,-151,49,-152,52,-343,918,-284,919,-180,181,-344,925,-345,956}); states[924] = new State(-684); states[925] = new State(-703); states[926] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,933,14,935,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939,6,954},new int[]{-356,927,-346,955,-15,931,-165,336,-167,279,-166,283,-16,337,-348,932,-343,936,-284,919,-180,181,-147,218,-151,49,-152,52,-344,937,-345,938}); states[927] = new State(new int[]{12,928,100,929}); states[928] = new State(-661); states[929] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,933,14,935,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939,6,954},new int[]{-346,930,-15,931,-165,336,-167,279,-166,283,-16,337,-348,932,-343,936,-284,919,-180,181,-147,218,-151,49,-152,52,-344,937,-345,938}); states[930] = new State(-663); states[931] = new State(-664); states[932] = new State(-665); states[933] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,934,-151,49,-152,52}); states[934] = new State(-671); states[935] = new State(-666); states[936] = new State(-667); states[937] = new State(-668); states[938] = new State(-669); states[939] = new State(new int[]{14,944,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,53,948,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-357,940,-347,953,-15,945,-165,336,-167,279,-166,283,-16,337,-199,946,-343,950,-284,919,-180,181,-147,218,-151,49,-152,52,-344,951,-345,952}); states[940] = new State(new int[]{9,941,100,942}); states[941] = new State(-672); states[942] = new State(new int[]{14,944,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,53,948,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-347,943,-15,945,-165,336,-167,279,-166,283,-16,337,-199,946,-343,950,-284,919,-180,181,-147,218,-151,49,-152,52,-344,951,-345,952}); states[943] = new State(-681); states[944] = new State(-673); states[945] = new State(-674); states[946] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290},new int[]{-15,947,-165,336,-167,279,-166,283,-16,337}); states[947] = new State(-675); states[948] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,949,-151,49,-152,52}); states[949] = new State(-676); states[950] = new State(-677); states[951] = new State(-678); states[952] = new State(-679); states[953] = new State(-680); states[954] = new State(-670); states[955] = new State(-662); states[956] = new State(-704); states[957] = new State(-682); states[958] = new State(new int[]{5,959}); states[959] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,960,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[960] = new State(-539); states[961] = new State(new int[]{100,962,5,-653}); states[962] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,143,48,85,50,86,51,80,53,78,54,160,55,87,56,56,966,21,294,22,299},new int[]{-340,963,-15,964,-165,336,-167,279,-166,283,-16,337,-284,965,-180,181,-147,218,-151,49,-152,52,-258,967,-295,968}); states[963] = new State(-655); states[964] = new State(-656); states[965] = new State(-657); states[966] = new State(-658); states[967] = new State(-659); states[968] = new State(-660); states[969] = new State(-654); states[970] = new State(new int[]{5,971}); states[971] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,972,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[972] = new State(-540); states[973] = new State(new int[]{39,974,5,978}); states[974] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,975,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[975] = new State(new int[]{5,976}); states[976] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,977,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[977] = new State(-541); states[978] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,979,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[979] = new State(-542); states[980] = new State(-536); states[981] = new State(-1019); states[982] = new State(-1020); states[983] = new State(-1021); states[984] = new State(-1022); states[985] = new State(-1023); states[986] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,878,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677}); states[987] = new State(new int[]{9,995,143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339},new int[]{-90,988,-65,989,-246,993,-91,236,-81,246,-13,251,-10,261,-14,222,-147,999,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-64,273,-85,1003,-84,276,-95,1004,-244,1005,-245,1006,-247,1013,-136,1009}); states[988] = new State(new int[]{9,840,13,206,16,210,100,-195}); states[989] = new State(new int[]{9,990}); states[990] = new State(new int[]{127,991,92,-198,10,-198,98,-198,101,-198,33,-198,104,-198,2,-198,9,-198,12,-198,100,-198,99,-198,32,-198,85,-198,84,-198,83,-198,82,-198,81,-198,86,-198}); states[991] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,992,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[992] = new State(-416); states[993] = new State(new int[]{9,994}); states[994] = new State(-203); states[995] = new State(new int[]{5,546,127,-1008},new int[]{-325,996}); states[996] = new State(new int[]{127,997}); states[997] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,998,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[998] = new State(-415); states[999] = new State(new int[]{4,-170,11,-170,7,-170,142,-170,8,-170,136,-170,138,-170,118,-170,117,-170,131,-170,132,-170,133,-170,134,-170,130,-170,116,-170,115,-170,128,-170,129,-170,120,-170,125,-170,123,-170,121,-170,124,-170,122,-170,137,-170,135,-170,9,-170,13,-170,16,-170,100,-170,119,-170,5,-209}); states[1000] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339,9,-199},new int[]{-90,988,-65,1001,-246,993,-91,236,-81,246,-13,251,-10,261,-14,222,-147,999,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-64,273,-85,1003,-84,276,-95,1004,-244,1005,-245,1006,-247,1013,-136,1009}); states[1001] = new State(new int[]{9,1002}); states[1002] = new State(-198); states[1003] = new State(-201); states[1004] = new State(-196); states[1005] = new State(-197); states[1006] = new State(new int[]{10,1007,9,-204}); states[1007] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,9,-205},new int[]{-247,1008,-136,1009,-147,1012,-151,49,-152,52}); states[1008] = new State(-207); states[1009] = new State(new int[]{5,1010}); states[1010] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339},new int[]{-84,1011,-90,277,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005}); states[1011] = new State(-208); states[1012] = new State(-209); states[1013] = new State(-206); states[1014] = new State(-413); states[1015] = new State(-417); states[1016] = new State(-406); states[1017] = new State(-407); states[1018] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-88,1019,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[1019] = new State(-409); states[1020] = new State(new int[]{143,1021}); states[1021] = new State(-559); states[1022] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,1023,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1023] = new State(-561); states[1024] = new State(new int[]{8,1032,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1025,-151,49,-152,52}); states[1025] = new State(new int[]{5,1022,137,-562},new int[]{-275,1026}); states[1026] = new State(new int[]{137,1027}); states[1027] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1028,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[1028] = new State(new int[]{87,1020,99,-560},new int[]{-361,1029}); states[1029] = new State(new int[]{99,1030}); states[1030] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,1031,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1031] = new State(-568); states[1032] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1033,-147,809,-151,49,-152,52}); states[1033] = new State(new int[]{9,1034,100,544}); states[1034] = new State(new int[]{137,1035}); states[1035] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1036,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[1036] = new State(new int[]{87,1020,99,-560},new int[]{-361,1037}); states[1037] = new State(new int[]{99,1038}); states[1038] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,1039,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1039] = new State(-569); states[1040] = new State(new int[]{5,1041}); states[1041] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493},new int[]{-262,1042,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[1042] = new State(-492); states[1043] = new State(new int[]{79,1051,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,92,-493},new int[]{-59,1044,-62,1046,-61,1063,-253,1064,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[1044] = new State(new int[]{92,1045}); states[1045] = new State(-576); states[1046] = new State(new int[]{10,1048,32,1061,92,-582},new int[]{-255,1047}); states[1047] = new State(-577); states[1048] = new State(new int[]{79,1051,32,1061,92,-582},new int[]{-61,1049,-255,1050}); states[1049] = new State(-581); states[1050] = new State(-578); states[1051] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-63,1052,-179,1055,-180,1056,-147,1057,-151,49,-152,52,-140,1058}); states[1052] = new State(new int[]{99,1053}); states[1053] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,1054,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1054] = new State(-584); states[1055] = new State(-585); states[1056] = new State(new int[]{7,182,99,-587}); states[1057] = new State(new int[]{7,-261,99,-261,5,-588}); states[1058] = new State(new int[]{5,1059}); states[1059] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-179,1060,-180,1056,-147,218,-151,49,-152,52}); states[1060] = new State(-586); states[1061] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,92,-493},new int[]{-253,1062,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[1062] = new State(new int[]{10,20,92,-583}); states[1063] = new State(-580); states[1064] = new State(new int[]{10,20,92,-579}); states[1065] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1066,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[1066] = new State(new int[]{99,1067}); states[1067] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,1068,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1068] = new State(-571); states[1069] = new State(-556); states[1070] = new State(-565); states[1071] = new State(-566); states[1072] = new State(-563); states[1073] = new State(new int[]{5,1074,100,1076}); states[1074] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,1075,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1075] = new State(-548); states[1076] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-110,1077,-94,1078,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[1077] = new State(-550); states[1078] = new State(-551); states[1079] = new State(-549); states[1080] = new State(new int[]{92,1081}); states[1081] = new State(-545); states[1082] = new State(-546); states[1083] = new State(new int[]{5,1084,10,1097,11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,110,-792,111,-792,112,-792,113,-792,114,-792,138,-792,136,-792,118,-792,117,-792,131,-792,132,-792,133,-792,134,-792,130,-792,116,-792,115,-792,128,-792,129,-792,126,-792,6,-792,120,-792,125,-792,123,-792,121,-792,124,-792,122,-792,137,-792,135,-792,16,-792,9,-792,70,-792,100,-792,13,-792,119,-792}); states[1084] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1085,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1085] = new State(new int[]{9,1086,10,1090}); states[1086] = new State(new int[]{5,661,127,-1010},new int[]{-326,1087}); states[1087] = new State(new int[]{127,1088}); states[1088] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1089,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[1089] = new State(-990); states[1090] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,1091,-328,1096,-158,542,-147,809,-151,49,-152,52}); states[1091] = new State(new int[]{9,1092,10,540}); states[1092] = new State(new int[]{5,661,127,-1010},new int[]{-326,1093}); states[1093] = new State(new int[]{127,1094}); states[1094] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1095,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[1095] = new State(-992); states[1096] = new State(-1005); states[1097] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,1098,-328,1096,-158,542,-147,809,-151,49,-152,52}); states[1098] = new State(new int[]{9,1099,10,540}); states[1099] = new State(new int[]{5,661,127,-1010},new int[]{-326,1100}); states[1100] = new State(new int[]{127,1101}); states[1101] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1102,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[1102] = new State(-991); states[1103] = new State(new int[]{9,-604,70,-604,100,-984}); states[1104] = new State(-789); states[1105] = new State(-985); states[1106] = new State(-602); states[1107] = new State(-593); states[1108] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,405},new int[]{-148,1109,-147,455,-151,49,-152,52,-293,456,-150,58,-191,457}); states[1109] = new State(-807); states[1110] = new State(-809); states[1111] = new State(new int[]{123,187},new int[]{-299,1112}); states[1112] = new State(-810); states[1113] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,53,1114,18,669},new int[]{-87,438,-360,440,-102,532,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105}); states[1114] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1115,-151,49,-152,52}); states[1115] = new State(new int[]{110,1116}); states[1116] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,692,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[1117] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,9,-523,100,-523}); states[1118] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,1113,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368},new int[]{-111,1119,-116,1120,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728}); states[1119] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,15,1118,110,-774,111,-774,112,-774,113,-774,114,-774,92,-774,10,-774,98,-774,101,-774,33,-774,104,-774,2,-774,138,-774,136,-774,118,-774,117,-774,131,-774,132,-774,133,-774,134,-774,130,-774,116,-774,115,-774,128,-774,129,-774,126,-774,6,-774,5,-774,120,-774,125,-774,123,-774,121,-774,124,-774,122,-774,137,-774,135,-774,16,-774,70,-774,9,-774,12,-774,100,-774,99,-774,32,-774,85,-774,84,-774,83,-774,82,-774,81,-774,86,-774,13,-774,119,-774,76,-774,51,-774,58,-774,141,-774,143,-774,80,-774,78,-774,160,-774,87,-774,45,-774,42,-774,21,-774,22,-774,144,-774,147,-774,145,-774,146,-774,155,-774,158,-774,157,-774,156,-774,57,-774,91,-774,40,-774,25,-774,97,-774,54,-774,35,-774,55,-774,102,-774,47,-774,36,-774,53,-774,60,-774,74,-774,72,-774,38,-774,71,-774}); states[1120] = new State(-775); states[1121] = new State(new int[]{9,1122}); states[1122] = new State(-1024); states[1123] = new State(new int[]{110,429,111,430,112,431,113,432,114,433,138,-770,136,-770,118,-770,117,-770,131,-770,132,-770,133,-770,134,-770,130,-770,116,-770,115,-770,128,-770,129,-770,126,-770,6,-770,5,-770,120,-770,125,-770,123,-770,121,-770,124,-770,122,-770,137,-770,135,-770,16,-770,9,-770,70,-770,100,-770,13,-770,2,-770,119,-763},new int[]{-194,25}); states[1124] = new State(new int[]{53,687,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,532,-111,694,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105}); states[1125] = new State(-1028); states[1126] = new State(-1029); states[1127] = new State(new int[]{9,1128,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,1131,-328,1096,-158,542,-147,809,-151,49,-152,52}); states[1128] = new State(new int[]{127,1129}); states[1129] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,686,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-330,1130,-212,685,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-4,1125,-331,1126,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[1130] = new State(-1003); states[1131] = new State(new int[]{9,1132,10,540}); states[1132] = new State(new int[]{127,1133}); states[1133] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,686,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-330,1134,-212,685,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-4,1125,-331,1126,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[1134] = new State(-1004); states[1135] = new State(new int[]{9,1136,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,1140,-328,1096,-158,542,-147,809,-151,49,-152,52}); states[1136] = new State(new int[]{5,661,127,-1010},new int[]{-326,1137}); states[1137] = new State(new int[]{127,1138}); states[1138] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1139,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[1139] = new State(-1000); states[1140] = new State(new int[]{9,1141,10,540}); states[1141] = new State(new int[]{5,661,127,-1010},new int[]{-326,1142}); states[1142] = new State(new int[]{127,1143}); states[1143] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1144,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985}); states[1144] = new State(-1001); states[1145] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,18,669},new int[]{-102,1146,-101,1147,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-100,1105}); states[1146] = new State(-987); states[1147] = new State(-984); states[1148] = new State(-986); states[1149] = new State(new int[]{5,1150,7,-261,8,-261,123,-261,12,-261,100,-261}); states[1150] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-9,1151,-180,634,-147,218,-151,49,-152,52,-301,1152}); states[1151] = new State(-218); states[1152] = new State(new int[]{8,637,12,-642,100,-642},new int[]{-69,1153}); states[1153] = new State(-783); states[1154] = new State(-215); states[1155] = new State(-211); states[1156] = new State(-472); states[1157] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1158,-151,49,-152,52}); states[1158] = new State(new int[]{110,689,100,1159}); states[1159] = new State(new int[]{53,1167},new int[]{-338,1160}); states[1160] = new State(new int[]{9,1161,100,1164}); states[1161] = new State(new int[]{110,1162}); states[1162] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,1163,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[1163] = new State(new int[]{70,28,92,-519,10,-519,98,-519,101,-519,33,-519,104,-519,2,-519,9,-519,12,-519,100,-519,99,-519,32,-519,85,-519,84,-519,83,-519,82,-519,81,-519,86,-519}); states[1164] = new State(new int[]{53,1165}); states[1165] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1166,-151,49,-152,52}); states[1166] = new State(-526); states[1167] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1168,-151,49,-152,52}); states[1168] = new State(-525); states[1169] = new State(new int[]{148,1173,150,1174,151,1175,152,1176,154,1177,153,1178,107,-829,91,-829,59,-829,29,-829,66,-829,50,-829,53,-829,62,-829,11,-829,28,-829,26,-829,44,-829,37,-829,19,-829,30,-829,31,-829,46,-829,27,-829,92,-829,84,-829,83,-829,82,-829,81,-829,23,-829,149,-829,41,-829},new int[]{-206,1170,-209,1179}); states[1170] = new State(new int[]{10,1171}); states[1171] = new State(new int[]{148,1173,150,1174,151,1175,152,1176,154,1177,153,1178,107,-830,91,-830,59,-830,29,-830,66,-830,50,-830,53,-830,62,-830,11,-830,28,-830,26,-830,44,-830,37,-830,19,-830,30,-830,31,-830,46,-830,27,-830,92,-830,84,-830,83,-830,82,-830,81,-830,23,-830,149,-830,41,-830},new int[]{-209,1172}); states[1172] = new State(-834); states[1173] = new State(-846); states[1174] = new State(-847); states[1175] = new State(-848); states[1176] = new State(-849); states[1177] = new State(-850); states[1178] = new State(-851); states[1179] = new State(-833); states[1180] = new State(-377); states[1181] = new State(-446); states[1182] = new State(-447); states[1183] = new State(new int[]{8,-452,110,-452,10,-452,11,-452,5,-452,7,-449}); states[1184] = new State(new int[]{123,1186,8,-455,110,-455,10,-455,7,-455,11,-455,5,-455},new int[]{-155,1185}); states[1185] = new State(-456); states[1186] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1187,-147,809,-151,49,-152,52}); states[1187] = new State(new int[]{121,1188,100,544}); states[1188] = new State(-322); states[1189] = new State(-457); states[1190] = new State(new int[]{123,1186,8,-453,110,-453,10,-453,11,-453,5,-453},new int[]{-155,1191}); states[1191] = new State(-454); states[1192] = new State(new int[]{7,1193}); states[1193] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-142,1194,-149,1195,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190}); states[1194] = new State(-448); states[1195] = new State(-451); states[1196] = new State(-450); states[1197] = new State(-432); states[1198] = new State(new int[]{44,1328,37,1363},new int[]{-216,1199,-228,1200,-225,1327,-229,1362}); states[1199] = new State(-434); states[1200] = new State(new int[]{107,1318,59,-70,29,-70,66,-70,50,-70,53,-70,62,-70,91,-70},new int[]{-176,1201,-42,1202,-38,1205,-60,1317}); states[1201] = new State(-440); states[1202] = new State(new int[]{91,17},new int[]{-256,1203}); states[1203] = new State(new int[]{10,1204}); states[1204] = new State(-467); states[1205] = new State(new int[]{59,1208,29,1229,66,1233,50,1445,53,1460,62,1462,91,-69},new int[]{-45,1206,-168,1207,-28,1214,-51,1231,-289,1235,-310,1447}); states[1206] = new State(-71); states[1207] = new State(-87); states[1208] = new State(new int[]{155,733,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-156,1209,-143,1213,-147,734,-151,49,-152,52}); states[1209] = new State(new int[]{10,1210,100,1211}); states[1210] = new State(-96); states[1211] = new State(new int[]{155,733,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-143,1212,-147,734,-151,49,-152,52}); states[1212] = new State(-98); states[1213] = new State(-97); states[1214] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,59,-88,29,-88,66,-88,50,-88,53,-88,62,-88,91,-88},new int[]{-26,1215,-27,1216,-141,1218,-147,1228,-151,49,-152,52}); states[1215] = new State(-102); states[1216] = new State(new int[]{10,1217}); states[1217] = new State(-112); states[1218] = new State(new int[]{120,1219,5,1224}); states[1219] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1222,135,841,116,353,115,354,63,339},new int[]{-109,1220,-90,1221,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1223}); states[1220] = new State(-113); states[1221] = new State(new int[]{13,206,16,210,10,-115,92,-115,84,-115,83,-115,82,-115,81,-115}); states[1222] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339,9,-199},new int[]{-90,988,-65,1001,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-64,273,-85,1003,-84,276,-95,1004,-244,1005}); states[1223] = new State(-116); states[1224] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,1225,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1225] = new State(new int[]{120,1226}); states[1226] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339},new int[]{-84,1227,-90,277,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005}); states[1227] = new State(-114); states[1228] = new State(-117); states[1229] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-26,1230,-27,1216,-141,1218,-147,1228,-151,49,-152,52}); states[1230] = new State(-101); states[1231] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,59,-89,29,-89,66,-89,50,-89,53,-89,62,-89,91,-89},new int[]{-26,1232,-27,1216,-141,1218,-147,1228,-151,49,-152,52}); states[1232] = new State(-104); states[1233] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-26,1234,-27,1216,-141,1218,-147,1228,-151,49,-152,52}); states[1234] = new State(-103); states[1235] = new State(new int[]{11,628,59,-90,29,-90,66,-90,50,-90,53,-90,62,-90,91,-90,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213},new int[]{-48,1236,-6,1237,-251,1155}); states[1236] = new State(-106); states[1237] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,628},new int[]{-49,1238,-251,518,-144,1239,-147,1437,-151,49,-152,52,-145,1442}); states[1238] = new State(-210); states[1239] = new State(new int[]{120,1240}); states[1240] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604,68,1431,69,1432,148,1433,27,1434,28,1435,26,-304,43,-304,64,-304},new int[]{-287,1241,-277,1243,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562,-29,1244,-20,1245,-21,1429,-19,1436}); states[1241] = new State(new int[]{10,1242}); states[1242] = new State(-219); states[1243] = new State(-224); states[1244] = new State(-225); states[1245] = new State(new int[]{26,1423,43,1424,64,1425},new int[]{-291,1246}); states[1246] = new State(new int[]{8,1344,23,-316,11,-316,92,-316,84,-316,83,-316,82,-316,81,-316,29,-316,143,-316,85,-316,86,-316,80,-316,78,-316,160,-316,87,-316,62,-316,28,-316,26,-316,44,-316,37,-316,19,-316,30,-316,31,-316,46,-316,27,-316,10,-316},new int[]{-183,1247}); states[1247] = new State(new int[]{23,1335,11,-323,92,-323,84,-323,83,-323,82,-323,81,-323,29,-323,143,-323,85,-323,86,-323,80,-323,78,-323,160,-323,87,-323,62,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323,10,-323},new int[]{-318,1248,-317,1333,-316,1355}); states[1248] = new State(new int[]{11,628,10,-314,92,-340,84,-340,83,-340,82,-340,81,-340,29,-213,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,62,-213,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-25,1249,-24,1250,-31,1256,-33,509,-44,1257,-6,1258,-251,1155,-32,1420,-53,1422,-52,515,-54,1421}); states[1249] = new State(-297); states[1250] = new State(new int[]{92,1251,84,1252,83,1253,82,1254,81,1255},new int[]{-7,507}); states[1251] = new State(-315); states[1252] = new State(-336); states[1253] = new State(-337); states[1254] = new State(-338); states[1255] = new State(-339); states[1256] = new State(-334); states[1257] = new State(-348); states[1258] = new State(new int[]{29,1260,143,48,85,50,86,51,80,53,78,54,160,55,87,56,62,1264,28,1380,26,1381,11,628,44,1328,37,1363,19,1383,30,1391,31,1398,46,1405,27,1414},new int[]{-50,1259,-251,518,-222,517,-219,519,-259,520,-313,1262,-312,1263,-158,810,-147,809,-151,49,-152,52,-3,1268,-230,1382,-228,1316,-225,1327,-229,1362,-227,1389,-215,1402,-216,1403,-218,1404}); states[1259] = new State(-350); states[1260] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-27,1261,-141,1218,-147,1228,-151,49,-152,52}); states[1261] = new State(-355); states[1262] = new State(-356); states[1263] = new State(-360); states[1264] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1265,-147,809,-151,49,-152,52}); states[1265] = new State(new int[]{5,1266,100,544}); states[1266] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,1267,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1267] = new State(-361); states[1268] = new State(new int[]{30,523,19,1198,46,1270,27,1308,143,48,85,50,86,51,80,53,78,54,160,55,87,56,62,1264,44,1328,37,1363},new int[]{-313,1269,-230,522,-216,1197,-312,1263,-158,810,-147,809,-151,49,-152,52,-228,1316,-225,1327,-229,1362}); states[1269] = new State(-357); states[1270] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1271,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1271] = new State(new int[]{11,1299,5,-391},new int[]{-233,1272,-238,1296}); states[1272] = new State(new int[]{85,1285,86,1291,10,-398},new int[]{-202,1273}); states[1273] = new State(new int[]{10,1274}); states[1274] = new State(new int[]{63,1279,153,1281,152,1282,148,1283,151,1284,11,-388,28,-388,26,-388,44,-388,37,-388,19,-388,30,-388,31,-388,46,-388,27,-388,92,-388,84,-388,83,-388,82,-388,81,-388},new int[]{-205,1275,-210,1276}); states[1275] = new State(-382); states[1276] = new State(new int[]{10,1277}); states[1277] = new State(new int[]{63,1279,11,-388,28,-388,26,-388,44,-388,37,-388,19,-388,30,-388,31,-388,46,-388,27,-388,92,-388,84,-388,83,-388,82,-388,81,-388},new int[]{-205,1278}); states[1278] = new State(-383); states[1279] = new State(new int[]{10,1280}); states[1280] = new State(-389); states[1281] = new State(-852); states[1282] = new State(-853); states[1283] = new State(-854); states[1284] = new State(-855); states[1285] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,10,-397},new int[]{-114,1286,-88,1290,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[1286] = new State(new int[]{86,1288,10,-401},new int[]{-203,1287}); states[1287] = new State(-399); states[1288] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1289,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1289] = new State(-402); states[1290] = new State(-396); states[1291] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1292,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1292] = new State(new int[]{85,1294,10,-403},new int[]{-204,1293}); states[1293] = new State(-400); states[1294] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,10,-397},new int[]{-114,1295,-88,1290,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677}); states[1295] = new State(-404); states[1296] = new State(new int[]{5,1297}); states[1297] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1298,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1298] = new State(-390); states[1299] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-237,1300,-236,1307,-158,1304,-147,809,-151,49,-152,52}); states[1300] = new State(new int[]{12,1301,10,1302}); states[1301] = new State(-392); states[1302] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-236,1303,-158,1304,-147,809,-151,49,-152,52}); states[1303] = new State(-394); states[1304] = new State(new int[]{5,1305,100,544}); states[1305] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1306,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1306] = new State(-395); states[1307] = new State(-393); states[1308] = new State(new int[]{46,1309}); states[1309] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1310,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1310] = new State(new int[]{11,1299,5,-391},new int[]{-233,1311,-238,1296}); states[1311] = new State(new int[]{110,1314,10,-387},new int[]{-211,1312}); states[1312] = new State(new int[]{10,1313}); states[1313] = new State(-385); states[1314] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,1315,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[1315] = new State(new int[]{70,28,10,-386}); states[1316] = new State(new int[]{107,1318,11,-371,28,-371,26,-371,44,-371,37,-371,19,-371,30,-371,31,-371,46,-371,27,-371,92,-371,84,-371,83,-371,82,-371,81,-371,59,-70,29,-70,66,-70,50,-70,53,-70,62,-70,91,-70},new int[]{-176,1201,-42,1202,-38,1205,-60,1317}); states[1317] = new State(-468); states[1318] = new State(new int[]{10,1326,143,48,85,50,86,51,80,53,78,54,160,55,87,56,144,281,147,282,145,284,146,285},new int[]{-108,1319,-147,1323,-151,49,-152,52,-165,1324,-167,279,-166,283}); states[1319] = new State(new int[]{80,1320,10,1325}); states[1320] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,144,281,147,282,145,284,146,285},new int[]{-108,1321,-147,1323,-151,49,-152,52,-165,1324,-167,279,-166,283}); states[1321] = new State(new int[]{10,1322}); states[1322] = new State(-461); states[1323] = new State(-464); states[1324] = new State(-465); states[1325] = new State(-462); states[1326] = new State(-463); states[1327] = new State(-372); states[1328] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-171,1329,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1329] = new State(new int[]{8,565,10,-469,110,-469},new int[]{-128,1330}); states[1330] = new State(new int[]{10,1360,110,-831},new int[]{-207,1331,-208,1356}); states[1331] = new State(new int[]{23,1335,107,-323,91,-323,59,-323,29,-323,66,-323,50,-323,53,-323,62,-323,11,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323,92,-323,84,-323,83,-323,82,-323,81,-323,149,-323,41,-323},new int[]{-318,1332,-317,1333,-316,1355}); states[1332] = new State(-458); states[1333] = new State(new int[]{23,1335,11,-324,92,-324,84,-324,83,-324,82,-324,81,-324,29,-324,143,-324,85,-324,86,-324,80,-324,78,-324,160,-324,87,-324,62,-324,28,-324,26,-324,44,-324,37,-324,19,-324,30,-324,31,-324,46,-324,27,-324,10,-324,107,-324,91,-324,59,-324,66,-324,50,-324,53,-324,149,-324,41,-324},new int[]{-316,1334}); states[1334] = new State(-326); states[1335] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1336,-147,809,-151,49,-152,52}); states[1336] = new State(new int[]{5,1337,100,544}); states[1337] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,1343,49,549,34,553,73,557,44,563,37,604,26,1352,30,1353},new int[]{-288,1338,-286,1354,-277,1342,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1338] = new State(new int[]{10,1339,100,1340}); states[1339] = new State(-327); states[1340] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,1343,49,549,34,553,73,557,44,563,37,604,26,1352,30,1353},new int[]{-286,1341,-277,1342,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1341] = new State(-329); states[1342] = new State(-330); states[1343] = new State(new int[]{8,1344,10,-332,100,-332,23,-316,11,-316,92,-316,84,-316,83,-316,82,-316,81,-316,29,-316,143,-316,85,-316,86,-316,80,-316,78,-316,160,-316,87,-316,62,-316,28,-316,26,-316,44,-316,37,-316,19,-316,30,-316,31,-316,46,-316,27,-316},new int[]{-183,503}); states[1344] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-182,1345,-181,1351,-180,1349,-147,218,-151,49,-152,52,-301,1350}); states[1345] = new State(new int[]{9,1346,100,1347}); states[1346] = new State(-317); states[1347] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-181,1348,-180,1349,-147,218,-151,49,-152,52,-301,1350}); states[1348] = new State(-319); states[1349] = new State(new int[]{7,182,123,187,9,-320,100,-320},new int[]{-299,636}); states[1350] = new State(-321); states[1351] = new State(-318); states[1352] = new State(-331); states[1353] = new State(-333); states[1354] = new State(-328); states[1355] = new State(-325); states[1356] = new State(new int[]{110,1357}); states[1357] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1358,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1358] = new State(new int[]{10,1359}); states[1359] = new State(-443); states[1360] = new State(new int[]{148,1173,150,1174,151,1175,152,1176,154,1177,153,1178,23,-829,107,-829,91,-829,59,-829,29,-829,66,-829,50,-829,53,-829,62,-829,11,-829,28,-829,26,-829,44,-829,37,-829,19,-829,30,-829,31,-829,46,-829,27,-829,92,-829,84,-829,83,-829,82,-829,81,-829,149,-829},new int[]{-206,1361,-209,1179}); states[1361] = new State(new int[]{10,1171,110,-832}); states[1362] = new State(-373); states[1363] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1364,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1364] = new State(new int[]{8,565,5,-469,10,-469,110,-469},new int[]{-128,1365}); states[1365] = new State(new int[]{5,1368,10,1360,110,-831},new int[]{-207,1366,-208,1376}); states[1366] = new State(new int[]{23,1335,107,-323,91,-323,59,-323,29,-323,66,-323,50,-323,53,-323,62,-323,11,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323,92,-323,84,-323,83,-323,82,-323,81,-323,149,-323,41,-323},new int[]{-318,1367,-317,1333,-316,1355}); states[1367] = new State(-459); states[1368] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1369,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1369] = new State(new int[]{10,1360,110,-831},new int[]{-207,1370,-208,1372}); states[1370] = new State(new int[]{23,1335,107,-323,91,-323,59,-323,29,-323,66,-323,50,-323,53,-323,62,-323,11,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323,92,-323,84,-323,83,-323,82,-323,81,-323,149,-323,41,-323},new int[]{-318,1371,-317,1333,-316,1355}); states[1371] = new State(-460); states[1372] = new State(new int[]{110,1373}); states[1373] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,1374,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677}); states[1374] = new State(new int[]{10,1375}); states[1375] = new State(-441); states[1376] = new State(new int[]{110,1377}); states[1377] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,1378,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677}); states[1378] = new State(new int[]{10,1379}); states[1379] = new State(-442); states[1380] = new State(-358); states[1381] = new State(-359); states[1382] = new State(-367); states[1383] = new State(new int[]{28,1380,26,1381,44,1328,37,1363},new int[]{-3,1384,-230,1387,-216,1388,-228,1316,-225,1327,-229,1362}); states[1384] = new State(new int[]{44,1328,37,1363},new int[]{-230,1385,-216,1386,-228,1316,-225,1327,-229,1362}); states[1385] = new State(-368); states[1386] = new State(-433); states[1387] = new State(-369); states[1388] = new State(-431); states[1389] = new State(new int[]{107,1318,11,-370,28,-370,26,-370,44,-370,37,-370,19,-370,30,-370,31,-370,46,-370,27,-370,92,-370,84,-370,83,-370,82,-370,81,-370,59,-70,29,-70,66,-70,50,-70,53,-70,62,-70,91,-70},new int[]{-176,1390,-42,1202,-38,1205,-60,1317}); states[1390] = new State(-422); states[1391] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,110,-378,10,-378},new int[]{-172,1392,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1392] = new State(new int[]{8,565,110,-469,10,-469},new int[]{-128,1393}); states[1393] = new State(new int[]{110,1395,10,1169},new int[]{-207,1394}); states[1394] = new State(-374); states[1395] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1396,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1396] = new State(new int[]{10,1397}); states[1397] = new State(-423); states[1398] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,10,-378},new int[]{-172,1399,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1399] = new State(new int[]{8,565,10,-469},new int[]{-128,1400}); states[1400] = new State(new int[]{10,1169},new int[]{-207,1401}); states[1401] = new State(-376); states[1402] = new State(-364); states[1403] = new State(-430); states[1404] = new State(-365); states[1405] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1406,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1406] = new State(new int[]{11,1299,5,-391},new int[]{-233,1407,-238,1296}); states[1407] = new State(new int[]{85,1285,86,1291,10,-398},new int[]{-202,1408}); states[1408] = new State(new int[]{10,1409}); states[1409] = new State(new int[]{63,1279,153,1281,152,1282,148,1283,151,1284,11,-388,28,-388,26,-388,44,-388,37,-388,19,-388,30,-388,31,-388,46,-388,27,-388,92,-388,84,-388,83,-388,82,-388,81,-388},new int[]{-205,1410,-210,1411}); states[1410] = new State(-380); states[1411] = new State(new int[]{10,1412}); states[1412] = new State(new int[]{63,1279,11,-388,28,-388,26,-388,44,-388,37,-388,19,-388,30,-388,31,-388,46,-388,27,-388,92,-388,84,-388,83,-388,82,-388,81,-388},new int[]{-205,1413}); states[1413] = new State(-381); states[1414] = new State(new int[]{46,1415}); states[1415] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1416,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1416] = new State(new int[]{11,1299,5,-391},new int[]{-233,1417,-238,1296}); states[1417] = new State(new int[]{110,1314,10,-387},new int[]{-211,1418}); states[1418] = new State(new int[]{10,1419}); states[1419] = new State(-384); states[1420] = new State(new int[]{11,628,92,-342,84,-342,83,-342,82,-342,81,-342,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-53,514,-52,515,-6,516,-251,1155,-54,1421}); states[1421] = new State(-354); states[1422] = new State(-351); states[1423] = new State(-308); states[1424] = new State(-309); states[1425] = new State(new int[]{26,1426,48,1427,43,1428,8,-310,23,-310,11,-310,92,-310,84,-310,83,-310,82,-310,81,-310,29,-310,143,-310,85,-310,86,-310,80,-310,78,-310,160,-310,87,-310,62,-310,28,-310,44,-310,37,-310,19,-310,30,-310,31,-310,46,-310,27,-310,10,-310}); states[1426] = new State(-311); states[1427] = new State(-312); states[1428] = new State(-313); states[1429] = new State(new int[]{68,1431,69,1432,148,1433,27,1434,28,1435,26,-305,43,-305,64,-305},new int[]{-19,1430}); states[1430] = new State(-307); states[1431] = new State(-299); states[1432] = new State(-300); states[1433] = new State(-301); states[1434] = new State(-302); states[1435] = new State(-303); states[1436] = new State(-306); states[1437] = new State(new int[]{123,1439,120,-221},new int[]{-155,1438}); states[1438] = new State(-222); states[1439] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1440,-147,809,-151,49,-152,52}); states[1440] = new State(new int[]{122,1441,121,1188,100,544}); states[1441] = new State(-223); states[1442] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604,68,1431,69,1432,148,1433,27,1434,28,1435,26,-304,43,-304,64,-304},new int[]{-287,1443,-277,1243,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562,-29,1244,-20,1245,-21,1429,-19,1436}); states[1443] = new State(new int[]{10,1444}); states[1444] = new State(-220); states[1445] = new State(new int[]{11,628,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213},new int[]{-48,1446,-6,1237,-251,1155}); states[1446] = new State(-105); states[1447] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452,59,-91,29,-91,66,-91,50,-91,53,-91,62,-91,91,-91},new int[]{-314,1448,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52}); states[1448] = new State(-111); states[1449] = new State(-107); states[1450] = new State(new int[]{10,1451}); states[1451] = new State(-405); states[1452] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1453,-151,49,-152,52}); states[1453] = new State(new int[]{100,1454}); states[1454] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1455,-147,809,-151,49,-152,52}); states[1455] = new State(new int[]{9,1456,100,544}); states[1456] = new State(new int[]{110,1457}); states[1457] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1458,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[1458] = new State(new int[]{10,1459}); states[1459] = new State(-108); states[1460] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452},new int[]{-314,1461,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52}); states[1461] = new State(-109); states[1462] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452},new int[]{-314,1463,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52}); states[1463] = new State(-110); states[1464] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,356,12,-280,100,-280},new int[]{-272,1465,-273,1466,-93,194,-106,314,-107,315,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283}); states[1465] = new State(-278); states[1466] = new State(-279); states[1467] = new State(-277); states[1468] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,1469,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1469] = new State(-276); states[1470] = new State(-246); states[1471] = new State(-247); states[1472] = new State(new int[]{127,483,121,-248,100,-248,120,-248,9,-248,10,-248,8,-248,138,-248,136,-248,118,-248,117,-248,131,-248,132,-248,133,-248,134,-248,130,-248,116,-248,115,-248,128,-248,129,-248,126,-248,6,-248,5,-248,125,-248,123,-248,124,-248,122,-248,137,-248,135,-248,16,-248,70,-248,92,-248,98,-248,101,-248,33,-248,104,-248,2,-248,12,-248,99,-248,32,-248,85,-248,84,-248,83,-248,82,-248,81,-248,86,-248,13,-248,76,-248,51,-248,58,-248,141,-248,143,-248,80,-248,78,-248,160,-248,87,-248,45,-248,42,-248,21,-248,22,-248,144,-248,147,-248,145,-248,146,-248,155,-248,158,-248,157,-248,156,-248,11,-248,57,-248,91,-248,40,-248,25,-248,97,-248,54,-248,35,-248,55,-248,102,-248,47,-248,36,-248,53,-248,60,-248,74,-248,72,-248,38,-248,71,-248,110,-248}); states[1473] = new State(-692); states[1474] = new State(new int[]{8,1475}); states[1475] = new State(new int[]{14,472,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,474,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-354,1476,-352,1482,-15,473,-165,336,-167,279,-166,283,-16,337,-341,1473,-284,1474,-180,181,-147,218,-151,49,-152,52,-344,1480,-345,1481}); states[1476] = new State(new int[]{9,1477,10,470,100,1478}); states[1477] = new State(-650); states[1478] = new State(new int[]{14,472,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,474,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-352,1479,-15,473,-165,336,-167,279,-166,283,-16,337,-341,1473,-284,1474,-180,181,-147,218,-151,49,-152,52,-344,1480,-345,1481}); states[1479] = new State(-687); states[1480] = new State(-693); states[1481] = new State(-694); states[1482] = new State(-685); states[1483] = new State(-781); states[1484] = new State(new int[]{13,482}); states[1485] = new State(-241); states[1486] = new State(-237); states[1487] = new State(-626); states[1488] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,712,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,9,-814},new int[]{-67,1489,-72,705,-89,1107,-87,708,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,709,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,1106,-100,659,-324,677}); states[1489] = new State(new int[]{9,1490}); states[1490] = new State(-645); states[1491] = new State(new int[]{8,1492}); states[1492] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-334,1493,-333,1501,-147,1497,-151,49,-152,52,-101,1500,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[1493] = new State(new int[]{9,1494,100,1495}); states[1494] = new State(-637); states[1495] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-333,1496,-147,1497,-151,49,-152,52,-101,1500,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[1496] = new State(-641); states[1497] = new State(new int[]{110,1498,11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,138,-792,136,-792,118,-792,117,-792,131,-792,132,-792,133,-792,134,-792,130,-792,116,-792,115,-792,128,-792,129,-792,126,-792,6,-792,120,-792,125,-792,123,-792,121,-792,124,-792,122,-792,137,-792,135,-792,16,-792,9,-792,100,-792,13,-792,119,-792}); states[1498] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1499,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588}); states[1499] = new State(-638); states[1500] = new State(-639); states[1501] = new State(-640); states[1502] = new State(new int[]{13,206,16,210,5,-707,12,-707}); states[1503] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,1504,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[1504] = new State(new int[]{13,206,16,210,100,-190,9,-190,12,-190,5,-190}); states[1505] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,5,-708,12,-708},new int[]{-122,1506,-90,1502,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[1506] = new State(new int[]{5,1507,12,-714}); states[1507] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,1508,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855}); states[1508] = new State(new int[]{13,206,16,210,12,-716}); states[1509] = new State(-187); states[1510] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285},new int[]{-93,1511,-106,314,-107,315,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283}); states[1511] = new State(new int[]{116,247,115,248,128,249,129,250,13,-250,121,-250,100,-250,120,-250,9,-250,10,-250,8,-250,138,-250,136,-250,118,-250,117,-250,131,-250,132,-250,133,-250,134,-250,130,-250,126,-250,6,-250,5,-250,125,-250,123,-250,124,-250,122,-250,137,-250,135,-250,16,-250,70,-250,92,-250,98,-250,101,-250,33,-250,104,-250,2,-250,12,-250,99,-250,32,-250,85,-250,84,-250,83,-250,82,-250,81,-250,86,-250,76,-250,51,-250,58,-250,141,-250,143,-250,80,-250,78,-250,160,-250,87,-250,45,-250,42,-250,21,-250,22,-250,144,-250,147,-250,145,-250,146,-250,155,-250,158,-250,157,-250,156,-250,11,-250,57,-250,91,-250,40,-250,25,-250,97,-250,54,-250,35,-250,55,-250,102,-250,47,-250,36,-250,53,-250,60,-250,74,-250,72,-250,38,-250,71,-250,127,-250,110,-250},new int[]{-193,195}); states[1512] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,24,494},new int[]{-284,1513,-279,1514,-180,181,-147,218,-151,49,-152,52,-271,500}); states[1513] = new State(-739); states[1514] = new State(-740); states[1515] = new State(-753); states[1516] = new State(-754); states[1517] = new State(-755); states[1518] = new State(-756); states[1519] = new State(-757); states[1520] = new State(-758); states[1521] = new State(-759); states[1522] = new State(-729); states[1523] = new State(-648); states[1524] = new State(-35); states[1525] = new State(new int[]{59,1208,29,1229,66,1233,50,1445,53,1460,62,1462,11,628,91,-64,92,-64,103,-64,44,-213,37,-213,28,-213,26,-213,19,-213,30,-213,31,-213},new int[]{-46,1526,-168,1527,-28,1528,-51,1529,-289,1530,-310,1531,-220,1532,-6,1533,-251,1155}); states[1526] = new State(-68); states[1527] = new State(-78); states[1528] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,59,-79,29,-79,66,-79,50,-79,53,-79,62,-79,11,-79,44,-79,37,-79,28,-79,26,-79,19,-79,30,-79,31,-79,91,-79,92,-79,103,-79},new int[]{-26,1215,-27,1216,-141,1218,-147,1228,-151,49,-152,52}); states[1529] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,59,-80,29,-80,66,-80,50,-80,53,-80,62,-80,11,-80,44,-80,37,-80,28,-80,26,-80,19,-80,30,-80,31,-80,91,-80,92,-80,103,-80},new int[]{-26,1232,-27,1216,-141,1218,-147,1228,-151,49,-152,52}); states[1530] = new State(new int[]{11,628,59,-81,29,-81,66,-81,50,-81,53,-81,62,-81,44,-81,37,-81,28,-81,26,-81,19,-81,30,-81,31,-81,91,-81,92,-81,103,-81,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213},new int[]{-48,1236,-6,1237,-251,1155}); states[1531] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452,59,-82,29,-82,66,-82,50,-82,53,-82,62,-82,11,-82,44,-82,37,-82,28,-82,26,-82,19,-82,30,-82,31,-82,91,-82,92,-82,103,-82},new int[]{-314,1448,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52}); states[1532] = new State(-83); states[1533] = new State(new int[]{44,1546,37,1553,28,1380,26,1381,19,1576,30,1583,31,1398,11,628},new int[]{-213,1534,-251,518,-214,1535,-221,1536,-228,1537,-225,1327,-229,1362,-3,1566,-217,1580,-227,1581}); states[1534] = new State(-86); states[1535] = new State(-84); states[1536] = new State(-425); states[1537] = new State(new int[]{149,1539,107,1318,59,-67,29,-67,66,-67,50,-67,53,-67,62,-67,11,-67,44,-67,37,-67,28,-67,26,-67,19,-67,30,-67,31,-67,91,-67},new int[]{-178,1538,-177,1541,-40,1542,-41,1525,-60,1545}); states[1538] = new State(-435); states[1539] = new State(new int[]{10,1540}); states[1540] = new State(-436); states[1541] = new State(-444); states[1542] = new State(new int[]{91,17},new int[]{-256,1543}); states[1543] = new State(new int[]{10,1544}); states[1544] = new State(-466); states[1545] = new State(-445); states[1546] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-171,1547,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1547] = new State(new int[]{8,565,10,-469,110,-469},new int[]{-128,1548}); states[1548] = new State(new int[]{10,1360,110,-831},new int[]{-207,1331,-208,1549}); states[1549] = new State(new int[]{110,1550}); states[1550] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1551,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1551] = new State(new int[]{10,1552}); states[1552] = new State(-439); states[1553] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1554,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1554] = new State(new int[]{8,565,5,-469,10,-469,110,-469},new int[]{-128,1555}); states[1555] = new State(new int[]{5,1556,10,1360,110,-831},new int[]{-207,1366,-208,1562}); states[1556] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1557,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1557] = new State(new int[]{10,1360,110,-831},new int[]{-207,1370,-208,1558}); states[1558] = new State(new int[]{110,1559}); states[1559] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,1560,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677}); states[1560] = new State(new int[]{10,1561}); states[1561] = new State(-437); states[1562] = new State(new int[]{110,1563}); states[1563] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,1564,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677}); states[1564] = new State(new int[]{10,1565}); states[1565] = new State(-438); states[1566] = new State(new int[]{19,1568,30,1570,44,1546,37,1553},new int[]{-221,1567,-228,1537,-225,1327,-229,1362}); states[1567] = new State(-426); states[1568] = new State(new int[]{44,1546,37,1553},new int[]{-221,1569,-228,1537,-225,1327,-229,1362}); states[1569] = new State(-429); states[1570] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,110,-378,10,-378},new int[]{-172,1571,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1571] = new State(new int[]{8,565,110,-469,10,-469},new int[]{-128,1572}); states[1572] = new State(new int[]{110,1573,10,1169},new int[]{-207,526}); states[1573] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1574,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1574] = new State(new int[]{10,1575}); states[1575] = new State(-421); states[1576] = new State(new int[]{44,1546,37,1553,28,1380,26,1381},new int[]{-221,1577,-3,1578,-228,1537,-225,1327,-229,1362}); states[1577] = new State(-427); states[1578] = new State(new int[]{44,1546,37,1553},new int[]{-221,1579,-228,1537,-225,1327,-229,1362}); states[1579] = new State(-428); states[1580] = new State(-85); states[1581] = new State(-67,new int[]{-177,1582,-40,1542,-41,1525}); states[1582] = new State(-419); states[1583] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,110,-378,10,-378},new int[]{-172,1584,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1584] = new State(new int[]{8,565,110,-469,10,-469},new int[]{-128,1585}); states[1585] = new State(new int[]{110,1586,10,1169},new int[]{-207,1394}); states[1586] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1587,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885}); states[1587] = new State(new int[]{10,1588}); states[1588] = new State(-420); states[1589] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-304,1590,-308,1600,-157,1594,-138,1599,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148}); states[1590] = new State(new int[]{10,1591,100,1592}); states[1591] = new State(-38); states[1592] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-308,1593,-157,1594,-138,1599,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148}); states[1593] = new State(-44); states[1594] = new State(new int[]{7,1595,137,1597,10,-45,100,-45}); states[1595] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,1596,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148}); states[1596] = new State(-37); states[1597] = new State(new int[]{144,1598}); states[1598] = new State(-46); states[1599] = new State(-36); states[1600] = new State(-43); states[1601] = new State(new int[]{3,1603,52,-15,91,-15,59,-15,29,-15,66,-15,50,-15,53,-15,62,-15,11,-15,44,-15,37,-15,28,-15,26,-15,19,-15,30,-15,31,-15,43,-15,92,-15,103,-15},new int[]{-184,1602}); states[1602] = new State(-17); states[1603] = new State(new int[]{143,1604,144,1605}); states[1604] = new State(-18); states[1605] = new State(-19); states[1606] = new State(-16); states[1607] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1608,-151,49,-152,52}); states[1608] = new State(new int[]{10,1610,8,1611},new int[]{-187,1609}); states[1609] = new State(-28); states[1610] = new State(-29); states[1611] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-189,1612,-146,1618,-147,1617,-151,49,-152,52}); states[1612] = new State(new int[]{9,1613,100,1615}); states[1613] = new State(new int[]{10,1614}); states[1614] = new State(-30); states[1615] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-146,1616,-147,1617,-151,49,-152,52}); states[1616] = new State(-32); states[1617] = new State(-33); states[1618] = new State(-31); states[1619] = new State(-3); states[1620] = new State(new int[]{43,1641,52,-41,59,-41,29,-41,66,-41,50,-41,53,-41,62,-41,11,-41,44,-41,37,-41,28,-41,26,-41,19,-41,30,-41,31,-41,92,-41,103,-41,91,-41},new int[]{-162,1621,-163,1638,-303,1667}); states[1621] = new State(new int[]{41,1635},new int[]{-161,1622}); states[1622] = new State(new int[]{92,1625,103,1626,91,1632},new int[]{-154,1623}); states[1623] = new State(new int[]{7,1624}); states[1624] = new State(-47); states[1625] = new State(-57); states[1626] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,104,-493,10,-493},new int[]{-253,1627,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[1627] = new State(new int[]{92,1628,104,1629,10,20}); states[1628] = new State(-58); states[1629] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493},new int[]{-253,1630,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[1630] = new State(new int[]{92,1631,10,20}); states[1631] = new State(-59); states[1632] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493},new int[]{-253,1633,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040}); states[1633] = new State(new int[]{92,1634,10,20}); states[1634] = new State(-60); states[1635] = new State(-41,new int[]{-303,1636}); states[1636] = new State(new int[]{52,1589,59,-67,29,-67,66,-67,50,-67,53,-67,62,-67,11,-67,44,-67,37,-67,28,-67,26,-67,19,-67,30,-67,31,-67,92,-67,103,-67,91,-67},new int[]{-40,1637,-305,14,-41,1525}); states[1637] = new State(-55); states[1638] = new State(new int[]{92,1625,103,1626,91,1632},new int[]{-154,1639}); states[1639] = new State(new int[]{7,1640}); states[1640] = new State(-48); states[1641] = new State(-41,new int[]{-303,1642}); states[1642] = new State(new int[]{52,1589,29,-62,66,-62,50,-62,53,-62,62,-62,11,-62,44,-62,37,-62,41,-62},new int[]{-39,1643,-305,14,-37,1644}); states[1643] = new State(-54); states[1644] = new State(new int[]{29,1229,66,1233,50,1445,53,1460,62,1462,11,628,41,-61,44,-213,37,-213},new int[]{-47,1645,-28,1646,-51,1647,-289,1648,-310,1649,-232,1650,-6,1651,-251,1155,-231,1666}); states[1645] = new State(-63); states[1646] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,29,-72,66,-72,50,-72,53,-72,62,-72,11,-72,44,-72,37,-72,41,-72},new int[]{-26,1215,-27,1216,-141,1218,-147,1228,-151,49,-152,52}); states[1647] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,29,-73,66,-73,50,-73,53,-73,62,-73,11,-73,44,-73,37,-73,41,-73},new int[]{-26,1232,-27,1216,-141,1218,-147,1228,-151,49,-152,52}); states[1648] = new State(new int[]{11,628,29,-74,66,-74,50,-74,53,-74,62,-74,44,-74,37,-74,41,-74,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213},new int[]{-48,1236,-6,1237,-251,1155}); states[1649] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452,29,-75,66,-75,50,-75,53,-75,62,-75,11,-75,44,-75,37,-75,41,-75},new int[]{-314,1448,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52}); states[1650] = new State(-76); states[1651] = new State(new int[]{44,1658,11,628,37,1661},new int[]{-225,1652,-251,518,-229,1655}); states[1652] = new State(new int[]{149,1653,29,-92,66,-92,50,-92,53,-92,62,-92,11,-92,44,-92,37,-92,41,-92}); states[1653] = new State(new int[]{10,1654}); states[1654] = new State(-93); states[1655] = new State(new int[]{149,1656,29,-94,66,-94,50,-94,53,-94,62,-94,11,-94,44,-94,37,-94,41,-94}); states[1656] = new State(new int[]{10,1657}); states[1657] = new State(-95); states[1658] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-171,1659,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1659] = new State(new int[]{8,565,10,-469},new int[]{-128,1660}); states[1660] = new State(new int[]{10,1169},new int[]{-207,1331}); states[1661] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1662,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196}); states[1662] = new State(new int[]{8,565,5,-469,10,-469},new int[]{-128,1663}); states[1663] = new State(new int[]{5,1664,10,1169},new int[]{-207,1366}); states[1664] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1665,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562}); states[1665] = new State(new int[]{10,1169},new int[]{-207,1370}); states[1666] = new State(-77); states[1667] = new State(new int[]{52,1589,59,-67,29,-67,66,-67,50,-67,53,-67,62,-67,11,-67,44,-67,37,-67,28,-67,26,-67,19,-67,30,-67,31,-67,92,-67,103,-67,91,-67},new int[]{-40,1668,-305,14,-41,1525}); states[1668] = new State(-56); states[1669] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-139,1670,-147,1673,-151,49,-152,52}); states[1670] = new State(new int[]{10,1671}); states[1671] = new State(new int[]{3,1603,43,-14,92,-14,103,-14,91,-14,52,-14,59,-14,29,-14,66,-14,50,-14,53,-14,62,-14,11,-14,44,-14,37,-14,28,-14,26,-14,19,-14,30,-14,31,-14},new int[]{-185,1672,-186,1601,-184,1606}); states[1672] = new State(-49); states[1673] = new State(-53); states[1674] = new State(-51); states[1675] = new State(-52); states[1676] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-157,1677,-138,1599,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148}); states[1677] = new State(new int[]{10,1678,7,1595}); states[1678] = new State(new int[]{3,1603,43,-14,92,-14,103,-14,91,-14,52,-14,59,-14,29,-14,66,-14,50,-14,53,-14,62,-14,11,-14,44,-14,37,-14,28,-14,26,-14,19,-14,30,-14,31,-14},new int[]{-185,1679,-186,1601,-184,1606}); states[1679] = new State(-50); states[1680] = new State(-4); states[1681] = new State(new int[]{50,1683,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,1682,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597}); states[1682] = new State(new int[]{70,28,2,-7}); states[1683] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-144,1684,-147,1685,-151,49,-152,52}); states[1684] = new State(-8); states[1685] = new State(new int[]{123,1186,2,-221},new int[]{-155,1438}); states[1686] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-321,1687,-322,1688,-147,1692,-151,49,-152,52}); states[1687] = new State(-9); states[1688] = new State(new int[]{7,1689,123,187,2,-786},new int[]{-299,1691}); states[1689] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,1690,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148}); states[1690] = new State(-785); states[1691] = new State(-787); states[1692] = new State(-784); states[1693] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,531,21,294,22,299,76,446,11,368,40,589,5,598,53,800},new int[]{-260,1694,-87,1695,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,1123,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-4,1696,-315,1697}); states[1694] = new State(-10); states[1695] = new State(new int[]{70,28,2,-11}); states[1696] = new State(-12); states[1697] = new State(-13); states[1698] = new State(new int[]{52,1589,141,-39,143,-39,85,-39,86,-39,80,-39,78,-39,160,-39,87,-39,45,-39,42,-39,8,-39,21,-39,22,-39,144,-39,147,-39,145,-39,146,-39,155,-39,158,-39,157,-39,156,-39,76,-39,11,-39,57,-39,91,-39,40,-39,25,-39,97,-39,54,-39,35,-39,55,-39,102,-39,47,-39,36,-39,53,-39,60,-39,74,-39,72,-39,38,-39,44,-39,37,-39,10,-39,2,-39},new int[]{-306,1699,-305,1703}); states[1699] = new State(-65,new int[]{-43,1700}); states[1700] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,44,1546,37,1553,10,-493,2,-493},new int[]{-253,1701,-221,1702,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040,-228,1537,-225,1327,-229,1362}); states[1701] = new State(new int[]{10,20,2,-5}); states[1702] = new State(-66); states[1703] = new State(-40); states[1704] = new State(new int[]{52,1589,141,-39,143,-39,85,-39,86,-39,80,-39,78,-39,160,-39,87,-39,45,-39,42,-39,8,-39,21,-39,22,-39,144,-39,147,-39,145,-39,146,-39,155,-39,158,-39,157,-39,156,-39,76,-39,11,-39,57,-39,91,-39,40,-39,25,-39,97,-39,54,-39,35,-39,55,-39,102,-39,47,-39,36,-39,53,-39,60,-39,74,-39,72,-39,38,-39,44,-39,37,-39,10,-39,2,-39},new int[]{-306,1705,-305,1703}); states[1705] = new State(-65,new int[]{-43,1706}); states[1706] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,44,1546,37,1553,10,-493,2,-493},new int[]{-253,1707,-221,1702,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040,-228,1537,-225,1327,-229,1362}); states[1707] = new State(new int[]{10,20,2,-6}); rules[1] = new Rule(-362, new int[]{-1,2}); rules[2] = new Rule(-1, new int[]{-234}); rules[3] = new Rule(-1, new int[]{-307}); rules[4] = new Rule(-1, new int[]{-175}); rules[5] = new Rule(-1, new int[]{75,-306,-43,-253}); rules[6] = new Rule(-1, new int[]{77,-306,-43,-253}); rules[7] = new Rule(-175, new int[]{88,-87}); rules[8] = new Rule(-175, new int[]{88,50,-144}); rules[9] = new Rule(-175, new int[]{90,-321}); rules[10] = new Rule(-175, new int[]{89,-260}); rules[11] = new Rule(-260, new int[]{-87}); rules[12] = new Rule(-260, new int[]{-4}); rules[13] = new Rule(-260, new int[]{-315}); rules[14] = new Rule(-185, new int[]{}); rules[15] = new Rule(-185, new int[]{-186}); rules[16] = new Rule(-186, new int[]{-184}); rules[17] = new Rule(-186, new int[]{-186,-184}); rules[18] = new Rule(-184, new int[]{3,143}); rules[19] = new Rule(-184, new int[]{3,144}); rules[20] = new Rule(-234, new int[]{-235,-185,-303,-17,-188}); rules[21] = new Rule(-188, new int[]{7}); rules[22] = new Rule(-188, new int[]{10}); rules[23] = new Rule(-188, new int[]{5}); rules[24] = new Rule(-188, new int[]{100}); rules[25] = new Rule(-188, new int[]{6}); rules[26] = new Rule(-188, new int[]{}); rules[27] = new Rule(-235, new int[]{}); rules[28] = new Rule(-235, new int[]{61,-147,-187}); rules[29] = new Rule(-187, new int[]{10}); rules[30] = new Rule(-187, new int[]{8,-189,9,10}); rules[31] = new Rule(-189, new int[]{-146}); rules[32] = new Rule(-189, new int[]{-189,100,-146}); rules[33] = new Rule(-146, new int[]{-147}); rules[34] = new Rule(-17, new int[]{-36,-256}); rules[35] = new Rule(-36, new int[]{-40}); rules[36] = new Rule(-157, new int[]{-138}); rules[37] = new Rule(-157, new int[]{-157,7,-138}); rules[38] = new Rule(-305, new int[]{52,-304,10}); rules[39] = new Rule(-306, new int[]{}); rules[40] = new Rule(-306, new int[]{-305}); rules[41] = new Rule(-303, new int[]{}); rules[42] = new Rule(-303, new int[]{-303,-305}); rules[43] = new Rule(-304, new int[]{-308}); rules[44] = new Rule(-304, new int[]{-304,100,-308}); rules[45] = new Rule(-308, new int[]{-157}); rules[46] = new Rule(-308, new int[]{-157,137,144}); rules[47] = new Rule(-307, new int[]{-309,-162,-161,-154,7}); rules[48] = new Rule(-307, new int[]{-309,-163,-154,7}); rules[49] = new Rule(-309, new int[]{-2,-139,10,-185}); rules[50] = new Rule(-309, new int[]{109,-157,10,-185}); rules[51] = new Rule(-2, new int[]{105}); rules[52] = new Rule(-2, new int[]{106}); rules[53] = new Rule(-139, new int[]{-147}); rules[54] = new Rule(-162, new int[]{43,-303,-39}); rules[55] = new Rule(-161, new int[]{41,-303,-40}); rules[56] = new Rule(-163, new int[]{-303,-40}); rules[57] = new Rule(-154, new int[]{92}); rules[58] = new Rule(-154, new int[]{103,-253,92}); rules[59] = new Rule(-154, new int[]{103,-253,104,-253,92}); rules[60] = new Rule(-154, new int[]{91,-253,92}); rules[61] = new Rule(-39, new int[]{-37}); rules[62] = new Rule(-37, new int[]{}); rules[63] = new Rule(-37, new int[]{-37,-47}); rules[64] = new Rule(-40, new int[]{-41}); rules[65] = new Rule(-43, new int[]{}); rules[66] = new Rule(-43, new int[]{-43,-221}); rules[67] = new Rule(-41, new int[]{}); rules[68] = new Rule(-41, new int[]{-41,-46}); rules[69] = new Rule(-42, new int[]{-38}); rules[70] = new Rule(-38, new int[]{}); rules[71] = new Rule(-38, new int[]{-38,-45}); rules[72] = new Rule(-47, new int[]{-28}); rules[73] = new Rule(-47, new int[]{-51}); rules[74] = new Rule(-47, new int[]{-289}); rules[75] = new Rule(-47, new int[]{-310}); rules[76] = new Rule(-47, new int[]{-232}); rules[77] = new Rule(-47, new int[]{-231}); rules[78] = new Rule(-46, new int[]{-168}); rules[79] = new Rule(-46, new int[]{-28}); rules[80] = new Rule(-46, new int[]{-51}); rules[81] = new Rule(-46, new int[]{-289}); rules[82] = new Rule(-46, new int[]{-310}); rules[83] = new Rule(-46, new int[]{-220}); rules[84] = new Rule(-213, new int[]{-214}); rules[85] = new Rule(-213, new int[]{-217}); rules[86] = new Rule(-220, new int[]{-6,-213}); rules[87] = new Rule(-45, new int[]{-168}); rules[88] = new Rule(-45, new int[]{-28}); rules[89] = new Rule(-45, new int[]{-51}); rules[90] = new Rule(-45, new int[]{-289}); rules[91] = new Rule(-45, new int[]{-310}); rules[92] = new Rule(-232, new int[]{-6,-225}); rules[93] = new Rule(-232, new int[]{-6,-225,149,10}); rules[94] = new Rule(-231, new int[]{-6,-229}); rules[95] = new Rule(-231, new int[]{-6,-229,149,10}); rules[96] = new Rule(-168, new int[]{59,-156,10}); rules[97] = new Rule(-156, new int[]{-143}); rules[98] = new Rule(-156, new int[]{-156,100,-143}); rules[99] = new Rule(-143, new int[]{155}); rules[100] = new Rule(-143, new int[]{-147}); rules[101] = new Rule(-28, new int[]{29,-26}); rules[102] = new Rule(-28, new int[]{-28,-26}); rules[103] = new Rule(-51, new int[]{66,-26}); rules[104] = new Rule(-51, new int[]{-51,-26}); rules[105] = new Rule(-289, new int[]{50,-48}); rules[106] = new Rule(-289, new int[]{-289,-48}); rules[107] = new Rule(-314, new int[]{-311}); rules[108] = new Rule(-314, new int[]{8,-147,100,-158,9,110,-101,10}); rules[109] = new Rule(-310, new int[]{53,-314}); rules[110] = new Rule(-310, new int[]{62,-314}); rules[111] = new Rule(-310, new int[]{-310,-314}); rules[112] = new Rule(-26, new int[]{-27,10}); rules[113] = new Rule(-27, new int[]{-141,120,-109}); rules[114] = new Rule(-27, new int[]{-141,5,-277,120,-84}); rules[115] = new Rule(-109, new int[]{-90}); rules[116] = new Rule(-109, new int[]{-95}); rules[117] = new Rule(-141, new int[]{-147}); rules[118] = new Rule(-91, new int[]{-81}); rules[119] = new Rule(-91, new int[]{-91,-192,-81}); rules[120] = new Rule(-90, new int[]{-91}); rules[121] = new Rule(-90, new int[]{-242}); rules[122] = new Rule(-90, new int[]{-90,16,-91}); rules[123] = new Rule(-242, new int[]{-90,13,-90,5,-90}); rules[124] = new Rule(-192, new int[]{120}); rules[125] = new Rule(-192, new int[]{125}); rules[126] = new Rule(-192, new int[]{123}); rules[127] = new Rule(-192, new int[]{121}); rules[128] = new Rule(-192, new int[]{124}); rules[129] = new Rule(-192, new int[]{122}); rules[130] = new Rule(-192, new int[]{137}); rules[131] = new Rule(-192, new int[]{135,137}); rules[132] = new Rule(-81, new int[]{-13}); rules[133] = new Rule(-81, new int[]{-81,-193,-13}); rules[134] = new Rule(-193, new int[]{116}); rules[135] = new Rule(-193, new int[]{115}); rules[136] = new Rule(-193, new int[]{128}); rules[137] = new Rule(-193, new int[]{129}); rules[138] = new Rule(-266, new int[]{-13,-201,-284}); rules[139] = new Rule(-270, new int[]{-11,119,-10}); rules[140] = new Rule(-270, new int[]{-11,119,-270}); rules[141] = new Rule(-270, new int[]{-199,-270}); rules[142] = new Rule(-13, new int[]{-10}); rules[143] = new Rule(-13, new int[]{-266}); rules[144] = new Rule(-13, new int[]{-270}); rules[145] = new Rule(-13, new int[]{-13,-195,-10}); rules[146] = new Rule(-13, new int[]{-13,-195,-270}); rules[147] = new Rule(-195, new int[]{118}); rules[148] = new Rule(-195, new int[]{117}); rules[149] = new Rule(-195, new int[]{131}); rules[150] = new Rule(-195, new int[]{132}); rules[151] = new Rule(-195, new int[]{133}); rules[152] = new Rule(-195, new int[]{134}); rules[153] = new Rule(-195, new int[]{130}); rules[154] = new Rule(-11, new int[]{-14}); rules[155] = new Rule(-11, new int[]{8,-90,9}); rules[156] = new Rule(-10, new int[]{-14}); rules[157] = new Rule(-10, new int[]{-239}); rules[158] = new Rule(-10, new int[]{56}); rules[159] = new Rule(-10, new int[]{141,-10}); rules[160] = new Rule(-10, new int[]{8,-90,9}); rules[161] = new Rule(-10, new int[]{135,-10}); rules[162] = new Rule(-10, new int[]{-199,-10}); rules[163] = new Rule(-10, new int[]{-173}); rules[164] = new Rule(-10, new int[]{-56}); rules[165] = new Rule(-240, new int[]{11,-68,12}); rules[166] = new Rule(-239, new int[]{-240}); rules[167] = new Rule(-239, new int[]{76,-68,76}); rules[168] = new Rule(-199, new int[]{116}); rules[169] = new Rule(-199, new int[]{115}); rules[170] = new Rule(-14, new int[]{-147}); rules[171] = new Rule(-14, new int[]{-165}); rules[172] = new Rule(-14, new int[]{-16}); rules[173] = new Rule(-14, new int[]{42,-147}); rules[174] = new Rule(-14, new int[]{-258}); rules[175] = new Rule(-14, new int[]{-295}); rules[176] = new Rule(-14, new int[]{-14,-12}); rules[177] = new Rule(-14, new int[]{-14,4,-299}); rules[178] = new Rule(-14, new int[]{-14,11,-121,12}); rules[179] = new Rule(-12, new int[]{7,-138}); rules[180] = new Rule(-12, new int[]{142}); rules[181] = new Rule(-12, new int[]{8,-76,9}); rules[182] = new Rule(-12, new int[]{11,-75,12}); rules[183] = new Rule(-76, new int[]{-71}); rules[184] = new Rule(-76, new int[]{}); rules[185] = new Rule(-75, new int[]{-73}); rules[186] = new Rule(-75, new int[]{}); rules[187] = new Rule(-73, new int[]{-94}); rules[188] = new Rule(-73, new int[]{-73,100,-94}); rules[189] = new Rule(-94, new int[]{-90}); rules[190] = new Rule(-94, new int[]{-90,6,-90}); rules[191] = new Rule(-16, new int[]{155}); rules[192] = new Rule(-16, new int[]{158}); rules[193] = new Rule(-16, new int[]{157}); rules[194] = new Rule(-16, new int[]{156}); rules[195] = new Rule(-84, new int[]{-90}); rules[196] = new Rule(-84, new int[]{-95}); rules[197] = new Rule(-84, new int[]{-244}); rules[198] = new Rule(-95, new int[]{8,-65,9}); rules[199] = new Rule(-65, new int[]{}); rules[200] = new Rule(-65, new int[]{-64}); rules[201] = new Rule(-64, new int[]{-85}); rules[202] = new Rule(-64, new int[]{-64,100,-85}); rules[203] = new Rule(-244, new int[]{8,-246,9}); rules[204] = new Rule(-246, new int[]{-245}); rules[205] = new Rule(-246, new int[]{-245,10}); rules[206] = new Rule(-245, new int[]{-247}); rules[207] = new Rule(-245, new int[]{-245,10,-247}); rules[208] = new Rule(-247, new int[]{-136,5,-84}); rules[209] = new Rule(-136, new int[]{-147}); rules[210] = new Rule(-48, new int[]{-6,-49}); rules[211] = new Rule(-6, new int[]{-251}); rules[212] = new Rule(-6, new int[]{-6,-251}); rules[213] = new Rule(-6, new int[]{}); rules[214] = new Rule(-251, new int[]{11,-252,12}); rules[215] = new Rule(-252, new int[]{-8}); rules[216] = new Rule(-252, new int[]{-252,100,-8}); rules[217] = new Rule(-8, new int[]{-9}); rules[218] = new Rule(-8, new int[]{-147,5,-9}); rules[219] = new Rule(-49, new int[]{-144,120,-287,10}); rules[220] = new Rule(-49, new int[]{-145,-287,10}); rules[221] = new Rule(-144, new int[]{-147}); rules[222] = new Rule(-144, new int[]{-147,-155}); rules[223] = new Rule(-145, new int[]{-147,123,-158,122}); rules[224] = new Rule(-287, new int[]{-277}); rules[225] = new Rule(-287, new int[]{-29}); rules[226] = new Rule(-274, new int[]{-273,13}); rules[227] = new Rule(-274, new int[]{-301,13}); rules[228] = new Rule(-277, new int[]{-273}); rules[229] = new Rule(-277, new int[]{-274}); rules[230] = new Rule(-277, new int[]{-257}); rules[231] = new Rule(-277, new int[]{-250}); rules[232] = new Rule(-277, new int[]{-282}); rules[233] = new Rule(-277, new int[]{-226}); rules[234] = new Rule(-277, new int[]{-301}); rules[235] = new Rule(-301, new int[]{-180,-299}); rules[236] = new Rule(-299, new int[]{123,-297,121}); rules[237] = new Rule(-300, new int[]{125}); rules[238] = new Rule(-300, new int[]{123,-298,121}); rules[239] = new Rule(-297, new int[]{-280}); rules[240] = new Rule(-297, new int[]{-297,100,-280}); rules[241] = new Rule(-298, new int[]{-281}); rules[242] = new Rule(-298, new int[]{-298,100,-281}); rules[243] = new Rule(-281, new int[]{}); rules[244] = new Rule(-280, new int[]{-273}); rules[245] = new Rule(-280, new int[]{-273,13}); rules[246] = new Rule(-280, new int[]{-282}); rules[247] = new Rule(-280, new int[]{-226}); rules[248] = new Rule(-280, new int[]{-301}); rules[249] = new Rule(-273, new int[]{-93}); rules[250] = new Rule(-273, new int[]{-93,6,-93}); rules[251] = new Rule(-273, new int[]{8,-80,9}); rules[252] = new Rule(-93, new int[]{-106}); rules[253] = new Rule(-93, new int[]{-93,-193,-106}); rules[254] = new Rule(-106, new int[]{-107}); rules[255] = new Rule(-106, new int[]{-106,-195,-107}); rules[256] = new Rule(-107, new int[]{-180}); rules[257] = new Rule(-107, new int[]{-16}); rules[258] = new Rule(-107, new int[]{-199,-107}); rules[259] = new Rule(-107, new int[]{-165}); rules[260] = new Rule(-107, new int[]{-107,8,-75,9}); rules[261] = new Rule(-180, new int[]{-147}); rules[262] = new Rule(-180, new int[]{-180,7,-138}); rules[263] = new Rule(-80, new int[]{-78}); rules[264] = new Rule(-80, new int[]{-80,100,-78}); rules[265] = new Rule(-78, new int[]{-277}); rules[266] = new Rule(-78, new int[]{-277,120,-87}); rules[267] = new Rule(-250, new int[]{142,-276}); rules[268] = new Rule(-282, new int[]{-279}); rules[269] = new Rule(-282, new int[]{-30}); rules[270] = new Rule(-282, new int[]{-264}); rules[271] = new Rule(-282, new int[]{-130}); rules[272] = new Rule(-282, new int[]{-131}); rules[273] = new Rule(-131, new int[]{73,58,-277}); rules[274] = new Rule(-279, new int[]{24,11,-164,12,58,-277}); rules[275] = new Rule(-279, new int[]{-271}); rules[276] = new Rule(-271, new int[]{24,58,-277}); rules[277] = new Rule(-164, new int[]{-272}); rules[278] = new Rule(-164, new int[]{-164,100,-272}); rules[279] = new Rule(-272, new int[]{-273}); rules[280] = new Rule(-272, new int[]{}); rules[281] = new Rule(-264, new int[]{49,58,-277}); rules[282] = new Rule(-130, new int[]{34,58,-277}); rules[283] = new Rule(-130, new int[]{34}); rules[284] = new Rule(-257, new int[]{143,11,-90,12}); rules[285] = new Rule(-226, new int[]{-224}); rules[286] = new Rule(-224, new int[]{-223}); rules[287] = new Rule(-223, new int[]{44,-128}); rules[288] = new Rule(-223, new int[]{37,-128,5,-276}); rules[289] = new Rule(-223, new int[]{-180,127,-280}); rules[290] = new Rule(-223, new int[]{-301,127,-280}); rules[291] = new Rule(-223, new int[]{8,9,127,-280}); rules[292] = new Rule(-223, new int[]{8,-80,9,127,-280}); rules[293] = new Rule(-223, new int[]{-180,127,8,9}); rules[294] = new Rule(-223, new int[]{-301,127,8,9}); rules[295] = new Rule(-223, new int[]{8,9,127,8,9}); rules[296] = new Rule(-223, new int[]{8,-80,9,127,8,9}); rules[297] = new Rule(-29, new int[]{-20,-291,-183,-318,-25}); rules[298] = new Rule(-30, new int[]{48,-183,-318,-24,92}); rules[299] = new Rule(-19, new int[]{68}); rules[300] = new Rule(-19, new int[]{69}); rules[301] = new Rule(-19, new int[]{148}); rules[302] = new Rule(-19, new int[]{27}); rules[303] = new Rule(-19, new int[]{28}); rules[304] = new Rule(-20, new int[]{}); rules[305] = new Rule(-20, new int[]{-21}); rules[306] = new Rule(-21, new int[]{-19}); rules[307] = new Rule(-21, new int[]{-21,-19}); rules[308] = new Rule(-291, new int[]{26}); rules[309] = new Rule(-291, new int[]{43}); rules[310] = new Rule(-291, new int[]{64}); rules[311] = new Rule(-291, new int[]{64,26}); rules[312] = new Rule(-291, new int[]{64,48}); rules[313] = new Rule(-291, new int[]{64,43}); rules[314] = new Rule(-25, new int[]{}); rules[315] = new Rule(-25, new int[]{-24,92}); rules[316] = new Rule(-183, new int[]{}); rules[317] = new Rule(-183, new int[]{8,-182,9}); rules[318] = new Rule(-182, new int[]{-181}); rules[319] = new Rule(-182, new int[]{-182,100,-181}); rules[320] = new Rule(-181, new int[]{-180}); rules[321] = new Rule(-181, new int[]{-301}); rules[322] = new Rule(-155, new int[]{123,-158,121}); rules[323] = new Rule(-318, new int[]{}); rules[324] = new Rule(-318, new int[]{-317}); rules[325] = new Rule(-317, new int[]{-316}); rules[326] = new Rule(-317, new int[]{-317,-316}); rules[327] = new Rule(-316, new int[]{23,-158,5,-288,10}); rules[328] = new Rule(-288, new int[]{-286}); rules[329] = new Rule(-288, new int[]{-288,100,-286}); rules[330] = new Rule(-286, new int[]{-277}); rules[331] = new Rule(-286, new int[]{26}); rules[332] = new Rule(-286, new int[]{48}); rules[333] = new Rule(-286, new int[]{30}); rules[334] = new Rule(-24, new int[]{-31}); rules[335] = new Rule(-24, new int[]{-24,-7,-31}); rules[336] = new Rule(-7, new int[]{84}); rules[337] = new Rule(-7, new int[]{83}); rules[338] = new Rule(-7, new int[]{82}); rules[339] = new Rule(-7, new int[]{81}); rules[340] = new Rule(-31, new int[]{}); rules[341] = new Rule(-31, new int[]{-33,-190}); rules[342] = new Rule(-31, new int[]{-32}); rules[343] = new Rule(-31, new int[]{-33,10,-32}); rules[344] = new Rule(-158, new int[]{-147}); rules[345] = new Rule(-158, new int[]{-158,100,-147}); rules[346] = new Rule(-190, new int[]{}); rules[347] = new Rule(-190, new int[]{10}); rules[348] = new Rule(-33, new int[]{-44}); rules[349] = new Rule(-33, new int[]{-33,10,-44}); rules[350] = new Rule(-44, new int[]{-6,-50}); rules[351] = new Rule(-32, new int[]{-53}); rules[352] = new Rule(-32, new int[]{-32,-53}); rules[353] = new Rule(-53, new int[]{-52}); rules[354] = new Rule(-53, new int[]{-54}); rules[355] = new Rule(-50, new int[]{29,-27}); rules[356] = new Rule(-50, new int[]{-313}); rules[357] = new Rule(-50, new int[]{-3,-313}); rules[358] = new Rule(-3, new int[]{28}); rules[359] = new Rule(-3, new int[]{26}); rules[360] = new Rule(-313, new int[]{-312}); rules[361] = new Rule(-313, new int[]{62,-158,5,-277}); rules[362] = new Rule(-52, new int[]{-6,-222}); rules[363] = new Rule(-52, new int[]{-6,-219}); rules[364] = new Rule(-219, new int[]{-215}); rules[365] = new Rule(-219, new int[]{-218}); rules[366] = new Rule(-222, new int[]{-3,-230}); rules[367] = new Rule(-222, new int[]{-230}); rules[368] = new Rule(-222, new int[]{19,-3,-230}); rules[369] = new Rule(-222, new int[]{19,-230}); rules[370] = new Rule(-222, new int[]{-227}); rules[371] = new Rule(-230, new int[]{-228}); rules[372] = new Rule(-228, new int[]{-225}); rules[373] = new Rule(-228, new int[]{-229}); rules[374] = new Rule(-227, new int[]{30,-172,-128,-207}); rules[375] = new Rule(-227, new int[]{-3,30,-172,-128,-207}); rules[376] = new Rule(-227, new int[]{31,-172,-128,-207}); rules[377] = new Rule(-172, new int[]{-171}); rules[378] = new Rule(-172, new int[]{}); rules[379] = new Rule(-54, new int[]{-6,-259}); rules[380] = new Rule(-259, new int[]{46,-170,-233,-202,10,-205}); rules[381] = new Rule(-259, new int[]{46,-170,-233,-202,10,-210,10,-205}); rules[382] = new Rule(-259, new int[]{-3,46,-170,-233,-202,10,-205}); rules[383] = new Rule(-259, new int[]{-3,46,-170,-233,-202,10,-210,10,-205}); rules[384] = new Rule(-259, new int[]{27,46,-170,-233,-211,10}); rules[385] = new Rule(-259, new int[]{-3,27,46,-170,-233,-211,10}); rules[386] = new Rule(-211, new int[]{110,-87}); rules[387] = new Rule(-211, new int[]{}); rules[388] = new Rule(-205, new int[]{}); rules[389] = new Rule(-205, new int[]{63,10}); rules[390] = new Rule(-233, new int[]{-238,5,-276}); rules[391] = new Rule(-238, new int[]{}); rules[392] = new Rule(-238, new int[]{11,-237,12}); rules[393] = new Rule(-237, new int[]{-236}); rules[394] = new Rule(-237, new int[]{-237,10,-236}); rules[395] = new Rule(-236, new int[]{-158,5,-276}); rules[396] = new Rule(-114, new int[]{-88}); rules[397] = new Rule(-114, new int[]{}); rules[398] = new Rule(-202, new int[]{}); rules[399] = new Rule(-202, new int[]{85,-114,-203}); rules[400] = new Rule(-202, new int[]{86,-261,-204}); rules[401] = new Rule(-203, new int[]{}); rules[402] = new Rule(-203, new int[]{86,-261}); rules[403] = new Rule(-204, new int[]{}); rules[404] = new Rule(-204, new int[]{85,-114}); rules[405] = new Rule(-311, new int[]{-312,10}); rules[406] = new Rule(-339, new int[]{110}); rules[407] = new Rule(-339, new int[]{120}); rules[408] = new Rule(-312, new int[]{-158,5,-277}); rules[409] = new Rule(-312, new int[]{-158,110,-88}); rules[410] = new Rule(-312, new int[]{-158,5,-277,-339,-86}); rules[411] = new Rule(-86, new int[]{-85}); rules[412] = new Rule(-86, new int[]{-81,6,-13}); rules[413] = new Rule(-86, new int[]{-324}); rules[414] = new Rule(-86, new int[]{-147,127,-329}); rules[415] = new Rule(-86, new int[]{8,9,-325,127,-329}); rules[416] = new Rule(-86, new int[]{8,-65,9,127,-329}); rules[417] = new Rule(-86, new int[]{-243}); rules[418] = new Rule(-85, new int[]{-84}); rules[419] = new Rule(-217, new int[]{-227,-177}); rules[420] = new Rule(-217, new int[]{30,-172,-128,110,-261,10}); rules[421] = new Rule(-217, new int[]{-3,30,-172,-128,110,-261,10}); rules[422] = new Rule(-218, new int[]{-227,-176}); rules[423] = new Rule(-218, new int[]{30,-172,-128,110,-261,10}); rules[424] = new Rule(-218, new int[]{-3,30,-172,-128,110,-261,10}); rules[425] = new Rule(-214, new int[]{-221}); rules[426] = new Rule(-214, new int[]{-3,-221}); rules[427] = new Rule(-214, new int[]{19,-221}); rules[428] = new Rule(-214, new int[]{19,-3,-221}); rules[429] = new Rule(-214, new int[]{-3,19,-221}); rules[430] = new Rule(-215, new int[]{-216}); rules[431] = new Rule(-215, new int[]{19,-216}); rules[432] = new Rule(-215, new int[]{-3,-216}); rules[433] = new Rule(-215, new int[]{19,-3,-216}); rules[434] = new Rule(-215, new int[]{-3,19,-216}); rules[435] = new Rule(-221, new int[]{-228,-178}); rules[436] = new Rule(-221, new int[]{-228,149,10}); rules[437] = new Rule(-221, new int[]{37,-170,-128,5,-276,-208,110,-103,10}); rules[438] = new Rule(-221, new int[]{37,-170,-128,-208,110,-103,10}); rules[439] = new Rule(-221, new int[]{44,-171,-128,-208,110,-261,10}); rules[440] = new Rule(-216, new int[]{-228,-176}); rules[441] = new Rule(-216, new int[]{37,-170,-128,5,-276,-208,110,-103,10}); rules[442] = new Rule(-216, new int[]{37,-170,-128,-208,110,-103,10}); rules[443] = new Rule(-216, new int[]{44,-171,-128,-208,110,-261,10}); rules[444] = new Rule(-178, new int[]{-177}); rules[445] = new Rule(-178, new int[]{-60}); rules[446] = new Rule(-171, new int[]{-170}); rules[447] = new Rule(-170, new int[]{-142}); rules[448] = new Rule(-170, new int[]{-335,7,-142}); rules[449] = new Rule(-149, new int[]{-137}); rules[450] = new Rule(-335, new int[]{-149}); rules[451] = new Rule(-335, new int[]{-335,7,-149}); rules[452] = new Rule(-142, new int[]{-137}); rules[453] = new Rule(-142, new int[]{-191}); rules[454] = new Rule(-142, new int[]{-191,-155}); rules[455] = new Rule(-137, new int[]{-134}); rules[456] = new Rule(-137, new int[]{-134,-155}); rules[457] = new Rule(-134, new int[]{-147}); rules[458] = new Rule(-225, new int[]{44,-171,-128,-207,-318}); rules[459] = new Rule(-229, new int[]{37,-170,-128,-207,-318}); rules[460] = new Rule(-229, new int[]{37,-170,-128,5,-276,-207,-318}); rules[461] = new Rule(-60, new int[]{107,-108,80,-108,10}); rules[462] = new Rule(-60, new int[]{107,-108,10}); rules[463] = new Rule(-60, new int[]{107,10}); rules[464] = new Rule(-108, new int[]{-147}); rules[465] = new Rule(-108, new int[]{-165}); rules[466] = new Rule(-177, new int[]{-40,-256,10}); rules[467] = new Rule(-176, new int[]{-42,-256,10}); rules[468] = new Rule(-176, new int[]{-60}); rules[469] = new Rule(-128, new int[]{}); rules[470] = new Rule(-128, new int[]{8,9}); rules[471] = new Rule(-128, new int[]{8,-129,9}); rules[472] = new Rule(-129, new int[]{-55}); rules[473] = new Rule(-129, new int[]{-129,10,-55}); rules[474] = new Rule(-55, new int[]{-6,-296}); rules[475] = new Rule(-296, new int[]{-159,5,-276}); rules[476] = new Rule(-296, new int[]{53,-159,5,-276}); rules[477] = new Rule(-296, new int[]{29,-159,5,-276}); rules[478] = new Rule(-296, new int[]{108,-159,5,-276}); rules[479] = new Rule(-296, new int[]{-159,5,-276,110,-87}); rules[480] = new Rule(-296, new int[]{53,-159,5,-276,110,-87}); rules[481] = new Rule(-296, new int[]{29,-159,5,-276,110,-87}); rules[482] = new Rule(-159, new int[]{-135}); rules[483] = new Rule(-159, new int[]{-159,100,-135}); rules[484] = new Rule(-135, new int[]{-147}); rules[485] = new Rule(-276, new int[]{-277}); rules[486] = new Rule(-278, new int[]{-273}); rules[487] = new Rule(-278, new int[]{-257}); rules[488] = new Rule(-278, new int[]{-250}); rules[489] = new Rule(-278, new int[]{-282}); rules[490] = new Rule(-278, new int[]{-301}); rules[491] = new Rule(-262, new int[]{-261}); rules[492] = new Rule(-262, new int[]{-143,5,-262}); rules[493] = new Rule(-261, new int[]{}); rules[494] = new Rule(-261, new int[]{-4}); rules[495] = new Rule(-261, new int[]{-212}); rules[496] = new Rule(-261, new int[]{-133}); rules[497] = new Rule(-261, new int[]{-256}); rules[498] = new Rule(-261, new int[]{-153}); rules[499] = new Rule(-261, new int[]{-34}); rules[500] = new Rule(-261, new int[]{-248}); rules[501] = new Rule(-261, new int[]{-319}); rules[502] = new Rule(-261, new int[]{-124}); rules[503] = new Rule(-261, new int[]{-320}); rules[504] = new Rule(-261, new int[]{-160}); rules[505] = new Rule(-261, new int[]{-302}); rules[506] = new Rule(-261, new int[]{-249}); rules[507] = new Rule(-261, new int[]{-123}); rules[508] = new Rule(-261, new int[]{-315}); rules[509] = new Rule(-261, new int[]{-58}); rules[510] = new Rule(-261, new int[]{-169}); rules[511] = new Rule(-261, new int[]{-126}); rules[512] = new Rule(-261, new int[]{-127}); rules[513] = new Rule(-261, new int[]{-125}); rules[514] = new Rule(-261, new int[]{-349}); rules[515] = new Rule(-125, new int[]{72,-101,99,-261}); rules[516] = new Rule(-126, new int[]{74,-103}); rules[517] = new Rule(-127, new int[]{74,73,-103}); rules[518] = new Rule(-315, new int[]{53,-312}); rules[519] = new Rule(-315, new int[]{8,53,-147,100,-338,9,110,-87}); rules[520] = new Rule(-315, new int[]{53,8,-147,100,-158,9,110,-87}); rules[521] = new Rule(-4, new int[]{-113,-194,-88}); rules[522] = new Rule(-4, new int[]{8,-111,100,-337,9,-194,-87}); rules[523] = new Rule(-337, new int[]{-111}); rules[524] = new Rule(-337, new int[]{-337,100,-111}); rules[525] = new Rule(-338, new int[]{53,-147}); rules[526] = new Rule(-338, new int[]{-338,100,53,-147}); rules[527] = new Rule(-212, new int[]{-113}); rules[528] = new Rule(-133, new int[]{57,-143}); rules[529] = new Rule(-256, new int[]{91,-253,92}); rules[530] = new Rule(-253, new int[]{-262}); rules[531] = new Rule(-253, new int[]{-253,10,-262}); rules[532] = new Rule(-153, new int[]{40,-101,51,-261}); rules[533] = new Rule(-153, new int[]{40,-101,51,-261,32,-261}); rules[534] = new Rule(-349, new int[]{38,-101,55,-351,-254,92}); rules[535] = new Rule(-349, new int[]{38,-101,55,-351,10,-254,92}); rules[536] = new Rule(-351, new int[]{-350}); rules[537] = new Rule(-351, new int[]{-351,10,-350}); rules[538] = new Rule(-350, new int[]{-343,39,-101,5,-261}); rules[539] = new Rule(-350, new int[]{-342,5,-261}); rules[540] = new Rule(-350, new int[]{-344,5,-261}); rules[541] = new Rule(-350, new int[]{-345,39,-101,5,-261}); rules[542] = new Rule(-350, new int[]{-345,5,-261}); rules[543] = new Rule(-34, new int[]{25,-101,58,-35,-254,92}); rules[544] = new Rule(-34, new int[]{25,-101,58,-35,10,-254,92}); rules[545] = new Rule(-34, new int[]{25,-101,58,-254,92}); rules[546] = new Rule(-35, new int[]{-263}); rules[547] = new Rule(-35, new int[]{-35,10,-263}); rules[548] = new Rule(-263, new int[]{-74,5,-261}); rules[549] = new Rule(-74, new int[]{-110}); rules[550] = new Rule(-74, new int[]{-74,100,-110}); rules[551] = new Rule(-110, new int[]{-94}); rules[552] = new Rule(-254, new int[]{}); rules[553] = new Rule(-254, new int[]{32,-253}); rules[554] = new Rule(-248, new int[]{97,-253,98,-87}); rules[555] = new Rule(-319, new int[]{54,-101,-292,-261}); rules[556] = new Rule(-292, new int[]{99}); rules[557] = new Rule(-292, new int[]{}); rules[558] = new Rule(-169, new int[]{60,-101,99,-261}); rules[559] = new Rule(-361, new int[]{87,143}); rules[560] = new Rule(-361, new int[]{}); rules[561] = new Rule(-275, new int[]{5,-277}); rules[562] = new Rule(-275, new int[]{}); rules[563] = new Rule(-18, new int[]{53}); rules[564] = new Rule(-18, new int[]{}); rules[565] = new Rule(-119, new int[]{70}); rules[566] = new Rule(-119, new int[]{71}); rules[567] = new Rule(-123, new int[]{36,-147,-275,137,-101,-361,99,-261}); rules[568] = new Rule(-123, new int[]{36,53,-147,-275,137,-101,-361,99,-261}); rules[569] = new Rule(-123, new int[]{36,53,8,-158,9,137,-101,-361,99,-261}); rules[570] = new Rule(-124, new int[]{35,-18,-147,-275,110,-101,-119,-101,-292,-261}); rules[571] = new Rule(-124, new int[]{35,-18,-147,-275,110,-101,-119,-101,160,-101,99,-261}); rules[572] = new Rule(-320, new int[]{55,-71,99,-261}); rules[573] = new Rule(-160, new int[]{42}); rules[574] = new Rule(-302, new int[]{102,-253,-290}); rules[575] = new Rule(-290, new int[]{101,-253,92}); rules[576] = new Rule(-290, new int[]{33,-59,92}); rules[577] = new Rule(-59, new int[]{-62,-255}); rules[578] = new Rule(-59, new int[]{-62,10,-255}); rules[579] = new Rule(-59, new int[]{-253}); rules[580] = new Rule(-62, new int[]{-61}); rules[581] = new Rule(-62, new int[]{-62,10,-61}); rules[582] = new Rule(-255, new int[]{}); rules[583] = new Rule(-255, new int[]{32,-253}); rules[584] = new Rule(-61, new int[]{79,-63,99,-261}); rules[585] = new Rule(-63, new int[]{-179}); rules[586] = new Rule(-63, new int[]{-140,5,-179}); rules[587] = new Rule(-179, new int[]{-180}); rules[588] = new Rule(-140, new int[]{-147}); rules[589] = new Rule(-249, new int[]{47}); rules[590] = new Rule(-249, new int[]{47,-87}); rules[591] = new Rule(-71, new int[]{-88}); rules[592] = new Rule(-71, new int[]{-71,100,-88}); rules[593] = new Rule(-72, new int[]{-89}); rules[594] = new Rule(-72, new int[]{-72,100,-89}); rules[595] = new Rule(-58, new int[]{-174}); rules[596] = new Rule(-174, new int[]{-173}); rules[597] = new Rule(-88, new int[]{-87}); rules[598] = new Rule(-88, new int[]{-323}); rules[599] = new Rule(-88, new int[]{42}); rules[600] = new Rule(-89, new int[]{-87}); rules[601] = new Rule(-89, new int[]{-147,110,-101}); rules[602] = new Rule(-89, new int[]{-323}); rules[603] = new Rule(-89, new int[]{42}); rules[604] = new Rule(-87, new int[]{-101}); rules[605] = new Rule(-87, new int[]{-120}); rules[606] = new Rule(-87, new int[]{-87,70,-101}); rules[607] = new Rule(-101, new int[]{-99}); rules[608] = new Rule(-101, new int[]{-241}); rules[609] = new Rule(-101, new int[]{-243}); rules[610] = new Rule(-117, new int[]{-99}); rules[611] = new Rule(-117, new int[]{-241}); rules[612] = new Rule(-118, new int[]{-99}); rules[613] = new Rule(-118, new int[]{-243}); rules[614] = new Rule(-103, new int[]{-101}); rules[615] = new Rule(-103, new int[]{-323}); rules[616] = new Rule(-104, new int[]{-99}); rules[617] = new Rule(-104, new int[]{-241}); rules[618] = new Rule(-104, new int[]{-323}); rules[619] = new Rule(-99, new int[]{-98}); rules[620] = new Rule(-99, new int[]{-99,16,-98}); rules[621] = new Rule(-258, new int[]{21,8,-284,9}); rules[622] = new Rule(-295, new int[]{22,8,-284,9}); rules[623] = new Rule(-295, new int[]{22,8,-283,9}); rules[624] = new Rule(-241, new int[]{-117,13,-117,5,-117}); rules[625] = new Rule(-243, new int[]{40,-118,51,-118,32,-118}); rules[626] = new Rule(-283, new int[]{-180,-300}); rules[627] = new Rule(-283, new int[]{-180,4,-300}); rules[628] = new Rule(-284, new int[]{-180}); rules[629] = new Rule(-284, new int[]{-180,-299}); rules[630] = new Rule(-284, new int[]{-180,4,-299}); rules[631] = new Rule(-285, new int[]{-284}); rules[632] = new Rule(-285, new int[]{-274}); rules[633] = new Rule(-5, new int[]{8,-65,9}); rules[634] = new Rule(-5, new int[]{}); rules[635] = new Rule(-173, new int[]{78,-284,-70}); rules[636] = new Rule(-173, new int[]{78,-284,11,-66,12,-5}); rules[637] = new Rule(-173, new int[]{78,26,8,-334,9}); rules[638] = new Rule(-333, new int[]{-147,110,-101}); rules[639] = new Rule(-333, new int[]{-101}); rules[640] = new Rule(-334, new int[]{-333}); rules[641] = new Rule(-334, new int[]{-334,100,-333}); rules[642] = new Rule(-69, new int[]{}); rules[643] = new Rule(-69, new int[]{8,-66,9}); rules[644] = new Rule(-70, new int[]{}); rules[645] = new Rule(-70, new int[]{8,-67,9}); rules[646] = new Rule(-98, new int[]{-105}); rules[647] = new Rule(-98, new int[]{-98,-196,-105}); rules[648] = new Rule(-98, new int[]{-98,-196,-243}); rules[649] = new Rule(-98, new int[]{-267,8,-354,9}); rules[650] = new Rule(-341, new int[]{-284,8,-354,9}); rules[651] = new Rule(-343, new int[]{-284,8,-355,9}); rules[652] = new Rule(-342, new int[]{-284,8,-355,9}); rules[653] = new Rule(-342, new int[]{-358}); rules[654] = new Rule(-358, new int[]{-340}); rules[655] = new Rule(-358, new int[]{-358,100,-340}); rules[656] = new Rule(-340, new int[]{-15}); rules[657] = new Rule(-340, new int[]{-284}); rules[658] = new Rule(-340, new int[]{56}); rules[659] = new Rule(-340, new int[]{-258}); rules[660] = new Rule(-340, new int[]{-295}); rules[661] = new Rule(-344, new int[]{11,-356,12}); rules[662] = new Rule(-356, new int[]{-346}); rules[663] = new Rule(-356, new int[]{-356,100,-346}); rules[664] = new Rule(-346, new int[]{-15}); rules[665] = new Rule(-346, new int[]{-348}); rules[666] = new Rule(-346, new int[]{14}); rules[667] = new Rule(-346, new int[]{-343}); rules[668] = new Rule(-346, new int[]{-344}); rules[669] = new Rule(-346, new int[]{-345}); rules[670] = new Rule(-346, new int[]{6}); rules[671] = new Rule(-348, new int[]{53,-147}); rules[672] = new Rule(-345, new int[]{8,-357,9}); rules[673] = new Rule(-347, new int[]{14}); rules[674] = new Rule(-347, new int[]{-15}); rules[675] = new Rule(-347, new int[]{-199,-15}); rules[676] = new Rule(-347, new int[]{53,-147}); rules[677] = new Rule(-347, new int[]{-343}); rules[678] = new Rule(-347, new int[]{-344}); rules[679] = new Rule(-347, new int[]{-345}); rules[680] = new Rule(-357, new int[]{-347}); rules[681] = new Rule(-357, new int[]{-357,100,-347}); rules[682] = new Rule(-355, new int[]{-353}); rules[683] = new Rule(-355, new int[]{-355,10,-353}); rules[684] = new Rule(-355, new int[]{-355,100,-353}); rules[685] = new Rule(-354, new int[]{-352}); rules[686] = new Rule(-354, new int[]{-354,10,-352}); rules[687] = new Rule(-354, new int[]{-354,100,-352}); rules[688] = new Rule(-352, new int[]{14}); rules[689] = new Rule(-352, new int[]{-15}); rules[690] = new Rule(-352, new int[]{53,-147,5,-277}); rules[691] = new Rule(-352, new int[]{53,-147}); rules[692] = new Rule(-352, new int[]{-341}); rules[693] = new Rule(-352, new int[]{-344}); rules[694] = new Rule(-352, new int[]{-345}); rules[695] = new Rule(-353, new int[]{14}); rules[696] = new Rule(-353, new int[]{-15}); rules[697] = new Rule(-353, new int[]{-199,-15}); rules[698] = new Rule(-353, new int[]{-147,5,-277}); rules[699] = new Rule(-353, new int[]{-147}); rules[700] = new Rule(-353, new int[]{53,-147,5,-277}); rules[701] = new Rule(-353, new int[]{53,-147}); rules[702] = new Rule(-353, new int[]{-343}); rules[703] = new Rule(-353, new int[]{-344}); rules[704] = new Rule(-353, new int[]{-345}); rules[705] = new Rule(-115, new int[]{-105}); rules[706] = new Rule(-115, new int[]{}); rules[707] = new Rule(-122, new int[]{-90}); rules[708] = new Rule(-122, new int[]{}); rules[709] = new Rule(-120, new int[]{-105,5,-115}); rules[710] = new Rule(-120, new int[]{5,-115}); rules[711] = new Rule(-120, new int[]{-105,5,-115,5,-105}); rules[712] = new Rule(-120, new int[]{5,-115,5,-105}); rules[713] = new Rule(-121, new int[]{-90,5,-122}); rules[714] = new Rule(-121, new int[]{5,-122}); rules[715] = new Rule(-121, new int[]{-90,5,-122,5,-90}); rules[716] = new Rule(-121, new int[]{5,-122,5,-90}); rules[717] = new Rule(-196, new int[]{120}); rules[718] = new Rule(-196, new int[]{125}); rules[719] = new Rule(-196, new int[]{123}); rules[720] = new Rule(-196, new int[]{121}); rules[721] = new Rule(-196, new int[]{124}); rules[722] = new Rule(-196, new int[]{122}); rules[723] = new Rule(-196, new int[]{137}); rules[724] = new Rule(-196, new int[]{135,137}); rules[725] = new Rule(-105, new int[]{-83}); rules[726] = new Rule(-105, new int[]{-105,6,-83}); rules[727] = new Rule(-83, new int[]{-82}); rules[728] = new Rule(-83, new int[]{-83,-197,-82}); rules[729] = new Rule(-83, new int[]{-83,-197,-243}); rules[730] = new Rule(-197, new int[]{116}); rules[731] = new Rule(-197, new int[]{115}); rules[732] = new Rule(-197, new int[]{128}); rules[733] = new Rule(-197, new int[]{129}); rules[734] = new Rule(-197, new int[]{126}); rules[735] = new Rule(-201, new int[]{136}); rules[736] = new Rule(-201, new int[]{138}); rules[737] = new Rule(-265, new int[]{-267}); rules[738] = new Rule(-265, new int[]{-268}); rules[739] = new Rule(-268, new int[]{-82,136,-284}); rules[740] = new Rule(-268, new int[]{-82,136,-279}); rules[741] = new Rule(-267, new int[]{-82,138,-284}); rules[742] = new Rule(-267, new int[]{-82,138,-279}); rules[743] = new Rule(-269, new int[]{-97,119,-96}); rules[744] = new Rule(-269, new int[]{-97,119,-269}); rules[745] = new Rule(-269, new int[]{-199,-269}); rules[746] = new Rule(-82, new int[]{-96}); rules[747] = new Rule(-82, new int[]{-173}); rules[748] = new Rule(-82, new int[]{-269}); rules[749] = new Rule(-82, new int[]{-82,-198,-96}); rules[750] = new Rule(-82, new int[]{-82,-198,-269}); rules[751] = new Rule(-82, new int[]{-82,-198,-243}); rules[752] = new Rule(-82, new int[]{-265}); rules[753] = new Rule(-198, new int[]{118}); rules[754] = new Rule(-198, new int[]{117}); rules[755] = new Rule(-198, new int[]{131}); rules[756] = new Rule(-198, new int[]{132}); rules[757] = new Rule(-198, new int[]{133}); rules[758] = new Rule(-198, new int[]{134}); rules[759] = new Rule(-198, new int[]{130}); rules[760] = new Rule(-56, new int[]{63,8,-285,9}); rules[761] = new Rule(-57, new int[]{8,-102,100,-79,-325,-332,9}); rules[762] = new Rule(-97, new int[]{-15}); rules[763] = new Rule(-97, new int[]{-113}); rules[764] = new Rule(-96, new int[]{56}); rules[765] = new Rule(-96, new int[]{-15}); rules[766] = new Rule(-96, new int[]{-56}); rules[767] = new Rule(-96, new int[]{135,-96}); rules[768] = new Rule(-96, new int[]{-199,-96}); rules[769] = new Rule(-96, new int[]{142,-96}); rules[770] = new Rule(-96, new int[]{-113}); rules[771] = new Rule(-96, new int[]{-57}); rules[772] = new Rule(-15, new int[]{-165}); rules[773] = new Rule(-15, new int[]{-16}); rules[774] = new Rule(-116, new int[]{-111,15,-111}); rules[775] = new Rule(-116, new int[]{-111,15,-116}); rules[776] = new Rule(-113, new int[]{-132,-111}); rules[777] = new Rule(-113, new int[]{-111}); rules[778] = new Rule(-113, new int[]{-116}); rules[779] = new Rule(-113, new int[]{8,53,-147,110,-99,9}); rules[780] = new Rule(-132, new int[]{141}); rules[781] = new Rule(-132, new int[]{-132,141}); rules[782] = new Rule(-9, new int[]{-180,-69}); rules[783] = new Rule(-9, new int[]{-301,-69}); rules[784] = new Rule(-322, new int[]{-147}); rules[785] = new Rule(-322, new int[]{-322,7,-138}); rules[786] = new Rule(-321, new int[]{-322}); rules[787] = new Rule(-321, new int[]{-322,-299}); rules[788] = new Rule(-359, new int[]{53,-147,110,-87,10}); rules[789] = new Rule(-360, new int[]{-359}); rules[790] = new Rule(-360, new int[]{-360,-359}); rules[791] = new Rule(-112, new int[]{-111,8,-67,9}); rules[792] = new Rule(-111, new int[]{-147}); rules[793] = new Rule(-111, new int[]{-191}); rules[794] = new Rule(-111, new int[]{42,-147}); rules[795] = new Rule(-111, new int[]{8,-87,9}); rules[796] = new Rule(-111, new int[]{8,-360,-87,9}); rules[797] = new Rule(-111, new int[]{-258}); rules[798] = new Rule(-111, new int[]{-295}); rules[799] = new Rule(-111, new int[]{-15,7,-138}); rules[800] = new Rule(-111, new int[]{-111,11,-71,12}); rules[801] = new Rule(-111, new int[]{-15,11,-71,12}); rules[802] = new Rule(-111, new int[]{-111,17,-120,12}); rules[803] = new Rule(-111, new int[]{-15,17,-120,12}); rules[804] = new Rule(-111, new int[]{76,-68,76}); rules[805] = new Rule(-111, new int[]{-240}); rules[806] = new Rule(-111, new int[]{-112}); rules[807] = new Rule(-111, new int[]{-111,7,-148}); rules[808] = new Rule(-111, new int[]{-57,7,-148}); rules[809] = new Rule(-111, new int[]{-111,142}); rules[810] = new Rule(-111, new int[]{-111,4,-299}); rules[811] = new Rule(-66, new int[]{-71}); rules[812] = new Rule(-66, new int[]{}); rules[813] = new Rule(-67, new int[]{-72}); rules[814] = new Rule(-67, new int[]{}); rules[815] = new Rule(-68, new int[]{-77}); rules[816] = new Rule(-68, new int[]{}); rules[817] = new Rule(-77, new int[]{-92}); rules[818] = new Rule(-77, new int[]{-77,100,-92}); rules[819] = new Rule(-92, new int[]{-87}); rules[820] = new Rule(-92, new int[]{-87,6,-87}); rules[821] = new Rule(-166, new int[]{144}); rules[822] = new Rule(-166, new int[]{147}); rules[823] = new Rule(-165, new int[]{-167}); rules[824] = new Rule(-165, new int[]{145}); rules[825] = new Rule(-165, new int[]{146}); rules[826] = new Rule(-167, new int[]{-166}); rules[827] = new Rule(-167, new int[]{-167,-166}); rules[828] = new Rule(-191, new int[]{45,-200}); rules[829] = new Rule(-207, new int[]{10}); rules[830] = new Rule(-207, new int[]{10,-206,10}); rules[831] = new Rule(-208, new int[]{}); rules[832] = new Rule(-208, new int[]{10,-206}); rules[833] = new Rule(-206, new int[]{-209}); rules[834] = new Rule(-206, new int[]{-206,10,-209}); rules[835] = new Rule(-147, new int[]{143}); rules[836] = new Rule(-147, new int[]{-151}); rules[837] = new Rule(-147, new int[]{-152}); rules[838] = new Rule(-147, new int[]{160}); rules[839] = new Rule(-147, new int[]{87}); rules[840] = new Rule(-138, new int[]{-147}); rules[841] = new Rule(-138, new int[]{-293}); rules[842] = new Rule(-138, new int[]{-294}); rules[843] = new Rule(-148, new int[]{-147}); rules[844] = new Rule(-148, new int[]{-293}); rules[845] = new Rule(-148, new int[]{-191}); rules[846] = new Rule(-209, new int[]{148}); rules[847] = new Rule(-209, new int[]{150}); rules[848] = new Rule(-209, new int[]{151}); rules[849] = new Rule(-209, new int[]{152}); rules[850] = new Rule(-209, new int[]{154}); rules[851] = new Rule(-209, new int[]{153}); rules[852] = new Rule(-210, new int[]{153}); rules[853] = new Rule(-210, new int[]{152}); rules[854] = new Rule(-210, new int[]{148}); rules[855] = new Rule(-210, new int[]{151}); rules[856] = new Rule(-151, new int[]{85}); rules[857] = new Rule(-151, new int[]{86}); rules[858] = new Rule(-152, new int[]{80}); rules[859] = new Rule(-152, new int[]{78}); rules[860] = new Rule(-150, new int[]{84}); rules[861] = new Rule(-150, new int[]{83}); rules[862] = new Rule(-150, new int[]{82}); rules[863] = new Rule(-150, new int[]{81}); rules[864] = new Rule(-293, new int[]{-150}); rules[865] = new Rule(-293, new int[]{68}); rules[866] = new Rule(-293, new int[]{64}); rules[867] = new Rule(-293, new int[]{128}); rules[868] = new Rule(-293, new int[]{22}); rules[869] = new Rule(-293, new int[]{21}); rules[870] = new Rule(-293, new int[]{63}); rules[871] = new Rule(-293, new int[]{23}); rules[872] = new Rule(-293, new int[]{129}); rules[873] = new Rule(-293, new int[]{130}); rules[874] = new Rule(-293, new int[]{131}); rules[875] = new Rule(-293, new int[]{132}); rules[876] = new Rule(-293, new int[]{133}); rules[877] = new Rule(-293, new int[]{134}); rules[878] = new Rule(-293, new int[]{135}); rules[879] = new Rule(-293, new int[]{136}); rules[880] = new Rule(-293, new int[]{137}); rules[881] = new Rule(-293, new int[]{138}); rules[882] = new Rule(-293, new int[]{24}); rules[883] = new Rule(-293, new int[]{73}); rules[884] = new Rule(-293, new int[]{91}); rules[885] = new Rule(-293, new int[]{25}); rules[886] = new Rule(-293, new int[]{26}); rules[887] = new Rule(-293, new int[]{29}); rules[888] = new Rule(-293, new int[]{30}); rules[889] = new Rule(-293, new int[]{31}); rules[890] = new Rule(-293, new int[]{71}); rules[891] = new Rule(-293, new int[]{99}); rules[892] = new Rule(-293, new int[]{32}); rules[893] = new Rule(-293, new int[]{92}); rules[894] = new Rule(-293, new int[]{33}); rules[895] = new Rule(-293, new int[]{34}); rules[896] = new Rule(-293, new int[]{27}); rules[897] = new Rule(-293, new int[]{104}); rules[898] = new Rule(-293, new int[]{101}); rules[899] = new Rule(-293, new int[]{35}); rules[900] = new Rule(-293, new int[]{36}); rules[901] = new Rule(-293, new int[]{37}); rules[902] = new Rule(-293, new int[]{40}); rules[903] = new Rule(-293, new int[]{41}); rules[904] = new Rule(-293, new int[]{42}); rules[905] = new Rule(-293, new int[]{103}); rules[906] = new Rule(-293, new int[]{43}); rules[907] = new Rule(-293, new int[]{44}); rules[908] = new Rule(-293, new int[]{46}); rules[909] = new Rule(-293, new int[]{47}); rules[910] = new Rule(-293, new int[]{48}); rules[911] = new Rule(-293, new int[]{97}); rules[912] = new Rule(-293, new int[]{49}); rules[913] = new Rule(-293, new int[]{102}); rules[914] = new Rule(-293, new int[]{50}); rules[915] = new Rule(-293, new int[]{28}); rules[916] = new Rule(-293, new int[]{51}); rules[917] = new Rule(-293, new int[]{70}); rules[918] = new Rule(-293, new int[]{98}); rules[919] = new Rule(-293, new int[]{52}); rules[920] = new Rule(-293, new int[]{53}); rules[921] = new Rule(-293, new int[]{54}); rules[922] = new Rule(-293, new int[]{55}); rules[923] = new Rule(-293, new int[]{56}); rules[924] = new Rule(-293, new int[]{57}); rules[925] = new Rule(-293, new int[]{58}); rules[926] = new Rule(-293, new int[]{59}); rules[927] = new Rule(-293, new int[]{61}); rules[928] = new Rule(-293, new int[]{105}); rules[929] = new Rule(-293, new int[]{106}); rules[930] = new Rule(-293, new int[]{109}); rules[931] = new Rule(-293, new int[]{107}); rules[932] = new Rule(-293, new int[]{108}); rules[933] = new Rule(-293, new int[]{62}); rules[934] = new Rule(-293, new int[]{74}); rules[935] = new Rule(-293, new int[]{38}); rules[936] = new Rule(-293, new int[]{39}); rules[937] = new Rule(-293, new int[]{69}); rules[938] = new Rule(-293, new int[]{148}); rules[939] = new Rule(-293, new int[]{60}); rules[940] = new Rule(-293, new int[]{139}); rules[941] = new Rule(-293, new int[]{140}); rules[942] = new Rule(-293, new int[]{79}); rules[943] = new Rule(-293, new int[]{153}); rules[944] = new Rule(-293, new int[]{152}); rules[945] = new Rule(-293, new int[]{72}); rules[946] = new Rule(-293, new int[]{154}); rules[947] = new Rule(-293, new int[]{150}); rules[948] = new Rule(-293, new int[]{151}); rules[949] = new Rule(-293, new int[]{149}); rules[950] = new Rule(-294, new int[]{45}); rules[951] = new Rule(-200, new int[]{115}); rules[952] = new Rule(-200, new int[]{116}); rules[953] = new Rule(-200, new int[]{117}); rules[954] = new Rule(-200, new int[]{118}); rules[955] = new Rule(-200, new int[]{120}); rules[956] = new Rule(-200, new int[]{121}); rules[957] = new Rule(-200, new int[]{122}); rules[958] = new Rule(-200, new int[]{123}); rules[959] = new Rule(-200, new int[]{124}); rules[960] = new Rule(-200, new int[]{125}); rules[961] = new Rule(-200, new int[]{128}); rules[962] = new Rule(-200, new int[]{129}); rules[963] = new Rule(-200, new int[]{130}); rules[964] = new Rule(-200, new int[]{131}); rules[965] = new Rule(-200, new int[]{132}); rules[966] = new Rule(-200, new int[]{133}); rules[967] = new Rule(-200, new int[]{134}); rules[968] = new Rule(-200, new int[]{135}); rules[969] = new Rule(-200, new int[]{137}); rules[970] = new Rule(-200, new int[]{139}); rules[971] = new Rule(-200, new int[]{140}); rules[972] = new Rule(-200, new int[]{-194}); rules[973] = new Rule(-200, new int[]{119}); rules[974] = new Rule(-194, new int[]{110}); rules[975] = new Rule(-194, new int[]{111}); rules[976] = new Rule(-194, new int[]{112}); rules[977] = new Rule(-194, new int[]{113}); rules[978] = new Rule(-194, new int[]{114}); rules[979] = new Rule(-100, new int[]{18,-23,100,-22,9}); rules[980] = new Rule(-22, new int[]{-100}); rules[981] = new Rule(-22, new int[]{-147}); rules[982] = new Rule(-23, new int[]{-22}); rules[983] = new Rule(-23, new int[]{-23,100,-22}); rules[984] = new Rule(-102, new int[]{-101}); rules[985] = new Rule(-102, new int[]{-100}); rules[986] = new Rule(-79, new int[]{-102}); rules[987] = new Rule(-79, new int[]{-79,100,-102}); rules[988] = new Rule(-323, new int[]{-147,127,-329}); rules[989] = new Rule(-323, new int[]{8,9,-326,127,-329}); rules[990] = new Rule(-323, new int[]{8,-147,5,-276,9,-326,127,-329}); rules[991] = new Rule(-323, new int[]{8,-147,10,-327,9,-326,127,-329}); rules[992] = new Rule(-323, new int[]{8,-147,5,-276,10,-327,9,-326,127,-329}); rules[993] = new Rule(-323, new int[]{8,-102,100,-79,-325,-332,9,-336}); rules[994] = new Rule(-323, new int[]{-100,-336}); rules[995] = new Rule(-323, new int[]{-324}); rules[996] = new Rule(-332, new int[]{}); rules[997] = new Rule(-332, new int[]{10,-327}); rules[998] = new Rule(-336, new int[]{-326,127,-329}); rules[999] = new Rule(-324, new int[]{37,-326,127,-329}); rules[1000] = new Rule(-324, new int[]{37,8,9,-326,127,-329}); rules[1001] = new Rule(-324, new int[]{37,8,-327,9,-326,127,-329}); rules[1002] = new Rule(-324, new int[]{44,127,-330}); rules[1003] = new Rule(-324, new int[]{44,8,9,127,-330}); rules[1004] = new Rule(-324, new int[]{44,8,-327,9,127,-330}); rules[1005] = new Rule(-327, new int[]{-328}); rules[1006] = new Rule(-327, new int[]{-327,10,-328}); rules[1007] = new Rule(-328, new int[]{-158,-325}); rules[1008] = new Rule(-325, new int[]{}); rules[1009] = new Rule(-325, new int[]{5,-276}); rules[1010] = new Rule(-326, new int[]{}); rules[1011] = new Rule(-326, new int[]{5,-278}); rules[1012] = new Rule(-331, new int[]{-256}); rules[1013] = new Rule(-331, new int[]{-153}); rules[1014] = new Rule(-331, new int[]{-319}); rules[1015] = new Rule(-331, new int[]{-248}); rules[1016] = new Rule(-331, new int[]{-124}); rules[1017] = new Rule(-331, new int[]{-123}); rules[1018] = new Rule(-331, new int[]{-125}); rules[1019] = new Rule(-331, new int[]{-34}); rules[1020] = new Rule(-331, new int[]{-302}); rules[1021] = new Rule(-331, new int[]{-169}); rules[1022] = new Rule(-331, new int[]{-249}); rules[1023] = new Rule(-331, new int[]{-126}); rules[1024] = new Rule(-331, new int[]{8,-4,9}); rules[1025] = new Rule(-329, new int[]{-104}); rules[1026] = new Rule(-329, new int[]{-331}); rules[1027] = new Rule(-330, new int[]{-212}); rules[1028] = new Rule(-330, new int[]{-4}); rules[1029] = new Rule(-330, new int[]{-331}); } protected override void Initialize() { this.InitSpecialTokens((int)Tokens.error, (int)Tokens.EOF); this.InitStates(states); this.InitRules(rules); this.InitNonTerminals(nonTerms); } protected override void DoAction(int action) { CurrentSemanticValue = new Union(); switch (action) { case 2: // parse_goal -> program_file { root = ValueStack[ValueStack.Depth-1].stn; } break; case 3: // parse_goal -> unit_file { root = ValueStack[ValueStack.Depth-1].stn; } break; case 4: // parse_goal -> parts { root = ValueStack[ValueStack.Depth-1].stn; } break; case 5: // parse_goal -> tkShortProgram, uses_clause_one_or_empty, // decl_sect_list_proc_func_only, stmt_list { var stl = ValueStack[ValueStack.Depth-1].stn as statement_list; stl.left_logical_bracket = new token_info(""); stl.right_logical_bracket = new token_info(""); var ul = ValueStack[ValueStack.Depth-3].stn as uses_list; root = CurrentSemanticValue.stn = NewProgramModule(null, null, ul, new block(ValueStack[ValueStack.Depth-2].stn as declarations, stl, LocationStack[LocationStack.Depth-1]), new token_info(""), LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); } break; case 6: // parse_goal -> tkShortSFProgram, uses_clause_one_or_empty, // decl_sect_list_proc_func_only, stmt_list { var stl = ValueStack[ValueStack.Depth-1].stn as statement_list; stl.left_logical_bracket = new token_info(""); stl.right_logical_bracket = new token_info(""); var un = new unit_or_namespace(new ident_list("SF"),null); var ul = ValueStack[ValueStack.Depth-3].stn as uses_list; if (ul == null) //var un1 = new unit_or_namespace(new ident_list("School"),null); ul = new uses_list(un,null); else ul.Insert(0,un); //ul.Add(un1); root = CurrentSemanticValue.stn = NewProgramModule(null, null, ul, new block(ValueStack[ValueStack.Depth-2].stn as declarations, stl, CurrentLocationSpan), new token_info(""), LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); } break; case 7: // parts -> tkParseModeExpression, expr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 8: // parts -> tkParseModeExpression, tkType, type_decl_identifier { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].id; } break; case 9: // parts -> tkParseModeType, variable_as_type { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 10: // parts -> tkParseModeStatement, stmt_or_expression { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 11: // stmt_or_expression -> expr { CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);} break; case 12: // stmt_or_expression -> assignment { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 13: // stmt_or_expression -> var_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 14: // optional_head_compiler_directives -> /* empty */ { CurrentSemanticValue.ob = null; } break; case 15: // optional_head_compiler_directives -> head_compiler_directives { CurrentSemanticValue.ob = null; } break; case 16: // head_compiler_directives -> one_compiler_directive { CurrentSemanticValue.ob = null; } break; case 17: // head_compiler_directives -> head_compiler_directives, one_compiler_directive { CurrentSemanticValue.ob = null; } break; case 18: // one_compiler_directive -> tkDirectiveName, tkIdentifier { parserTools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan); CurrentSemanticValue.ob = null; } break; case 19: // one_compiler_directive -> tkDirectiveName, tkStringLiteral { parserTools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan); CurrentSemanticValue.ob = null; } break; case 20: // program_file -> program_header, optional_head_compiler_directives, uses_clause, // program_block, optional_tk_point { CurrentSemanticValue.stn = NewProgramModule(ValueStack[ValueStack.Depth-5].stn as program_name, ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].stn as uses_list, ValueStack[ValueStack.Depth-2].stn, ValueStack[ValueStack.Depth-1].ob, CurrentLocationSpan); } break; case 21: // optional_tk_point -> tkPoint { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; case 22: // optional_tk_point -> tkSemiColon { CurrentSemanticValue.ob = null; } break; case 23: // optional_tk_point -> tkColon { CurrentSemanticValue.ob = null; } break; case 24: // optional_tk_point -> tkComma { CurrentSemanticValue.ob = null; } break; case 25: // optional_tk_point -> tkDotDot { CurrentSemanticValue.ob = null; } break; case 27: // program_header -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 28: // program_header -> tkProgram, identifier, program_heading_2 { CurrentSemanticValue.stn = new program_name(ValueStack[ValueStack.Depth-2].id,CurrentLocationSpan); } break; case 29: // program_heading_2 -> tkSemiColon { CurrentSemanticValue.ob = null; } break; case 30: // program_heading_2 -> tkRoundOpen, program_param_list, tkRoundClose, tkSemiColon { CurrentSemanticValue.ob = null; } break; case 31: // program_param_list -> program_param { CurrentSemanticValue.ob = null; } break; case 32: // program_param_list -> program_param_list, tkComma, program_param { CurrentSemanticValue.ob = null; } break; case 33: // program_param -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 34: // program_block -> program_decl_sect_list, compound_stmt { CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-2].stn as declarations, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 35: // program_decl_sect_list -> decl_sect_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 36: // ident_or_keyword_pointseparator_list -> identifier_or_keyword { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 37: // ident_or_keyword_pointseparator_list -> ident_or_keyword_pointseparator_list, // tkPoint, identifier_or_keyword { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 38: // uses_clause_one -> tkUses, used_units_list, tkSemiColon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 39: // uses_clause_one_or_empty -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 40: // uses_clause_one_or_empty -> uses_clause_one { if (parserTools.buildTreeForFormatter) CurrentSemanticValue.stn = new uses_closure(ValueStack[ValueStack.Depth-1].stn as uses_list,CurrentLocationSpan); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 41: // uses_clause -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 42: // uses_clause -> uses_clause, uses_clause_one { if (parserTools.buildTreeForFormatter) { if (ValueStack[ValueStack.Depth-2].stn == null) { CurrentSemanticValue.stn = new uses_closure(ValueStack[ValueStack.Depth-1].stn as uses_list,CurrentLocationSpan); } else { (ValueStack[ValueStack.Depth-2].stn as uses_closure).AddUsesList(ValueStack[ValueStack.Depth-1].stn as uses_list,CurrentLocationSpan); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } } else { if (ValueStack[ValueStack.Depth-2].stn == null) { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } else { (ValueStack[ValueStack.Depth-2].stn as uses_list).AddUsesList(ValueStack[ValueStack.Depth-1].stn as uses_list,CurrentLocationSpan); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } } } break; case 43: // used_units_list -> used_unit_name { CurrentSemanticValue.stn = new uses_list(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace,CurrentLocationSpan); } break; case 44: // used_units_list -> used_units_list, tkComma, used_unit_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as uses_list).Add(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace, CurrentLocationSpan); } break; case 45: // used_unit_name -> ident_or_keyword_pointseparator_list { CurrentSemanticValue.stn = new unit_or_namespace(ValueStack[ValueStack.Depth-1].stn as ident_list,CurrentLocationSpan); } break; case 46: // used_unit_name -> ident_or_keyword_pointseparator_list, tkIn, tkStringLiteral { if (ValueStack[ValueStack.Depth-1].stn is char_const _cc) ValueStack[ValueStack.Depth-1].stn = new string_const(_cc.cconst.ToString()); CurrentSemanticValue.stn = new uses_unit_in(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].stn as string_const, CurrentLocationSpan); } break; case 47: // unit_file -> unit_header, interface_part, implementation_part, // initialization_part, tkPoint { CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-5].stn as unit_name, ValueStack[ValueStack.Depth-4].stn as interface_node, ValueStack[ValueStack.Depth-3].stn as implementation_node, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, /*$1 as attribute_list*/ null, CurrentLocationSpan); } break; case 48: // unit_file -> unit_header, abc_interface_part, initialization_part, tkPoint { CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-4].stn as unit_name, ValueStack[ValueStack.Depth-3].stn as interface_node, null, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, /*$1 as attribute_list*/ null, CurrentLocationSpan); } break; case 49: // unit_header -> unit_key_word, unit_name, tkSemiColon, // optional_head_compiler_directives { CurrentSemanticValue.stn = NewUnitHeading(new ident(ValueStack[ValueStack.Depth-4].ti.text, LocationStack[LocationStack.Depth-4]), ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan); } break; case 50: // unit_header -> tkNamespace, ident_or_keyword_pointseparator_list, tkSemiColon, // optional_head_compiler_directives { CurrentSemanticValue.stn = NewNamespaceHeading(new ident(ValueStack[ValueStack.Depth-4].ti.text, LocationStack[LocationStack.Depth-4]), ValueStack[ValueStack.Depth-3].stn as ident_list, CurrentLocationSpan); } break; case 51: // unit_key_word -> tkUnit { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 52: // unit_key_word -> tkLibrary { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 53: // unit_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 54: // interface_part -> tkInterface, uses_clause, interface_decl_sect_list { CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); } break; case 55: // implementation_part -> tkImplementation, uses_clause, decl_sect_list { CurrentSemanticValue.stn = new implementation_node(ValueStack[ValueStack.Depth-2].stn as uses_list, ValueStack[ValueStack.Depth-1].stn as declarations, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); } break; case 56: // abc_interface_part -> uses_clause, decl_sect_list { CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, null); } break; case 57: // initialization_part -> tkEnd { CurrentSemanticValue.stn = new initfinal_part(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 58: // initialization_part -> tkInitialization, stmt_list, tkEnd { CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan); } break; case 59: // initialization_part -> tkInitialization, stmt_list, tkFinalization, stmt_list, // tkEnd { CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-5].ti, ValueStack[ValueStack.Depth-4].stn as statement_list, ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, CurrentLocationSpan); } break; case 60: // initialization_part -> tkBegin, stmt_list, tkEnd { CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan); } break; case 61: // interface_decl_sect_list -> int_decl_sect_list1 { if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0) CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; else CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 62: // int_decl_sect_list1 -> /* empty */ { CurrentSemanticValue.stn = new declarations(); if (GlobalDecls==null) GlobalDecls = CurrentSemanticValue.stn as declarations; } break; case 63: // int_decl_sect_list1 -> int_decl_sect_list1, int_decl_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 64: // decl_sect_list -> decl_sect_list1 { if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0) CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; else CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 65: // decl_sect_list_proc_func_only -> /* empty */ { CurrentSemanticValue.stn = new declarations(); if (GlobalDecls==null) GlobalDecls = CurrentSemanticValue.stn as declarations; } break; case 66: // decl_sect_list_proc_func_only -> decl_sect_list_proc_func_only, // proc_func_decl_without_modifiers { var dcl = ValueStack[ValueStack.Depth-2].stn as declarations; //($2 as procedure_definition).AssignAttrList($2 as attribute_list); if (dcl.Count == 0) CurrentSemanticValue.stn = dcl.Add(ValueStack[ValueStack.Depth-1].stn as declaration, LocationStack[LocationStack.Depth-1]); else { var sc = dcl.source_context; sc = sc.Merge(ValueStack[ValueStack.Depth-1].stn.source_context); CurrentSemanticValue.stn = dcl.Add(ValueStack[ValueStack.Depth-1].stn as declaration, LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.stn.source_context = sc; } } break; case 67: // decl_sect_list1 -> /* empty */ { CurrentSemanticValue.stn = new declarations(); if (GlobalDecls==null) GlobalDecls = CurrentSemanticValue.stn as declarations; } break; case 68: // decl_sect_list1 -> decl_sect_list1, decl_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 69: // inclass_decl_sect_list -> inclass_decl_sect_list1 { if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0) CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; else CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 70: // inclass_decl_sect_list1 -> /* empty */ { CurrentSemanticValue.stn = new declarations(); } break; case 71: // inclass_decl_sect_list1 -> inclass_decl_sect_list1, abc_decl_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 72: // int_decl_sect -> const_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 73: // int_decl_sect -> res_str_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 74: // int_decl_sect -> type_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 75: // int_decl_sect -> var_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 76: // int_decl_sect -> int_proc_header { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 77: // int_decl_sect -> int_func_header { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 78: // decl_sect -> label_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 79: // decl_sect -> const_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 80: // decl_sect -> res_str_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 81: // decl_sect -> type_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 82: // decl_sect -> var_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 83: // decl_sect -> proc_func_constr_destr_decl_with_attr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 84: // proc_func_constr_destr_decl -> proc_func_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 85: // proc_func_constr_destr_decl -> constr_destr_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 86: // proc_func_constr_destr_decl_with_attr -> attribute_declarations, // proc_func_constr_destr_decl { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).AssignAttrList(ValueStack[ValueStack.Depth-2].stn as attribute_list); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 87: // abc_decl_sect -> label_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 88: // abc_decl_sect -> const_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 89: // abc_decl_sect -> res_str_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 90: // abc_decl_sect -> type_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 91: // abc_decl_sect -> var_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 92: // int_proc_header -> attribute_declarations, proc_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; (CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; } break; case 93: // int_proc_header -> attribute_declarations, proc_header, tkForward, tkSemiColon { CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan); } break; case 94: // int_func_header -> attribute_declarations, func_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; (CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; } break; case 95: // int_func_header -> attribute_declarations, func_header, tkForward, tkSemiColon { CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan); } break; case 96: // label_decl_sect -> tkLabel, label_list, tkSemiColon { CurrentSemanticValue.stn = new label_definitions(ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan); } break; case 97: // label_list -> label_name { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 98: // label_list -> label_list, tkComma, label_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 99: // label_name -> tkInteger { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan); } break; case 100: // label_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 101: // const_decl_sect -> tkConst, const_decl { CurrentSemanticValue.stn = new consts_definitions_list(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan); } break; case 102: // const_decl_sect -> const_decl_sect, const_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as consts_definitions_list).Add(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan); } break; case 103: // res_str_decl_sect -> tkResourceString, const_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 104: // res_str_decl_sect -> res_str_decl_sect, const_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 105: // type_decl_sect -> tkType, type_decl { CurrentSemanticValue.stn = new type_declarations(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan); } break; case 106: // type_decl_sect -> type_decl_sect, type_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as type_declarations).Add(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan); } break; case 107: // var_decl_with_assign_var_tuple -> var_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 108: // var_decl_with_assign_var_tuple -> tkRoundOpen, identifier, tkComma, ident_list, // tkRoundClose, tkAssign, expr_l1, // tkSemiColon { (ValueStack[ValueStack.Depth-5].stn as ident_list).Insert(0,ValueStack[ValueStack.Depth-7].id); ValueStack[ValueStack.Depth-5].stn.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]); CurrentSemanticValue.stn = new var_tuple_def_statement(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 109: // var_decl_sect -> tkVar, var_decl_with_assign_var_tuple { CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); } break; case 110: // var_decl_sect -> tkEvent, var_decl_with_assign_var_tuple { CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); (ValueStack[ValueStack.Depth-1].stn as var_def_statement).is_event = true; } break; case 111: // var_decl_sect -> var_decl_sect, var_decl_with_assign_var_tuple { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as variable_definitions).Add(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); } break; case 112: // const_decl -> only_const_decl, tkSemiColon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 113: // only_const_decl -> const_name, tkEqual, init_const_expr { CurrentSemanticValue.stn = new simple_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 114: // only_const_decl -> const_name, tkColon, type_ref, tkEqual, typed_const { CurrentSemanticValue.stn = new typed_const_definition(ValueStack[ValueStack.Depth-5].id, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-3].td, CurrentLocationSpan); } break; case 115: // init_const_expr -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 116: // init_const_expr -> array_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 117: // const_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 118: // const_relop_expr -> const_simple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 119: // const_relop_expr -> const_relop_expr, const_relop, const_simple_expr { if (ValueStack[ValueStack.Depth-2].op.type == Operators.NotIn) CurrentSemanticValue.ex = new un_expr(new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, Operators.In, CurrentLocationSpan),Operators.LogicalNOT,CurrentLocationSpan); else CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 120: // const_expr -> const_relop_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 121: // const_expr -> question_constexpr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 122: // const_expr -> const_expr, tkDoubleQuestion, const_relop_expr { CurrentSemanticValue.ex = new double_question_node(ValueStack[ValueStack.Depth-3].ex as expression, ValueStack[ValueStack.Depth-1].ex as expression, CurrentLocationSpan);} break; case 123: // question_constexpr -> const_expr, tkQuestion, const_expr, tkColon, const_expr { CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 124: // const_relop -> tkEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 125: // const_relop -> tkNotEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 126: // const_relop -> tkLower { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 127: // const_relop -> tkGreater { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 128: // const_relop -> tkLowerEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 129: // const_relop -> tkGreaterEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 130: // const_relop -> tkIn { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 131: // const_relop -> tkNot, tkIn { if (parserTools.buildTreeForFormatter) CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; else { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; CurrentSemanticValue.op.type = Operators.NotIn; } } break; case 132: // const_simple_expr -> const_term { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 133: // const_simple_expr -> const_simple_expr, const_addop, const_term { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 134: // const_addop -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 135: // const_addop -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 136: // const_addop -> tkOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 137: // const_addop -> tkXor { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 138: // as_is_constexpr -> const_term, typecast_op, simple_or_template_type_reference { CurrentSemanticValue.ex = NewAsIsConstexpr(ValueStack[ValueStack.Depth-3].ex, (op_typecast)ValueStack[ValueStack.Depth-2].ob, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 139: // power_constexpr -> const_factor_without_unary_op, tkStarStar, const_factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 140: // power_constexpr -> const_factor_without_unary_op, tkStarStar, power_constexpr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 141: // power_constexpr -> sign, power_constexpr { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 142: // const_term -> const_factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 143: // const_term -> as_is_constexpr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 144: // const_term -> power_constexpr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 145: // const_term -> const_term, const_mulop, const_factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 146: // const_term -> const_term, const_mulop, power_constexpr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 147: // const_mulop -> tkStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 148: // const_mulop -> tkSlash { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 149: // const_mulop -> tkDiv { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 150: // const_mulop -> tkMod { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 151: // const_mulop -> tkShl { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 152: // const_mulop -> tkShr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 153: // const_mulop -> tkAnd { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 154: // const_factor_without_unary_op -> const_variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 155: // const_factor_without_unary_op -> tkRoundOpen, const_expr, tkRoundClose { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } break; case 156: // const_factor -> const_variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 157: // const_factor -> const_set { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 158: // const_factor -> tkNil { CurrentSemanticValue.ex = new nil_const(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 159: // const_factor -> tkAddressOf, const_factor { CurrentSemanticValue.ex = new get_address(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); } break; case 160: // const_factor -> tkRoundOpen, const_expr, tkRoundClose { CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 161: // const_factor -> tkNot, const_factor { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 162: // const_factor -> sign, const_factor { // �?�?�?наЯ ко�?�?ек�?иЯ �?ел�?�? конс�?ан�? if (ValueStack[ValueStack.Depth-2].op.type == Operators.Minus) { var i64 = ValueStack[ValueStack.Depth-1].ex as int64_const; if (i64 != null && i64.val == (Int64)Int32.MaxValue + 1) { CurrentSemanticValue.ex = new int32_const(Int32.MinValue,CurrentLocationSpan); break; } var ui64 = ValueStack[ValueStack.Depth-1].ex as uint64_const; if (ui64 != null && ui64.val == (UInt64)Int64.MaxValue + 1) { CurrentSemanticValue.ex = new int64_const(Int64.MinValue,CurrentLocationSpan); break; } if (ui64 != null && ui64.val > (UInt64)Int64.MaxValue + 1) { parserTools.AddErrorFromResource("BAD_INT2",CurrentLocationSpan); break; } // можно сдела�?�? в�?�?исление конс�?ан�?�? с вмон�?и�?ованн�?м мин�?сом } CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 163: // const_factor -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 164: // const_factor -> default_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 165: // pascal_set_const -> tkSquareOpen, elem_list, tkSquareClose { // �?сли elem_list п�?с�? или соде�?жи�? диапазон, �?о э�?о множес�?во, ина�?е массив. С PascalABC.NET 3.10 var is_set = false; var el = ValueStack[ValueStack.Depth-2].stn as expression_list; if (el == null || el.Count == 0) is_set = true; else if (el.expressions.Count(x => x is diapason_expr_new) > 0) is_set = true; if (is_set) CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); else CurrentSemanticValue.ex = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, '[', CurrentLocationSpan); } break; case 166: // const_set -> pascal_set_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 167: // const_set -> tkVertParen, elem_list, tkVertParen { CurrentSemanticValue.ex = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, '|', CurrentLocationSpan); } break; case 168: // sign -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 169: // sign -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 170: // const_variable -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 171: // const_variable -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 172: // const_variable -> unsigned_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 173: // const_variable -> tkInherited, identifier { CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 174: // const_variable -> sizeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 175: // const_variable -> typeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 176: // const_variable -> const_variable, const_variable_2 { CurrentSemanticValue.ex = NewConstVariable(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 177: // const_variable -> const_variable, tkAmpersend, template_type_params { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 178: // const_variable -> const_variable, tkSquareOpen, format_const_expr, // tkSquareClose { var fe = ValueStack[ValueStack.Depth-2].ex as format_expr; if (!parserTools.buildTreeForFormatter) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); } CurrentSemanticValue.ex = new slice_expr(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan); } break; case 179: // const_variable_2 -> tkPoint, identifier_or_keyword { CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 180: // const_variable_2 -> tkDeref { CurrentSemanticValue.ex = new roof_dereference(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 181: // const_variable_2 -> tkRoundOpen, optional_const_func_expr_list, tkRoundClose { CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 182: // const_variable_2 -> tkSquareOpen, const_elem_list, tkSquareClose { CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 183: // optional_const_func_expr_list -> expr_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 184: // optional_const_func_expr_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 185: // const_elem_list -> const_elem_list1 { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 187: // const_elem_list1 -> const_elem { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 188: // const_elem_list1 -> const_elem_list1, tkComma, const_elem { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 189: // const_elem -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 190: // const_elem -> const_expr, tkDotDot, const_expr { CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 191: // unsigned_number -> tkInteger { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 192: // unsigned_number -> tkHex { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 193: // unsigned_number -> tkFloat { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 194: // unsigned_number -> tkBigInteger { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 195: // typed_const -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 196: // typed_const -> array_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 197: // typed_const -> record_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 198: // array_const -> tkRoundOpen, typed_const_list, tkRoundClose { CurrentSemanticValue.ex = new array_const(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 200: // typed_const_list -> typed_const_list1 { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 201: // typed_const_list1 -> typed_const_plus { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 202: // typed_const_list1 -> typed_const_list1, tkComma, typed_const_plus { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 203: // record_const -> tkRoundOpen, const_field_list, tkRoundClose { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 204: // const_field_list -> const_field_list_1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 205: // const_field_list -> const_field_list_1, tkSemiColon { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } break; case 206: // const_field_list_1 -> const_field { CurrentSemanticValue.ex = new record_const(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan); } break; case 207: // const_field_list_1 -> const_field_list_1, tkSemiColon, const_field { CurrentSemanticValue.ex = (ValueStack[ValueStack.Depth-3].ex as record_const).Add(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan); } break; case 208: // const_field -> const_field_name, tkColon, typed_const { CurrentSemanticValue.stn = new record_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 209: // const_field_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 210: // type_decl -> attribute_declarations, simple_type_decl { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = LocationStack[LocationStack.Depth-1]; } break; case 211: // attribute_declarations -> attribute_declaration { CurrentSemanticValue.stn = new attribute_list(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan); } break; case 212: // attribute_declarations -> attribute_declarations, attribute_declaration { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan); } break; case 213: // attribute_declarations -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 214: // attribute_declaration -> tkSquareOpen, one_or_some_attribute, tkSquareClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 215: // one_or_some_attribute -> one_attribute { CurrentSemanticValue.stn = new simple_attribute_list(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan); } break; case 216: // one_or_some_attribute -> one_or_some_attribute, tkComma, one_attribute { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as simple_attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan); } break; case 217: // one_attribute -> attribute_variable { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 218: // one_attribute -> identifier, tkColon, attribute_variable { (ValueStack[ValueStack.Depth-1].stn as attribute).qualifier = ValueStack[ValueStack.Depth-3].id; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 219: // simple_type_decl -> type_decl_identifier, tkEqual, type_decl_type, tkSemiColon { CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-4].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 220: // simple_type_decl -> template_identifier_with_equal, type_decl_type, tkSemiColon { CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 221: // type_decl_identifier -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 222: // type_decl_identifier -> identifier, template_arguments { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); } break; case 223: // template_identifier_with_equal -> identifier, tkLower, ident_list, // tkGreaterEqual { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-4].id.name, ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan); } break; case 224: // type_decl_type -> type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 225: // type_decl_type -> object_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 226: // simple_type_question -> simple_type, tkQuestion { if (parserTools.buildTreeForFormatter) { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } else { var l = new List(); l.Add(new ident("System")); l.Add(new ident("Nullable")); CurrentSemanticValue.td = new template_type_reference(new named_type_reference(l), new template_param_list(ValueStack[ValueStack.Depth-2].td), CurrentLocationSpan); } } break; case 227: // simple_type_question -> template_type, tkQuestion { if (parserTools.buildTreeForFormatter) { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } else { var l = new List(); l.Add(new ident("System")); l.Add(new ident("Nullable")); CurrentSemanticValue.td = new template_type_reference(new named_type_reference(l), new template_param_list(ValueStack[ValueStack.Depth-2].td), CurrentLocationSpan); } } break; case 228: // type_ref -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 229: // type_ref -> simple_type_question { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 230: // type_ref -> string_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 231: // type_ref -> pointer_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 232: // type_ref -> structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 233: // type_ref -> procedural_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 234: // type_ref -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 235: // template_type -> simple_type_identifier, template_type_params { CurrentSemanticValue.td = new template_type_reference(ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 236: // template_type_params -> tkLower, template_param_list, tkGreater { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 237: // template_type_empty_params -> tkNotEqual { var ntr = new named_type_reference(new ident(""), CurrentLocationSpan); CurrentSemanticValue.stn = new template_param_list(ntr, CurrentLocationSpan); ntr.source_context = new SourceContext(CurrentSemanticValue.stn.source_context.end_position.line_num, CurrentSemanticValue.stn.source_context.end_position.column_num, CurrentSemanticValue.stn.source_context.begin_position.line_num, CurrentSemanticValue.stn.source_context.begin_position.column_num); } break; case 238: // template_type_empty_params -> tkLower, template_empty_param_list, tkGreater { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 239: // template_param_list -> template_param { CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 240: // template_param_list -> template_param_list, tkComma, template_param { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 241: // template_empty_param_list -> template_empty_param { CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 242: // template_empty_param_list -> template_empty_param_list, tkComma, // template_empty_param { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 243: // template_empty_param -> /* empty */ { CurrentSemanticValue.td = new named_type_reference(new ident(""), CurrentLocationSpan); } break; case 244: // template_param -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 245: // template_param -> simple_type, tkQuestion { if (parserTools.buildTreeForFormatter) { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } else { var l = new List(); l.Add(new ident("System")); l.Add(new ident("Nullable")); CurrentSemanticValue.td = new template_type_reference(new named_type_reference(l), new template_param_list(ValueStack[ValueStack.Depth-2].td), CurrentLocationSpan); } } break; case 246: // template_param -> structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 247: // template_param -> procedural_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 248: // template_param -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 249: // simple_type -> range_expr { CurrentSemanticValue.td = parserTools.ConvertDotNodeOrIdentToNamedTypeReference(ValueStack[ValueStack.Depth-1].ex); } break; case 250: // simple_type -> range_expr, tkDotDot, range_expr { CurrentSemanticValue.td = new diapason(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 251: // simple_type -> tkRoundOpen, enumeration_id_list, tkRoundClose { CurrentSemanticValue.td = new enum_type_definition(ValueStack[ValueStack.Depth-2].stn as enumerator_list, CurrentLocationSpan); } break; case 252: // range_expr -> range_term { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 253: // range_expr -> range_expr, const_addop, range_term { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 254: // range_term -> range_factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 255: // range_term -> range_term, const_mulop, range_factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 256: // range_factor -> simple_type_identifier { CurrentSemanticValue.ex = parserTools.ConvertNamedTypeReferenceToDotNodeOrIdent(ValueStack[ValueStack.Depth-1].td as named_type_reference); } break; case 257: // range_factor -> unsigned_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 258: // range_factor -> sign, range_factor { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 259: // range_factor -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 260: // range_factor -> range_factor, tkRoundOpen, const_elem_list, tkRoundClose { CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value, ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 261: // simple_type_identifier -> identifier { CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 262: // simple_type_identifier -> simple_type_identifier, tkPoint, // identifier_or_keyword { CurrentSemanticValue.td = (ValueStack[ValueStack.Depth-3].td as named_type_reference).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 263: // enumeration_id_list -> enumeration_id { CurrentSemanticValue.stn = new enumerator_list(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan); } break; case 264: // enumeration_id_list -> enumeration_id_list, tkComma, enumeration_id { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as enumerator_list).Add(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan); } break; case 265: // enumeration_id -> type_ref { CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan); } break; case 266: // enumeration_id -> type_ref, tkEqual, expr { CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 267: // pointer_type -> tkDeref, fptype { CurrentSemanticValue.td = new ref_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 268: // structured_type -> array_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 269: // structured_type -> record_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 270: // structured_type -> set_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 271: // structured_type -> file_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 272: // structured_type -> sequence_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 273: // sequence_type -> tkSequence, tkOf, type_ref { CurrentSemanticValue.td = new sequence_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 274: // array_type -> tkArray, tkSquareOpen, simple_type_list, tkSquareClose, tkOf, // type_ref { CurrentSemanticValue.td = new array_type(ValueStack[ValueStack.Depth-4].stn as indexers_types, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 275: // array_type -> unsized_array_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 276: // unsized_array_type -> tkArray, tkOf, type_ref { CurrentSemanticValue.td = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 277: // simple_type_list -> simple_type_or_ { CurrentSemanticValue.stn = new indexers_types(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 278: // simple_type_list -> simple_type_list, tkComma, simple_type_or_ { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as indexers_types).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 279: // simple_type_or_ -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 280: // simple_type_or_ -> /* empty */ { CurrentSemanticValue.td = null; } break; case 281: // set_type -> tkSet, tkOf, type_ref { CurrentSemanticValue.td = new set_type_definition(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 282: // file_type -> tkFile, tkOf, type_ref { CurrentSemanticValue.td = new file_type(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 283: // file_type -> tkFile { CurrentSemanticValue.td = new file_type(); CurrentSemanticValue.td.source_context = CurrentLocationSpan; } break; case 284: // string_type -> tkIdentifier, tkSquareOpen, const_expr, tkSquareClose { CurrentSemanticValue.td = new string_num_definition(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-4].id, CurrentLocationSpan); } break; case 285: // procedural_type -> procedural_type_kind { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 286: // procedural_type_kind -> proc_type_decl { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 287: // proc_type_decl -> tkProcedure, fp_list { CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-1].stn as formal_parameters,null,null,false,false,null,null,CurrentLocationSpan); } break; case 288: // proc_type_decl -> tkFunction, fp_list, tkColon, fptype { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, null, null, null, ValueStack[ValueStack.Depth-1].td as type_definition, CurrentLocationSpan); } break; case 289: // proc_type_decl -> simple_type_identifier, tkArrow, template_param { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 290: // proc_type_decl -> template_type, tkArrow, template_param { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 291: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, template_param { CurrentSemanticValue.td = new modern_proc_type(null,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 292: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow, // template_param { CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-4].stn as enumerator_list,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 293: // proc_type_decl -> simple_type_identifier, tkArrow, tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan); } break; case 294: // proc_type_decl -> template_type, tkArrow, tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan); } break; case 295: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(null,null,null,CurrentLocationSpan); } break; case 296: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow, // tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-5].stn as enumerator_list,null,CurrentLocationSpan); } break; case 297: // object_type -> class_attributes, class_or_interface_keyword, // optional_base_classes, optional_where_section, // optional_component_list_seq_end { var cd = NewObjectType((class_attribute)ValueStack[ValueStack.Depth-5].ob, ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].stn as named_type_reference_list, ValueStack[ValueStack.Depth-2].stn as where_definition_list, ValueStack[ValueStack.Depth-1].stn as class_body_list, CurrentLocationSpan); CurrentSemanticValue.td = cd; } break; case 298: // record_type -> tkRecord, optional_base_classes, optional_where_section, // member_list_section, tkEnd { var nnrt = new class_definition(ValueStack[ValueStack.Depth-4].stn as named_type_reference_list, ValueStack[ValueStack.Depth-2].stn as class_body_list, class_keyword.Record, null, ValueStack[ValueStack.Depth-3].stn as where_definition_list, class_attribute.None, false, CurrentLocationSpan); if (/*nnrt.body!=null && nnrt.body.class_def_blocks!=null && nnrt.body.class_def_blocks.Count>0 &&*/ nnrt.body.class_def_blocks[0].access_mod==null) { nnrt.body.class_def_blocks[0].access_mod = new access_modifer_node(access_modifer.public_modifer); } CurrentSemanticValue.td = nnrt; } break; case 299: // class_attribute -> tkSealed { CurrentSemanticValue.ob = class_attribute.Sealed; } break; case 300: // class_attribute -> tkPartial { CurrentSemanticValue.ob = class_attribute.Partial; } break; case 301: // class_attribute -> tkAbstract { CurrentSemanticValue.ob = class_attribute.Abstract; } break; case 302: // class_attribute -> tkAuto { CurrentSemanticValue.ob = class_attribute.Auto; } break; case 303: // class_attribute -> tkStatic { CurrentSemanticValue.ob = class_attribute.Static; } break; case 304: // class_attributes -> /* empty */ { CurrentSemanticValue.ob = class_attribute.None; } break; case 305: // class_attributes -> class_attributes1 { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob; } break; case 306: // class_attributes1 -> class_attribute { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob; } break; case 307: // class_attributes1 -> class_attributes1, class_attribute { if (((class_attribute)ValueStack[ValueStack.Depth-2].ob & (class_attribute)ValueStack[ValueStack.Depth-1].ob) == (class_attribute)ValueStack[ValueStack.Depth-1].ob) parserTools.AddErrorFromResource("ATTRIBUTE_REDECLARED",LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.ob = ((class_attribute)ValueStack[ValueStack.Depth-2].ob) | ((class_attribute)ValueStack[ValueStack.Depth-1].ob); //$$ = $1; } break; case 308: // class_or_interface_keyword -> tkClass { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 309: // class_or_interface_keyword -> tkInterface { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 310: // class_or_interface_keyword -> tkTemplate { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-1].ti); } break; case 311: // class_or_interface_keyword -> tkTemplate, tkClass { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "c", CurrentLocationSpan); } break; case 312: // class_or_interface_keyword -> tkTemplate, tkRecord { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "r", CurrentLocationSpan); } break; case 313: // class_or_interface_keyword -> tkTemplate, tkInterface { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "i", CurrentLocationSpan); } break; case 314: // optional_component_list_seq_end -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 315: // optional_component_list_seq_end -> member_list_section, tkEnd { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 317: // optional_base_classes -> tkRoundOpen, base_classes_names_list, tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 318: // base_classes_names_list -> base_class_name { CurrentSemanticValue.stn = new named_type_reference_list(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan); } break; case 319: // base_classes_names_list -> base_classes_names_list, tkComma, base_class_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as named_type_reference_list).Add(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan); } break; case 320: // base_class_name -> simple_type_identifier { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 321: // base_class_name -> template_type { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 322: // template_arguments -> tkLower, ident_list, tkGreater { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 323: // optional_where_section -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 324: // optional_where_section -> where_part_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 325: // where_part_list -> where_part { CurrentSemanticValue.stn = new where_definition_list(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan); } break; case 326: // where_part_list -> where_part_list, where_part { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as where_definition_list).Add(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan); } break; case 327: // where_part -> tkWhere, ident_list, tkColon, type_ref_and_secific_list, // tkSemiColon { CurrentSemanticValue.stn = new where_definition(ValueStack[ValueStack.Depth-4].stn as ident_list, ValueStack[ValueStack.Depth-2].stn as where_type_specificator_list, CurrentLocationSpan); } break; case 328: // type_ref_and_secific_list -> type_ref_or_secific { CurrentSemanticValue.stn = new where_type_specificator_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 329: // type_ref_and_secific_list -> type_ref_and_secific_list, tkComma, // type_ref_or_secific { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as where_type_specificator_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 330: // type_ref_or_secific -> type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 331: // type_ref_or_secific -> tkClass { CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefClass, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 332: // type_ref_or_secific -> tkRecord { CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefValueType, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 333: // type_ref_or_secific -> tkConstructor { CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefConstructor, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 334: // member_list_section -> member_list { CurrentSemanticValue.stn = new class_body_list(ValueStack[ValueStack.Depth-1].stn as class_members, CurrentLocationSpan); } break; case 335: // member_list_section -> member_list_section, ot_visibility_specifier, // member_list { (ValueStack[ValueStack.Depth-1].stn as class_members).access_mod = ValueStack[ValueStack.Depth-2].stn as access_modifer_node; (ValueStack[ValueStack.Depth-3].stn as class_body_list).Add(ValueStack[ValueStack.Depth-1].stn as class_members,CurrentLocationSpan); if ((ValueStack[ValueStack.Depth-3].stn as class_body_list).class_def_blocks[0].Count == 0) (ValueStack[ValueStack.Depth-3].stn as class_body_list).class_def_blocks.RemoveAt(0); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn; } break; case 336: // ot_visibility_specifier -> tkInternal { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.internal_modifer, CurrentLocationSpan); } break; case 337: // ot_visibility_specifier -> tkPublic { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.public_modifer, CurrentLocationSpan); } break; case 338: // ot_visibility_specifier -> tkProtected { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.protected_modifer, CurrentLocationSpan); } break; case 339: // ot_visibility_specifier -> tkPrivate { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.private_modifer, CurrentLocationSpan); } break; case 340: // member_list -> /* empty */ { CurrentSemanticValue.stn = new class_members(); } break; case 341: // member_list -> field_or_const_definition_list, optional_semicolon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 342: // member_list -> method_decl_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 343: // member_list -> field_or_const_definition_list, tkSemiColon, method_decl_list { (ValueStack[ValueStack.Depth-3].stn as class_members).members.AddRange((ValueStack[ValueStack.Depth-1].stn as class_members).members); (ValueStack[ValueStack.Depth-3].stn as class_members).source_context = CurrentLocationSpan; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn; } break; case 344: // ident_list -> identifier { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 345: // ident_list -> ident_list, tkComma, identifier { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 346: // optional_semicolon -> /* empty */ { CurrentSemanticValue.ob = null; } break; case 347: // optional_semicolon -> tkSemiColon { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; case 348: // field_or_const_definition_list -> field_or_const_definition { CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 349: // field_or_const_definition_list -> field_or_const_definition_list, tkSemiColon, // field_or_const_definition { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 350: // field_or_const_definition -> attribute_declarations, // simple_field_or_const_definition { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 351: // method_decl_list -> method_or_property_decl { CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 352: // method_decl_list -> method_decl_list, method_or_property_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 353: // method_or_property_decl -> method_decl_withattr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 354: // method_or_property_decl -> property_definition { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 355: // simple_field_or_const_definition -> tkConst, only_const_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 356: // simple_field_or_const_definition -> field_definition { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 357: // simple_field_or_const_definition -> class_or_static, field_definition { (ValueStack[ValueStack.Depth-1].stn as var_def_statement).var_attr = definition_attribute.Static; (ValueStack[ValueStack.Depth-1].stn as var_def_statement).source_context = CurrentLocationSpan; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 358: // class_or_static -> tkStatic { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 359: // class_or_static -> tkClass { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 360: // field_definition -> var_decl_part { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 361: // field_definition -> tkEvent, ident_list, tkColon, type_ref { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, true, CurrentLocationSpan); } break; case 362: // method_decl_withattr -> attribute_declarations, method_header { (ValueStack[ValueStack.Depth-1].td as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 363: // method_decl_withattr -> attribute_declarations, method_decl { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; if (ValueStack[ValueStack.Depth-1].stn is procedure_definition && (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null) (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 364: // method_decl -> inclass_proc_func_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 365: // method_decl -> inclass_constr_destr_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 366: // method_header -> class_or_static, method_procfunc_header { (ValueStack[ValueStack.Depth-1].td as procedure_header).class_keyword = true; CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 367: // method_header -> method_procfunc_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 368: // method_header -> tkAsync, class_or_static, method_procfunc_header { (ValueStack[ValueStack.Depth-1].td as procedure_header).class_keyword = true; (ValueStack[ValueStack.Depth-1].td as procedure_header).IsAsync = true; CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 369: // method_header -> tkAsync, method_procfunc_header { (ValueStack[ValueStack.Depth-1].td as procedure_header).IsAsync = true; CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 370: // method_header -> constr_destr_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 371: // method_procfunc_header -> proc_func_header { CurrentSemanticValue.td = NewProcfuncHeading(ValueStack[ValueStack.Depth-1].td as procedure_header); } break; case 372: // proc_func_header -> proc_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 373: // proc_func_header -> func_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 374: // constr_destr_header -> tkConstructor, optional_proc_name, fp_list, // optional_method_modificators { CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,false,null,null,CurrentLocationSpan); } break; case 375: // constr_destr_header -> class_or_static, tkConstructor, optional_proc_name, // fp_list, optional_method_modificators { CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,true,null,null,CurrentLocationSpan); } break; case 376: // constr_destr_header -> tkDestructor, optional_proc_name, fp_list, // optional_method_modificators { CurrentSemanticValue.td = new destructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name, false,false,null,null,CurrentLocationSpan); } break; case 377: // optional_proc_name -> proc_name { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 378: // optional_proc_name -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 379: // property_definition -> attribute_declarations, simple_property_definition { CurrentSemanticValue.stn = NewPropertyDefinition(ValueStack[ValueStack.Depth-2].stn as attribute_list, ValueStack[ValueStack.Depth-1].stn as declaration, LocationStack[LocationStack.Depth-1]); } break; case 380: // simple_property_definition -> tkProperty, func_name, property_interface, // property_specifiers, tkSemiColon, // array_defaultproperty { CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-4].stn as property_interface, ValueStack[ValueStack.Depth-3].stn as property_accessors, proc_attribute.attr_none, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan); } break; case 381: // simple_property_definition -> tkProperty, func_name, property_interface, // property_specifiers, tkSemiColon, // property_modificator, tkSemiColon, // array_defaultproperty { proc_attribute pa = proc_attribute.attr_none; if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "virtual") pa = proc_attribute.attr_virtual; else if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "override") pa = proc_attribute.attr_override; else if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "abstract") pa = proc_attribute.attr_abstract; CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-7].stn as method_name, ValueStack[ValueStack.Depth-6].stn as property_interface, ValueStack[ValueStack.Depth-5].stn as property_accessors, pa, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan); } break; case 382: // simple_property_definition -> class_or_static, tkProperty, func_name, // property_interface, property_specifiers, // tkSemiColon, array_defaultproperty { CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-4].stn as property_interface, ValueStack[ValueStack.Depth-3].stn as property_accessors, proc_attribute.attr_none, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan); (CurrentSemanticValue.stn as simple_property).attr = definition_attribute.Static; } break; case 383: // simple_property_definition -> class_or_static, tkProperty, func_name, // property_interface, property_specifiers, // tkSemiColon, property_modificator, tkSemiColon, // array_defaultproperty { parserTools.AddErrorFromResource("STATIC_PROPERTIES_CANNOT_HAVE_ATTRBUTE_{0}",LocationStack[LocationStack.Depth-3],ValueStack[ValueStack.Depth-3].id.name); } break; case 384: // simple_property_definition -> tkAuto, tkProperty, func_name, property_interface, // optional_property_initialization, tkSemiColon { CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-3].stn as property_interface, null, proc_attribute.attr_none, null, CurrentLocationSpan); (CurrentSemanticValue.stn as simple_property).is_auto = true; (CurrentSemanticValue.stn as simple_property).initial_value = ValueStack[ValueStack.Depth-2].ex; } break; case 385: // simple_property_definition -> class_or_static, tkAuto, tkProperty, func_name, // property_interface, // optional_property_initialization, tkSemiColon { CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-3].stn as property_interface, null, proc_attribute.attr_none, null, CurrentLocationSpan); (CurrentSemanticValue.stn as simple_property).is_auto = true; (CurrentSemanticValue.stn as simple_property).attr = definition_attribute.Static; (CurrentSemanticValue.stn as simple_property).initial_value = ValueStack[ValueStack.Depth-2].ex; } break; case 386: // optional_property_initialization -> tkAssign, expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 387: // optional_property_initialization -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 388: // array_defaultproperty -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 389: // array_defaultproperty -> tkDefault, tkSemiColon { CurrentSemanticValue.stn = new property_array_default(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 390: // property_interface -> property_parameter_list, tkColon, fptype { CurrentSemanticValue.stn = new property_interface(ValueStack[ValueStack.Depth-3].stn as property_parameter_list, ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan); } break; case 391: // property_parameter_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 392: // property_parameter_list -> tkSquareOpen, parameter_decl_list, tkSquareClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 393: // parameter_decl_list -> parameter_decl { CurrentSemanticValue.stn = new property_parameter_list(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan); } break; case 394: // parameter_decl_list -> parameter_decl_list, tkSemiColon, parameter_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as property_parameter_list).Add(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan); } break; case 395: // parameter_decl -> ident_list, tkColon, fptype { CurrentSemanticValue.stn = new property_parameter(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 396: // optional_read_expr -> expr_with_func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 397: // optional_read_expr -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 399: // property_specifiers -> tkRead, optional_read_expr, write_property_specifiers { if (ValueStack[ValueStack.Depth-2].ex == null || ValueStack[ValueStack.Depth-2].ex is ident) // с�?анда�?�?н�?е свойс�?ва { CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].ex as ident, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); } else // �?ас�?и�?енн�?е свойс�?ва { var id = NewId("#GetGen", LocationStack[LocationStack.Depth-2]); procedure_definition pr = null; if (!parserTools.buildTreeForFormatter) pr = CreateAndAddToClassReadFunc(ValueStack[ValueStack.Depth-2].ex, id, LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-3].id, id, pr, ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // $2 пе�?еда�?�?ся для �?о�?ма�?и�?ования } } break; case 400: // property_specifiers -> tkWrite, unlabelled_stmt, read_property_specifiers { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, null, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); } else if (ValueStack[ValueStack.Depth-2].stn is procedure_call && (ValueStack[ValueStack.Depth-2].stn as procedure_call).is_ident) // с�?анда�?�?н�?е свойс�?ва { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, (ValueStack[ValueStack.Depth-2].stn as procedure_call).func_name as ident, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // с�?а�?�?е свойс�?ва - с иден�?и�?ика�?о�?ом } else // �?ас�?и�?енн�?е свойс�?ва { var id = NewId("#SetGen", LocationStack[LocationStack.Depth-2]); procedure_definition pr = null; if (!parserTools.buildTreeForFormatter) pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-2].stn as statement,id,LocationStack[LocationStack.Depth-2]); if (parserTools.buildTreeForFormatter) CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, id, pr, ValueStack[ValueStack.Depth-2].stn as statement, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // $2 пе�?еда�?�?ся для �?о�?ма�?и�?ования else CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, id, pr, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); } } break; case 402: // write_property_specifiers -> tkWrite, unlabelled_stmt { if (ValueStack[ValueStack.Depth-1].stn is empty_statement) { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, null, null, null, null, CurrentLocationSpan); } else if (ValueStack[ValueStack.Depth-1].stn is procedure_call && (ValueStack[ValueStack.Depth-1].stn as procedure_call).is_ident) { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, (ValueStack[ValueStack.Depth-1].stn as procedure_call).func_name as ident, null, null, null, CurrentLocationSpan); // с�?а�?�?е свойс�?ва - с иден�?и�?ика�?о�?ом } else { var id = NewId("#SetGen", LocationStack[LocationStack.Depth-1]); procedure_definition pr = null; if (!parserTools.buildTreeForFormatter) pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-1].stn as statement,id,LocationStack[LocationStack.Depth-1]); if (parserTools.buildTreeForFormatter) CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, id, pr, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); else CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, id, pr, null, null, CurrentLocationSpan); } } break; case 404: // read_property_specifiers -> tkRead, optional_read_expr { if (ValueStack[ValueStack.Depth-1].ex == null || ValueStack[ValueStack.Depth-1].ex is ident) { CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-1].ex as ident, null, null, null, CurrentLocationSpan); } else { var id = NewId("#GetGen", LocationStack[LocationStack.Depth-1]); procedure_definition pr = null; if (!parserTools.buildTreeForFormatter) pr = CreateAndAddToClassReadFunc(ValueStack[ValueStack.Depth-1].ex,id,LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-2].id, id, pr, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } } break; case 405: // var_decl -> var_decl_part, tkSemiColon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 408: // var_decl_part -> ident_list, tkColon, type_ref { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, false, CurrentLocationSpan); } break; case 409: // var_decl_part -> ident_list, tkAssign, expr_with_func_decl_lambda { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, null, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); } break; case 410: // var_decl_part -> ident_list, tkColon, type_ref, tkAssignOrEqual, // typed_var_init_expression { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); } break; case 411: // typed_var_init_expression -> typed_const_plus { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 412: // typed_var_init_expression -> const_simple_expr, tkDotDot, const_term { if (parserTools.buildTreeForFormatter) CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); else CurrentSemanticValue.ex = new diapason_expr_new(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 413: // typed_var_init_expression -> expl_func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 414: // typed_var_init_expression -> identifier, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]); var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 415: // typed_var_init_expression -> tkRoundOpen, tkRoundClose, lambda_type_ref, // tkArrow, lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 416: // typed_var_init_expression -> tkRoundOpen, typed_const_list, tkRoundClose, // tkArrow, lambda_function_body { var el = ValueStack[ValueStack.Depth-4].stn as expression_list; var cnt = el.Count; var idList = new ident_list(); idList.source_context = LocationStack[LocationStack.Depth-4]; for (int j = 0; j < cnt; j++) { if (!(el.expressions[j] is ident)) parserTools.AddErrorFromResource("ONE_TKIDENTIFIER",el.expressions[j].source_context); idList.idents.Add(el.expressions[j] as ident); } var any = new lambda_inferred_type(new lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-4]); var formalPars = new formal_parameters(new typed_parameters(idList, any, parametr_kind.none, null, LocationStack[LocationStack.Depth-4]), LocationStack[LocationStack.Depth-4]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, any, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 417: // typed_var_init_expression -> new_question_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 418: // typed_const_plus -> typed_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 419: // constr_destr_decl -> constr_destr_header, block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan); } break; case 420: // constr_destr_decl -> tkConstructor, optional_proc_name, fp_list, tkAssign, // unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parserTools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,false,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), LocationStack[LocationStack.Depth-6].Merge(LocationStack[LocationStack.Depth-2])); if (parserTools.buildTreeForFormatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 421: // constr_destr_decl -> class_or_static, tkConstructor, optional_proc_name, // fp_list, tkAssign, unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parserTools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,true,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-2])); if (parserTools.buildTreeForFormatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 422: // inclass_constr_destr_decl -> constr_destr_header, inclass_block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan); } break; case 423: // inclass_constr_destr_decl -> tkConstructor, optional_proc_name, fp_list, // tkAssign, unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parserTools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,false,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), LocationStack[LocationStack.Depth-6].Merge(LocationStack[LocationStack.Depth-2])); if (parserTools.buildTreeForFormatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 424: // inclass_constr_destr_decl -> class_or_static, tkConstructor, optional_proc_name, // fp_list, tkAssign, unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parserTools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,true,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-2])); if (parserTools.buildTreeForFormatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 425: // proc_func_decl -> proc_func_decl_without_modifiers { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 426: // proc_func_decl -> class_or_static, proc_func_decl_without_modifiers { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 427: // proc_func_decl -> tkAsync, proc_func_decl_without_modifiers { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 428: // proc_func_decl -> tkAsync, class_or_static, proc_func_decl_without_modifiers { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true; (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 429: // proc_func_decl -> class_or_static, tkAsync, proc_func_decl_without_modifiers { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true; (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 430: // inclass_proc_func_decl -> inclass_proc_func_decl_without_modifiers { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 431: // inclass_proc_func_decl -> tkAsync, inclass_proc_func_decl_without_modifiers { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 432: // inclass_proc_func_decl -> class_or_static, // inclass_proc_func_decl_without_modifiers { if ((ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null) { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; } CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 433: // inclass_proc_func_decl -> tkAsync, class_or_static, // inclass_proc_func_decl_without_modifiers { if ((ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null) { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true; (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; } CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 434: // inclass_proc_func_decl -> class_or_static, tkAsync, // inclass_proc_func_decl_without_modifiers { if ((ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null) { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true; (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; } CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 435: // proc_func_decl_without_modifiers -> proc_func_header, proc_func_external_block { var ph = ValueStack[ValueStack.Depth-2].td as procedure_header; var pal = ph.proc_attributes; var mn = ph.name; if (mn.meth_name is operator_name_ident && mn.class_name == null && !pal.proc_attributes.Select(p => p.attribute_type).Contains(proc_attribute.attr_extension)) { pal.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_extension)); } CurrentSemanticValue.stn = new procedure_definition(ph, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan); } break; case 436: // proc_func_decl_without_modifiers -> proc_func_header, tkForward, tkSemiColon { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-3].td as procedure_header, null, CurrentLocationSpan); (CurrentSemanticValue.stn as procedure_definition).proc_header.proc_attributes.Add((procedure_attribute)ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-2].id.source_context); } break; case 437: // proc_func_decl_without_modifiers -> tkFunction, func_name, fp_list, tkColon, // fptype, optional_method_modificators1, // tkAssign, expr_l1_func_decl_lambda, // tkSemiColon { var pal = ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list; var mn = ValueStack[ValueStack.Depth-8].stn as method_name; if (mn.meth_name is operator_name_ident && mn.class_name == null && !pal.proc_attributes.Select(p => p.attribute_type).Contains(proc_attribute.attr_extension)) { pal.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_extension)); } CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, pal, mn, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4])); } break; case 438: // proc_func_decl_without_modifiers -> tkFunction, func_name, fp_list, // optional_method_modificators1, tkAssign, // expr_l1_func_decl_lambda, tkSemiColon { if (ValueStack[ValueStack.Depth-2].ex is dot_question_node) parserTools.AddErrorFromResource("DOT_QUECTION_IN_SHORT_FUN",LocationStack[LocationStack.Depth-2]); var pal = ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list; var mn = ValueStack[ValueStack.Depth-6].stn as method_name; if (mn.meth_name is operator_name_ident && mn.class_name == null && !pal.proc_attributes.Select(p => p.attribute_type).Contains(proc_attribute.attr_extension)) { pal.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_extension)); } CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, pal, mn, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); } break; case 439: // proc_func_decl_without_modifiers -> tkProcedure, proc_name, fp_list, // optional_method_modificators1, tkAssign, // unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parserTools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); } break; case 440: // inclass_proc_func_decl_without_modifiers -> proc_func_header, inclass_block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan); } break; case 441: // inclass_proc_func_decl_without_modifiers -> tkFunction, func_name, fp_list, // tkColon, fptype, // optional_method_modificators1, // tkAssign, // expr_l1_func_decl_lambda, // tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4])); if (parserTools.buildTreeForFormatter) // э�?о �?ол�?ко в inclass надо писа�?�? - в об�?�?ном proc_func_decl_without_modifiers - не надо! �?о�?ем�? - �?же �?�?�?а�?ено CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 442: // inclass_proc_func_decl_without_modifiers -> tkFunction, func_name, fp_list, // optional_method_modificators1, // tkAssign, // expr_l1_func_decl_lambda, // tkSemiColon { if (ValueStack[ValueStack.Depth-2].ex is dot_question_node) parserTools.AddErrorFromResource("DOT_QUECTION_IN_SHORT_FUN",LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); if (parserTools.buildTreeForFormatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 443: // inclass_proc_func_decl_without_modifiers -> tkProcedure, proc_name, fp_list, // optional_method_modificators1, // tkAssign, unlabelled_stmt, // tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parserTools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); if (parserTools.buildTreeForFormatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 444: // proc_func_external_block -> block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 445: // proc_func_external_block -> external_block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 446: // proc_name -> func_name { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 447: // func_name -> func_meth_name_ident { CurrentSemanticValue.stn = new method_name(null,null, ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 448: // func_name -> func_class_name_ident_list, tkPoint, func_meth_name_ident { var ln = ValueStack[ValueStack.Depth-3].ob as List; var cnt = ln.Count; if (cnt == 1) CurrentSemanticValue.stn = new method_name(null, ln[cnt-1], ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); else CurrentSemanticValue.stn = new method_name(ln, ln[cnt-1], ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 449: // func_class_name_ident -> func_name_with_template_args { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 450: // func_class_name_ident_list -> func_class_name_ident { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].id); } break; case 451: // func_class_name_ident_list -> func_class_name_ident_list, tkPoint, // func_class_name_ident { (ValueStack[ValueStack.Depth-3].ob as List).Add(ValueStack[ValueStack.Depth-1].id); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; case 452: // func_meth_name_ident -> func_name_with_template_args { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 453: // func_meth_name_ident -> operator_name_ident { CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; } break; case 454: // func_meth_name_ident -> operator_name_ident, template_arguments { CurrentSemanticValue.id = new template_operator_name(null, ValueStack[ValueStack.Depth-1].stn as ident_list, ValueStack[ValueStack.Depth-2].ex as operator_name_ident, CurrentLocationSpan); } break; case 455: // func_name_with_template_args -> func_name_ident { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 456: // func_name_with_template_args -> func_name_ident, template_arguments { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); } break; case 457: // func_name_ident -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 458: // proc_header -> tkProcedure, proc_name, fp_list, optional_method_modificators, // optional_where_section { CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, CurrentLocationSpan); } break; case 459: // func_header -> tkFunction, func_name, fp_list, optional_method_modificators, // optional_where_section { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, null, CurrentLocationSpan); } break; case 460: // func_header -> tkFunction, func_name, fp_list, tkColon, fptype, // optional_method_modificators, optional_where_section { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, ValueStack[ValueStack.Depth-3].td as type_definition, CurrentLocationSpan); } break; case 461: // external_block -> tkExternal, external_directive_ident, tkName, // external_directive_ident, tkSemiColon { CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 462: // external_block -> tkExternal, external_directive_ident, tkSemiColon { CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-2].ex, null, CurrentLocationSpan); } break; case 463: // external_block -> tkExternal, tkSemiColon { CurrentSemanticValue.stn = new external_directive(null, null, CurrentLocationSpan); } break; case 464: // external_directive_ident -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 465: // external_directive_ident -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 466: // block -> decl_sect_list, compound_stmt, tkSemiColon { CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); } break; case 467: // inclass_block -> inclass_decl_sect_list, compound_stmt, tkSemiColon { CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); } break; case 468: // inclass_block -> external_block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 469: // fp_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 470: // fp_list -> tkRoundOpen, tkRoundClose { CurrentSemanticValue.stn = null; } break; case 471: // fp_list -> tkRoundOpen, fp_sect_list, tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; if (CurrentSemanticValue.stn != null) CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 472: // fp_sect_list -> fp_sect { CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; case 473: // fp_sect_list -> fp_sect_list, tkSemiColon, fp_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; case 474: // fp_sect -> attribute_declarations, simple_fp_sect { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 475: // simple_fp_sect -> param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan); } break; case 476: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.var_parametr, null, CurrentLocationSpan); } break; case 477: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.const_parametr, null, CurrentLocationSpan); } break; case 478: // simple_fp_sect -> tkParams, param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td,parametr_kind.params_parametr,null, CurrentLocationSpan); } break; case 479: // simple_fp_sect -> param_name_list, tkColon, fptype, tkAssign, expr { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.none, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 480: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype, tkAssign, expr { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.var_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 481: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype, tkAssign, expr { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.const_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 482: // param_name_list -> param_name { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 483: // param_name_list -> param_name_list, tkComma, param_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 484: // param_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 485: // fptype -> type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 486: // fptype_noproctype -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 487: // fptype_noproctype -> string_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 488: // fptype_noproctype -> pointer_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 489: // fptype_noproctype -> structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 490: // fptype_noproctype -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 491: // stmt -> unlabelled_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 492: // stmt -> label_name, tkColon, stmt { CurrentSemanticValue.stn = new labeled_statement(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 493: // unlabelled_stmt -> /* empty */ { CurrentSemanticValue.stn = new empty_statement(); CurrentSemanticValue.stn.source_context = null; } break; case 494: // unlabelled_stmt -> assignment { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 495: // unlabelled_stmt -> proc_call { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 496: // unlabelled_stmt -> goto_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 497: // unlabelled_stmt -> compound_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 498: // unlabelled_stmt -> if_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 499: // unlabelled_stmt -> case_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 500: // unlabelled_stmt -> repeat_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 501: // unlabelled_stmt -> while_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 502: // unlabelled_stmt -> for_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 503: // unlabelled_stmt -> with_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 504: // unlabelled_stmt -> inherited_message { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 505: // unlabelled_stmt -> try_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 506: // unlabelled_stmt -> raise_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 507: // unlabelled_stmt -> foreach_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 508: // unlabelled_stmt -> var_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 509: // unlabelled_stmt -> expr_as_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 510: // unlabelled_stmt -> lock_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 511: // unlabelled_stmt -> yield_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 512: // unlabelled_stmt -> yield_sequence_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 513: // unlabelled_stmt -> loop_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 514: // unlabelled_stmt -> match_with { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 515: // loop_stmt -> tkLoop, expr_l1, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new loop_stmt(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].stn as statement,CurrentLocationSpan); } break; case 516: // yield_stmt -> tkYield, expr_l1_func_decl_lambda { CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 517: // yield_sequence_stmt -> tkYield, tkSequence, expr_l1_func_decl_lambda { CurrentSemanticValue.stn = new yield_sequence_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 518: // var_stmt -> tkVar, var_decl_part { CurrentSemanticValue.stn = new var_statement(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); } break; case 519: // var_stmt -> tkRoundOpen, tkVar, identifier, tkComma, var_ident_list, // tkRoundClose, tkAssign, expr { (ValueStack[ValueStack.Depth-4].ob as ident_list).Insert(0,ValueStack[ValueStack.Depth-6].id); (ValueStack[ValueStack.Depth-4].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-4].ob as ident_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 520: // var_stmt -> tkVar, tkRoundOpen, identifier, tkComma, ident_list, tkRoundClose, // tkAssign, expr { (ValueStack[ValueStack.Depth-4].stn as ident_list).Insert(0,ValueStack[ValueStack.Depth-6].id); ValueStack[ValueStack.Depth-4].stn.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-4].stn as ident_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 521: // assignment -> var_reference, assign_operator, expr_with_func_decl_lambda { if (!(ValueStack[ValueStack.Depth-3].ex is addressed_value)) parserTools.AddErrorFromResource("LEFT_SIDE_CANNOT_BE_ASSIGNED_TO",CurrentLocationSpan); CurrentSemanticValue.stn = new assign(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 522: // assignment -> tkRoundOpen, variable, tkComma, variable_list, tkRoundClose, // assign_operator, expr { if (ValueStack[ValueStack.Depth-2].op.type != Operators.Assignment) parserTools.AddErrorFromResource("ONLY_BASE_ASSIGNMENT_FOR_TUPLE",LocationStack[LocationStack.Depth-2]); (ValueStack[ValueStack.Depth-4].ob as addressed_value_list).Insert(0,ValueStack[ValueStack.Depth-6].ex as addressed_value); (ValueStack[ValueStack.Depth-4].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.stn = new assign_tuple(ValueStack[ValueStack.Depth-4].ob as addressed_value_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 523: // variable_list -> variable { CurrentSemanticValue.ob = new addressed_value_list(ValueStack[ValueStack.Depth-1].ex as addressed_value,LocationStack[LocationStack.Depth-1]); } break; case 524: // variable_list -> variable_list, tkComma, variable { (ValueStack[ValueStack.Depth-3].ob as addressed_value_list).Add(ValueStack[ValueStack.Depth-1].ex as addressed_value); (ValueStack[ValueStack.Depth-3].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; case 525: // var_ident_list -> tkVar, identifier { CurrentSemanticValue.ob = new ident_list(ValueStack[ValueStack.Depth-1].id,CurrentLocationSpan); } break; case 526: // var_ident_list -> var_ident_list, tkComma, tkVar, identifier { (ValueStack[ValueStack.Depth-4].ob as ident_list).Add(ValueStack[ValueStack.Depth-1].id); (ValueStack[ValueStack.Depth-4].ob as ident_list).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-4].ob; } break; case 527: // proc_call -> var_reference { CurrentSemanticValue.stn = new procedure_call(ValueStack[ValueStack.Depth-1].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex is ident, CurrentLocationSpan); } break; case 528: // goto_stmt -> tkGoto, label_name { CurrentSemanticValue.stn = new goto_statement(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 529: // compound_stmt -> tkBegin, stmt_list, tkEnd { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; (CurrentSemanticValue.stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; (CurrentSemanticValue.stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-1].ti; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 530: // stmt_list -> stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, LocationStack[LocationStack.Depth-1]); } break; case 531: // stmt_list -> stmt_list, tkSemiColon, stmt { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as statement_list).Add(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 532: // if_stmt -> tkIf, expr_l1, tkThen, unlabelled_stmt { CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 533: // if_stmt -> tkIf, expr_l1, tkThen, unlabelled_stmt, tkElse, unlabelled_stmt { CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as statement, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 534: // match_with -> tkMatch, expr_l1, tkWith, pattern_cases, else_case, tkEnd { CurrentSemanticValue.stn = new match_with(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as pattern_cases, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 535: // match_with -> tkMatch, expr_l1, tkWith, pattern_cases, tkSemiColon, else_case, // tkEnd { CurrentSemanticValue.stn = new match_with(ValueStack[ValueStack.Depth-6].ex, ValueStack[ValueStack.Depth-4].stn as pattern_cases, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 536: // pattern_cases -> pattern_case { CurrentSemanticValue.stn = new pattern_cases(ValueStack[ValueStack.Depth-1].stn as pattern_case); } break; case 537: // pattern_cases -> pattern_cases, tkSemiColon, pattern_case { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as pattern_cases).Add(ValueStack[ValueStack.Depth-1].stn as pattern_case); } break; case 538: // pattern_case -> pattern_optional_var, tkWhen, expr_l1, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-5].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].ex, CurrentLocationSpan); } break; case 539: // pattern_case -> deconstruction_or_const_pattern, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 540: // pattern_case -> collection_pattern, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 541: // pattern_case -> tuple_pattern, tkWhen, expr_l1, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-5].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].ex, CurrentLocationSpan); } break; case 542: // pattern_case -> tuple_pattern, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 543: // case_stmt -> tkCase, expr_l1, tkOf, case_list, else_case, tkEnd { CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 544: // case_stmt -> tkCase, expr_l1, tkOf, case_list, tkSemiColon, else_case, tkEnd { CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-6].ex, ValueStack[ValueStack.Depth-4].stn as case_variants, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 545: // case_stmt -> tkCase, expr_l1, tkOf, else_case, tkEnd { CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-4].ex, NewCaseItem(new empty_statement(), null), ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 546: // case_list -> case_item { if (ValueStack[ValueStack.Depth-1].stn is empty_statement) CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, null); else CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 547: // case_list -> case_list, tkSemiColon, case_item { CurrentSemanticValue.stn = AddCaseItem(ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 548: // case_item -> case_label_list, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new case_variant(ValueStack[ValueStack.Depth-3].stn as expression_list, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 549: // case_label_list -> case_label { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 550: // case_label_list -> case_label_list, tkComma, case_label { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 551: // case_label -> const_elem { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 552: // else_case -> /* empty */ { CurrentSemanticValue.stn = null;} break; case 553: // else_case -> tkElse, stmt_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 554: // repeat_stmt -> tkRepeat, stmt_list, tkUntil, expr { CurrentSemanticValue.stn = new repeat_node(ValueStack[ValueStack.Depth-3].stn as statement_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); (ValueStack[ValueStack.Depth-3].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-4].ti; (ValueStack[ValueStack.Depth-3].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-2].ti; ValueStack[ValueStack.Depth-3].stn.source_context = LocationStack[LocationStack.Depth-4].Merge(LocationStack[LocationStack.Depth-2]); } break; case 555: // while_stmt -> tkWhile, expr_l1, optional_tk_do, unlabelled_stmt { CurrentSemanticValue.stn = NewWhileStmt(ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 556: // optional_tk_do -> tkDo { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 557: // optional_tk_do -> /* empty */ { CurrentSemanticValue.ti = null; } break; case 558: // lock_stmt -> tkLock, expr_l1, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new lock_stmt(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 559: // index_or_nothing -> tkIndex, tkIdentifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 560: // index_or_nothing -> /* empty */ { CurrentSemanticValue.id = null; } break; case 561: // optional_type_specification -> tkColon, type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 562: // optional_type_specification -> /* empty */ { CurrentSemanticValue.td = null; } break; case 563: // optional_var -> tkVar { CurrentSemanticValue.ob = true; } break; case 564: // optional_var -> /* empty */ { CurrentSemanticValue.ob = false; } break; case 565: // for_cycle_type -> tkTo { CurrentSemanticValue.ob = for_cycle_type.to; } break; case 566: // for_cycle_type -> tkDownto { CurrentSemanticValue.ob = for_cycle_type.downto; } break; case 567: // foreach_stmt -> tkForeach, identifier, optional_type_specification, tkIn, // expr_l1, index_or_nothing, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-6].td, ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan); if (ValueStack[ValueStack.Depth-6].td == null) parserTools.AddWarningFromResource("USING_UNLOCAL_FOREACH_VARIABLE", ValueStack[ValueStack.Depth-7].id.source_context); } break; case 568: // foreach_stmt -> tkForeach, tkVar, identifier, optional_type_specification, tkIn, // expr_l1, index_or_nothing, tkDo, unlabelled_stmt { if (ValueStack[ValueStack.Depth-6].td == null) CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, new no_type_foreach(), ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan); else CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-6].td, ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan); } break; case 569: // foreach_stmt -> tkForeach, tkVar, tkRoundOpen, ident_list, tkRoundClose, tkIn, // expr_l1, index_or_nothing, tkDo, unlabelled_stmt { if (parserTools.buildTreeForFormatter) { var il = ValueStack[ValueStack.Depth-7].stn as ident_list; il.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6]); // н�?жно для �?о�?ма�?и�?ования CurrentSemanticValue.stn = new foreach_stmt_formatting(il,ValueStack[ValueStack.Depth-4].ex,ValueStack[ValueStack.Depth-1].stn as statement,ValueStack[ValueStack.Depth-3].id,CurrentLocationSpan); } else { // �?с�?�? п�?облема - непоня�?но, где здес�? сдела�?�? семан�?�?еский �?зел для п�?ове�?ки // �?�?ове�?и�?�? можно и в foreach, но где-�?о должен б�?�?�? ма�?ке�?, �?�?о э�?о са�?а�?н�?й �?зел // Нап�?име�?, иден�?и�?ика�?о�? #fe - но э�?о пло�?ая идея var id = NewId("#fe",LocationStack[LocationStack.Depth-7]); var tttt = new assign_var_tuple(ValueStack[ValueStack.Depth-7].stn as ident_list, id, CurrentLocationSpan); statement_list nine = ValueStack[ValueStack.Depth-1].stn is statement_list ? ValueStack[ValueStack.Depth-1].stn as statement_list : new statement_list(ValueStack[ValueStack.Depth-1].stn as statement,LocationStack[LocationStack.Depth-2]); nine.Insert(0,tttt); var fe = new foreach_stmt(id, new no_type_foreach(), ValueStack[ValueStack.Depth-4].ex, nine, ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan); fe.ext = ValueStack[ValueStack.Depth-7].stn as ident_list; CurrentSemanticValue.stn = fe; } } break; case 570: // for_stmt -> tkFor, optional_var, identifier, optional_type_specification, // tkAssign, expr_l1, for_cycle_type, expr_l1, optional_tk_do, // unlabelled_stmt { CurrentSemanticValue.stn = NewForStmt((bool)ValueStack[ValueStack.Depth-9].ob, ValueStack[ValueStack.Depth-8].id, ValueStack[ValueStack.Depth-7].td, ValueStack[ValueStack.Depth-5].ex, (for_cycle_type)ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 571: // for_stmt -> tkFor, optional_var, identifier, optional_type_specification, // tkAssign, expr_l1, for_cycle_type, expr_l1, tkStep, expr_l1, tkDo, // unlabelled_stmt { CurrentSemanticValue.stn = NewForStmt((bool)ValueStack[ValueStack.Depth-11].ob, ValueStack[ValueStack.Depth-10].id, ValueStack[ValueStack.Depth-9].td, ValueStack[ValueStack.Depth-7].ex, (for_cycle_type)ValueStack[ValueStack.Depth-6].ob, ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].ex, CurrentLocationSpan); } break; case 572: // with_stmt -> tkWith, expr_list, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new with_statement(ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].stn as expression_list, CurrentLocationSpan); } break; case 573: // inherited_message -> tkInherited { CurrentSemanticValue.stn = new inherited_message(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 574: // try_stmt -> tkTry, stmt_list, try_handler { CurrentSemanticValue.stn = new try_stmt(ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].stn as try_handler, CurrentLocationSpan); (ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; ValueStack[ValueStack.Depth-2].stn.source_context = LocationStack[LocationStack.Depth-3].Merge(LocationStack[LocationStack.Depth-2]); } break; case 575: // try_handler -> tkFinally, stmt_list, tkEnd { CurrentSemanticValue.stn = new try_handler_finally(ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); (ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; (ValueStack[ValueStack.Depth-2].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-1].ti; } break; case 576: // try_handler -> tkExcept, exception_block, tkEnd { CurrentSemanticValue.stn = new try_handler_except((exception_block)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan); if ((ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list != null) { (ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list.source_context = CurrentLocationSpan; (ValueStack[ValueStack.Depth-2].stn as exception_block).source_context = CurrentLocationSpan; } } break; case 577: // exception_block -> exception_handler_list, exception_block_else_branch { CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-2].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 578: // exception_block -> exception_handler_list, tkSemiColon, // exception_block_else_branch { CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-3].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 579: // exception_block -> stmt_list { CurrentSemanticValue.stn = new exception_block(ValueStack[ValueStack.Depth-1].stn as statement_list, null, null, LocationStack[LocationStack.Depth-1]); } break; case 580: // exception_handler_list -> exception_handler { CurrentSemanticValue.stn = new exception_handler_list(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan); } break; case 581: // exception_handler_list -> exception_handler_list, tkSemiColon, // exception_handler { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as exception_handler_list).Add(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan); } break; case 582: // exception_block_else_branch -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 583: // exception_block_else_branch -> tkElse, stmt_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 584: // exception_handler -> tkOn, exception_identifier, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new exception_handler((ValueStack[ValueStack.Depth-3].stn as exception_ident).variable, (ValueStack[ValueStack.Depth-3].stn as exception_ident).type_name, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 585: // exception_identifier -> exception_class_type_identifier { CurrentSemanticValue.stn = new exception_ident(null, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 586: // exception_identifier -> exception_variable, tkColon, // exception_class_type_identifier { CurrentSemanticValue.stn = new exception_ident(ValueStack[ValueStack.Depth-3].id, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 587: // exception_class_type_identifier -> simple_type_identifier { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 588: // exception_variable -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 589: // raise_stmt -> tkRaise { CurrentSemanticValue.stn = new raise_stmt(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 590: // raise_stmt -> tkRaise, expr { CurrentSemanticValue.stn = new raise_stmt(ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 591: // expr_list -> expr_with_func_decl_lambda { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 592: // expr_list -> expr_list, tkComma, expr_with_func_decl_lambda { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 593: // expr_list_func_param -> expr_with_func_decl_lambda_ass { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 594: // expr_list_func_param -> expr_list_func_param, tkComma, // expr_with_func_decl_lambda_ass { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 595: // expr_as_stmt -> allowable_expr_as_stmt { CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 596: // allowable_expr_as_stmt -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 597: // expr_with_func_decl_lambda -> expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 598: // expr_with_func_decl_lambda -> func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 599: // expr_with_func_decl_lambda -> tkInherited { CurrentSemanticValue.ex = new inherited_ident("", CurrentLocationSpan); } break; case 600: // expr_with_func_decl_lambda_ass -> expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 601: // expr_with_func_decl_lambda_ass -> identifier, tkAssign, expr_l1 { CurrentSemanticValue.ex = new name_assign_expr(ValueStack[ValueStack.Depth-3].id,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 602: // expr_with_func_decl_lambda_ass -> func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 603: // expr_with_func_decl_lambda_ass -> tkInherited { CurrentSemanticValue.ex = new inherited_ident("", CurrentLocationSpan); } break; case 604: // expr -> expr_l1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 605: // expr -> format_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 606: // expr -> expr, tkTo, expr_l1 { CurrentSemanticValue.ex = new to_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 607: // expr_l1 -> expr_dq { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 608: // expr_l1 -> question_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 609: // expr_l1 -> new_question_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 610: // expr_l1_for_question_expr -> expr_dq { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 611: // expr_l1_for_question_expr -> question_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 612: // expr_l1_for_new_question_expr -> expr_dq { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 613: // expr_l1_for_new_question_expr -> new_question_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 614: // expr_l1_func_decl_lambda -> expr_l1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 615: // expr_l1_func_decl_lambda -> func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 616: // expr_l1_for_lambda -> expr_dq { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 617: // expr_l1_for_lambda -> question_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 618: // expr_l1_for_lambda -> func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 619: // expr_dq -> relop_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 620: // expr_dq -> expr_dq, tkDoubleQuestion, relop_expr { CurrentSemanticValue.ex = new double_question_node(ValueStack[ValueStack.Depth-3].ex as expression, ValueStack[ValueStack.Depth-1].ex as expression, CurrentLocationSpan);} break; case 621: // sizeof_expr -> tkSizeOf, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new sizeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, null, CurrentLocationSpan); } break; case 622: // typeof_expr -> tkTypeOf, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new typeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 623: // typeof_expr -> tkTypeOf, tkRoundOpen, empty_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new typeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 624: // question_expr -> expr_l1_for_question_expr, tkQuestion, // expr_l1_for_question_expr, tkColon, // expr_l1_for_question_expr { if (ValueStack[ValueStack.Depth-3].ex is nil_const && ValueStack[ValueStack.Depth-1].ex is nil_const) parserTools.AddErrorFromResource("TWO_NILS_IN_QUESTION_EXPR",LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 625: // new_question_expr -> tkIf, expr_l1_for_new_question_expr, tkThen, // expr_l1_for_new_question_expr, tkElse, // expr_l1_for_new_question_expr { if (parserTools.buildTreeForFormatter) { CurrentSemanticValue.ex = new if_expr_new(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } else { if (ValueStack[ValueStack.Depth-3].ex is nil_const && ValueStack[ValueStack.Depth-1].ex is nil_const) parserTools.AddErrorFromResource("TWO_NILS_IN_QUESTION_EXPR",LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } } break; case 626: // empty_template_type_reference -> simple_type_identifier, // template_type_empty_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-2].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 627: // empty_template_type_reference -> simple_type_identifier, tkAmpersend, // template_type_empty_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-3].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 628: // simple_or_template_type_reference -> simple_type_identifier { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 629: // simple_or_template_type_reference -> simple_type_identifier, // template_type_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-2].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 630: // simple_or_template_type_reference -> simple_type_identifier, tkAmpersend, // template_type_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-3].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 631: // simple_or_template_or_question_type_reference -> // simple_or_template_type_reference { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 632: // simple_or_template_or_question_type_reference -> simple_type_question { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 633: // optional_array_initializer -> tkRoundOpen, typed_const_list, tkRoundClose { CurrentSemanticValue.stn = new array_const((expression_list)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan); } break; case 635: // new_expr -> tkNew, simple_or_template_type_reference, // optional_expr_list_func_param_with_bracket { CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-2].td, ValueStack[ValueStack.Depth-1].stn as expression_list, false, null, CurrentLocationSpan); } break; case 636: // new_expr -> tkNew, simple_or_template_type_reference, tkSquareOpen, // optional_expr_list, tkSquareClose, optional_array_initializer { var el = ValueStack[ValueStack.Depth-3].stn as expression_list; if (el == null) { var cnt = 0; var ac = ValueStack[ValueStack.Depth-1].stn as array_const; if (ac != null && ac.elements != null) cnt = ac.elements.Count; else parserTools.AddErrorFromResource("WITHOUT_INIT_AND_SIZE",LocationStack[LocationStack.Depth-2]); el = new expression_list(new int32_const(cnt),LocationStack[LocationStack.Depth-6]); } CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-5].td, el, true, ValueStack[ValueStack.Depth-1].stn as array_const, CurrentLocationSpan); } break; case 637: // new_expr -> tkNew, tkClass, tkRoundOpen, list_fields_in_unnamed_object, // tkRoundClose { // sugared node var l = ValueStack[ValueStack.Depth-2].ob as name_assign_expr_list; var exprs = l.name_expr.Select(x=>x.expr.Clone() as expression).ToList(); var typename = "AnonymousType#"+Guid(); var type = new named_type_reference(typename,LocationStack[LocationStack.Depth-5]); // node new_expr - for code generation of new node var ne = new new_expr(type, new expression_list(exprs), CurrentLocationSpan); // node unnamed_type_object - for formatting and code generation (new node and Anonymous class) CurrentSemanticValue.ex = new unnamed_type_object(l, true, ne, CurrentLocationSpan); } break; case 638: // field_in_unnamed_object -> identifier, tkAssign, expr_l1 { if (ValueStack[ValueStack.Depth-1].ex is nil_const) parserTools.AddErrorFromResource("NIL_IN_UNNAMED_OBJECT",CurrentLocationSpan); CurrentSemanticValue.ob = new name_assign_expr(ValueStack[ValueStack.Depth-3].id,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 639: // field_in_unnamed_object -> expr_l1 { ident name = null; var id = ValueStack[ValueStack.Depth-1].ex as ident; dot_node dot; if (id != null) name = id; else { dot = ValueStack[ValueStack.Depth-1].ex as dot_node; if (dot != null) { name = dot.right as ident; } } if (name == null) parserTools.errors.Add(new bad_anon_type(parserTools.currentFileName, LocationStack[LocationStack.Depth-1], null)); CurrentSemanticValue.ob = new name_assign_expr(name,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 640: // list_fields_in_unnamed_object -> field_in_unnamed_object { var l = new name_assign_expr_list(); CurrentSemanticValue.ob = l.Add(ValueStack[ValueStack.Depth-1].ob as name_assign_expr); } break; case 641: // list_fields_in_unnamed_object -> list_fields_in_unnamed_object, tkComma, // field_in_unnamed_object { var nel = ValueStack[ValueStack.Depth-3].ob as name_assign_expr_list; var ss = nel.name_expr.Select(ne=>ne.name.name).FirstOrDefault(x=>string.Compare(x,(ValueStack[ValueStack.Depth-1].ob as name_assign_expr).name.name,true)==0); if (ss != null) parserTools.errors.Add(new anon_type_duplicate_name(parserTools.currentFileName, LocationStack[LocationStack.Depth-1], null)); nel.Add(ValueStack[ValueStack.Depth-1].ob as name_assign_expr); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; case 642: // optional_expr_list_with_bracket -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 643: // optional_expr_list_with_bracket -> tkRoundOpen, optional_expr_list, // tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 644: // optional_expr_list_func_param_with_bracket -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 645: // optional_expr_list_func_param_with_bracket -> tkRoundOpen, // optional_expr_list_func_param, // tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 646: // relop_expr -> simple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 647: // relop_expr -> relop_expr, relop, simple_expr { if (ValueStack[ValueStack.Depth-2].op.type == Operators.NotIn) CurrentSemanticValue.ex = new un_expr(new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, Operators.In, CurrentLocationSpan),Operators.LogicalNOT,CurrentLocationSpan); else CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 648: // relop_expr -> relop_expr, relop, new_question_expr { if (ValueStack[ValueStack.Depth-2].op.type == Operators.NotIn) CurrentSemanticValue.ex = new un_expr(new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, Operators.In, CurrentLocationSpan),Operators.LogicalNOT,CurrentLocationSpan); else CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 649: // relop_expr -> is_type_expr, tkRoundOpen, pattern_out_param_list, tkRoundClose { var isTypeCheck = ValueStack[ValueStack.Depth-4].ex as typecast_node; var deconstructorPattern = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, isTypeCheck.type_def, null, CurrentLocationSpan); CurrentSemanticValue.ex = new is_pattern_expr(isTypeCheck.expr, deconstructorPattern, CurrentLocationSpan); } break; case 650: // pattern -> simple_or_template_type_reference, tkRoundOpen, // pattern_out_param_list, tkRoundClose { CurrentSemanticValue.stn = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, ValueStack[ValueStack.Depth-4].td, null, CurrentLocationSpan); } break; case 651: // pattern_optional_var -> simple_or_template_type_reference, tkRoundOpen, // pattern_out_param_list_optional_var, tkRoundClose { CurrentSemanticValue.stn = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, ValueStack[ValueStack.Depth-4].td, null, CurrentLocationSpan); } break; case 652: // deconstruction_or_const_pattern -> simple_or_template_type_reference, // tkRoundOpen, // pattern_out_param_list_optional_var, // tkRoundClose { CurrentSemanticValue.stn = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, ValueStack[ValueStack.Depth-4].td, null, CurrentLocationSpan); } break; case 653: // deconstruction_or_const_pattern -> const_pattern_expr_list { CurrentSemanticValue.stn = new const_pattern(ValueStack[ValueStack.Depth-1].ob as List, CurrentLocationSpan); } break; case 654: // const_pattern_expr_list -> const_pattern_expression { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn); } break; case 655: // const_pattern_expr_list -> const_pattern_expr_list, tkComma, // const_pattern_expression { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn); CurrentSemanticValue.ob = list; } break; case 656: // const_pattern_expression -> literal_or_number { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 657: // const_pattern_expression -> simple_or_template_type_reference { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 658: // const_pattern_expression -> tkNil { CurrentSemanticValue.stn = new nil_const(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 659: // const_pattern_expression -> sizeof_expr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 660: // const_pattern_expression -> typeof_expr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 661: // collection_pattern -> tkSquareOpen, collection_pattern_expr_list, tkSquareClose { CurrentSemanticValue.stn = new collection_pattern(ValueStack[ValueStack.Depth-2].ob as List, CurrentLocationSpan); } break; case 662: // collection_pattern_expr_list -> collection_pattern_list_item { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); } break; case 663: // collection_pattern_expr_list -> collection_pattern_expr_list, tkComma, // collection_pattern_list_item { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 664: // collection_pattern_list_item -> literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 665: // collection_pattern_list_item -> collection_pattern_var_item { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 666: // collection_pattern_list_item -> tkUnderscore { CurrentSemanticValue.stn = new collection_pattern_wild_card(CurrentLocationSpan); } break; case 667: // collection_pattern_list_item -> pattern_optional_var { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 668: // collection_pattern_list_item -> collection_pattern { CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 669: // collection_pattern_list_item -> tuple_pattern { CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 670: // collection_pattern_list_item -> tkDotDot { CurrentSemanticValue.stn = new collection_pattern_gap_parameter(CurrentLocationSpan); } break; case 671: // collection_pattern_var_item -> tkVar, identifier { CurrentSemanticValue.stn = new collection_pattern_var_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 672: // tuple_pattern -> tkRoundOpen, tuple_pattern_item_list, tkRoundClose { if ((ValueStack[ValueStack.Depth-2].ob as List).Count>6) parserTools.AddErrorFromResource("TUPLE_ELEMENTS_COUNT_MUST_BE_LESSEQUAL_7",CurrentLocationSpan); CurrentSemanticValue.stn = new tuple_pattern(ValueStack[ValueStack.Depth-2].ob as List, CurrentLocationSpan); } break; case 673: // tuple_pattern_item -> tkUnderscore { CurrentSemanticValue.stn = new tuple_pattern_wild_card(CurrentLocationSpan); } break; case 674: // tuple_pattern_item -> literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 675: // tuple_pattern_item -> sign, literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan), CurrentLocationSpan); } break; case 676: // tuple_pattern_item -> tkVar, identifier { CurrentSemanticValue.stn = new tuple_pattern_var_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 677: // tuple_pattern_item -> pattern_optional_var { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 678: // tuple_pattern_item -> collection_pattern { CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 679: // tuple_pattern_item -> tuple_pattern { CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 680: // tuple_pattern_item_list -> tuple_pattern_item { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); } break; case 681: // tuple_pattern_item_list -> tuple_pattern_item_list, tkComma, tuple_pattern_item { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 682: // pattern_out_param_list_optional_var -> pattern_out_param_optional_var { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); } break; case 683: // pattern_out_param_list_optional_var -> pattern_out_param_list_optional_var, // tkSemiColon, // pattern_out_param_optional_var { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 684: // pattern_out_param_list_optional_var -> pattern_out_param_list_optional_var, // tkComma, // pattern_out_param_optional_var { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 685: // pattern_out_param_list -> pattern_out_param { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); } break; case 686: // pattern_out_param_list -> pattern_out_param_list, tkSemiColon, // pattern_out_param { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 687: // pattern_out_param_list -> pattern_out_param_list, tkComma, pattern_out_param { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 688: // pattern_out_param -> tkUnderscore { CurrentSemanticValue.stn = new wild_card_deconstructor_parameter(CurrentLocationSpan); } break; case 689: // pattern_out_param -> literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 690: // pattern_out_param -> tkVar, identifier, tkColon, type_ref { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, true, CurrentLocationSpan); } break; case 691: // pattern_out_param -> tkVar, identifier { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, true, CurrentLocationSpan); } break; case 692: // pattern_out_param -> pattern { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 693: // pattern_out_param -> collection_pattern { CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 694: // pattern_out_param -> tuple_pattern { CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 695: // pattern_out_param_optional_var -> tkUnderscore { CurrentSemanticValue.stn = new wild_card_deconstructor_parameter(CurrentLocationSpan); } break; case 696: // pattern_out_param_optional_var -> literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 697: // pattern_out_param_optional_var -> sign, literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan), CurrentLocationSpan); } break; case 698: // pattern_out_param_optional_var -> identifier, tkColon, type_ref { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, false, CurrentLocationSpan); } break; case 699: // pattern_out_param_optional_var -> identifier { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, false, CurrentLocationSpan); } break; case 700: // pattern_out_param_optional_var -> tkVar, identifier, tkColon, type_ref { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, true, CurrentLocationSpan); } break; case 701: // pattern_out_param_optional_var -> tkVar, identifier { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, true, CurrentLocationSpan); } break; case 702: // pattern_out_param_optional_var -> pattern_optional_var { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 703: // pattern_out_param_optional_var -> collection_pattern { CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 704: // pattern_out_param_optional_var -> tuple_pattern { CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 705: // simple_expr_or_nothing -> simple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 706: // simple_expr_or_nothing -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 707: // const_expr_or_nothing -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 708: // const_expr_or_nothing -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 709: // format_expr -> simple_expr, tkColon, simple_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 710: // format_expr -> tkColon, simple_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 711: // format_expr -> simple_expr, tkColon, simple_expr_or_nothing, tkColon, // simple_expr { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 712: // format_expr -> tkColon, simple_expr_or_nothing, tkColon, simple_expr { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 713: // format_const_expr -> const_expr, tkColon, const_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 714: // format_const_expr -> tkColon, const_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 715: // format_const_expr -> const_expr, tkColon, const_expr_or_nothing, tkColon, // const_expr { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 716: // format_const_expr -> tkColon, const_expr_or_nothing, tkColon, const_expr { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 717: // relop -> tkEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 718: // relop -> tkNotEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 719: // relop -> tkLower { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 720: // relop -> tkGreater { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 721: // relop -> tkLowerEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 722: // relop -> tkGreaterEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 723: // relop -> tkIn { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 724: // relop -> tkNot, tkIn { if (parserTools.buildTreeForFormatter) CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; else { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; CurrentSemanticValue.op.type = Operators.NotIn; } } break; case 725: // simple_expr -> term1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 726: // simple_expr -> simple_expr, tkDotDot, term1 { if (parserTools.buildTreeForFormatter) CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); else CurrentSemanticValue.ex = new diapason_expr_new(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 727: // term1 -> term { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 728: // term1 -> term1, addop, term { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 729: // term1 -> term1, addop, new_question_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 730: // addop -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 731: // addop -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 732: // addop -> tkOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 733: // addop -> tkXor { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 734: // addop -> tkCSharpStyleOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 735: // typecast_op -> tkAs { CurrentSemanticValue.ob = op_typecast.as_op; } break; case 736: // typecast_op -> tkIs { CurrentSemanticValue.ob = op_typecast.is_op; } break; case 737: // as_is_expr -> is_type_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 738: // as_is_expr -> as_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 739: // as_expr -> term, tkAs, simple_or_template_type_reference { CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.as_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 740: // as_expr -> term, tkAs, array_type { CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.as_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 741: // is_type_expr -> term, tkIs, simple_or_template_type_reference { CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.is_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 742: // is_type_expr -> term, tkIs, array_type { CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.is_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 743: // power_expr -> factor_without_unary_op, tkStarStar, factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 744: // power_expr -> factor_without_unary_op, tkStarStar, power_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 745: // power_expr -> sign, power_expr { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 746: // term -> factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 747: // term -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 748: // term -> power_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 749: // term -> term, mulop, factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 750: // term -> term, mulop, power_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 751: // term -> term, mulop, new_question_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 752: // term -> as_is_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 753: // mulop -> tkStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 754: // mulop -> tkSlash { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 755: // mulop -> tkDiv { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 756: // mulop -> tkMod { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 757: // mulop -> tkShl { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 758: // mulop -> tkShr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 759: // mulop -> tkAnd { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 760: // default_expr -> tkDefault, tkRoundOpen, // simple_or_template_or_question_type_reference, tkRoundClose { CurrentSemanticValue.ex = new default_operator(ValueStack[ValueStack.Depth-2].td as named_type_reference, CurrentLocationSpan); } break; case 761: // tuple -> tkRoundOpen, expr_l1_or_unpacked, tkComma, expr_l1_or_unpacked_list, // lambda_type_ref, optional_full_lambda_fp_list, tkRoundClose { if (ValueStack[ValueStack.Depth-6].ex is unpacked_list_of_ident_or_list) parserTools.AddErrorFromResource("EXPRESSION_EXPECTED",LocationStack[LocationStack.Depth-6]); foreach (var ex in (ValueStack[ValueStack.Depth-4].stn as expression_list).expressions) if (ex is unpacked_list_of_ident_or_list) parserTools.AddErrorFromResource("EXPRESSION_EXPECTED",ex.source_context); if (!(ValueStack[ValueStack.Depth-3].td is lambda_inferred_type)) parserTools.AddErrorFromResource("BAD_TUPLE",LocationStack[LocationStack.Depth-3]); if (ValueStack[ValueStack.Depth-2].stn != null) parserTools.AddErrorFromResource("BAD_TUPLE",LocationStack[LocationStack.Depth-2]); if ((ValueStack[ValueStack.Depth-4].stn as expression_list).Count>6) parserTools.AddErrorFromResource("TUPLE_ELEMENTS_COUNT_MUST_BE_LESSEQUAL_7",CurrentLocationSpan); (ValueStack[ValueStack.Depth-4].stn as expression_list).Insert(0,ValueStack[ValueStack.Depth-6].ex); CurrentSemanticValue.ex = new tuple_node(ValueStack[ValueStack.Depth-4].stn as expression_list,CurrentLocationSpan); } break; case 762: // factor_without_unary_op -> literal_or_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 763: // factor_without_unary_op -> var_reference { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 764: // factor -> tkNil { CurrentSemanticValue.ex = new nil_const(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 765: // factor -> literal_or_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 766: // factor -> default_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 767: // factor -> tkNot, factor { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 768: // factor -> sign, factor { if (ValueStack[ValueStack.Depth-2].op.type == Operators.Minus) { var i64 = ValueStack[ValueStack.Depth-1].ex as int64_const; if (i64 != null && i64.val == (Int64)Int32.MaxValue + 1) { CurrentSemanticValue.ex = new int32_const(Int32.MinValue,CurrentLocationSpan); break; } var ui64 = ValueStack[ValueStack.Depth-1].ex as uint64_const; if (ui64 != null && ui64.val == (UInt64)Int64.MaxValue + 1) { CurrentSemanticValue.ex = new int64_const(Int64.MinValue,CurrentLocationSpan); break; } if (ui64 != null && ui64.val > (UInt64)Int64.MaxValue + 1) { parserTools.AddErrorFromResource("BAD_INT2",CurrentLocationSpan); break; } // можно сдела�?�? в�?�?исление конс�?ан�?�? с вмон�?и�?ованн�?м мин�?сом } CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 769: // factor -> tkDeref, factor { CurrentSemanticValue.ex = new index(ValueStack[ValueStack.Depth-1].ex, true, CurrentLocationSpan); } break; case 770: // factor -> var_reference { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 771: // factor -> tuple { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 772: // literal_or_number -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 773: // literal_or_number -> unsigned_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 774: // var_question_point -> variable, tkQuestionPoint, variable { CurrentSemanticValue.ex = new dot_question_node(ValueStack[ValueStack.Depth-3].ex as addressed_value,ValueStack[ValueStack.Depth-1].ex as addressed_value,CurrentLocationSpan); } break; case 775: // var_question_point -> variable, tkQuestionPoint, var_question_point { CurrentSemanticValue.ex = new dot_question_node(ValueStack[ValueStack.Depth-3].ex as addressed_value,ValueStack[ValueStack.Depth-1].ex as addressed_value,CurrentLocationSpan); } break; case 776: // var_reference -> var_address, variable { CurrentSemanticValue.ex = NewVarReference(ValueStack[ValueStack.Depth-2].stn as get_address, ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); } break; case 777: // var_reference -> variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 778: // var_reference -> var_question_point { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 779: // var_reference -> tkRoundOpen, tkVar, identifier, tkAssign, expr_dq, // tkRoundClose { CurrentSemanticValue.ex = new let_var_expr(ValueStack[ValueStack.Depth-4].id,ValueStack[ValueStack.Depth-2].ex,CurrentLocationSpan); } break; case 780: // var_address -> tkAddressOf { CurrentSemanticValue.stn = NewVarAddress(CurrentLocationSpan); } break; case 781: // var_address -> var_address, tkAddressOf { CurrentSemanticValue.stn = NewVarAddress(ValueStack[ValueStack.Depth-2].stn as get_address, CurrentLocationSpan); } break; case 782: // attribute_variable -> simple_type_identifier, optional_expr_list_with_bracket { CurrentSemanticValue.stn = new attribute(null, ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as expression_list, CurrentLocationSpan); } break; case 783: // attribute_variable -> template_type, optional_expr_list_with_bracket { CurrentSemanticValue.stn = new attribute(null, ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as expression_list, CurrentLocationSpan); } break; case 784: // dotted_identifier -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 785: // dotted_identifier -> dotted_identifier, tkPoint, identifier_or_keyword { if (ValueStack[ValueStack.Depth-3].ex is index) parserTools.AddErrorFromResource("UNEXPECTED_SYMBOL{0}", LocationStack[LocationStack.Depth-3], "^"); CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 786: // variable_as_type -> dotted_identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;} break; case 787: // variable_as_type -> dotted_identifier, template_type_params { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-2].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 788: // var_with_init_for_expr_with_let -> tkVar, identifier, tkAssign, expr, // tkSemiColon { CurrentSemanticValue.stn = new assign(ValueStack[ValueStack.Depth-4].id as addressed_value, ValueStack[ValueStack.Depth-2].ex, Operators.Assignment, CurrentLocationSpan); } break; case 789: // var_with_init_for_expr_with_let_list -> var_with_init_for_expr_with_let { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 790: // var_with_init_for_expr_with_let_list -> var_with_init_for_expr_with_let_list, // var_with_init_for_expr_with_let { ValueStack[ValueStack.Depth-2].stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 791: // proc_func_call -> variable, tkRoundOpen, optional_expr_list_func_param, // tkRoundClose { if (ValueStack[ValueStack.Depth-4].ex is index) parserTools.AddErrorFromResource("UNEXPECTED_SYMBOL{0}", LocationStack[LocationStack.Depth-4], "^"); CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value,ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 792: // variable -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 793: // variable -> operator_name_ident { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 794: // variable -> tkInherited, identifier { CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 795: // variable -> tkRoundOpen, expr, tkRoundClose { if (!parserTools.buildTreeForFormatter) { ValueStack[ValueStack.Depth-2].ex.source_context = CurrentLocationSpan; CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } else CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 796: // variable -> tkRoundOpen, var_with_init_for_expr_with_let_list, expr, // tkRoundClose { if (!parserTools.buildTreeForFormatter) { ValueStack[ValueStack.Depth-2].ex.source_context = CurrentLocationSpan; CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } else CurrentSemanticValue.ex = new expression_with_let(ValueStack[ValueStack.Depth-3].stn as statement_list, ValueStack[ValueStack.Depth-3].stn as expression, CurrentLocationSpan); } break; case 797: // variable -> sizeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 798: // variable -> typeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 799: // variable -> literal_or_number, tkPoint, identifier_or_keyword { if (ValueStack[ValueStack.Depth-3].ex is index) parserTools.AddErrorFromResource("UNEXPECTED_SYMBOL{0}", LocationStack[LocationStack.Depth-3], "^"); CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 800: // variable -> variable, tkSquareOpen, expr_list, tkSquareClose { CurrentSemanticValue.ex = NewIndexerOrSlice(ValueStack[ValueStack.Depth-4].ex as addressed_value,ValueStack[ValueStack.Depth-2].stn as expression_list,CurrentLocationSpan); } break; case 801: // variable -> literal_or_number, tkSquareOpen, expr_list, tkSquareClose { CurrentSemanticValue.ex = NewIndexerOrSlice(ValueStack[ValueStack.Depth-4].ex as addressed_value,ValueStack[ValueStack.Depth-2].stn as expression_list,CurrentLocationSpan); /*var el = $3 as expression_list; // SSM 10/03/16 if (el.Count==1 && el.expressions[0] is format_expr) { var fe = el.expressions[0] as format_expr; if (!parserTools.buildTreeForFormatter) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue,@3); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue,@3); } $$ = new slice_expr($1 as addressed_value,fe.expr,fe.format1,fe.format2,@$); } // многоме�?н�?е с�?ез�? else if (el.expressions.Any(e => e is format_expr)) { if (el.expressions.Count > 4) parserTools.AddErrorFromResource("SLICES_OF MULTIDIMENSIONAL_ARRAYS_ALLOW_ONLY_FOR_RANK_LT_5",@$); // С�?ез�? многоме�?н�?�? массивов �?аз�?е�?ен�? �?ол�?ко для массивов �?азме�?нос�?и < 5 var ll = new List>(); foreach (var ex in el.expressions) { if (ex is format_expr fe) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue, fe.source_context); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue, fe.source_context); if (fe.format2 == null) fe.format2 = new int32_const(1, fe.source_context); ll.Add(Tuple.Create(fe.expr, fe.format1, fe.format2)); } else { ll.Add(Tuple.Create(ex, (expression)new int32_const(0, ex.source_context), (expression)new int32_const(int.MaxValue, ex.source_context))); // скаля�?ное зна�?ение вмес�?о с�?еза } } var sle = new slice_expr($1 as addressed_value,null,null,null,@$); sle.slices = ll; $$ = sle; } else $$ = new indexer($1 as addressed_value, el, @$);*/ } break; case 802: // variable -> variable, tkQuestionSquareOpen, format_expr, tkSquareClose { var fe = ValueStack[ValueStack.Depth-2].ex as format_expr; // SSM 9/01/17 if (!parserTools.buildTreeForFormatter) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); } CurrentSemanticValue.ex = new slice_expr_question(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan); } break; case 803: // variable -> literal_or_number, tkQuestionSquareOpen, format_expr, tkSquareClose { var fe = ValueStack[ValueStack.Depth-2].ex as format_expr; // SSM 9/01/17 if (!parserTools.buildTreeForFormatter) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); } CurrentSemanticValue.ex = new slice_expr_question(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan); } break; case 804: // variable -> tkVertParen, elem_list, tkVertParen { CurrentSemanticValue.ex = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, '|', CurrentLocationSpan); } break; case 805: // variable -> pascal_set_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 806: // variable -> proc_func_call { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 807: // variable -> variable, tkPoint, identifier_keyword_operatorname { if (ValueStack[ValueStack.Depth-3].ex is index) parserTools.AddErrorFromResource("UNEXPECTED_SYMBOL{0}", LocationStack[LocationStack.Depth-3], "^"); CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 808: // variable -> tuple, tkPoint, identifier_keyword_operatorname { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 809: // variable -> variable, tkDeref { CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-2].ex as addressed_value,CurrentLocationSpan); } break; case 810: // variable -> variable, tkAmpersend, template_type_params { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 811: // optional_expr_list -> expr_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 812: // optional_expr_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 813: // optional_expr_list_func_param -> expr_list_func_param { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 814: // optional_expr_list_func_param -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 815: // elem_list -> elem_list1 { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 816: // elem_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 817: // elem_list1 -> elem { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 818: // elem_list1 -> elem_list1, tkComma, elem { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 819: // elem -> expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 820: // elem -> expr, tkDotDot, expr { CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 821: // one_literal -> tkStringLiteral { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; } break; case 822: // one_literal -> tkAsciiChar { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; } break; case 823: // literal -> literal_list { CurrentSemanticValue.ex = NewLiteral(ValueStack[ValueStack.Depth-1].stn as literal_const_line); } break; case 824: // literal -> tkFormatStringLiteral { if (parserTools.buildTreeForFormatter) { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as string_const; } else { CurrentSemanticValue.ex = NewFormatString(ValueStack[ValueStack.Depth-1].stn as string_const); } } break; case 825: // literal -> tkMultilineStringLiteral { if (parserTools.buildTreeForFormatter) { var sc = ValueStack[ValueStack.Depth-1].stn as string_const; sc.IsMultiline = true; CurrentSemanticValue.ex = sc; } else { CurrentSemanticValue.ex = NewLiteral(new literal_const_line(ValueStack[ValueStack.Depth-1].stn as literal, CurrentLocationSpan)); } } break; case 826: // literal_list -> one_literal { CurrentSemanticValue.stn = new literal_const_line(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan); } break; case 827: // literal_list -> literal_list, one_literal { var line = ValueStack[ValueStack.Depth-2].stn as literal_const_line; if (line.literals.Last() is string_const && ValueStack[ValueStack.Depth-1].ex is string_const) parserTools.AddErrorFromResource("TWO_STRING_LITERALS_IN_SUCCESSION",LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.stn = line.Add(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan); } break; case 828: // operator_name_ident -> tkOperator, overload_operator { CurrentSemanticValue.ex = new operator_name_ident((ValueStack[ValueStack.Depth-1].op as op_type_node).text, (ValueStack[ValueStack.Depth-1].op as op_type_node).type, CurrentLocationSpan); } break; case 829: // optional_method_modificators -> tkSemiColon { CurrentSemanticValue.stn = new procedure_attributes_list(new List(),CurrentLocationSpan); } break; case 830: // optional_method_modificators -> tkSemiColon, meth_modificators, tkSemiColon { //parserTools.AddModifier((procedure_attributes_list)$2, proc_attribute.attr_overload); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 831: // optional_method_modificators1 -> /* empty */ { CurrentSemanticValue.stn = new procedure_attributes_list(new List(),CurrentLocationSpan); } break; case 832: // optional_method_modificators1 -> tkSemiColon, meth_modificators { //parserTools.AddModifier((procedure_attributes_list)$2, proc_attribute.attr_overload); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 833: // meth_modificators -> meth_modificator { CurrentSemanticValue.stn = new procedure_attributes_list(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan); } break; case 834: // meth_modificators -> meth_modificators, tkSemiColon, meth_modificator { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as procedure_attributes_list).Add(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan); } break; case 835: // identifier -> tkIdentifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 836: // identifier -> property_specifier_directives { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 837: // identifier -> non_reserved { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 838: // identifier -> tkStep { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 839: // identifier -> tkIndex { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 840: // identifier_or_keyword -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 841: // identifier_or_keyword -> keyword { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 842: // identifier_or_keyword -> reserved_keyword { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 843: // identifier_keyword_operatorname -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 844: // identifier_keyword_operatorname -> keyword { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 845: // identifier_keyword_operatorname -> operator_name_ident { CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; } break; case 846: // meth_modificator -> tkAbstract { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 847: // meth_modificator -> tkOverload { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; parserTools.AddWarningFromResource("OVERLOAD_IS_NOT_USED", ValueStack[ValueStack.Depth-1].id.source_context); } break; case 848: // meth_modificator -> tkReintroduce { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 849: // meth_modificator -> tkOverride { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 850: // meth_modificator -> tkExtensionMethod { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 851: // meth_modificator -> tkVirtual { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 852: // property_modificator -> tkVirtual { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 853: // property_modificator -> tkOverride { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 854: // property_modificator -> tkAbstract { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 855: // property_modificator -> tkReintroduce { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 856: // property_specifier_directives -> tkRead { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 857: // property_specifier_directives -> tkWrite { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 858: // non_reserved -> tkName { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 859: // non_reserved -> tkNew { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 860: // visibility_specifier -> tkInternal { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 861: // visibility_specifier -> tkPublic { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 862: // visibility_specifier -> tkProtected { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 863: // visibility_specifier -> tkPrivate { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 864: // keyword -> visibility_specifier { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 865: // keyword -> tkSealed { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 866: // keyword -> tkTemplate { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 867: // keyword -> tkOr { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 868: // keyword -> tkTypeOf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 869: // keyword -> tkSizeOf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 870: // keyword -> tkDefault { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 871: // keyword -> tkWhere { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 872: // keyword -> tkXor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 873: // keyword -> tkAnd { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 874: // keyword -> tkDiv { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 875: // keyword -> tkMod { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 876: // keyword -> tkShl { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 877: // keyword -> tkShr { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 878: // keyword -> tkNot { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 879: // keyword -> tkAs { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 880: // keyword -> tkIn { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 881: // keyword -> tkIs { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 882: // keyword -> tkArray { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 883: // keyword -> tkSequence { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 884: // keyword -> tkBegin { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 885: // keyword -> tkCase { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 886: // keyword -> tkClass { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 887: // keyword -> tkConst { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 888: // keyword -> tkConstructor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 889: // keyword -> tkDestructor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 890: // keyword -> tkDownto { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 891: // keyword -> tkDo { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 892: // keyword -> tkElse { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 893: // keyword -> tkEnd { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 894: // keyword -> tkExcept { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 895: // keyword -> tkFile { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 896: // keyword -> tkAuto { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 897: // keyword -> tkFinalization { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 898: // keyword -> tkFinally { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 899: // keyword -> tkFor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 900: // keyword -> tkForeach { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 901: // keyword -> tkFunction { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 902: // keyword -> tkIf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 903: // keyword -> tkImplementation { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 904: // keyword -> tkInherited { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 905: // keyword -> tkInitialization { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 906: // keyword -> tkInterface { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 907: // keyword -> tkProcedure { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 908: // keyword -> tkProperty { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 909: // keyword -> tkRaise { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 910: // keyword -> tkRecord { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 911: // keyword -> tkRepeat { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 912: // keyword -> tkSet { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 913: // keyword -> tkTry { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 914: // keyword -> tkType { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 915: // keyword -> tkStatic { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 916: // keyword -> tkThen { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 917: // keyword -> tkTo { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 918: // keyword -> tkUntil { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 919: // keyword -> tkUses { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 920: // keyword -> tkVar { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 921: // keyword -> tkWhile { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 922: // keyword -> tkWith { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 923: // keyword -> tkNil { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 924: // keyword -> tkGoto { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 925: // keyword -> tkOf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 926: // keyword -> tkLabel { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 927: // keyword -> tkProgram { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 928: // keyword -> tkUnit { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 929: // keyword -> tkLibrary { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 930: // keyword -> tkNamespace { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 931: // keyword -> tkExternal { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 932: // keyword -> tkParams { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 933: // keyword -> tkEvent { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 934: // keyword -> tkYield { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 935: // keyword -> tkMatch { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 936: // keyword -> tkWhen { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 937: // keyword -> tkPartial { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 938: // keyword -> tkAbstract { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 939: // keyword -> tkLock { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 940: // keyword -> tkImplicit { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 941: // keyword -> tkExplicit { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 942: // keyword -> tkOn { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 943: // keyword -> tkVirtual { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 944: // keyword -> tkOverride { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 945: // keyword -> tkLoop { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 946: // keyword -> tkExtensionMethod { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 947: // keyword -> tkOverload { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 948: // keyword -> tkReintroduce { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 949: // keyword -> tkForward { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 950: // reserved_keyword -> tkOperator { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 951: // overload_operator -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 952: // overload_operator -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 953: // overload_operator -> tkSlash { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 954: // overload_operator -> tkStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 955: // overload_operator -> tkEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 956: // overload_operator -> tkGreater { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 957: // overload_operator -> tkGreaterEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 958: // overload_operator -> tkLower { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 959: // overload_operator -> tkLowerEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 960: // overload_operator -> tkNotEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 961: // overload_operator -> tkOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 962: // overload_operator -> tkXor { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 963: // overload_operator -> tkAnd { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 964: // overload_operator -> tkDiv { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 965: // overload_operator -> tkMod { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 966: // overload_operator -> tkShl { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 967: // overload_operator -> tkShr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 968: // overload_operator -> tkNot { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 969: // overload_operator -> tkIn { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 970: // overload_operator -> tkImplicit { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 971: // overload_operator -> tkExplicit { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 972: // overload_operator -> assign_operator { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 973: // overload_operator -> tkStarStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 974: // assign_operator -> tkAssign { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 975: // assign_operator -> tkPlusEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 976: // assign_operator -> tkMinusEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 977: // assign_operator -> tkMultEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 978: // assign_operator -> tkDivEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 979: // lambda_unpacked_params -> tkBackSlashRoundOpen, // lambda_list_of_unpacked_params_or_id, tkComma, // lambda_unpacked_params_or_id, tkRoundClose { // �?ез�?л�?�?а�? надо п�?исвои�?�? каком�? �?о са�?а�?ном�? пол�? в function_lambda_definition (ValueStack[ValueStack.Depth-4].ob as unpacked_list_of_ident_or_list).Add(ValueStack[ValueStack.Depth-2].ob as ident_or_list); CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-4].ob as unpacked_list_of_ident_or_list; } break; case 980: // lambda_unpacked_params_or_id -> lambda_unpacked_params { CurrentSemanticValue.ob = new ident_or_list(ValueStack[ValueStack.Depth-1].ex as unpacked_list_of_ident_or_list); } break; case 981: // lambda_unpacked_params_or_id -> identifier { CurrentSemanticValue.ob = new ident_or_list(ValueStack[ValueStack.Depth-1].id as ident); } break; case 982: // lambda_list_of_unpacked_params_or_id -> lambda_unpacked_params_or_id { CurrentSemanticValue.ob = new unpacked_list_of_ident_or_list(); (CurrentSemanticValue.ob as unpacked_list_of_ident_or_list).Add(ValueStack[ValueStack.Depth-1].ob as ident_or_list); (CurrentSemanticValue.ob as unpacked_list_of_ident_or_list).source_context = LocationStack[LocationStack.Depth-1]; } break; case 983: // lambda_list_of_unpacked_params_or_id -> lambda_list_of_unpacked_params_or_id, // tkComma, lambda_unpacked_params_or_id { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; (CurrentSemanticValue.ob as unpacked_list_of_ident_or_list).Add(ValueStack[ValueStack.Depth-1].ob as ident_or_list); (CurrentSemanticValue.ob as unpacked_list_of_ident_or_list).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-1]); } break; case 984: // expr_l1_or_unpacked -> expr_l1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 985: // expr_l1_or_unpacked -> lambda_unpacked_params { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 986: // expr_l1_or_unpacked_list -> expr_l1_or_unpacked { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 987: // expr_l1_or_unpacked_list -> expr_l1_or_unpacked_list, tkComma, // expr_l1_or_unpacked { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 988: // func_decl_lambda -> identifier, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]); var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]); //var sl = $3 as statement_list; //if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName($3, "Result") != null) // если э�?о б�?ло в�?�?ажение или ес�?�? пе�?еменная Result, �?о ав�?ов�?вод �?ипа CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); //else //$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, $3 as statement_list, @$); } break; case 989: // func_decl_lambda -> tkRoundOpen, tkRoundClose, lambda_type_ref_noproctype, // tkArrow, lambda_function_body { // �?дес�? надо анализи�?ова�?�? по �?ел�? и либо ос�?авля�?�? lambda_inferred_type, либо дела�?�? его null! var sl = ValueStack[ValueStack.Depth-1].stn as statement_list; if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // �?о надо в�?води�?�? CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, sl, CurrentLocationSpan); else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, sl, CurrentLocationSpan); } break; case 990: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]); var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-5].td, parametr_kind.none, null, loc), loc); var sl = ValueStack[ValueStack.Depth-1].stn as statement_list; if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // �?о надо в�?води�?�? CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, sl, CurrentLocationSpan); else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, sl, CurrentLocationSpan); } break; case 991: // func_decl_lambda -> tkRoundOpen, identifier, tkSemiColon, full_lambda_fp_list, // tkRoundClose, lambda_type_ref_noproctype, tkArrow, // lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]); var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new lambda_any_type_node_syntax(), null), parametr_kind.none, null, LocationStack[LocationStack.Depth-7]), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5])); for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).Count; i++) formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); var sl = ValueStack[ValueStack.Depth-1].stn as statement_list; if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // �?о надо в�?води�?�? CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, sl, CurrentLocationSpan); else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, sl, CurrentLocationSpan); } break; case 992: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkSemiColon, // full_lambda_fp_list, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-9].id, LocationStack[LocationStack.Depth-9]); var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7]); var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-7].td, parametr_kind.none, null, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5])); for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).Count; i++) formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); var sl = ValueStack[ValueStack.Depth-1].stn as statement_list; if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // �?о надо в�?води�?�? CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, sl, CurrentLocationSpan); else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, sl, CurrentLocationSpan); } break; case 993: // func_decl_lambda -> tkRoundOpen, expr_l1_or_unpacked, tkComma, // expr_l1_or_unpacked_list, lambda_type_ref, // optional_full_lambda_fp_list, tkRoundClose, rem_lambda { var pair = ValueStack[ValueStack.Depth-1].ob as pair_type_stlist; if (ValueStack[ValueStack.Depth-4].td is lambda_inferred_type) { // добавим с�?да \(x,y) // �?�?ой�?ис�? по всем expr_list1. �?сли �?о�?я б�? одна - �?ипа ident_or_list �?о пой�?и по э�?ой ве�?ке и в�?й�?и // �?беди�?�?ся, �?�?о $6 = null // с�?о�?ми�?ова�?�? List для unpacked_params и п�?исвои�?�? var has_unpacked = false; if (ValueStack[ValueStack.Depth-7].ex is unpacked_list_of_ident_or_list) has_unpacked = true; if (!has_unpacked) foreach (var x in (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions) { if (x is unpacked_list_of_ident_or_list) { has_unpacked = true; break; } } if (has_unpacked) // �?�?�? новая ве�?ка { if (ValueStack[ValueStack.Depth-3].stn != null) { parserTools.AddErrorFromResource("SEMICOLON_IN_PARAMS",LocationStack[LocationStack.Depth-3]); } var lst_ex = new List(); lst_ex.Add(ValueStack[ValueStack.Depth-7].ex as expression); foreach (var x in (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions) lst_ex.Add(x); function_lambda_definition fld = null; //= new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, //new lambda_inferred_type(new lambda_any_type_node_syntax(), @2), pair.exprs, @$); var sl1 = pair.exprs; if (sl1.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl1, "result") != null) // �?о надо в�?води�?�? fld = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, pair.tn, pair.exprs, CurrentLocationSpan); else fld = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, pair.exprs, CurrentLocationSpan); fld.unpacked_params = lst_ex; CurrentSemanticValue.ex = fld; return; } var formal_pars = new formal_parameters(); var idd = ValueStack[ValueStack.Depth-7].ex as ident; if (idd==null) parserTools.AddErrorFromResource("ONE_TKIDENTIFIER",LocationStack[LocationStack.Depth-7]); var lambda_inf_type = new lambda_inferred_type(new lambda_any_type_node_syntax(), null); var new_typed_pars = new typed_parameters(new ident_list(idd, idd.source_context), lambda_inf_type, parametr_kind.none, null, idd.source_context); formal_pars.Add(new_typed_pars); foreach (var id in (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions) { var idd1 = id as ident; if (idd1==null) parserTools.AddErrorFromResource("ONE_TKIDENTIFIER",id.source_context); lambda_inf_type = new lambda_inferred_type(new lambda_any_type_node_syntax(), null); new_typed_pars = new typed_parameters(new ident_list(idd1, idd1.source_context), lambda_inf_type, parametr_kind.none, null, idd1.source_context); formal_pars.Add(new_typed_pars); } if (ValueStack[ValueStack.Depth-3].stn != null) for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++) formal_pars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]); formal_pars.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]); var sl = pair.exprs; if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // �?о надо в�?води�?�? CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formal_pars, pair.tn, pair.exprs, CurrentLocationSpan); else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formal_pars, null, pair.exprs, CurrentLocationSpan); } else { var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); var idd = ValueStack[ValueStack.Depth-7].ex as ident; if (idd==null) parserTools.AddErrorFromResource("ONE_TKIDENTIFIER",LocationStack[LocationStack.Depth-7]); var idList = new ident_list(idd, loc); var iddlist = (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions; for (int j = 0; j < iddlist.Count; j++) { var idd2 = iddlist[j] as ident; if (idd2==null) parserTools.AddErrorFromResource("ONE_TKIDENTIFIER",idd2.source_context); idList.Add(idd2); } var parsType = ValueStack[ValueStack.Depth-4].td; var formalPars = new formal_parameters(new typed_parameters(idList, parsType, parametr_kind.none, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3])); if (ValueStack[ValueStack.Depth-3].stn != null) for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++) formalPars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]); var sl = pair.exprs; if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // �?о надо в�?води�?�? CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, pair.tn, pair.exprs, CurrentLocationSpan); else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, pair.exprs, CurrentLocationSpan); } } break; case 994: // func_decl_lambda -> lambda_unpacked_params, rem_lambda { var pair = ValueStack[ValueStack.Depth-1].ob as pair_type_stlist; // пока �?о�?мал�?н�?е па�?аме�?�?�? - null. Раск�?оем и�? са�?а�?н�?м визи�?о�?ом CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, new lambda_inferred_type(new lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-2]), pair.exprs, CurrentLocationSpan); // unpacked_params - э�?о для одного па�?аме�?�?а. �?ля нескол�?ки�? - надо д�?�?г�?�? с�?�?�?к�?�?�?�?. �?озможно, список списков var lst_ex = new List(); lst_ex.Add(ValueStack[ValueStack.Depth-2].ex as unpacked_list_of_ident_or_list); (CurrentSemanticValue.ex as function_lambda_definition).unpacked_params = lst_ex; } break; case 995: // func_decl_lambda -> expl_func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 996: // optional_full_lambda_fp_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 997: // optional_full_lambda_fp_list -> tkSemiColon, full_lambda_fp_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 998: // rem_lambda -> lambda_type_ref_noproctype, tkArrow, lambda_function_body { CurrentSemanticValue.ob = new pair_type_stlist(ValueStack[ValueStack.Depth-3].td,ValueStack[ValueStack.Depth-1].stn as statement_list); } break; case 999: // expl_func_decl_lambda -> tkFunction, lambda_type_ref_noproctype, tkArrow, // lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan); } break; case 1000: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, // lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan); } break; case 1001: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, full_lambda_fp_list, // tkRoundClose, lambda_type_ref_noproctype, tkArrow, // lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan); } break; case 1002: // expl_func_decl_lambda -> tkProcedure, tkArrow, lambda_procedure_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, ValueStack[ValueStack.Depth-1].stn as statement_list, 2, CurrentLocationSpan); } break; case 1003: // expl_func_decl_lambda -> tkProcedure, tkRoundOpen, tkRoundClose, tkArrow, // lambda_procedure_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, ValueStack[ValueStack.Depth-1].stn as statement_list, 2, CurrentLocationSpan); } break; case 1004: // expl_func_decl_lambda -> tkProcedure, tkRoundOpen, full_lambda_fp_list, // tkRoundClose, tkArrow, lambda_procedure_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), ValueStack[ValueStack.Depth-4].stn as formal_parameters, null, ValueStack[ValueStack.Depth-1].stn as statement_list, 2, CurrentLocationSpan); } break; case 1005: // full_lambda_fp_list -> lambda_simple_fp_sect { var typed_pars = ValueStack[ValueStack.Depth-1].stn as typed_parameters; if (typed_pars.vars_type is lambda_inferred_type) { CurrentSemanticValue.stn = new formal_parameters(); foreach (var id in typed_pars.idents.idents) { var lambda_inf_type = new lambda_inferred_type(new lambda_any_type_node_syntax(), null); var new_typed_pars = new typed_parameters(new ident_list(id, id.source_context), lambda_inf_type, parametr_kind.none, null, id.source_context); (CurrentSemanticValue.stn as formal_parameters).Add(new_typed_pars); } CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } else { CurrentSemanticValue.stn = new formal_parameters(typed_pars, CurrentLocationSpan); } } break; case 1006: // full_lambda_fp_list -> full_lambda_fp_list, tkSemiColon, lambda_simple_fp_sect { CurrentSemanticValue.stn =(ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; case 1007: // lambda_simple_fp_sect -> ident_list, lambda_type_ref { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-2].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan); } break; case 1008: // lambda_type_ref -> /* empty */ { CurrentSemanticValue.td = new lambda_inferred_type(new lambda_any_type_node_syntax(), null); } break; case 1009: // lambda_type_ref -> tkColon, fptype { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 1010: // lambda_type_ref_noproctype -> /* empty */ { CurrentSemanticValue.td = new lambda_inferred_type(new lambda_any_type_node_syntax(), null); } break; case 1011: // lambda_type_ref_noproctype -> tkColon, fptype_noproctype { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 1012: // common_lambda_body -> compound_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 1013: // common_lambda_body -> if_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1014: // common_lambda_body -> while_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1015: // common_lambda_body -> repeat_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1016: // common_lambda_body -> for_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1017: // common_lambda_body -> foreach_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1018: // common_lambda_body -> loop_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1019: // common_lambda_body -> case_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1020: // common_lambda_body -> try_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1021: // common_lambda_body -> lock_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1022: // common_lambda_body -> raise_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1023: // common_lambda_body -> yield_stmt { parserTools.AddErrorFromResource("YIELD_STATEMENT_CANNOT_BE_USED_IN_LAMBDA_BODY", CurrentLocationSpan); } break; case 1024: // common_lambda_body -> tkRoundOpen, assignment, tkRoundClose { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-2]); } break; case 1025: // lambda_function_body -> expr_l1_for_lambda { var id = SyntaxVisitors.HasNameVisitor.HasName(ValueStack[ValueStack.Depth-1].ex, "Result"); if (id != null) { parserTools.AddErrorFromResource("RESULT_IDENT_NOT_EXPECTED_IN_THIS_CONTEXT", id.source_context); } var sl = new statement_list(new assign("result",ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan),CurrentLocationSpan); // надо поме�?а�?�? е�?�? и assign как ав�?осгене�?и�?ованн�?й для лямбд�? - �?�?об�? зап�?е�?и�?�? явн�?й Result sl.expr_lambda_body = true; CurrentSemanticValue.stn = sl; } break; case 1026: // lambda_function_body -> common_lambda_body { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 1027: // lambda_procedure_body -> proc_call { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1028: // lambda_procedure_body -> assignment { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 1029: // lambda_procedure_body -> common_lambda_body { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; } } protected override string TerminalToString(int terminal) { if (aliasses != null && aliasses.ContainsKey(terminal)) return aliasses[terminal]; else if (((Tokens)terminal).ToString() != terminal.ToString(CultureInfo.InvariantCulture)) return ((Tokens)terminal).ToString(); else return CharToString((char)terminal); } } }