// cc.gr.gen.cc // *** DO NOT EDIT BY HAND *** // automatically generated by gramanl, from cc.gr // GLR source location information is enabled #include "cc.gr.gen.h" // CCParse #include "parsetables.h" // ParseTables #include "SourceLocation.h" // SourceLocation #include // assert #include // cout #include // abort static char const *termNames[] = { "TOK_EOF", // 0 "TOK_UNKNOWN", // 1 "TOK_EOM", // 2 "TOK_COMMENT", // 3 "TOK_NAME", // 4 "TOK_FLOAT_LITERAL", // 5 "TOK_INT_LITERAL", // 6 "TOK_CHAR_LITERAL", // 7 "TOK_STRING_LITERAL", // 8 "TOK_WIDE_STRING_LITERAL", // 9 "TOK_ANGLE_STRING_LITERAL", // 10 "TOK_LBRACKET", // 11 "TOK_RBRACKET", // 12 "TOK_LPAREN", // 13 "TOK_RPAREN", // 14 "TOK_LBRACE", // 15 "TOK_RBRACE", // 16 "TOK_DOT", // 17 "TOK_ELLIPSIS", // 18 "TOK_AND", // 19 "TOK_ANDAND", // 20 "TOK_ANDEQUAL", // 21 "TOK_STAR", // 22 "TOK_STAREQUAL", // 23 "TOK_PLUS", // 24 "TOK_PLUSPLUS", // 25 "TOK_PLUSEQUAL", // 26 "TOK_MINUS", // 27 "TOK_ARROW", // 28 "TOK_MINUSMINUS", // 29 "TOK_MINUSEQUAL", // 30 "TOK_TILDE", // 31 "TOK_BANG", // 32 "TOK_NOTEQUAL", // 33 "TOK_SLASH", // 34 "TOK_SLASHEQUAL", // 35 "TOK_PERCENT", // 36 "TOK_PERCENTEQUAL", // 37 "TOK_LESSTHAN", // 38 "TOK_LEFTSHIFT", // 39 "TOK_LESSEQ", // 40 "TOK_LEFTSHIFTEQUAL", // 41 "TOK_GREATERTHAN", // 42 "TOK_RIGHTSHIFT", // 43 "TOK_GREATEREQ", // 44 "TOK_RIGHTSHIFTEQUAL", // 45 "TOK_XOR", // 46 "TOK_XOREQUAL", // 47 "TOK_OR", // 48 "TOK_OROR", // 49 "TOK_OREQUAL", // 50 "TOK_QUESTION", // 51 "TOK_COLON", // 52 "TOK_SEMICOLON", // 53 "TOK_EQUAL", // 54 "TOK_EQUALEQUAL", // 55 "TOK_COMMA", // 56 "TOK_HASH", // 57 "TOK_HASH_HASH", // 58 "TOK_HASH_HAT", // 59 "TOK_DOTSTAR", // 60 "TOK_ARROWSTAR", // 61 "TOK_COLONCOLON", // 62 "TOK_AT", // 63 "TOK_MIN_OP", // 64 "TOK_MAX_OP", // 65 "TOK_AUTO", // 66 "TOK_BREAK", // 67 "TOK_CASE", // 68 "TOK_CHAR", // 69 "TOK_CONST", // 70 "TOK_CONTINUE", // 71 "TOK_DEFAULT", // 72 "TOK_DO", // 73 "TOK_DOUBLE", // 74 "TOK_ELSE", // 75 "TOK_ENUM", // 76 "TOK_EXTERN", // 77 "TOK_FLOAT", // 78 "TOK_FOR", // 79 "TOK_GOTO", // 80 "TOK_IF", // 81 "TOK_INLINE", // 82 "TOK_INT", // 83 "TOK_LONG", // 84 "TOK_REGISTER", // 85 "TOK_RESTRICT", // 86 "TOK_RETURN", // 87 "TOK_SHORT", // 88 "TOK_SIGNED", // 89 "TOK_SIZEOF", // 90 "TOK_STATIC", // 91 "TOK_STRUCT", // 92 "TOK_SWITCH", // 93 "TOK_TYPEDEF", // 94 "TOK_UNION", // 95 "TOK_UNSIGNED", // 96 "TOK_VOID", // 97 "TOK_VOLATILE", // 98 "TOK_WHILE", // 99 "TOK__BOOL", // 100 "TOK__COMPLEX", // 101 "TOK__IMAGINARY", // 102 "TOK_ASM", // 103 "TOK_BOOL", // 104 "TOK_CATCH", // 105 "TOK_CLASS", // 106 "TOK_CONST_CAST", // 107 "TOK_DELETE", // 108 "TOK_DYNAMIC_CAST", // 109 "TOK_EXPLICIT", // 110 "TOK_EXPORT", // 111 "TOK_FALSE", // 112 "TOK_FRIEND", // 113 "TOK_MUTABLE", // 114 "TOK_NAMESPACE", // 115 "TOK_NEW", // 116 "TOK_OPERATOR", // 117 "TOK_PRIVATE", // 118 "TOK_PROTECTED", // 119 "TOK_PUBLIC", // 120 "TOK_REINTERPRET_CAST", // 121 "TOK_STATIC_CAST", // 122 "TOK_TEMPLATE", // 123 "TOK_THIS", // 124 "TOK_THROW", // 125 "TOK_TRUE", // 126 "TOK_TRY", // 127 "TOK_TYPENAME", // 128 "TOK_TYPEID", // 129 "TOK_USING", // 130 "TOK_VIRTUAL", // 131 "TOK_WCHAR_T", // 132 "TOK_ALIGNOF", // 133 "TOK_AXIOM", // 134 "TOK_CHAR16_T", // 135 "TOK_CHAR32_T", // 136 "TOK_CONCEPT", // 137 "TOK_CONCEPT_MAP", // 138 "TOK_CONSTEXPR", // 139 "TOK_DECLTYPE", // 140 "TOK_LATE_CHECK", // 141 "TOK_NULLPTR", // 142 "TOK_REQUIRES", // 143 "TOK_STATIC_ASSERT", // 144 "TOK_THREAD_LOCAL", // 145 "TOK__DECIMAL32", // 146 "TOK__DECIMAL64", // 147 "TOK__DECIMAL128", // 148 "TOK__NULL", // 149 "TOK___ALIGNOF__", // 150 "TOK___OFFSETOF__", // 151 "TOK___ATTRIBUTE__", // 152 "TOK_BUILTIN_CHOOSE_EXPR", // 153 "TOK___BUILTIN_OFFSETOF", // 154 "TOK_BUILTIN_CONSTANT_P", // 155 "TOK_BUILTIN_TYPES_COMPATABLE_P", // 156 "TOK___BUILTIN_VA_START", // 157 "TOK___BUILTIN_VA_COPY", // 158 "TOK___BUILTIN_VA_ARG", // 159 "TOK___BUILTIN_VA_END", // 160 "TOK___BUILTIN_ALLOCA", // 161 "TOK___BUILTIN_EXPECT", // 162 "TOK___EXTENSION__", // 163 "TOK_IMAG", // 164 "TOK___LABEL__", // 165 "TOK_REAL", // 166 "TOK_THREAD", // 167 "TOK___TYPEOF__", // 168 "TOK_PREFER_REDUCE", // 169 "TOK_PREFER_SHIFT", // 170 "TOK___ACTIVE__", // 171 "TOK___EVENT__", // 172 "TOK___STATE__", // 173 }; sm::string CCParse::terminalDescription(int termId, SemanticValue sval) { return stringc << termNames[termId] << "(" << (sval % 100000) << ")"; } static char const *nontermNames[] = { "empty", // 0 "__EarlyStartSymbol", // 1 "File", // 2 "Identifier", // 3 "TranslationUnit", // 4 "PrimaryExpression", // 5 "Literal", // 6 "PreprocString", // 7 "StringLiteral", // 8 "IdExpression", // 9 "UnqualifiedId", // 10 "PQualifiedId", // 11 "ArgumentList", // 12 "PostfixExpression", // 13 "CtorExpressionType", // 14 "CastKeyword", // 15 "ExpressionList", // 16 "ExpressionListOpt", // 17 "UnaryExpression", // 18 "ColonColonOpt", // 19 "NewExpression", // 20 "NewPlacementOpt", // 21 "NewTypeId", // 22 "NewDeclaratorOpt", // 23 "DirectNewDeclarator", // 24 "NewInitializerOpt", // 25 "DeleteExpression", // 26 "NameAfterDot", // 27 "NAD1", // 28 "NAD2", // 29 "CastExpression", // 30 "BinExp_high", // 31 "BinExp_mid", // 32 "BinaryExpression", // 33 "ConditionalExpression", // 34 "AssignmentExpression", // 35 "AssignmentOperator", // 36 "Expression", // 37 "ExpressionOpt", // 38 "ConstantExpression", // 39 "ConstantExpressionOpt", // 40 "LabelAndColon", // 41 "Statement", // 42 "ExpressionStatement", // 43 "CompoundStatement", // 44 "CompoundStmtHelper", // 45 "Condition", // 46 "ConditionOpt", // 47 "ForInitStatement", // 48 "Declaration", // 49 "BlockDeclaration", // 50 "SimpleDeclaration", // 51 "DeclSpecifier", // 52 "ElaboratedOrSpecifier", // 53 "UberModifierSeq", // 54 "UberModifierSeqOpt", // 55 "UberTypeAndModifierSeqOpt", // 56 "UberCVQualifierSeq", // 57 "UberCVQualifierSeqOpt", // 58 "UberTypeAndCVQualifierSeqOpt", // 59 "UberModifier", // 60 "UberCVQualifier", // 61 "UberTypeKeyword", // 62 "ElaboratedTypeSpecifier", // 63 "TypeSpecifier", // 64 "PQTypeName", // 65 "PQTypeName_ncc", // 66 "PQTypeName_notfirst", // 67 "EnumSpecifier", // 68 "EnumeratorListOpt", // 69 "EnumeratorDefinition", // 70 "AsmDefinition", // 71 "LinkageSpecification", // 72 "InitDeclaratorList", // 73 "InitDeclarator", // 74 "Initializer", // 75 "SimpleInitializerClause", // 76 "InitializerClause", // 77 "CompoundInitializer", // 78 "CommaOpt", // 79 "InitializerList", // 80 "Declarator", // 81 "DirectDeclarator", // 82 "PQDtorName", // 83 "PtrToMemberName", // 84 "CVQualifierSeqOpt", // 85 "CVQualifierSeq", // 86 "CVQualifier", // 87 "TypeId", // 88 "AbstractDeclaratorOpt", // 89 "AbstractDeclarator", // 90 "DirectAbstractDeclaratorOpt", // 91 "DirectAbstractDeclarator", // 92 "ParameterDeclarationClause", // 93 "ParameterDeclarationList", // 94 "ParameterDeclaration", // 95 "ParameterDeclarator", // 96 "FunctionDefinition", // 97 "FDDeclarator", // 98 "FunctionBody", // 99 "CtorInitializerOpt", // 100 "ClassSpecifier", // 101 "ClassHeadNameOpt", // 102 "ClassHeadName", // 103 "ClassKey", // 104 "MemberDeclarationSeqOpt", // 105 "AccessSpecifier", // 106 "MemberDeclaration", // 107 "CDtorProtoDecl", // 108 "MemberDeclaratorList", // 109 "MemberDeclarator", // 110 "IdentifierOpt", // 111 "CDtorModifier", // 112 "CDtorModifierSeq", // 113 "BaseClauseOpt", // 114 "BaseSpecifierList", // 115 "BaseSpecifier", // 116 "VirtualOpt", // 117 "AccessSpecifierOpt", // 118 "PQClassName", // 119 "ConversionFunctionId", // 120 "ConversionTypeId", // 121 "ConversionDeclaratorOpt", // 122 "MemInitializerList", // 123 "MemInitializer", // 124 "MemInitializerId", // 125 "OperatorFunctionId", // 126 "Operator", // 127 "TemplateDeclaration", // 128 "TemplatePreamble", // 129 "TemplateParameterList", // 130 "TemplateParameterListContinuation", // 131 "ClassOrTypename", // 132 "DefaultTypeOpt", // 133 "DefaultTemplateOpt", // 134 "TemplateArgumentListOpt", // 135 "TemplateId", // 136 "TemplateArgumentList", // 137 "TemplateArgumentListTailOpt", // 138 "TemplateArgument", // 139 "ExplicitInstantiation", // 140 "TryBlock", // 141 "HandlerSeq", // 142 "Handler", // 143 "HandlerParameter", // 144 "UnqualifiedDeclarator", // 145 "ThrowExpression", // 146 "ExceptionSpecificationOpt", // 147 "TypeIdList", // 148 "NamespaceDefinition", // 149 "NamespaceDecl", // 150 "NamesAfterDot", // 151 "ParenthesizedExpression", // 152 "LabeledEmptyStatementList", // 153 "LabeledEmptyStatementListOpt", // 154 "TypeofTypeSpecifier", // 155 "TypeofExpr", // 156 "TypeofType", // 157 "BracketedWordOpt", // 158 "ParenthesizedExpressionOpt", // 159 "OpConstraint", // 160 "OpConstraintList", // 161 "OpConstraints", // 162 "DesignatorList", // 163 "Designator", // 164 "BuggyGccTypeModifier", // 165 "CVQualAttrSeqOpt", // 166 "CVQualAttrSeq", // 167 "CVQualAttr", // 168 "AttributeWord", // 169 "CommaSepExpressionListOpt", // 170 "AttributeParameters", // 171 "Attribute", // 172 "AttributeList", // 173 "AttributeSpecifier", // 174 "AttributeSpecifierList", // 175 "KandRFunctionDefinition", // 176 "KandRFunctionDefinition_implInt", // 177 "KandRSimpleDeclarationSeq", // 178 "KandRSimpleDeclaration", // 179 "KandRInitDeclaratorList", // 180 "KandRInitDeclarator", // 181 "KandRDeclarator", // 182 "KandRDirectDeclarator", // 183 "KandRIdExpression", // 184 "KandRIdentifierList", // 185 "KandRIdentifier", // 186 "CFuncModifier_no_inline", // 187 "CFuncModifier", // 188 "CFuncModifierSeq", // 189 "CFuncModifierSeqOpt", // 190 "ImplIntFunctionDefinition", // 191 "ImplicitIntTypeSpecifier", // 192 "ImplicitIntTypeId", // 193 "StateDefinition", // 194 "InitialState", // 195 "AndStateList", // 196 "StateEntryListOpt", // 197 "StateEntryList", // 198 "StateEntry", // 199 }; sm::string CCParse::nonterminalDescription(int nontermId, SemanticValue sval) { return stringc << nontermNames[nontermId] << "(" << (sval % 100000) << ")"; } char const *CCParse::terminalName(int termId) { return termNames[termId]; } char const *CCParse::nonterminalName(int nontermId) { return nontermNames[nontermId]; } bool isGlobalScopeQualified(PQName const *pq) { return pq->isPQ_qualifier() && pq->asPQ_qualifierC()->qualifier == NULL; } bool endsWithIdentifier(TypeSpecifier const *ts) { return ts->isTS_name() || ts->isTS_elaborated(); } // Filter out declarations of the form "TYPENAME ::NAME", since // other front-ends would regard the TYPENAME as a qualifier. // // The performance could be improved by doing static disambiguation, // however that is a little tricky because the productions involved // conflict with several rules, and I need to resolve conflicts with // just certain pairs of rules. So, until I implement a more // precise form of static disambiguation in Elkhound, I will just // resort to runtime filtering. bool keepDeclaration(Declaration const *d) { if (endsWithIdentifier(d->spec) && d->decllist->isNotEmpty()) { IDeclarator const *id = d->decllist->firstC()->decl; while (!id->isD_name()) { // skip past type constructors that come *after* the name; // if they come before, then they separate the :: from the // TYPENAME, and hence :: could be the global scope qualifier if (id->isD_func()) { id = id->asD_funcC()->base; } else if (id->isD_array()) { id = id->asD_arrayC()->base; } else { return true; // something precedes ::, so is ok } } if (isGlobalScopeQualified(id->asD_nameC()->name)) { TRACE("cancel", id->loc << ": TYPENAME ::NAME"); return false; } } return true; } #line 470 "cc.gr.gen.cc" // ------------------- actions ------------------ // [0] __EarlyStartSymbol[TranslationUnit*] -> top:File inline TranslationUnit* CCParse::action0___EarlyStartSymbol(SourceLocation loc, SourceLocation endloc, TranslationUnit* top) { return top; } // [1] File[TranslationUnit*] -> t:TranslationUnit inline TranslationUnit* CCParse::action1_File(SourceLocation loc, SourceLocation endloc, TranslationUnit* t) { return t; } #line 479 "cc.gr.gen.cc" // [2] Identifier[StringRef] -> n:TOK_NAME inline StringRef CCParse::action2_Identifier(SourceLocation loc, SourceLocation endloc, StringRef n) { return n; } #line 484 "cc.gr.gen.cc" // [3] TranslationUnit[TranslationUnit*] -> empty inline TranslationUnit* CCParse::action3_TranslationUnit(SourceLocation loc, SourceLocation endloc) { return new TranslationUnit(NULL); } #line 489 "cc.gr.gen.cc" // [4] TranslationUnit[TranslationUnit*] -> t:TranslationUnit d:Declaration inline TranslationUnit* CCParse::action4_TranslationUnit(SourceLocation loc, SourceLocation endloc, TranslationUnit* t, TopForm* d) { t->topForms.append(d); return t; } #line 494 "cc.gr.gen.cc" // [5] TranslationUnit[TranslationUnit*] -> t:TranslationUnit ; inline TranslationUnit* CCParse::action5_TranslationUnit(SourceLocation loc, SourceLocation endloc, TranslationUnit* t) { return t; } #line 499 "cc.gr.gen.cc" // [6] PrimaryExpression[Expression*] -> e:Literal inline Expression* CCParse::action6_PrimaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 504 "cc.gr.gen.cc" // [7] PrimaryExpression[Expression*] -> this inline Expression* CCParse::action7_PrimaryExpression(SourceLocation loc, SourceLocation endloc) { return new E_this(EXPR_LOC1(loc ENDLOCARG(endloc))); } #line 509 "cc.gr.gen.cc" // [8] PrimaryExpression[Expression*] -> ( e:Expression ) inline Expression* CCParse::action8_PrimaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_grouping(EXPR_LOC(loc ENDLOCARG(endloc)) e); } #line 514 "cc.gr.gen.cc" // [9] PrimaryExpression[Expression*] -> e:IdExpression inline Expression* CCParse::action9_PrimaryExpression(SourceLocation loc, SourceLocation endloc, PQName* e) { return new E_variable(EXPR_LOC(loc ENDLOCARG(endloc)) e); } #line 519 "cc.gr.gen.cc" // [10] PrimaryExpression[Expression*] -> ( cs:CompoundStatement ) inline Expression* CCParse::action10_PrimaryExpression(SourceLocation loc, SourceLocation endloc, S_compound* cs) { return new E_statement(loc ENDLOCARG(endloc), cs); } #line 524 "cc.gr.gen.cc" // [11] PrimaryExpression[Expression*] -> ( t:TypeId ) i:CompoundInitializer inline Expression* CCParse::action11_PrimaryExpression(SourceLocation loc, SourceLocation endloc, ASTTypeId* t, IN_compound* i) { return new E_compoundLit(loc ENDLOCARG(endloc), t, i); } #line 529 "cc.gr.gen.cc" // [12] PrimaryExpression[Expression*] -> __real__ e:PrimaryExpression inline Expression* CCParse::action12_PrimaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_fieldAcc(loc, endloc, e, new PQ_name(loc, endloc, str("__real__"))); } #line 534 "cc.gr.gen.cc" // [13] PrimaryExpression[Expression*] -> __imag__ e:PrimaryExpression inline Expression* CCParse::action13_PrimaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_fieldAcc(loc, endloc, e, new PQ_name(loc, endloc, str("__imag__"))); } #line 539 "cc.gr.gen.cc" // [14] Literal[Expression*] -> i:TOK_INT_LITERAL inline Expression* CCParse::action14_Literal(SourceLocation loc, SourceLocation endloc, StringRef i) { return new E_intLit(EXPR_LOC(loc ENDLOCARG(endloc)) i); } #line 544 "cc.gr.gen.cc" // [15] Literal[Expression*] -> f:TOK_FLOAT_LITERAL inline Expression* CCParse::action15_Literal(SourceLocation loc, SourceLocation endloc, StringRef f) { return new E_floatLit(EXPR_LOC(loc ENDLOCARG(endloc)) f); } #line 549 "cc.gr.gen.cc" // [16] Literal[Expression*] -> s:StringLiteral inline Expression* CCParse::action16_Literal(SourceLocation loc, SourceLocation endloc, E_stringLit* s) { return s; } #line 554 "cc.gr.gen.cc" // [17] Literal[Expression*] -> c:TOK_CHAR_LITERAL inline Expression* CCParse::action17_Literal(SourceLocation loc, SourceLocation endloc, StringRef c) { return new E_charLit(EXPR_LOC(loc ENDLOCARG(endloc)) c); } #line 559 "cc.gr.gen.cc" // [18] Literal[Expression*] -> true inline Expression* CCParse::action18_Literal(SourceLocation loc, SourceLocation endloc) { return new E_boolLit(EXPR_LOC(loc ENDLOCARG(endloc)) true); } #line 564 "cc.gr.gen.cc" // [19] Literal[Expression*] -> false inline Expression* CCParse::action19_Literal(SourceLocation loc, SourceLocation endloc) { return new E_boolLit(EXPR_LOC(loc ENDLOCARG(endloc)) false); } #line 569 "cc.gr.gen.cc" // [20] PreprocString[StringRef] -> s:TOK_STRING_LITERAL inline StringRef CCParse::action20_PreprocString(SourceLocation loc, SourceLocation endloc, StringRef s) { return s; } #line 574 "cc.gr.gen.cc" // [21] StringLiteral[E_stringLit*] -> s:PreprocString inline E_stringLit* CCParse::action21_StringLiteral(SourceLocation loc, SourceLocation endloc, StringRef s) { return new E_stringLit(EXPR_LOC(loc ENDLOCARG(endloc)) s); } #line 579 "cc.gr.gen.cc" // [22] StringLiteral[E_stringLit*] -> s:PreprocString cont:StringLiteral inline E_stringLit* CCParse::action22_StringLiteral(SourceLocation loc, SourceLocation endloc, StringRef s, E_stringLit* cont) { return new E_stringLit(EXPR_LOC(loc ENDLOCARG(endloc)) s, cont); } #line 584 "cc.gr.gen.cc" // [23] IdExpression[PQName*] -> id:PQualifiedId inline PQName* CCParse::action23_IdExpression(SourceLocation loc, SourceLocation endloc, PQName* id) { return id; } #line 589 "cc.gr.gen.cc" // [24] IdExpression[PQName*] -> :: id:PQualifiedId %prec(195) inline PQName* CCParse::action24_IdExpression(SourceLocation loc, SourceLocation endloc, PQName* id) { return new PQ_qualifier(loc, endloc, NULL /*qualifier*/, NULL /*targs*/, id); } #line 594 "cc.gr.gen.cc" // [25] UnqualifiedId[PQName*] -> id:Identifier inline PQName* CCParse::action25_UnqualifiedId(SourceLocation loc, SourceLocation endloc, StringRef id) { return new PQ_name(loc, endloc, id); } #line 599 "cc.gr.gen.cc" // [26] UnqualifiedId[PQName*] -> on:OperatorFunctionId inline PQName* CCParse::action26_UnqualifiedId(SourceLocation loc, SourceLocation endloc, OperatorName* on) { return new PQ_operator(loc, endloc, on, str(on->getOperatorName())); } #line 604 "cc.gr.gen.cc" // [27] UnqualifiedId[PQName*] -> on:ConversionFunctionId inline PQName* CCParse::action27_UnqualifiedId(SourceLocation loc, SourceLocation endloc, OperatorName* on) { return new PQ_operator(loc, endloc, on, str(on->getOperatorName())); } #line 609 "cc.gr.gen.cc" // [28] UnqualifiedId[PQName*] -> id:TemplateId inline PQName* CCParse::action28_UnqualifiedId(SourceLocation loc, SourceLocation endloc, PQ_template* id) { return id; } #line 614 "cc.gr.gen.cc" // [29] PQualifiedId[PQName*] -> id:UnqualifiedId %prec(195) inline PQName* CCParse::action29_PQualifiedId(SourceLocation loc, SourceLocation endloc, PQName* id) { return id; } #line 619 "cc.gr.gen.cc" // [30] PQualifiedId[PQName*] -> n:Identifier :: id:PQualifiedId %prec(195) inline PQName* CCParse::action30_PQualifiedId(SourceLocation loc, SourceLocation endloc, StringRef n, PQName* id) { return new PQ_qualifier(loc, endloc, n, NULL /*targs*/, id); } #line 624 "cc.gr.gen.cc" // [31] PQualifiedId[PQName*] -> n:Identifier < targs:TemplateArgumentListOpt > :: id:PQualifiedId %prec(195) inline PQName* CCParse::action31_PQualifiedId(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* targs, PQName* id) { return new PQ_qualifier(loc, endloc, n, targs, id); } #line 629 "cc.gr.gen.cc" // [32] PQualifiedId[PQName*] -> template n:Identifier < targs:TemplateArgumentListOpt > :: id:PQualifiedId %prec(195) inline PQName* CCParse::action32_PQualifiedId(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* targs, PQName* id) { return new PQ_qualifier(loc, endloc, n, templateUsed(targs), id); } #line 634 "cc.gr.gen.cc" // [33] ArgumentList[FakeList*] -> ( e:ExpressionListOpt ) inline FakeList* CCParse::action33_ArgumentList(SourceLocation loc, SourceLocation endloc, FakeList* e) { return e; } #line 639 "cc.gr.gen.cc" // [34] PostfixExpression[Expression*] -> e:PrimaryExpression inline Expression* CCParse::action34_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 644 "cc.gr.gen.cc" // [35] PostfixExpression[Expression*] -> a:PostfixExpression [ e:Expression ] inline Expression* CCParse::action35_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* a, Expression* e) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) a, BIN_BRACKETS, e); } #line 649 "cc.gr.gen.cc" // [36] PostfixExpression[Expression*] -> f:PostfixExpression a:ArgumentList inline Expression* CCParse::action36_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* f, FakeList* a) { return new E_funCall(EXPR_LOC(loc ENDLOCARG(endloc)) f, a); } #line 654 "cc.gr.gen.cc" // [37] PostfixExpression[Expression*] -> typename t:IdExpression a:ArgumentList inline Expression* CCParse::action37_PostfixExpression(SourceLocation loc, SourceLocation endloc, PQName* t, FakeList* a) { return new E_constructor(loc, endloc, new TS_name(loc, endloc, t, true /*typenameUsed*/), a); } #line 660 "cc.gr.gen.cc" // [38] PostfixExpression[Expression*] -> spec:CtorExpressionType a:ArgumentList inline Expression* CCParse::action38_PostfixExpression(SourceLocation loc, SourceLocation endloc, TypeSpecifier* spec, FakeList* a) { return new E_constructor(EXPR_LOC(loc ENDLOCARG(endloc)) spec, a); } #line 665 "cc.gr.gen.cc" // [39] PostfixExpression[Expression*] -> p:PostfixExpression . n:NameAfterDot inline Expression* CCParse::action39_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* p, PQName* n) { return new E_fieldAcc(EXPR_LOC(loc ENDLOCARG(endloc)) p, n); } #line 670 "cc.gr.gen.cc" // [40] PostfixExpression[Expression*] -> p:PostfixExpression -> n:NameAfterDot inline Expression* CCParse::action40_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* p, PQName* n) { return new E_arrow(EXPR_LOC(loc ENDLOCARG(endloc)) p, n); } #line 675 "cc.gr.gen.cc" // [41] PostfixExpression[Expression*] -> p:PostfixExpression ++ inline Expression* CCParse::action41_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* p) { return new E_effect(EXPR_LOC(loc ENDLOCARG(endloc)) EFF_POSTINC, p); } #line 680 "cc.gr.gen.cc" // [42] PostfixExpression[Expression*] -> p:PostfixExpression -- inline Expression* CCParse::action42_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* p) { return new E_effect(EXPR_LOC(loc ENDLOCARG(endloc)) EFF_POSTDEC, p); } #line 685 "cc.gr.gen.cc" // [43] PostfixExpression[Expression*] -> k:CastKeyword < t:TypeId > ( e:Expression ) inline Expression* CCParse::action43_PostfixExpression(SourceLocation loc, SourceLocation endloc, CastKeyword k, ASTTypeId* t, Expression* e) { return new E_keywordCast(EXPR_LOC(loc ENDLOCARG(endloc)) k, t, e); } #line 690 "cc.gr.gen.cc" // [44] PostfixExpression[Expression*] -> typeid ( e:Expression ) inline Expression* CCParse::action44_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_typeidExpr(EXPR_LOC(loc ENDLOCARG(endloc)) e); } #line 695 "cc.gr.gen.cc" // [45] PostfixExpression[Expression*] -> typeid ( t:TypeId ) inline Expression* CCParse::action45_PostfixExpression(SourceLocation loc, SourceLocation endloc, ASTTypeId* t) { return new E_typeidType(EXPR_LOC(loc ENDLOCARG(endloc)) t); } #line 700 "cc.gr.gen.cc" // [46] PostfixExpression[Expression*] -> __builtin_constant_p pe:ParenthesizedExpression inline Expression* CCParse::action46_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* pe) { return new E___builtin_constant_p(loc ENDLOCARG(endloc), pe); } #line 705 "cc.gr.gen.cc" // [47] PostfixExpression[Expression*] -> __alignof__ ( t:TypeId ) inline Expression* CCParse::action47_PostfixExpression(SourceLocation loc, SourceLocation endloc, ASTTypeId* t) { return new E_alignofType(loc ENDLOCARG(endloc), t); } #line 710 "cc.gr.gen.cc" // [48] PostfixExpression[Expression*] -> __alignof__ ( e:Expression ) inline Expression* CCParse::action48_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_alignofExpr(loc ENDLOCARG(endloc), e); } #line 715 "cc.gr.gen.cc" // [49] PostfixExpression[Expression*] -> __builtin_offsetof ( t:TypeId , n:NamesAfterDot ) inline Expression* CCParse::action49_PostfixExpression(SourceLocation loc, SourceLocation endloc, ASTTypeId* t, Expression* n) { // just create "(unsigned long) &((t*)0)->n)" // Create the ASTTypeId to represent the pointer-to-t // dmandelin@mozilla.com -- Need to clone the type before modifying. // Otherwise, the mod can get run more than once when in an ambiguous // context, which would make t be pointer-to-pointer-to-t. t = t->clone(); t->decl->decl = new D_pointer(loc, endloc, CV_NONE, t->decl->decl); ASTTypeId *ulong = new ASTTypeId(new TS_simple(loc, endloc, ST_UNSIGNED_INT), new Declarator(new D_name(loc, endloc, NULL), NULL)); // dmandelin@mozilla.com bug 416051 Expression *einner = n; while (E_fieldAcc *fa = einner->ifE_fieldAcc()) { einner = fa->obj; } E_arrow *inner = einner->asE_arrow(); inner->loc = loc; inner->endloc = endloc; inner->obj = new E_cast(loc ENDLOCARG(endloc), t, new E_intLit(loc ENDLOCARG(endloc), "0")); return new E_cast(loc ENDLOCARG(endloc), ulong, (new E_addrOf(loc ENDLOCARG(endloc), n))); } #line 746 "cc.gr.gen.cc" // [50] PostfixExpression[Expression*] -> __offsetof__ ( e:Expression ) inline Expression* CCParse::action50_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_grouping(loc ENDLOCARG(endloc), e); } #line 751 "cc.gr.gen.cc" // [51] PostfixExpression[Expression*] -> __builtin_expect ( e:Expression , Expression ) inline Expression* CCParse::action51_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_grouping(loc ENDLOCARG(endloc), e); } #line 756 "cc.gr.gen.cc" // [52] PostfixExpression[Expression*] -> __builtin_va_start ( e:Expression , e2:Expression ) inline Expression* CCParse::action52_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e, Expression* e2) { return new E___builtin_va_start(loc ENDLOCARG(endloc), e, e2); } #line 761 "cc.gr.gen.cc" // [53] PostfixExpression[Expression*] -> __builtin_va_copy ( e:Expression , e2:Expression ) inline Expression* CCParse::action53_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e, Expression* e2) { return new E___builtin_va_copy(loc ENDLOCARG(endloc), e, e2); } #line 766 "cc.gr.gen.cc" // [54] PostfixExpression[Expression*] -> __builtin_va_arg ( e:Expression , t:TypeId ) inline Expression* CCParse::action54_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e, ASTTypeId* t) { return new E___builtin_va_arg(loc ENDLOCARG(endloc), e, t); } #line 771 "cc.gr.gen.cc" // [55] PostfixExpression[Expression*] -> __builtin_va_end ( e:Expression ) inline Expression* CCParse::action55_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E___builtin_va_end(loc ENDLOCARG(endloc), e); } #line 776 "cc.gr.gen.cc" // [56] PostfixExpression[Expression*] -> __builtin_alloca ( e:Expression ) inline Expression* CCParse::action56_PostfixExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E___builtin_alloca(loc ENDLOCARG(endloc), e); } #line 781 "cc.gr.gen.cc" // [57] CtorExpressionType[TypeSpecifier*] -> n:PQTypeName inline TypeSpecifier* CCParse::action57_CtorExpressionType(SourceLocation loc, SourceLocation endloc, PQName* n) { return new TS_name(loc, endloc, n, false /*typename*/); } #line 786 "cc.gr.gen.cc" // [58] CtorExpressionType[TypeSpecifier*] -> char inline TypeSpecifier* CCParse::action58_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_CHAR); } #line 791 "cc.gr.gen.cc" // [59] CtorExpressionType[TypeSpecifier*] -> wchar_t inline TypeSpecifier* CCParse::action59_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_WCHAR_T); } #line 796 "cc.gr.gen.cc" // [60] CtorExpressionType[TypeSpecifier*] -> bool inline TypeSpecifier* CCParse::action60_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_BOOL); } #line 801 "cc.gr.gen.cc" // [61] CtorExpressionType[TypeSpecifier*] -> short inline TypeSpecifier* CCParse::action61_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_SHORT_INT); } #line 806 "cc.gr.gen.cc" // [62] CtorExpressionType[TypeSpecifier*] -> int inline TypeSpecifier* CCParse::action62_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_INT); } #line 811 "cc.gr.gen.cc" // [63] CtorExpressionType[TypeSpecifier*] -> long inline TypeSpecifier* CCParse::action63_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_LONG_INT); } #line 816 "cc.gr.gen.cc" // [64] CtorExpressionType[TypeSpecifier*] -> signed inline TypeSpecifier* CCParse::action64_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_INT); } #line 821 "cc.gr.gen.cc" // [65] CtorExpressionType[TypeSpecifier*] -> unsigned inline TypeSpecifier* CCParse::action65_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_UNSIGNED_INT); } #line 826 "cc.gr.gen.cc" // [66] CtorExpressionType[TypeSpecifier*] -> float inline TypeSpecifier* CCParse::action66_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_FLOAT); } #line 831 "cc.gr.gen.cc" // [67] CtorExpressionType[TypeSpecifier*] -> double inline TypeSpecifier* CCParse::action67_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_DOUBLE); } #line 836 "cc.gr.gen.cc" // [68] CtorExpressionType[TypeSpecifier*] -> void inline TypeSpecifier* CCParse::action68_CtorExpressionType(SourceLocation loc, SourceLocation endloc) { return new TS_simple(loc, endloc, ST_VOID); } #line 841 "cc.gr.gen.cc" // [69] CastKeyword[CastKeyword] -> dynamic_cast inline CastKeyword CCParse::action69_CastKeyword(SourceLocation loc, SourceLocation endloc) { return CK_DYNAMIC; } #line 846 "cc.gr.gen.cc" // [70] CastKeyword[CastKeyword] -> static_cast inline CastKeyword CCParse::action70_CastKeyword(SourceLocation loc, SourceLocation endloc) { return CK_STATIC; } #line 851 "cc.gr.gen.cc" // [71] CastKeyword[CastKeyword] -> reinterpret_cast inline CastKeyword CCParse::action71_CastKeyword(SourceLocation loc, SourceLocation endloc) { return CK_REINTERPRET; } #line 856 "cc.gr.gen.cc" // [72] CastKeyword[CastKeyword] -> const_cast inline CastKeyword CCParse::action72_CastKeyword(SourceLocation loc, SourceLocation endloc) { return CK_CONST; } #line 861 "cc.gr.gen.cc" // [73] ExpressionList[FakeList*] -> a:AssignmentExpression inline FakeList* CCParse::action73_ExpressionList(SourceLocation loc, SourceLocation endloc, Expression* a) { return FakeList::makeList(new ArgExpression(a)); } #line 866 "cc.gr.gen.cc" // [74] ExpressionList[FakeList*] -> a:AssignmentExpression , e:ExpressionList inline FakeList* CCParse::action74_ExpressionList(SourceLocation loc, SourceLocation endloc, Expression* a, FakeList* e) { ArgExpression *aa = new ArgExpression(a); aa->setNext(e->first()); return FakeList::makeList(aa); } #line 873 "cc.gr.gen.cc" // [75] ExpressionListOpt[FakeList*] -> empty inline FakeList* CCParse::action75_ExpressionListOpt(SourceLocation loc, SourceLocation endloc) { return FakeList::emptyList(); } #line 878 "cc.gr.gen.cc" // [76] ExpressionListOpt[FakeList*] -> e:ExpressionList inline FakeList* CCParse::action76_ExpressionListOpt(SourceLocation loc, SourceLocation endloc, FakeList* e) { return e; } #line 883 "cc.gr.gen.cc" // [77] UnaryExpression[Expression*] -> e:PostfixExpression inline Expression* CCParse::action77_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 888 "cc.gr.gen.cc" // [78] UnaryExpression[Expression*] -> ++ e:CastExpression inline Expression* CCParse::action78_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_effect(EXPR_LOC(loc ENDLOCARG(endloc)) EFF_PREINC, e); } #line 893 "cc.gr.gen.cc" // [79] UnaryExpression[Expression*] -> -- e:CastExpression inline Expression* CCParse::action79_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_effect(EXPR_LOC(loc ENDLOCARG(endloc)) EFF_PREDEC, e); } #line 898 "cc.gr.gen.cc" // [80] UnaryExpression[Expression*] -> sizeof e:UnaryExpression inline Expression* CCParse::action80_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_sizeof(EXPR_LOC(loc ENDLOCARG(endloc)) e); } #line 903 "cc.gr.gen.cc" // [81] UnaryExpression[Expression*] -> e:DeleteExpression inline Expression* CCParse::action81_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 908 "cc.gr.gen.cc" // [82] UnaryExpression[Expression*] -> * e:CastExpression %prec(110) inline Expression* CCParse::action82_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_deref(EXPR_LOC(loc ENDLOCARG(endloc)) e); } #line 913 "cc.gr.gen.cc" // [83] UnaryExpression[Expression*] -> & e:CastExpression %prec(60) inline Expression* CCParse::action83_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_addrOf(EXPR_LOC(loc ENDLOCARG(endloc)) e); } #line 918 "cc.gr.gen.cc" // [84] UnaryExpression[Expression*] -> + e:CastExpression %prec(100) inline Expression* CCParse::action84_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_unary(EXPR_LOC(loc ENDLOCARG(endloc)) UNY_PLUS, e); } #line 923 "cc.gr.gen.cc" // [85] UnaryExpression[Expression*] -> - e:CastExpression %prec(100) inline Expression* CCParse::action85_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_unary(EXPR_LOC(loc ENDLOCARG(endloc)) UNY_MINUS, e); } #line 928 "cc.gr.gen.cc" // [86] UnaryExpression[Expression*] -> ! e:CastExpression inline Expression* CCParse::action86_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_unary(EXPR_LOC(loc ENDLOCARG(endloc)) UNY_NOT, e); } #line 933 "cc.gr.gen.cc" // [87] UnaryExpression[Expression*] -> ~ e:CastExpression inline Expression* CCParse::action87_UnaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_unary(EXPR_LOC(loc ENDLOCARG(endloc)) UNY_BITNOT, e); } #line 938 "cc.gr.gen.cc" // [88] UnaryExpression[Expression*] -> sizeof ( t:TypeId ) inline Expression* CCParse::action88_UnaryExpression(SourceLocation loc, SourceLocation endloc, ASTTypeId* t) { return new E_sizeofType(EXPR_LOC(loc ENDLOCARG(endloc)) t); } #line 943 "cc.gr.gen.cc" // [89] UnaryExpression[Expression*] -> e:NewExpression inline Expression* CCParse::action89_UnaryExpression(SourceLocation loc, SourceLocation endloc, E_new* e) { return e; } #line 948 "cc.gr.gen.cc" // [90] UnaryExpression[Expression*] -> && n:Identifier %prec(30) inline Expression* CCParse::action90_UnaryExpression(SourceLocation loc, SourceLocation endloc, StringRef n) { return new E_addrOfLabel(loc ENDLOCARG(endloc), n); } #line 953 "cc.gr.gen.cc" // [91] ColonColonOpt[bool] -> empty inline bool CCParse::action91_ColonColonOpt(SourceLocation loc, SourceLocation endloc) { return false; } #line 958 "cc.gr.gen.cc" // [92] ColonColonOpt[bool] -> :: %prec(195) inline bool CCParse::action92_ColonColonOpt(SourceLocation loc, SourceLocation endloc) { return true; } #line 963 "cc.gr.gen.cc" // [93] NewExpression[E_new*] -> c:ColonColonOpt new p:NewPlacementOpt t:NewTypeId i:NewInitializerOpt inline E_new* CCParse::action93_NewExpression(SourceLocation loc, SourceLocation endloc, bool c, FakeList* p, ASTTypeId* t, ArgExpressionListOpt* i) { return new E_new(EXPR_LOC(loc ENDLOCARG(endloc)) c, p, t, i); } #line 968 "cc.gr.gen.cc" // [94] NewExpression[E_new*] -> c:ColonColonOpt new p:NewPlacementOpt ( t:TypeId ) i:NewInitializerOpt inline E_new* CCParse::action94_NewExpression(SourceLocation loc, SourceLocation endloc, bool c, FakeList* p, ASTTypeId* t, ArgExpressionListOpt* i) { return new E_new(EXPR_LOC(loc ENDLOCARG(endloc)) c, p, t, i); } #line 973 "cc.gr.gen.cc" // [95] NewPlacementOpt[FakeList*] -> empty inline FakeList* CCParse::action95_NewPlacementOpt(SourceLocation loc, SourceLocation endloc) { return FakeList::emptyList(); } #line 978 "cc.gr.gen.cc" // [96] NewPlacementOpt[FakeList*] -> ( lst:ExpressionList ) inline FakeList* CCParse::action96_NewPlacementOpt(SourceLocation loc, SourceLocation endloc, FakeList* lst) { return lst; } #line 983 "cc.gr.gen.cc" // [97] NewTypeId[ASTTypeId*] -> spec:TypeSpecifier decl:NewDeclaratorOpt inline ASTTypeId* CCParse::action97_NewTypeId(SourceLocation loc, SourceLocation endloc, TypeSpecifier* spec, IDeclarator* decl) { return new ASTTypeId(spec, new Declarator(decl, NULL)); } #line 988 "cc.gr.gen.cc" // [98] NewDeclaratorOpt[IDeclarator*] -> empty inline IDeclarator* CCParse::action98_NewDeclaratorOpt(SourceLocation loc, SourceLocation endloc) { return new D_name(loc, endloc, NULL); } #line 993 "cc.gr.gen.cc" // [99] NewDeclaratorOpt[IDeclarator*] -> * cv:CVQualifierSeqOpt d:NewDeclaratorOpt %prec(110) inline IDeclarator* CCParse::action99_NewDeclaratorOpt(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, IDeclarator* d) { return new D_pointer(loc, endloc, cv, d); } #line 998 "cc.gr.gen.cc" // [100] NewDeclaratorOpt[IDeclarator*] -> n:PtrToMemberName * cv:CVQualifierSeqOpt d:NewDeclaratorOpt %prec(110) inline IDeclarator* CCParse::action100_NewDeclaratorOpt(SourceLocation loc, SourceLocation endloc, PQName* n, enum CVFlags cv, IDeclarator* d) { return new D_ptrToMember(loc, endloc, n, cv, d); } #line 1003 "cc.gr.gen.cc" // [101] NewDeclaratorOpt[IDeclarator*] -> d:DirectNewDeclarator inline IDeclarator* CCParse::action101_NewDeclaratorOpt(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return d; } #line 1008 "cc.gr.gen.cc" // [102] DirectNewDeclarator[IDeclarator*] -> [ sz:Expression ] inline IDeclarator* CCParse::action102_DirectNewDeclarator(SourceLocation loc, SourceLocation endloc, Expression* sz) { return new_D_array(loc, endloc, new D_name(loc, endloc, NULL), sz); } #line 1013 "cc.gr.gen.cc" // [103] DirectNewDeclarator[IDeclarator*] -> d:DirectNewDeclarator [ sz:ConstantExpression ] inline IDeclarator* CCParse::action103_DirectNewDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, Expression* sz) { return new_D_array(loc, endloc, d, sz); } #line 1018 "cc.gr.gen.cc" // [104] NewInitializerOpt[ArgExpressionListOpt*] -> empty inline ArgExpressionListOpt* CCParse::action104_NewInitializerOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 1023 "cc.gr.gen.cc" // [105] NewInitializerOpt[ArgExpressionListOpt*] -> ( lst:ExpressionListOpt ) inline ArgExpressionListOpt* CCParse::action105_NewInitializerOpt(SourceLocation loc, SourceLocation endloc, FakeList* lst) { return new ArgExpressionListOpt(lst); } #line 1028 "cc.gr.gen.cc" // [106] DeleteExpression[Expression*] -> c:ColonColonOpt delete e:CastExpression inline Expression* CCParse::action106_DeleteExpression(SourceLocation loc, SourceLocation endloc, bool c, Expression* e) { return new E_delete(EXPR_LOC(loc ENDLOCARG(endloc)) c, false /*array*/, e); } #line 1033 "cc.gr.gen.cc" // [107] DeleteExpression[Expression*] -> c:ColonColonOpt delete [ ] e:CastExpression inline Expression* CCParse::action107_DeleteExpression(SourceLocation loc, SourceLocation endloc, bool c, Expression* e) { return new E_delete(EXPR_LOC(loc ENDLOCARG(endloc)) c, true /*array*/, e); } #line 1038 "cc.gr.gen.cc" // [108] NameAfterDot[PQName*] -> n:NAD1 inline PQName* CCParse::action108_NameAfterDot(SourceLocation loc, SourceLocation endloc, PQName* n) { return n; } #line 1043 "cc.gr.gen.cc" // [109] NameAfterDot[PQName*] -> :: n:NAD2 %prec(195) inline PQName* CCParse::action109_NameAfterDot(SourceLocation loc, SourceLocation endloc, PQName* n) { return new PQ_qualifier(loc, endloc, NULL /*qualifier*/, NULL /*targs*/, n); } #line 1048 "cc.gr.gen.cc" // [110] NAD1[PQName*] -> n:NAD2 inline PQName* CCParse::action110_NAD1(SourceLocation loc, SourceLocation endloc, PQName* n) { return n; } #line 1053 "cc.gr.gen.cc" // [111] NAD1[PQName*] -> template n:Identifier < list:TemplateArgumentListOpt > inline PQName* CCParse::action111_NAD1(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* list) { return new PQ_template(loc, endloc, n, templateUsed(list)); } #line 1058 "cc.gr.gen.cc" // [112] NAD1[PQName*] -> ~ n:Identifier inline PQName* CCParse::action112_NAD1(SourceLocation loc, SourceLocation endloc, StringRef n) { return new PQ_name(loc, endloc, str(stringc << "~" << n)); } #line 1063 "cc.gr.gen.cc" // [113] NAD1[PQName*] -> ~ n:Identifier < list:TemplateArgumentListOpt > inline PQName* CCParse::action113_NAD1(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* list) { return new PQ_template(loc, endloc, str(stringc << "~" << n), list); } #line 1068 "cc.gr.gen.cc" // [114] NAD1[PQName*] -> on:ConversionFunctionId inline PQName* CCParse::action114_NAD1(SourceLocation loc, SourceLocation endloc, OperatorName* on) { return new PQ_operator(loc, endloc, on, str(on->getOperatorName())); } #line 1073 "cc.gr.gen.cc" // [115] NAD1[PQName*] -> template n:Identifier < list:TemplateArgumentListOpt > :: rest:NAD1 %prec(195) inline PQName* CCParse::action115_NAD1(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* list, PQName* rest) { return new PQ_qualifier(loc, endloc, n, templateUsed(list), rest); } #line 1078 "cc.gr.gen.cc" // [116] NAD2[PQName*] -> n:Identifier < list:TemplateArgumentListOpt > inline PQName* CCParse::action116_NAD2(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* list) { return new PQ_template(loc, endloc, n, list); } #line 1083 "cc.gr.gen.cc" // [117] NAD2[PQName*] -> n:Identifier inline PQName* CCParse::action117_NAD2(SourceLocation loc, SourceLocation endloc, StringRef n) { return new PQ_name(loc, endloc, n); } #line 1088 "cc.gr.gen.cc" // [118] NAD2[PQName*] -> on:OperatorFunctionId inline PQName* CCParse::action118_NAD2(SourceLocation loc, SourceLocation endloc, OperatorName* on) { return new PQ_operator(loc, endloc, on, str(on->getOperatorName())); } #line 1093 "cc.gr.gen.cc" // [119] NAD2[PQName*] -> on:OperatorFunctionId < list:TemplateArgumentListOpt > inline PQName* CCParse::action119_NAD2(SourceLocation loc, SourceLocation endloc, OperatorName* on, /*fakelist*/TemplateArgument* list) { xunimp(stringc << loc << " templatized operator (fc042c37-50e2-4596-8460-c095e7ac892b)"); } #line 1098 "cc.gr.gen.cc" // [120] NAD2[PQName*] -> template on:OperatorFunctionId < list:TemplateArgumentListOpt > inline PQName* CCParse::action120_NAD2(SourceLocation loc, SourceLocation endloc, OperatorName* on, /*fakelist*/TemplateArgument* list) { xunimp(stringc << loc << " templatized operator (fc042c37-50e2-4596-8460-c095e7ac892b)"); } #line 1103 "cc.gr.gen.cc" // [121] NAD2[PQName*] -> n:Identifier < list:TemplateArgumentListOpt > :: rest:NAD1 %prec(195) inline PQName* CCParse::action121_NAD2(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* list, PQName* rest) { return new PQ_qualifier(loc, endloc, n, list, rest); } #line 1108 "cc.gr.gen.cc" // [122] NAD2[PQName*] -> n:Identifier :: rest:NAD1 %prec(195) inline PQName* CCParse::action122_NAD2(SourceLocation loc, SourceLocation endloc, StringRef n, PQName* rest) { return new PQ_qualifier(loc, endloc, n, NULL /*targs*/, rest); } #line 1113 "cc.gr.gen.cc" // [123] CastExpression[Expression*] -> e:UnaryExpression inline Expression* CCParse::action123_CastExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 1118 "cc.gr.gen.cc" // [124] CastExpression[Expression*] -> ( t:TypeId ) e:CastExpression inline Expression* CCParse::action124_CastExpression(SourceLocation loc, SourceLocation endloc, ASTTypeId* t, Expression* e) { return new E_cast(EXPR_LOC(loc ENDLOCARG(endloc)) t, e); } #line 1123 "cc.gr.gen.cc" // [125] CastExpression[Expression*] -> ( t:ImplicitIntTypeId ) e:CastExpression inline Expression* CCParse::action125_CastExpression(SourceLocation loc, SourceLocation endloc, ASTTypeId* t, Expression* e) { return new E_cast(loc ENDLOCARG(endloc), t, e); } #line 1128 "cc.gr.gen.cc" // [126] BinExp_high[Expression*] -> e:CastExpression inline Expression* CCParse::action126_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 1133 "cc.gr.gen.cc" // [127] BinExp_high[Expression*] -> left:BinExp_high .* right:BinExp_high %prec(120) inline Expression* CCParse::action127_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_DOT_STAR, right); } #line 1138 "cc.gr.gen.cc" // [128] BinExp_high[Expression*] -> left:BinExp_high ->* right:BinExp_high %prec(120) inline Expression* CCParse::action128_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_ARROW_STAR, right); } #line 1143 "cc.gr.gen.cc" // [129] BinExp_high[Expression*] -> left:BinExp_high * right:BinExp_high %prec(110) inline Expression* CCParse::action129_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_MULT, right); } #line 1148 "cc.gr.gen.cc" // [130] BinExp_high[Expression*] -> left:BinExp_high / right:BinExp_high %prec(110) inline Expression* CCParse::action130_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_DIV, right); } #line 1153 "cc.gr.gen.cc" // [131] BinExp_high[Expression*] -> left:BinExp_high % right:BinExp_high %prec(110) inline Expression* CCParse::action131_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_MOD, right); } #line 1158 "cc.gr.gen.cc" // [132] BinExp_high[Expression*] -> left:BinExp_high + right:BinExp_high %prec(100) inline Expression* CCParse::action132_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_PLUS, right); } #line 1163 "cc.gr.gen.cc" // [133] BinExp_high[Expression*] -> left:BinExp_high - right:BinExp_high %prec(100) inline Expression* CCParse::action133_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_MINUS, right); } #line 1168 "cc.gr.gen.cc" // [134] BinExp_high[Expression*] -> left:BinExp_high << right:BinExp_high %prec(90) inline Expression* CCParse::action134_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_LSHIFT, right); } #line 1173 "cc.gr.gen.cc" // [135] BinExp_high[Expression*] -> left:BinExp_high >> right:BinExp_high %prec(90) inline Expression* CCParse::action135_BinExp_high(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_RSHIFT, right); } #line 1178 "cc.gr.gen.cc" // [136] BinExp_mid[Expression*] -> e:BinExp_high inline Expression* CCParse::action136_BinExp_mid(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 1183 "cc.gr.gen.cc" // [137] BinExp_mid[Expression*] -> left:BinExp_mid < right:BinExp_high inline Expression* CCParse::action137_BinExp_mid(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_LESS, right); } #line 1188 "cc.gr.gen.cc" // [138] BinExp_mid[Expression*] -> left:BinExp_mid > right:BinExp_high inline Expression* CCParse::action138_BinExp_mid(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_GREATER, right); } #line 1193 "cc.gr.gen.cc" // [139] BinExp_mid[Expression*] -> left:BinExp_mid <= right:BinExp_high inline Expression* CCParse::action139_BinExp_mid(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_LESSEQ, right); } #line 1198 "cc.gr.gen.cc" // [140] BinExp_mid[Expression*] -> left:BinExp_mid >= right:BinExp_high inline Expression* CCParse::action140_BinExp_mid(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_GREATEREQ, right); } #line 1203 "cc.gr.gen.cc" // [141] BinExp_mid[Expression*] -> left:BinExp_mid left:BinExp_mid >? right:BinExp_high inline Expression* CCParse::action142_BinExp_mid(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(loc ENDLOCARG(endloc), left, BIN_MAXIMUM, right); } #line 1213 "cc.gr.gen.cc" // [143] BinaryExpression[Expression*] -> e:BinExp_mid inline Expression* CCParse::action143_BinaryExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 1218 "cc.gr.gen.cc" // [144] BinaryExpression[Expression*] -> left:BinaryExpression == right:BinaryExpression %prec(70) inline Expression* CCParse::action144_BinaryExpression(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_EQUAL, right); } #line 1223 "cc.gr.gen.cc" // [145] BinaryExpression[Expression*] -> left:BinaryExpression != right:BinaryExpression %prec(70) inline Expression* CCParse::action145_BinaryExpression(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_NOTEQUAL, right); } #line 1228 "cc.gr.gen.cc" // [146] BinaryExpression[Expression*] -> left:BinaryExpression & right:BinaryExpression %prec(60) inline Expression* CCParse::action146_BinaryExpression(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_BITAND, right); } #line 1233 "cc.gr.gen.cc" // [147] BinaryExpression[Expression*] -> left:BinaryExpression ^ right:BinaryExpression %prec(50) inline Expression* CCParse::action147_BinaryExpression(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_BITXOR, right); } #line 1238 "cc.gr.gen.cc" // [148] BinaryExpression[Expression*] -> left:BinaryExpression | right:BinaryExpression %prec(40) inline Expression* CCParse::action148_BinaryExpression(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_BITOR, right); } #line 1243 "cc.gr.gen.cc" // [149] BinaryExpression[Expression*] -> left:BinaryExpression && right:BinaryExpression %prec(30) inline Expression* CCParse::action149_BinaryExpression(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_AND, right); } #line 1248 "cc.gr.gen.cc" // [150] BinaryExpression[Expression*] -> left:BinaryExpression || right:BinaryExpression %prec(20) inline Expression* CCParse::action150_BinaryExpression(SourceLocation loc, SourceLocation endloc, Expression* left, Expression* right) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) left, BIN_OR, right); } #line 1253 "cc.gr.gen.cc" // [151] ConditionalExpression[Expression*] -> e:BinaryExpression inline Expression* CCParse::action151_ConditionalExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 1258 "cc.gr.gen.cc" // [152] ConditionalExpression[Expression*] -> cond:BinaryExpression ? th:Expression : el:AssignmentExpression inline Expression* CCParse::action152_ConditionalExpression(SourceLocation loc, SourceLocation endloc, Expression* cond, Expression* th, Expression* el) { return new E_cond(EXPR_LOC(loc ENDLOCARG(endloc)) cond, th, el); } #line 1263 "cc.gr.gen.cc" // [153] ConditionalExpression[Expression*] -> cond:BinaryExpression ? : el:AssignmentExpression inline Expression* CCParse::action153_ConditionalExpression(SourceLocation loc, SourceLocation endloc, Expression* cond, Expression* el) { return new E_gnuCond(loc ENDLOCARG(endloc), cond, el); } #line 1268 "cc.gr.gen.cc" // [154] AssignmentExpression[Expression*] -> e:ConditionalExpression inline Expression* CCParse::action154_AssignmentExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 1273 "cc.gr.gen.cc" // [155] AssignmentExpression[Expression*] -> e1:BinaryExpression op:AssignmentOperator e2:AssignmentExpression inline Expression* CCParse::action155_AssignmentExpression(SourceLocation loc, SourceLocation endloc, Expression* e1, enum BinaryOp op, Expression* e2) { return new E_assign(EXPR_LOC(loc ENDLOCARG(endloc)) e1, op, e2); } #line 1278 "cc.gr.gen.cc" // [156] AssignmentExpression[Expression*] -> e:ThrowExpression inline Expression* CCParse::action156_AssignmentExpression(SourceLocation loc, SourceLocation endloc, E_throw* e) { return e; } #line 1283 "cc.gr.gen.cc" // [157] AssignmentOperator[enum BinaryOp] -> *= inline enum BinaryOp CCParse::action157_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_MULT; } #line 1288 "cc.gr.gen.cc" // [158] AssignmentOperator[enum BinaryOp] -> /= inline enum BinaryOp CCParse::action158_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_DIV; } #line 1293 "cc.gr.gen.cc" // [159] AssignmentOperator[enum BinaryOp] -> %= inline enum BinaryOp CCParse::action159_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_MOD; } #line 1298 "cc.gr.gen.cc" // [160] AssignmentOperator[enum BinaryOp] -> += inline enum BinaryOp CCParse::action160_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_PLUS; } #line 1303 "cc.gr.gen.cc" // [161] AssignmentOperator[enum BinaryOp] -> -= inline enum BinaryOp CCParse::action161_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_MINUS; } #line 1308 "cc.gr.gen.cc" // [162] AssignmentOperator[enum BinaryOp] -> >>= inline enum BinaryOp CCParse::action162_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_RSHIFT; } #line 1313 "cc.gr.gen.cc" // [163] AssignmentOperator[enum BinaryOp] -> <<= inline enum BinaryOp CCParse::action163_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_LSHIFT; } #line 1318 "cc.gr.gen.cc" // [164] AssignmentOperator[enum BinaryOp] -> &= inline enum BinaryOp CCParse::action164_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_BITAND; } #line 1323 "cc.gr.gen.cc" // [165] AssignmentOperator[enum BinaryOp] -> ^= inline enum BinaryOp CCParse::action165_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_BITXOR; } #line 1328 "cc.gr.gen.cc" // [166] AssignmentOperator[enum BinaryOp] -> |= inline enum BinaryOp CCParse::action166_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_BITOR; } #line 1333 "cc.gr.gen.cc" // [167] AssignmentOperator[enum BinaryOp] -> = inline enum BinaryOp CCParse::action167_AssignmentOperator(SourceLocation loc, SourceLocation endloc) { return BIN_ASSIGN; } #line 1338 "cc.gr.gen.cc" // [168] Expression[Expression*] -> ae:AssignmentExpression inline Expression* CCParse::action168_Expression(SourceLocation loc, SourceLocation endloc, Expression* ae) { return ae; } #line 1343 "cc.gr.gen.cc" // [169] Expression[Expression*] -> e:Expression , ae:AssignmentExpression inline Expression* CCParse::action169_Expression(SourceLocation loc, SourceLocation endloc, Expression* e, Expression* ae) { return new E_binary(EXPR_LOC(loc ENDLOCARG(endloc)) e, BIN_COMMA, ae); } #line 1348 "cc.gr.gen.cc" // [170] ExpressionOpt[Expression*] -> empty inline Expression* CCParse::action170_ExpressionOpt(SourceLocation loc, SourceLocation endloc) { return new E_boolLit(EXPR_LOC(loc ENDLOCARG(endloc)) true); } #line 1353 "cc.gr.gen.cc" // [171] ExpressionOpt[Expression*] -> e:Expression inline Expression* CCParse::action171_ExpressionOpt(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 1358 "cc.gr.gen.cc" // [172] ConstantExpression[Expression*] -> e:AssignmentExpression inline Expression* CCParse::action172_ConstantExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 1363 "cc.gr.gen.cc" // [173] ConstantExpressionOpt[Expression*] -> empty inline Expression* CCParse::action173_ConstantExpressionOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 1368 "cc.gr.gen.cc" // [174] ConstantExpressionOpt[Expression*] -> e:ConstantExpression inline Expression* CCParse::action174_ConstantExpressionOpt(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 1373 "cc.gr.gen.cc" // [175] LabelAndColon[StringRef] -> n:Identifier : %prec(1) inline StringRef CCParse::action175_LabelAndColon(SourceLocation loc, SourceLocation endloc, StringRef n) { return n; } #line 1378 "cc.gr.gen.cc" // [176] LabelAndColon[StringRef] -> n:Identifier : AttributeSpecifierList %prec(200) inline StringRef CCParse::action176_LabelAndColon(SourceLocation loc, SourceLocation endloc, StringRef n) { return n; } #line 1383 "cc.gr.gen.cc" // [177] Statement[Statement*] -> n:LabelAndColon s:Statement inline Statement* CCParse::action177_Statement(SourceLocation loc, SourceLocation endloc, StringRef n, Statement* s) { return new S_label(loc ENDLOCARG(endloc), n, s); } #line 1388 "cc.gr.gen.cc" // [178] Statement[Statement*] -> case e:ConstantExpression : s:Statement inline Statement* CCParse::action178_Statement(SourceLocation loc, SourceLocation endloc, Expression* e, Statement* s) { return new S_case(loc ENDLOCARG(endloc), e, s); } #line 1393 "cc.gr.gen.cc" // [179] Statement[Statement*] -> default : s:Statement inline Statement* CCParse::action179_Statement(SourceLocation loc, SourceLocation endloc, Statement* s) { return new S_default(loc ENDLOCARG(endloc), s); } #line 1398 "cc.gr.gen.cc" // [180] Statement[Statement*] -> s:ExpressionStatement inline Statement* CCParse::action180_Statement(SourceLocation loc, SourceLocation endloc, Statement* s) { return s; } #line 1403 "cc.gr.gen.cc" // [181] Statement[Statement*] -> s:CompoundStatement inline Statement* CCParse::action181_Statement(SourceLocation loc, SourceLocation endloc, S_compound* s) { return s; } #line 1408 "cc.gr.gen.cc" // [182] Statement[Statement*] -> if ( e:Condition ) s:Statement %prec(1) inline Statement* CCParse::action182_Statement(SourceLocation loc, SourceLocation endloc, Condition* e, Statement* s) { return new S_if(loc ENDLOCARG(endloc), e, s, new S_skip(loc ENDLOCARG(endloc))); } #line 1413 "cc.gr.gen.cc" // [183] Statement[Statement*] -> if ( e:Condition ) s1:Statement else s2:Statement %prec(190) inline Statement* CCParse::action183_Statement(SourceLocation loc, SourceLocation endloc, Condition* e, Statement* s1, Statement* s2) { return new S_if(loc ENDLOCARG(endloc), e, s1, s2); } #line 1418 "cc.gr.gen.cc" // [184] Statement[Statement*] -> switch ( e:Condition ) s:Statement inline Statement* CCParse::action184_Statement(SourceLocation loc, SourceLocation endloc, Condition* e, Statement* s) { return new S_switch(loc ENDLOCARG(endloc), e, s); } #line 1423 "cc.gr.gen.cc" // [185] Statement[Statement*] -> while ( e:Condition ) s:Statement inline Statement* CCParse::action185_Statement(SourceLocation loc, SourceLocation endloc, Condition* e, Statement* s) { return new S_while(loc ENDLOCARG(endloc), e, s); } #line 1428 "cc.gr.gen.cc" // [186] Statement[Statement*] -> do s:Statement while ( e:Expression ) ; inline Statement* CCParse::action186_Statement(SourceLocation loc, SourceLocation endloc, Statement* s, Expression* e) { return new S_doWhile(loc ENDLOCARG(endloc), s, new FullExpression(e)); } #line 1433 "cc.gr.gen.cc" // [187] Statement[Statement*] -> for ( s1:ForInitStatement c:ConditionOpt ; e:ExpressionOpt ) s2:Statement inline Statement* CCParse::action187_Statement(SourceLocation loc, SourceLocation endloc, Statement* s1, Condition* c, Expression* e, Statement* s2) { return new S_for(loc ENDLOCARG(endloc), s1, c, new FullExpression(e), s2); } #line 1438 "cc.gr.gen.cc" // [188] Statement[Statement*] -> break ; inline Statement* CCParse::action188_Statement(SourceLocation loc, SourceLocation endloc) { return new S_break(loc ENDLOCARG(endloc)); } #line 1443 "cc.gr.gen.cc" // [189] Statement[Statement*] -> continue ; inline Statement* CCParse::action189_Statement(SourceLocation loc, SourceLocation endloc) { return new S_continue(loc ENDLOCARG(endloc)); } #line 1448 "cc.gr.gen.cc" // [190] Statement[Statement*] -> return e:Expression ; inline Statement* CCParse::action190_Statement(SourceLocation loc, SourceLocation endloc, Expression* e) { return new S_return(loc ENDLOCARG(endloc), new FullExpression(e)); } #line 1453 "cc.gr.gen.cc" // [191] Statement[Statement*] -> return ; inline Statement* CCParse::action191_Statement(SourceLocation loc, SourceLocation endloc) { return new S_return(loc ENDLOCARG(endloc), NULL); } #line 1458 "cc.gr.gen.cc" // [192] Statement[Statement*] -> goto n:Identifier ; inline Statement* CCParse::action192_Statement(SourceLocation loc, SourceLocation endloc, StringRef n) { return new S_goto(loc ENDLOCARG(endloc), n); } #line 1463 "cc.gr.gen.cc" // [193] Statement[Statement*] -> d:BlockDeclaration inline Statement* CCParse::action193_Statement(SourceLocation loc, SourceLocation endloc, Declaration* d) { return new S_decl(loc ENDLOCARG(endloc), d); } #line 1468 "cc.gr.gen.cc" // [194] Statement[Statement*] -> s:TryBlock inline Statement* CCParse::action194_Statement(SourceLocation loc, SourceLocation endloc, S_try* s) { return s; } #line 1473 "cc.gr.gen.cc" // [195] Statement[Statement*] -> a:AsmDefinition inline Statement* CCParse::action195_Statement(SourceLocation loc, SourceLocation endloc, Asm* a) { return new S_asm(loc ENDLOCARG(endloc), a); } #line 1478 "cc.gr.gen.cc" // [196] Statement[Statement*] -> n:NamespaceDecl inline Statement* CCParse::action196_Statement(SourceLocation loc, SourceLocation endloc, NamespaceDecl* n) { return new S_namespaceDecl(loc ENDLOCARG(endloc), n); } #line 1483 "cc.gr.gen.cc" // [197] Statement[Statement*] -> f:FunctionDefinition inline Statement* CCParse::action197_Statement(SourceLocation loc, SourceLocation endloc, Function* f) { return new S_function(loc ENDLOCARG(endloc), f); } #line 1488 "cc.gr.gen.cc" // [198] Statement[Statement*] -> k:KandRFunctionDefinition inline Statement* CCParse::action198_Statement(SourceLocation loc, SourceLocation endloc, Function* k) { xunimp(stringc << loc << "nested K&R function definition" " (d00aa531-ca12-4d72-9caf-ca9db9941179)"); } #line 1494 "cc.gr.gen.cc" // [199] Statement[Statement*] -> case e:ConstantExpression ... e2:ConstantExpression : s:Statement inline Statement* CCParse::action199_Statement(SourceLocation loc, SourceLocation endloc, Expression* e, Expression* e2, Statement* s) { return new S_rangeCase(loc ENDLOCARG(endloc), e, e2, s); } #line 1499 "cc.gr.gen.cc" // [200] Statement[Statement*] -> goto * e:Expression ; inline Statement* CCParse::action200_Statement(SourceLocation loc, SourceLocation endloc, Expression* e) { return new S_computedGoto(loc ENDLOCARG(endloc), e); } #line 1504 "cc.gr.gen.cc" // [201] Statement[Statement*] -> m1:UberModifierSeq list:InitDeclaratorList ; inline Statement* CCParse::action201_Statement(SourceLocation loc, SourceLocation endloc, UberModifiers m1, FakeList* list) { if (!LO.allowImplicitInt) { trace("cancel") << loc << ": implicit-int statement-level Declaration in non-implicit-int language\n"; return NULL; } return new S_decl (loc ENDLOCARG(endloc), new Declaration(uberDeclFlags(m1), new TS_simple(loc, endloc, ST_IMPLINT), list)); } #line 1517 "cc.gr.gen.cc" // [202] Statement[Statement*] -> -> d:Declarator ; inline Statement* CCParse::action202_Statement(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new S_transition(loc ENDLOCARG(endloc), d); } #line 1522 "cc.gr.gen.cc" // [203] ExpressionStatement[Statement*] -> ; inline Statement* CCParse::action203_ExpressionStatement(SourceLocation loc, SourceLocation endloc) { return new S_skip(loc ENDLOCARG(endloc)); } #line 1527 "cc.gr.gen.cc" // [204] ExpressionStatement[Statement*] -> e:Expression ; inline Statement* CCParse::action204_ExpressionStatement(SourceLocation loc, SourceLocation endloc, Expression* e) { return new S_expr(loc ENDLOCARG(endloc), new FullExpression(e)); } #line 1532 "cc.gr.gen.cc" // [205] CompoundStatement[S_compound*] -> seq:CompoundStmtHelper } inline S_compound* CCParse::action205_CompoundStatement(SourceLocation loc, SourceLocation endloc, S_compound* seq) { EXPR_LOC1(seq->endloc = endloc); return seq; } #line 1537 "cc.gr.gen.cc" // [206] CompoundStatement[S_compound*] -> seq:CompoundStmtHelper lesl:LabeledEmptyStatementList } inline S_compound* CCParse::action206_CompoundStatement(SourceLocation loc, SourceLocation endloc, S_compound* seq, Statement* lesl) { seq->stmts.append(lesl); return seq; } #line 1542 "cc.gr.gen.cc" // [207] CompoundStmtHelper[S_compound*] -> { inline S_compound* CCParse::action207_CompoundStmtHelper(SourceLocation loc, SourceLocation endloc) { return new S_compound(loc ENDLOCARG(endloc), NULL); } #line 1547 "cc.gr.gen.cc" // [208] CompoundStmtHelper[S_compound*] -> c:CompoundStmtHelper s:Statement inline S_compound* CCParse::action208_CompoundStmtHelper(SourceLocation loc, SourceLocation endloc, S_compound* c, Statement* s) { c->stmts.append(s); ENDLOC1(c->endloc = endloc;) return c; } #line 1552 "cc.gr.gen.cc" // [209] Condition[Condition*] -> e:Expression inline Condition* CCParse::action209_Condition(SourceLocation loc, SourceLocation endloc, Expression* e) { return new CN_expr(new FullExpression(e)); } #line 1557 "cc.gr.gen.cc" // [210] Condition[Condition*] -> spec:TypeSpecifier decl:Declarator = e:AssignmentExpression inline Condition* CCParse::action210_Condition(SourceLocation loc, SourceLocation endloc, TypeSpecifier* spec, IDeclarator* decl, Expression* e) { return new CN_decl(new ASTTypeId(spec, new Declarator(decl, new IN_expr(loc, e)))); } #line 1563 "cc.gr.gen.cc" // [211] ConditionOpt[Condition*] -> empty inline Condition* CCParse::action211_ConditionOpt(SourceLocation loc, SourceLocation endloc) { return new CN_expr(new FullExpression(new E_boolLit(EXPR_LOC(loc ENDLOCARG(endloc)) true))); } #line 1568 "cc.gr.gen.cc" // [212] ConditionOpt[Condition*] -> c:Condition inline Condition* CCParse::action212_ConditionOpt(SourceLocation loc, SourceLocation endloc, Condition* c) { return c; } #line 1573 "cc.gr.gen.cc" // [213] ForInitStatement[Statement*] -> s:ExpressionStatement inline Statement* CCParse::action213_ForInitStatement(SourceLocation loc, SourceLocation endloc, Statement* s) { return s; } #line 1578 "cc.gr.gen.cc" // [214] ForInitStatement[Statement*] -> s:SimpleDeclaration inline Statement* CCParse::action214_ForInitStatement(SourceLocation loc, SourceLocation endloc, Declaration* s) { return new S_decl(loc ENDLOCARG(endloc), s); } #line 1583 "cc.gr.gen.cc" // [215] Declaration[TopForm*] -> d:BlockDeclaration inline TopForm* CCParse::action215_Declaration(SourceLocation loc, SourceLocation endloc, Declaration* d) { return new TF_decl(loc, d); } #line 1588 "cc.gr.gen.cc" // [216] Declaration[TopForm*] -> f:FunctionDefinition inline TopForm* CCParse::action216_Declaration(SourceLocation loc, SourceLocation endloc, Function* f) { return new TF_func(loc, f); } #line 1593 "cc.gr.gen.cc" // [217] Declaration[TopForm*] -> t:TemplateDeclaration inline TopForm* CCParse::action217_Declaration(SourceLocation loc, SourceLocation endloc, TemplateDeclaration* t) { return new TF_template(loc, t); } #line 1598 "cc.gr.gen.cc" // [218] Declaration[TopForm*] -> d:ExplicitInstantiation inline TopForm* CCParse::action218_Declaration(SourceLocation loc, SourceLocation endloc, TopForm* d) { return d; } #line 1603 "cc.gr.gen.cc" // [219] Declaration[TopForm*] -> s:LinkageSpecification inline TopForm* CCParse::action219_Declaration(SourceLocation loc, SourceLocation endloc, TopForm* s) { return s; } #line 1608 "cc.gr.gen.cc" // [220] Declaration[TopForm*] -> a:AsmDefinition inline TopForm* CCParse::action220_Declaration(SourceLocation loc, SourceLocation endloc, Asm* a) { return new TF_asm(loc, a); } #line 1613 "cc.gr.gen.cc" // [221] Declaration[TopForm*] -> n:NamespaceDefinition inline TopForm* CCParse::action221_Declaration(SourceLocation loc, SourceLocation endloc, TF_namespaceDefn* n) { return n; } #line 1618 "cc.gr.gen.cc" // [222] Declaration[TopForm*] -> n:NamespaceDecl inline TopForm* CCParse::action222_Declaration(SourceLocation loc, SourceLocation endloc, NamespaceDecl* n) { return new TF_namespaceDecl(loc, n); } #line 1623 "cc.gr.gen.cc" // [223] Declaration[TopForm*] -> k:KandRFunctionDefinition inline TopForm* CCParse::action223_Declaration(SourceLocation loc, SourceLocation endloc, Function* k) { return new TF_func(loc, k); } #line 1628 "cc.gr.gen.cc" // [224] Declaration[TopForm*] -> k:KandRFunctionDefinition_implInt inline TopForm* CCParse::action224_Declaration(SourceLocation loc, SourceLocation endloc, Function* k) { return new TF_func(loc, k); } #line 1633 "cc.gr.gen.cc" // [225] Declaration[TopForm*] -> f:ImplIntFunctionDefinition inline TopForm* CCParse::action225_Declaration(SourceLocation loc, SourceLocation endloc, Function* f) { return new TF_func(loc, f); } #line 1638 "cc.gr.gen.cc" // [226] Declaration[TopForm*] -> m1:UberModifierSeqOpt list:InitDeclaratorList ; inline TopForm* CCParse::action226_Declaration(SourceLocation loc, SourceLocation endloc, UberModifiers m1, FakeList* list) { if (!LO.allowImplicitInt) { trace("cancel") << loc << ": implicit-int top-level Declaration in non-implicit-int language\n"; return NULL; } return new TF_decl (loc, new Declaration(uberDeclFlags(m1), new TS_simple(loc, endloc, ST_IMPLINT), list)); } #line 1652 "cc.gr.gen.cc" // [227] Declaration[TopForm*] -> s:StateDefinition inline TopForm* CCParse::action227_Declaration(SourceLocation loc, SourceLocation endloc, State* s) { return new TF_state(loc, s); } #line 1657 "cc.gr.gen.cc" // [228] BlockDeclaration[Declaration*] -> d:SimpleDeclaration inline Declaration* CCParse::action228_BlockDeclaration(SourceLocation loc, SourceLocation endloc, Declaration* d) { return d; } #line 1662 "cc.gr.gen.cc" // [229] SimpleDeclaration[Declaration*] -> spec:DeclSpecifier list:InitDeclaratorList ; inline Declaration* CCParse::action229_SimpleDeclaration(SourceLocation loc, SourceLocation endloc, Declaration* spec, FakeList* list) { spec->decllist = list; return spec; } #line 1667 "cc.gr.gen.cc" // [230] SimpleDeclaration[Declaration*] -> spec:DeclSpecifier ; inline Declaration* CCParse::action230_SimpleDeclaration(SourceLocation loc, SourceLocation endloc, Declaration* spec) { return spec; } #line 1672 "cc.gr.gen.cc" // [231] SimpleDeclaration[Declaration*] -> __event__ d:MemberDeclarator ; inline Declaration* CCParse::action231_SimpleDeclaration(SourceLocation loc, SourceLocation endloc, Declarator* d) { return new Declaration( DF_EVENT, new TS_simple(loc, endloc, ST_VOID), FakeList::makeList(d) ); } #line 1683 "cc.gr.gen.cc" // [232] DeclSpecifier[Declaration*] -> n:PQTypeName m2:UberModifierSeqOpt inline Declaration* CCParse::action232_DeclSpecifier(SourceLocation loc, SourceLocation endloc, PQName* n, UberModifiers m2) { return new Declaration(uberDeclFlags(m2), new_TS_name(loc, endloc, uberCVFlags(m2), n, false /*typename*/), NULL); } #line 1689 "cc.gr.gen.cc" // [233] DeclSpecifier[Declaration*] -> m1:UberModifierSeq n:PQTypeName m2:UberModifierSeqOpt inline Declaration* CCParse::action233_DeclSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers m1, PQName* n, UberModifiers m2) { UberModifiers m = uberCombine(loc, m1, m2); return new Declaration(uberDeclFlags(m), new_TS_name(loc, endloc, uberCVFlags(m), n, false /*typename*/), NULL); } #line 1696 "cc.gr.gen.cc" // [234] DeclSpecifier[Declaration*] -> k1:UberTypeKeyword m2:UberTypeAndModifierSeqOpt inline Declaration* CCParse::action234_DeclSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers k1, UberModifiers m2) { UberModifiers k = uberCombine(loc, k1, m2); return new Declaration(uberDeclFlags(m2), new_TS_simple(loc, endloc, uberCVFlags(m2), uberSimpleType(loc, k)), NULL); } #line 1703 "cc.gr.gen.cc" // [235] DeclSpecifier[Declaration*] -> m1:UberModifierSeq k1:UberTypeKeyword m2:UberTypeAndModifierSeqOpt inline Declaration* CCParse::action235_DeclSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers m1, UberModifiers k1, UberModifiers m2) { UberModifiers m = uberCombine(loc, m1, m2); UberModifiers k = uberCombine(loc, k1, m2); return new Declaration(uberDeclFlags(m), new_TS_simple(loc, endloc, uberCVFlags(m), uberSimpleType(loc, k)), NULL); } #line 1711 "cc.gr.gen.cc" // [236] DeclSpecifier[Declaration*] -> e:ElaboratedOrSpecifier m2:UberModifierSeqOpt inline Declaration* CCParse::action236_DeclSpecifier(SourceLocation loc, SourceLocation endloc, TypeSpecifier* e, UberModifiers m2) { e->setCVOnce(uberCVFlags(m2)); // semi-destructive action return new Declaration(uberDeclFlags(m2), e, NULL); } #line 1717 "cc.gr.gen.cc" // [237] DeclSpecifier[Declaration*] -> m1:UberModifierSeq e:ElaboratedOrSpecifier m2:UberModifierSeqOpt inline Declaration* CCParse::action237_DeclSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers m1, TypeSpecifier* e, UberModifiers m2) { UberModifiers m = uberCombine(loc, m1, m2); e->setCVOnce(uberCVFlags(m)); // semi-destructive action return new Declaration(uberDeclFlags(m), e, NULL); } #line 1724 "cc.gr.gen.cc" // [238] DeclSpecifier[Declaration*] -> te:TypeofTypeSpecifier m2:UberModifierSeqOpt inline Declaration* CCParse::action238_DeclSpecifier(SourceLocation loc, SourceLocation endloc, ASTTypeof* te, UberModifiers m2) { return new Declaration(uberDeclFlags(m2), new_TS_typeof(loc, endloc, uberCVFlags(m2), te), NULL); } #line 1730 "cc.gr.gen.cc" // [239] DeclSpecifier[Declaration*] -> m1:UberModifierSeq te:TypeofTypeSpecifier m2:UberModifierSeqOpt inline Declaration* CCParse::action239_DeclSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers m1, ASTTypeof* te, UberModifiers m2) { UberModifiers m = uberCombine(loc, m1, m2); return new Declaration(uberDeclFlags(m), new_TS_typeof(loc, endloc, uberCVFlags(m), te), NULL); } #line 1737 "cc.gr.gen.cc" // [240] DeclSpecifier[Declaration*] -> n:PQTypeName BuggyGccTypeModifier m2:UberModifierSeqOpt inline Declaration* CCParse::action240_DeclSpecifier(SourceLocation loc, SourceLocation endloc, PQName* n, UberModifiers m2) { diagnose3(LO.allowModifiersWithTypedefNames, loc, diag::err_typedef_and_type, diag::note_gcc2_bug_allows); return new Declaration(uberDeclFlags(m2), new_TS_name(loc, endloc, uberCVFlags(m2), n, false /*typename*/), NULL); } #line 1747 "cc.gr.gen.cc" // [241] DeclSpecifier[Declaration*] -> m1:UberModifierSeq n:PQTypeName BuggyGccTypeModifier m2:UberModifierSeqOpt inline Declaration* CCParse::action241_DeclSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers m1, PQName* n, UberModifiers m2) { diagnose3(LO.allowModifiersWithTypedefNames, loc, diag::err_typedef_and_type, diag::note_gcc2_bug_allows); UberModifiers m = uberCombine(loc, m1, m2); return new Declaration(uberDeclFlags(m), new_TS_name(loc, endloc, uberCVFlags(m), n, false /*typename*/), NULL); } #line 1758 "cc.gr.gen.cc" // [242] ElaboratedOrSpecifier[TypeSpecifier*] -> s:ElaboratedTypeSpecifier inline TypeSpecifier* CCParse::action242_ElaboratedOrSpecifier(SourceLocation loc, SourceLocation endloc, TypeSpecifier* s) { return s; } #line 1763 "cc.gr.gen.cc" // [243] ElaboratedOrSpecifier[TypeSpecifier*] -> s:ClassSpecifier inline TypeSpecifier* CCParse::action243_ElaboratedOrSpecifier(SourceLocation loc, SourceLocation endloc, TS_classSpec* s) { return s; } #line 1768 "cc.gr.gen.cc" // [244] ElaboratedOrSpecifier[TypeSpecifier*] -> s:EnumSpecifier inline TypeSpecifier* CCParse::action244_ElaboratedOrSpecifier(SourceLocation loc, SourceLocation endloc, TS_enumSpec* s) { return s; } #line 1773 "cc.gr.gen.cc" // [245] UberModifierSeq[UberModifiers] -> u:UberModifier inline UberModifiers CCParse::action245_UberModifierSeq(SourceLocation loc, SourceLocation endloc, UberModifiers u) { return u; } #line 1778 "cc.gr.gen.cc" // [246] UberModifierSeq[UberModifiers] -> s:UberModifierSeq u:UberModifier inline UberModifiers CCParse::action246_UberModifierSeq(SourceLocation loc, SourceLocation endloc, UberModifiers s, UberModifiers u) { return uberCombine(loc, s,u); } #line 1783 "cc.gr.gen.cc" // [247] UberModifierSeqOpt[UberModifiers] -> empty inline UberModifiers CCParse::action247_UberModifierSeqOpt(SourceLocation loc, SourceLocation endloc) { return UM_NONE; } #line 1788 "cc.gr.gen.cc" // [248] UberModifierSeqOpt[UberModifiers] -> s:UberModifierSeq inline UberModifiers CCParse::action248_UberModifierSeqOpt(SourceLocation loc, SourceLocation endloc, UberModifiers s) { return s; } #line 1793 "cc.gr.gen.cc" // [249] UberTypeAndModifierSeqOpt[UberModifiers] -> empty inline UberModifiers CCParse::action249_UberTypeAndModifierSeqOpt(SourceLocation loc, SourceLocation endloc) { return UM_NONE; } #line 1798 "cc.gr.gen.cc" // [250] UberTypeAndModifierSeqOpt[UberModifiers] -> s:UberTypeAndModifierSeqOpt u:UberModifier inline UberModifiers CCParse::action250_UberTypeAndModifierSeqOpt(SourceLocation loc, SourceLocation endloc, UberModifiers s, UberModifiers u) { return uberCombine(loc, s,u); } #line 1803 "cc.gr.gen.cc" // [251] UberTypeAndModifierSeqOpt[UberModifiers] -> s:UberTypeAndModifierSeqOpt u:UberTypeKeyword inline UberModifiers CCParse::action251_UberTypeAndModifierSeqOpt(SourceLocation loc, SourceLocation endloc, UberModifiers s, UberModifiers u) { return uberCombine(loc, s,u); } #line 1808 "cc.gr.gen.cc" // [252] UberCVQualifierSeq[UberModifiers] -> u:UberCVQualifier inline UberModifiers CCParse::action252_UberCVQualifierSeq(SourceLocation loc, SourceLocation endloc, UberModifiers u) { return u; } #line 1813 "cc.gr.gen.cc" // [253] UberCVQualifierSeq[UberModifiers] -> s:UberCVQualifierSeq u:UberCVQualifier inline UberModifiers CCParse::action253_UberCVQualifierSeq(SourceLocation loc, SourceLocation endloc, UberModifiers s, UberModifiers u) { return uberCombine(loc, s,u); } #line 1818 "cc.gr.gen.cc" // [254] UberCVQualifierSeqOpt[UberModifiers] -> empty inline UberModifiers CCParse::action254_UberCVQualifierSeqOpt(SourceLocation loc, SourceLocation endloc) { return UM_NONE; } #line 1823 "cc.gr.gen.cc" // [255] UberCVQualifierSeqOpt[UberModifiers] -> s:UberCVQualifierSeq inline UberModifiers CCParse::action255_UberCVQualifierSeqOpt(SourceLocation loc, SourceLocation endloc, UberModifiers s) { return s; } #line 1828 "cc.gr.gen.cc" // [256] UberTypeAndCVQualifierSeqOpt[UberModifiers] -> empty inline UberModifiers CCParse::action256_UberTypeAndCVQualifierSeqOpt(SourceLocation loc, SourceLocation endloc) { return UM_NONE; } #line 1833 "cc.gr.gen.cc" // [257] UberTypeAndCVQualifierSeqOpt[UberModifiers] -> s:UberTypeAndCVQualifierSeqOpt u:UberCVQualifier inline UberModifiers CCParse::action257_UberTypeAndCVQualifierSeqOpt(SourceLocation loc, SourceLocation endloc, UberModifiers s, UberModifiers u) { return uberCombine(loc, s,u); } #line 1838 "cc.gr.gen.cc" // [258] UberTypeAndCVQualifierSeqOpt[UberModifiers] -> s:UberTypeAndCVQualifierSeqOpt u:UberTypeKeyword inline UberModifiers CCParse::action258_UberTypeAndCVQualifierSeqOpt(SourceLocation loc, SourceLocation endloc, UberModifiers s, UberModifiers u) { return uberCombine(loc, s,u); } #line 1843 "cc.gr.gen.cc" // [259] UberModifier[UberModifiers] -> auto inline UberModifiers CCParse::action259_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_AUTO; } #line 1848 "cc.gr.gen.cc" // [260] UberModifier[UberModifiers] -> register inline UberModifiers CCParse::action260_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_REGISTER; } #line 1853 "cc.gr.gen.cc" // [261] UberModifier[UberModifiers] -> static inline UberModifiers CCParse::action261_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_STATIC; } #line 1858 "cc.gr.gen.cc" // [262] UberModifier[UberModifiers] -> extern inline UberModifiers CCParse::action262_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_EXTERN; } #line 1863 "cc.gr.gen.cc" // [263] UberModifier[UberModifiers] -> mutable inline UberModifiers CCParse::action263_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_MUTABLE; } #line 1868 "cc.gr.gen.cc" // [264] UberModifier[UberModifiers] -> inline inline UberModifiers CCParse::action264_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_INLINE; } #line 1873 "cc.gr.gen.cc" // [265] UberModifier[UberModifiers] -> virtual inline UberModifiers CCParse::action265_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_VIRTUAL; } #line 1878 "cc.gr.gen.cc" // [266] UberModifier[UberModifiers] -> friend inline UberModifiers CCParse::action266_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_FRIEND; } #line 1883 "cc.gr.gen.cc" // [267] UberModifier[UberModifiers] -> typedef inline UberModifiers CCParse::action267_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_TYPEDEF; } #line 1888 "cc.gr.gen.cc" // [268] UberModifier[UberModifiers] -> const %prec(190) inline UberModifiers CCParse::action268_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_CONST; } #line 1893 "cc.gr.gen.cc" // [269] UberModifier[UberModifiers] -> volatile %prec(190) inline UberModifiers CCParse::action269_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_VOLATILE; } #line 1898 "cc.gr.gen.cc" // [270] UberModifier[UberModifiers] -> restrict %prec(190) inline UberModifiers CCParse::action270_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_RESTRICT; } #line 1903 "cc.gr.gen.cc" // [271] UberModifier[UberModifiers] -> AttributeSpecifier inline UberModifiers CCParse::action271_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_NONE; } #line 1908 "cc.gr.gen.cc" // [272] UberModifier[UberModifiers] -> __active__ inline UberModifiers CCParse::action272_UberModifier(SourceLocation loc, SourceLocation endloc) { return UM_ACTIVE; } #line 1913 "cc.gr.gen.cc" // [273] UberCVQualifier[UberModifiers] -> const %prec(190) inline UberModifiers CCParse::action273_UberCVQualifier(SourceLocation loc, SourceLocation endloc) { return UM_CONST; } #line 1918 "cc.gr.gen.cc" // [274] UberCVQualifier[UberModifiers] -> volatile %prec(190) inline UberModifiers CCParse::action274_UberCVQualifier(SourceLocation loc, SourceLocation endloc) { return UM_VOLATILE; } #line 1923 "cc.gr.gen.cc" // [275] UberCVQualifier[UberModifiers] -> restrict %prec(190) inline UberModifiers CCParse::action275_UberCVQualifier(SourceLocation loc, SourceLocation endloc) { return UM_RESTRICT; } #line 1928 "cc.gr.gen.cc" // [276] UberCVQualifier[UberModifiers] -> AttributeSpecifier inline UberModifiers CCParse::action276_UberCVQualifier(SourceLocation loc, SourceLocation endloc) { return UM_NONE; } #line 1933 "cc.gr.gen.cc" // [277] UberTypeKeyword[UberModifiers] -> char inline UberModifiers CCParse::action277_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_CHAR; } #line 1938 "cc.gr.gen.cc" // [278] UberTypeKeyword[UberModifiers] -> wchar_t inline UberModifiers CCParse::action278_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_WCHAR_T; } #line 1943 "cc.gr.gen.cc" // [279] UberTypeKeyword[UberModifiers] -> bool inline UberModifiers CCParse::action279_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_BOOL; } #line 1948 "cc.gr.gen.cc" // [280] UberTypeKeyword[UberModifiers] -> short inline UberModifiers CCParse::action280_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_SHORT; } #line 1953 "cc.gr.gen.cc" // [281] UberTypeKeyword[UberModifiers] -> int inline UberModifiers CCParse::action281_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_INT; } #line 1958 "cc.gr.gen.cc" // [282] UberTypeKeyword[UberModifiers] -> long inline UberModifiers CCParse::action282_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_LONG; } #line 1963 "cc.gr.gen.cc" // [283] UberTypeKeyword[UberModifiers] -> signed inline UberModifiers CCParse::action283_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_SIGNED; } #line 1968 "cc.gr.gen.cc" // [284] UberTypeKeyword[UberModifiers] -> unsigned inline UberModifiers CCParse::action284_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_UNSIGNED; } #line 1973 "cc.gr.gen.cc" // [285] UberTypeKeyword[UberModifiers] -> float inline UberModifiers CCParse::action285_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_FLOAT; } #line 1978 "cc.gr.gen.cc" // [286] UberTypeKeyword[UberModifiers] -> double inline UberModifiers CCParse::action286_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_DOUBLE; } #line 1983 "cc.gr.gen.cc" // [287] UberTypeKeyword[UberModifiers] -> void inline UberModifiers CCParse::action287_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_VOID; } #line 1988 "cc.gr.gen.cc" // [288] UberTypeKeyword[UberModifiers] -> _Bool inline UberModifiers CCParse::action288_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_BOOL; } #line 1993 "cc.gr.gen.cc" // [289] UberTypeKeyword[UberModifiers] -> _Complex inline UberModifiers CCParse::action289_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_COMPLEX; } #line 1998 "cc.gr.gen.cc" // [290] UberTypeKeyword[UberModifiers] -> _Imaginary inline UberModifiers CCParse::action290_UberTypeKeyword(SourceLocation loc, SourceLocation endloc) { return UM_IMAGINARY; } #line 2003 "cc.gr.gen.cc" // [291] ElaboratedTypeSpecifier[TypeSpecifier*] -> k:ClassKey n:PQTypeName inline TypeSpecifier* CCParse::action291_ElaboratedTypeSpecifier(SourceLocation loc, SourceLocation endloc, enum TypeIntr k, PQName* n) { return new TS_elaborated(loc, endloc, k, n); } #line 2008 "cc.gr.gen.cc" // [292] ElaboratedTypeSpecifier[TypeSpecifier*] -> enum n:PQTypeName inline TypeSpecifier* CCParse::action292_ElaboratedTypeSpecifier(SourceLocation loc, SourceLocation endloc, PQName* n) { return new TS_elaborated(loc, endloc, TI_ENUM, n); } #line 2013 "cc.gr.gen.cc" // [293] ElaboratedTypeSpecifier[TypeSpecifier*] -> typename n:PQTypeName inline TypeSpecifier* CCParse::action293_ElaboratedTypeSpecifier(SourceLocation loc, SourceLocation endloc, PQName* n) { return new TS_name(loc, endloc, n, true /*typename*/); } #line 2018 "cc.gr.gen.cc" // [294] ElaboratedTypeSpecifier[TypeSpecifier*] -> k:ClassKey AttributeSpecifier n:PQTypeName inline TypeSpecifier* CCParse::action294_ElaboratedTypeSpecifier(SourceLocation loc, SourceLocation endloc, enum TypeIntr k, PQName* n) { return new TS_elaborated(loc, endloc, k, n); } #line 2023 "cc.gr.gen.cc" // [295] ElaboratedTypeSpecifier[TypeSpecifier*] -> enum AttributeSpecifierList n:PQTypeName inline TypeSpecifier* CCParse::action295_ElaboratedTypeSpecifier(SourceLocation loc, SourceLocation endloc, PQName* n) { return new TS_elaborated(loc, endloc, TI_ENUM, n); } #line 2028 "cc.gr.gen.cc" // [296] TypeSpecifier[TypeSpecifier*] -> n:PQTypeName cv2:UberCVQualifierSeqOpt inline TypeSpecifier* CCParse::action296_TypeSpecifier(SourceLocation loc, SourceLocation endloc, PQName* n, UberModifiers cv2) { return new_TS_name(loc, endloc, uberCVFlags(cv2), n, false /*typename*/); } #line 2033 "cc.gr.gen.cc" // [297] TypeSpecifier[TypeSpecifier*] -> cv1:UberCVQualifierSeq n:PQTypeName cv2:UberCVQualifierSeqOpt inline TypeSpecifier* CCParse::action297_TypeSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers cv1, PQName* n, UberModifiers cv2) { UberModifiers cv = uberCombine(loc, cv1, cv2); return new_TS_name(loc, endloc, uberCVFlags(cv), n, false /*typename*/); } #line 2039 "cc.gr.gen.cc" // [298] TypeSpecifier[TypeSpecifier*] -> k1:UberTypeKeyword m2:UberTypeAndCVQualifierSeqOpt inline TypeSpecifier* CCParse::action298_TypeSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers k1, UberModifiers m2) { UberModifiers k = uberCombine(loc, k1, m2); return new_TS_simple(loc, endloc, uberCVFlags(m2), uberSimpleType(loc, k)); } #line 2045 "cc.gr.gen.cc" // [299] TypeSpecifier[TypeSpecifier*] -> m1:UberCVQualifierSeq k1:UberTypeKeyword m2:UberTypeAndCVQualifierSeqOpt inline TypeSpecifier* CCParse::action299_TypeSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers m1, UberModifiers k1, UberModifiers m2) { UberModifiers m = uberCombine(loc, m1, m2); UberModifiers k = uberCombine(loc, k1, m2); return new_TS_simple(loc, endloc, uberCVFlags(m), uberSimpleType(loc, k)); } #line 2052 "cc.gr.gen.cc" // [300] TypeSpecifier[TypeSpecifier*] -> e:ElaboratedOrSpecifier m2:UberCVQualifierSeqOpt inline TypeSpecifier* CCParse::action300_TypeSpecifier(SourceLocation loc, SourceLocation endloc, TypeSpecifier* e, UberModifiers m2) { e->setCVOnce(uberCVFlags(m2)); // semi-destructive action return e; } #line 2058 "cc.gr.gen.cc" // [301] TypeSpecifier[TypeSpecifier*] -> m1:UberCVQualifierSeq e:ElaboratedOrSpecifier m2:UberCVQualifierSeqOpt inline TypeSpecifier* CCParse::action301_TypeSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers m1, TypeSpecifier* e, UberModifiers m2) { UberModifiers m = uberCombine(loc, m1, m2); e->setCVOnce(uberCVFlags(m)); // semi-destructive action return e; } #line 2065 "cc.gr.gen.cc" // [302] TypeSpecifier[TypeSpecifier*] -> te:TypeofTypeSpecifier cv2:UberCVQualifierSeqOpt inline TypeSpecifier* CCParse::action302_TypeSpecifier(SourceLocation loc, SourceLocation endloc, ASTTypeof* te, UberModifiers cv2) { return new_TS_typeof(loc, endloc, uberCVFlags(cv2), te); } #line 2070 "cc.gr.gen.cc" // [303] TypeSpecifier[TypeSpecifier*] -> cv1:UberCVQualifierSeq te:TypeofTypeSpecifier cv2:UberCVQualifierSeqOpt inline TypeSpecifier* CCParse::action303_TypeSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers cv1, ASTTypeof* te, UberModifiers cv2) { UberModifiers cv = uberCombine(loc, cv1, cv2); return new_TS_typeof(loc, endloc, uberCVFlags(cv), te); } #line 2076 "cc.gr.gen.cc" // [304] PQTypeName[PQName*] -> n:PQTypeName_ncc inline PQName* CCParse::action304_PQTypeName(SourceLocation loc, SourceLocation endloc, PQName* n) { return n; } #line 2081 "cc.gr.gen.cc" // [305] PQTypeName[PQName*] -> :: n:PQTypeName_ncc %prec(195) inline PQName* CCParse::action305_PQTypeName(SourceLocation loc, SourceLocation endloc, PQName* n) { return new PQ_qualifier(loc, endloc, NULL /*qualifier*/, NULL /*targs*/, n); } #line 2086 "cc.gr.gen.cc" // [306] PQTypeName_ncc[PQName*] -> n:Identifier %prec(195) inline PQName* CCParse::action306_PQTypeName_ncc(SourceLocation loc, SourceLocation endloc, StringRef n) { return new PQ_name(loc, endloc, n); } #line 2091 "cc.gr.gen.cc" // [307] PQTypeName_ncc[PQName*] -> id:TemplateId %prec(195) inline PQName* CCParse::action307_PQTypeName_ncc(SourceLocation loc, SourceLocation endloc, PQ_template* id) { return id; } #line 2096 "cc.gr.gen.cc" // [308] PQTypeName_ncc[PQName*] -> q:Identifier :: n:PQTypeName_notfirst %prec(195) inline PQName* CCParse::action308_PQTypeName_ncc(SourceLocation loc, SourceLocation endloc, StringRef q, PQName* n) { return new PQ_qualifier(loc, endloc, q, NULL /*targs*/, n); } #line 2101 "cc.gr.gen.cc" // [309] PQTypeName_ncc[PQName*] -> q:Identifier < targs:TemplateArgumentListOpt > :: n:PQTypeName_notfirst %prec(195) inline PQName* CCParse::action309_PQTypeName_ncc(SourceLocation loc, SourceLocation endloc, StringRef q, /*fakelist*/TemplateArgument* targs, PQName* n) { return new PQ_qualifier(loc, endloc, q, targs, n); } #line 2106 "cc.gr.gen.cc" // [310] PQTypeName_notfirst[PQName*] -> id:PQTypeName_ncc %prec(195) inline PQName* CCParse::action310_PQTypeName_notfirst(SourceLocation loc, SourceLocation endloc, PQName* id) { return id; } #line 2111 "cc.gr.gen.cc" // [311] PQTypeName_notfirst[PQName*] -> template id:TemplateId %prec(195) inline PQName* CCParse::action311_PQTypeName_notfirst(SourceLocation loc, SourceLocation endloc, PQ_template* id) { id->templArgs = templateUsed(id->templArgs); // destructive action return id; } #line 2117 "cc.gr.gen.cc" // [312] PQTypeName_notfirst[PQName*] -> template q:Identifier < targs:TemplateArgumentListOpt > :: n:PQTypeName_notfirst %prec(195) inline PQName* CCParse::action312_PQTypeName_notfirst(SourceLocation loc, SourceLocation endloc, StringRef q, /*fakelist*/TemplateArgument* targs, PQName* n) { return new PQ_qualifier(loc, endloc, q, templateUsed(targs), n); } #line 2122 "cc.gr.gen.cc" // [313] EnumSpecifier[TS_enumSpec*] -> enum { list:EnumeratorListOpt } inline TS_enumSpec* CCParse::action313_EnumSpecifier(SourceLocation loc, SourceLocation endloc, FakeList* list) { return new TS_enumSpec(loc, endloc, NULL /*name*/, list); } #line 2127 "cc.gr.gen.cc" // [314] EnumSpecifier[TS_enumSpec*] -> enum n:Identifier { list:EnumeratorListOpt } inline TS_enumSpec* CCParse::action314_EnumSpecifier(SourceLocation loc, SourceLocation endloc, StringRef n, FakeList* list) { return new TS_enumSpec(loc, endloc, n, list); } #line 2132 "cc.gr.gen.cc" // [315] EnumSpecifier[TS_enumSpec*] -> enum AttributeSpecifierList { list:EnumeratorListOpt } inline TS_enumSpec* CCParse::action315_EnumSpecifier(SourceLocation loc, SourceLocation endloc, FakeList* list) { return new TS_enumSpec(loc, endloc, NULL /*name*/, list); } #line 2137 "cc.gr.gen.cc" // [316] EnumSpecifier[TS_enumSpec*] -> enum AttributeSpecifierList n:PQTypeName { list:EnumeratorListOpt } inline TS_enumSpec* CCParse::action316_EnumSpecifier(SourceLocation loc, SourceLocation endloc, PQName* n, FakeList* list) { return new TS_enumSpec(loc, endloc, n->getName(), list); } #line 2142 "cc.gr.gen.cc" // [317] EnumeratorListOpt[FakeList*] -> empty inline FakeList* CCParse::action317_EnumeratorListOpt(SourceLocation loc, SourceLocation endloc) { return FakeList::emptyList(); } #line 2147 "cc.gr.gen.cc" // [318] EnumeratorListOpt[FakeList*] -> def:EnumeratorDefinition inline FakeList* CCParse::action318_EnumeratorListOpt(SourceLocation loc, SourceLocation endloc, Enumerator* def) { return FakeList::makeList(def); } #line 2152 "cc.gr.gen.cc" // [319] EnumeratorListOpt[FakeList*] -> def:EnumeratorDefinition , list:EnumeratorListOpt inline FakeList* CCParse::action319_EnumeratorListOpt(SourceLocation loc, SourceLocation endloc, Enumerator* def, FakeList* list) { return list->prepend(def); } #line 2157 "cc.gr.gen.cc" // [320] EnumeratorDefinition[Enumerator*] -> name:Identifier inline Enumerator* CCParse::action320_EnumeratorDefinition(SourceLocation loc, SourceLocation endloc, StringRef name) { return new Enumerator(loc, endloc, name, NULL /*expr*/); } #line 2162 "cc.gr.gen.cc" // [321] EnumeratorDefinition[Enumerator*] -> name:Identifier = expr:ConstantExpression inline Enumerator* CCParse::action321_EnumeratorDefinition(SourceLocation loc, SourceLocation endloc, StringRef name, Expression* expr) { return new Enumerator(loc, endloc, name, expr); } #line 2167 "cc.gr.gen.cc" // [322] AsmDefinition[Asm*] -> asm ( s:StringLiteral ) ; inline Asm* CCParse::action322_AsmDefinition(SourceLocation loc, SourceLocation endloc, E_stringLit* s) { return new Asm(s); } #line 2172 "cc.gr.gen.cc" // [323] AsmDefinition[Asm*] -> asm q:CVQualifierSeq ( s:StringLiteral ) ; inline Asm* CCParse::action323_AsmDefinition(SourceLocation loc, SourceLocation endloc, enum CVFlags q, E_stringLit* s) { return new Asm(s, q); } #line 2177 "cc.gr.gen.cc" // [324] AsmDefinition[Asm*] -> asm q:CVQualifierSeq ( s:StringLiteral ocs:OpConstraints ) ; inline Asm* CCParse::action324_AsmDefinition(SourceLocation loc, SourceLocation endloc, enum CVFlags q, E_stringLit* s, Constraints* ocs) { return new Asm(s, q, ocs); } #line 2182 "cc.gr.gen.cc" // [325] AsmDefinition[Asm*] -> asm ( s:StringLiteral ocs:OpConstraints ) ; inline Asm* CCParse::action325_AsmDefinition(SourceLocation loc, SourceLocation endloc, E_stringLit* s, Constraints* ocs) { return new Asm(s, CV_NONE, ocs); } #line 2187 "cc.gr.gen.cc" // [326] LinkageSpecification[TopForm*] -> extern n:TOK_STRING_LITERAL { tu:TranslationUnit } inline TopForm* CCParse::action326_LinkageSpecification(SourceLocation loc, SourceLocation endloc, StringRef n, TranslationUnit* tu) { return new TF_linkage(loc, n, tu); } #line 2192 "cc.gr.gen.cc" // [327] LinkageSpecification[TopForm*] -> extern n:TOK_STRING_LITERAL tf:Declaration inline TopForm* CCParse::action327_LinkageSpecification(SourceLocation loc, SourceLocation endloc, StringRef n, TopForm* tf) { return new TF_one_linkage(loc, n, tf); } #line 2197 "cc.gr.gen.cc" // [328] InitDeclaratorList[FakeList*] -> d:InitDeclarator inline FakeList* CCParse::action328_InitDeclaratorList(SourceLocation loc, SourceLocation endloc, Declarator* d) { return FakeList::makeList(d); } #line 2202 "cc.gr.gen.cc" // [329] InitDeclaratorList[FakeList*] -> d:InitDeclarator , list:InitDeclaratorList inline FakeList* CCParse::action329_InitDeclaratorList(SourceLocation loc, SourceLocation endloc, Declarator* d, FakeList* list) { d->setNext(list->first()); return FakeList::makeList(d); } #line 2208 "cc.gr.gen.cc" // [330] InitDeclaratorList[FakeList*] -> d:InitDeclarator , AttributeSpecifierList list:InitDeclaratorList inline FakeList* CCParse::action330_InitDeclaratorList(SourceLocation loc, SourceLocation endloc, Declarator* d, FakeList* list) { d->setNext(list->first()); return FakeList::makeList(d); } #line 2214 "cc.gr.gen.cc" // [331] InitDeclarator[Declarator*] -> d:Declarator inline Declarator* CCParse::action331_InitDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new Declarator(d, NULL); } #line 2219 "cc.gr.gen.cc" // [332] InitDeclarator[Declarator*] -> d:Declarator i:Initializer inline Declarator* CCParse::action332_InitDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, Initializer* i) { return new Declarator(d, i); } #line 2224 "cc.gr.gen.cc" // [333] Initializer[Initializer*] -> = i:SimpleInitializerClause inline Initializer* CCParse::action333_Initializer(SourceLocation loc, SourceLocation endloc, Initializer* i) { return i; } #line 2229 "cc.gr.gen.cc" // [334] Initializer[Initializer*] -> ( args:ExpressionList ) inline Initializer* CCParse::action334_Initializer(SourceLocation loc, SourceLocation endloc, FakeList* args) { return new IN_ctor(loc, args); } #line 2234 "cc.gr.gen.cc" // [335] SimpleInitializerClause[Initializer*] -> e:AssignmentExpression inline Initializer* CCParse::action335_SimpleInitializerClause(SourceLocation loc, SourceLocation endloc, Expression* e) { return new IN_expr(loc, e); } #line 2239 "cc.gr.gen.cc" // [336] SimpleInitializerClause[Initializer*] -> c:CompoundInitializer inline Initializer* CCParse::action336_SimpleInitializerClause(SourceLocation loc, SourceLocation endloc, IN_compound* c) { return c; } #line 2244 "cc.gr.gen.cc" // [337] InitializerClause[Initializer*] -> init:SimpleInitializerClause inline Initializer* CCParse::action337_InitializerClause(SourceLocation loc, SourceLocation endloc, Initializer* init) { return init; } #line 2249 "cc.gr.gen.cc" // [338] InitializerClause[Initializer*] -> d:Identifier : init:SimpleInitializerClause inline Initializer* CCParse::action338_InitializerClause(SourceLocation loc, SourceLocation endloc, StringRef d, Initializer* init) { return new IN_designated(loc, FakeList::makeList(new FieldDesignator(loc, d)), init); } #line 2255 "cc.gr.gen.cc" // [339] InitializerClause[Initializer*] -> dl:DesignatorList = init:SimpleInitializerClause inline Initializer* CCParse::action339_InitializerClause(SourceLocation loc, SourceLocation endloc, FakeList* dl, Initializer* init) { return new IN_designated(loc, dl, init); } #line 2260 "cc.gr.gen.cc" // [340] InitializerClause[Initializer*] -> dl:DesignatorList init:SimpleInitializerClause inline Initializer* CCParse::action340_InitializerClause(SourceLocation loc, SourceLocation endloc, FakeList* dl, Initializer* init) { return new IN_designated(loc, dl, init); } #line 2265 "cc.gr.gen.cc" // [341] CompoundInitializer[IN_compound*] -> { list:InitializerList CommaOpt } inline IN_compound* CCParse::action341_CompoundInitializer(SourceLocation loc, SourceLocation endloc, IN_compound* list) { return list; } #line 2270 "cc.gr.gen.cc" // [342] CompoundInitializer[IN_compound*] -> { } inline IN_compound* CCParse::action342_CompoundInitializer(SourceLocation loc, SourceLocation endloc) { return new IN_compound(loc, NULL); } #line 2275 "cc.gr.gen.cc" // [343] CommaOpt[void] -> empty inline void CCParse::action343_CommaOpt(SourceLocation loc, SourceLocation endloc) {return; } // [344] CommaOpt[void] -> , inline void CCParse::action344_CommaOpt(SourceLocation loc, SourceLocation endloc) {return; } // [345] InitializerList[IN_compound*] -> init:InitializerClause inline IN_compound* CCParse::action345_InitializerList(SourceLocation loc, SourceLocation endloc, Initializer* init) { IN_compound *list = new IN_compound(loc, NULL); list->inits.append(init); return list; } #line 2288 "cc.gr.gen.cc" // [346] InitializerList[IN_compound*] -> list:InitializerList , init:InitializerClause inline IN_compound* CCParse::action346_InitializerList(SourceLocation loc, SourceLocation endloc, IN_compound* list, Initializer* init) { xassert(list != NULL && "8706f04b-0a31-407e-b31b-40607d31edf9"); list->inits.append(init); return list; } #line 2294 "cc.gr.gen.cc" // [347] Declarator[IDeclarator*] -> * cv:CVQualifierSeqOpt d:Declarator %prec(110) inline IDeclarator* CCParse::action347_Declarator(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, IDeclarator* d) { return new D_pointer(loc, endloc, cv, d); } #line 2299 "cc.gr.gen.cc" // [348] Declarator[IDeclarator*] -> & cv:CVQualifierSeqOpt d:Declarator %prec(60) inline IDeclarator* CCParse::action348_Declarator(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, IDeclarator* d) { return new D_reference(loc, endloc, d); } #line 2304 "cc.gr.gen.cc" // [349] Declarator[IDeclarator*] -> n:PtrToMemberName * cv:CVQualifierSeqOpt d:Declarator %prec(110) inline IDeclarator* CCParse::action349_Declarator(SourceLocation loc, SourceLocation endloc, PQName* n, enum CVFlags cv, IDeclarator* d) { return new D_ptrToMember(loc, endloc, n, cv, d); } #line 2309 "cc.gr.gen.cc" // [350] Declarator[IDeclarator*] -> d:DirectDeclarator inline IDeclarator* CCParse::action350_Declarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return d; } #line 2314 "cc.gr.gen.cc" // [351] Declarator[IDeclarator*] -> d:DirectDeclarator asm ( s:StringLiteral ) inline IDeclarator* CCParse::action351_Declarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, E_stringLit* s) { return new D_asmlabel(loc, endloc, d, s); } #line 2319 "cc.gr.gen.cc" // [352] Declarator[IDeclarator*] -> d:DirectDeclarator asm ( s:StringLiteral ) AttributeSpecifierList inline IDeclarator* CCParse::action352_Declarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, E_stringLit* s) { return new D_asmlabel(loc, endloc, d, s); } #line 2324 "cc.gr.gen.cc" // [353] Declarator[IDeclarator*] -> * cv:CVQualifierSeqOpt AttributeSpecifier cv2:CVQualAttrSeqOpt d:Declarator %prec(110) inline IDeclarator* CCParse::action353_Declarator(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, enum CVFlags cv2, IDeclarator* d) { return new D_pointer(loc, endloc, cv | cv2, d); } #line 2329 "cc.gr.gen.cc" // [354] Declarator[IDeclarator*] -> d:DirectDeclarator attr:AttributeSpecifierList inline IDeclarator* CCParse::action354_Declarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, AttributeSpecifierList* attr) { return new D_attribute(loc, d, attr); } #line 2334 "cc.gr.gen.cc" // [355] DirectDeclarator[IDeclarator*] -> n:IdExpression inline IDeclarator* CCParse::action355_DirectDeclarator(SourceLocation loc, SourceLocation endloc, PQName* n) { return new D_name(loc, endloc, n); } #line 2339 "cc.gr.gen.cc" // [356] DirectDeclarator[IDeclarator*] -> n:PQDtorName inline IDeclarator* CCParse::action356_DirectDeclarator(SourceLocation loc, SourceLocation endloc, PQName* n) { return new D_name(loc, endloc, n); } #line 2344 "cc.gr.gen.cc" // [357] DirectDeclarator[IDeclarator*] -> d:DirectDeclarator ( params:ParameterDeclarationClause ) cv:CVQualifierSeqOpt e:ExceptionSpecificationOpt inline IDeclarator* CCParse::action357_DirectDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, FakeList* params, enum CVFlags cv, ExceptionSpec* e) { return new_D_func(loc, endloc, d, params, cv, e); } #line 2349 "cc.gr.gen.cc" // [358] DirectDeclarator[IDeclarator*] -> d:DirectDeclarator [ sz:ConstantExpressionOpt ] inline IDeclarator* CCParse::action358_DirectDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, Expression* sz) { return new_D_array(loc, endloc, d, sz); } #line 2354 "cc.gr.gen.cc" // [359] DirectDeclarator[IDeclarator*] -> ( d:Declarator ) inline IDeclarator* CCParse::action359_DirectDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new D_grouping(loc, endloc, d); } #line 2359 "cc.gr.gen.cc" // [360] DirectDeclarator[IDeclarator*] -> d:DirectDeclarator [ q:CVQualifierSeq ] inline IDeclarator* CCParse::action360_DirectDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, enum CVFlags q) { // FIX: CVQualifierSeq goes on the array return new D_array(loc, endloc, d, NULL /*size*/); } #line 2367 "cc.gr.gen.cc" // [361] DirectDeclarator[IDeclarator*] -> ( attr:AttributeSpecifierList d:Declarator ) inline IDeclarator* CCParse::action361_DirectDeclarator(SourceLocation loc, SourceLocation endloc, AttributeSpecifierList* attr, IDeclarator* d) { return new D_attribute(loc, d, attr); } #line 2372 "cc.gr.gen.cc" // [362] PQDtorName[PQName*] -> ~ n:Identifier inline PQName* CCParse::action362_PQDtorName(SourceLocation loc, SourceLocation endloc, StringRef n) { return new PQ_name(loc, endloc, str(stringc << "~" << n)); } #line 2377 "cc.gr.gen.cc" // [363] PQDtorName[PQName*] -> ~ n:Identifier < list:TemplateArgumentListOpt > inline PQName* CCParse::action363_PQDtorName(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* list) { return new PQ_template(loc, endloc, str(stringc << "~" << n), list); } #line 2382 "cc.gr.gen.cc" // [364] PQDtorName[PQName*] -> q:Identifier :: rhs:PQDtorName %prec(195) inline PQName* CCParse::action364_PQDtorName(SourceLocation loc, SourceLocation endloc, StringRef q, PQName* rhs) { return new PQ_qualifier(loc, endloc, q, NULL /*targs*/, rhs); } #line 2387 "cc.gr.gen.cc" // [365] PQDtorName[PQName*] -> q:Identifier < targs:TemplateArgumentListOpt > :: rhs:PQDtorName %prec(195) inline PQName* CCParse::action365_PQDtorName(SourceLocation loc, SourceLocation endloc, StringRef q, /*fakelist*/TemplateArgument* targs, PQName* rhs) { return new PQ_qualifier(loc, endloc, q, targs, rhs); } #line 2392 "cc.gr.gen.cc" // [366] PQDtorName[PQName*] -> template q:Identifier < targs:TemplateArgumentListOpt > :: rhs:PQDtorName %prec(195) inline PQName* CCParse::action366_PQDtorName(SourceLocation loc, SourceLocation endloc, StringRef q, /*fakelist*/TemplateArgument* targs, PQName* rhs) { return new PQ_qualifier(loc, endloc, q, templateUsed(targs), rhs); } #line 2397 "cc.gr.gen.cc" // [367] PtrToMemberName[PQName*] -> n:IdExpression :: %prec(195) inline PQName* CCParse::action367_PtrToMemberName(SourceLocation loc, SourceLocation endloc, PQName* n) { return n; } #line 2402 "cc.gr.gen.cc" // [368] CVQualifierSeqOpt[enum CVFlags] -> empty inline enum CVFlags CCParse::action368_CVQualifierSeqOpt(SourceLocation loc, SourceLocation endloc) { return CV_NONE; } #line 2407 "cc.gr.gen.cc" // [369] CVQualifierSeqOpt[enum CVFlags] -> s:CVQualifierSeq inline enum CVFlags CCParse::action369_CVQualifierSeqOpt(SourceLocation loc, SourceLocation endloc, enum CVFlags s) { return s; } #line 2412 "cc.gr.gen.cc" // [370] CVQualifierSeq[enum CVFlags] -> q:CVQualifier inline enum CVFlags CCParse::action370_CVQualifierSeq(SourceLocation loc, SourceLocation endloc, enum CVFlags q) { return q; } #line 2417 "cc.gr.gen.cc" // [371] CVQualifierSeq[enum CVFlags] -> q:CVQualifier s:CVQualifierSeq inline enum CVFlags CCParse::action371_CVQualifierSeq(SourceLocation loc, SourceLocation endloc, enum CVFlags q, enum CVFlags s) { return (CVFlags)(q | s); } #line 2422 "cc.gr.gen.cc" // [372] CVQualifier[enum CVFlags] -> const %prec(190) inline enum CVFlags CCParse::action372_CVQualifier(SourceLocation loc, SourceLocation endloc) { return CV_CONST; } #line 2427 "cc.gr.gen.cc" // [373] CVQualifier[enum CVFlags] -> volatile %prec(190) inline enum CVFlags CCParse::action373_CVQualifier(SourceLocation loc, SourceLocation endloc) { return CV_VOLATILE; } #line 2432 "cc.gr.gen.cc" // [374] CVQualifier[enum CVFlags] -> restrict %prec(190) inline enum CVFlags CCParse::action374_CVQualifier(SourceLocation loc, SourceLocation endloc) { return CV_RESTRICT; } #line 2437 "cc.gr.gen.cc" // [375] TypeId[ASTTypeId*] -> spec:TypeSpecifier decl:AbstractDeclaratorOpt inline ASTTypeId* CCParse::action375_TypeId(SourceLocation loc, SourceLocation endloc, TypeSpecifier* spec, IDeclarator* decl) { return new ASTTypeId(spec, new Declarator(decl, NULL)); } #line 2442 "cc.gr.gen.cc" // [376] AbstractDeclaratorOpt[IDeclarator*] -> empty inline IDeclarator* CCParse::action376_AbstractDeclaratorOpt(SourceLocation loc, SourceLocation endloc) { return new D_name(loc, endloc, NULL); } #line 2447 "cc.gr.gen.cc" // [377] AbstractDeclaratorOpt[IDeclarator*] -> d:AbstractDeclarator inline IDeclarator* CCParse::action377_AbstractDeclaratorOpt(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return d; } #line 2452 "cc.gr.gen.cc" // [378] AbstractDeclarator[IDeclarator*] -> * cv:CVQualifierSeqOpt d:AbstractDeclaratorOpt %prec(110) inline IDeclarator* CCParse::action378_AbstractDeclarator(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, IDeclarator* d) { return new D_pointer(loc, endloc, cv, d); } #line 2457 "cc.gr.gen.cc" // [379] AbstractDeclarator[IDeclarator*] -> & cv:CVQualifierSeqOpt d:AbstractDeclaratorOpt %prec(60) inline IDeclarator* CCParse::action379_AbstractDeclarator(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, IDeclarator* d) { return new D_reference(loc, endloc, d); } #line 2462 "cc.gr.gen.cc" // [380] AbstractDeclarator[IDeclarator*] -> n:PtrToMemberName * cv:CVQualifierSeqOpt d:AbstractDeclaratorOpt %prec(110) inline IDeclarator* CCParse::action380_AbstractDeclarator(SourceLocation loc, SourceLocation endloc, PQName* n, enum CVFlags cv, IDeclarator* d) { return new D_ptrToMember(loc, endloc, n, cv, d); } #line 2467 "cc.gr.gen.cc" // [381] AbstractDeclarator[IDeclarator*] -> d:DirectAbstractDeclarator inline IDeclarator* CCParse::action381_AbstractDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return d; } #line 2472 "cc.gr.gen.cc" // [382] AbstractDeclarator[IDeclarator*] -> * cv:CVQualifierSeqOpt attrspec:AttributeSpecifier cv2:CVQualAttrSeqOpt d:AbstractDeclaratorOpt %prec(110) inline IDeclarator* CCParse::action382_AbstractDeclarator(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, AttributeSpecifier* attrspec, enum CVFlags cv2, IDeclarator* d) { return new D_pointer(loc, endloc, cv | cv2, d); } #line 2477 "cc.gr.gen.cc" // [383] AbstractDeclarator[IDeclarator*] -> d:DirectAbstractDeclarator attr:AttributeSpecifierList inline IDeclarator* CCParse::action383_AbstractDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, AttributeSpecifierList* attr) { return new D_attribute(loc, d, attr); } #line 2482 "cc.gr.gen.cc" // [384] DirectAbstractDeclaratorOpt[IDeclarator*] -> empty inline IDeclarator* CCParse::action384_DirectAbstractDeclaratorOpt(SourceLocation loc, SourceLocation endloc) { return new D_name(loc, endloc, NULL /*name*/); } #line 2487 "cc.gr.gen.cc" // [385] DirectAbstractDeclaratorOpt[IDeclarator*] -> d:DirectAbstractDeclarator inline IDeclarator* CCParse::action385_DirectAbstractDeclaratorOpt(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return d; } #line 2492 "cc.gr.gen.cc" // [386] DirectAbstractDeclarator[IDeclarator*] -> d:DirectAbstractDeclaratorOpt ( args:ParameterDeclarationClause ) cv:CVQualifierSeqOpt e:ExceptionSpecificationOpt inline IDeclarator* CCParse::action386_DirectAbstractDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, FakeList* args, enum CVFlags cv, ExceptionSpec* e) { return new_D_func(loc, endloc, d, args, cv, e); } #line 2497 "cc.gr.gen.cc" // [387] DirectAbstractDeclarator[IDeclarator*] -> d:DirectAbstractDeclaratorOpt [ sz:ConstantExpressionOpt ] inline IDeclarator* CCParse::action387_DirectAbstractDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, Expression* sz) { return new_D_array(loc, endloc, d, sz); } #line 2502 "cc.gr.gen.cc" // [388] DirectAbstractDeclarator[IDeclarator*] -> ( d:AbstractDeclarator ) inline IDeclarator* CCParse::action388_DirectAbstractDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new D_grouping(loc, endloc, d); } #line 2507 "cc.gr.gen.cc" // [389] DirectAbstractDeclarator[IDeclarator*] -> d:DirectAbstractDeclaratorOpt [ q:CVQualifierSeq ] inline IDeclarator* CCParse::action389_DirectAbstractDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, enum CVFlags q) { // FIX: Ben says the CVQualifierSeq goes on the array itself, // just as if the array were a pointer and it was on the pointer return new D_array(loc, endloc, d, NULL /*size*/); } #line 2516 "cc.gr.gen.cc" // [390] DirectAbstractDeclarator[IDeclarator*] -> ( AttributeSpecifierList d:AbstractDeclarator ) inline IDeclarator* CCParse::action390_DirectAbstractDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new D_grouping(loc, endloc, d); } #line 2521 "cc.gr.gen.cc" // [391] ParameterDeclarationClause[FakeList*] -> p:ParameterDeclarationList inline FakeList* CCParse::action391_ParameterDeclarationClause(SourceLocation loc, SourceLocation endloc, FakeList* p) { return p; } #line 2526 "cc.gr.gen.cc" // [392] ParameterDeclarationClause[FakeList*] -> empty inline FakeList* CCParse::action392_ParameterDeclarationClause(SourceLocation loc, SourceLocation endloc) { return FakeList::emptyList(); } #line 2531 "cc.gr.gen.cc" // [393] ParameterDeclarationList[FakeList*] -> ... inline FakeList* CCParse::action393_ParameterDeclarationList(SourceLocation loc, SourceLocation endloc) { return FakeList::makeList(ellipsisTypeId(loc)); } #line 2536 "cc.gr.gen.cc" // [394] ParameterDeclarationList[FakeList*] -> d:ParameterDeclaration ... inline FakeList* CCParse::action394_ParameterDeclarationList(SourceLocation loc, SourceLocation endloc, ASTTypeId* d) { FakeList *list = FakeList::makeList(ellipsisTypeId(loc)); d->setNext(list->first()); return FakeList::makeList(d); } #line 2544 "cc.gr.gen.cc" // [395] ParameterDeclarationList[FakeList*] -> d:ParameterDeclaration inline FakeList* CCParse::action395_ParameterDeclarationList(SourceLocation loc, SourceLocation endloc, ASTTypeId* d) { return FakeList::makeList(d); } #line 2549 "cc.gr.gen.cc" // [396] ParameterDeclarationList[FakeList*] -> d:ParameterDeclaration , list:ParameterDeclarationList inline FakeList* CCParse::action396_ParameterDeclarationList(SourceLocation loc, SourceLocation endloc, ASTTypeId* d, FakeList* list) { d->setNext(list->first()); return FakeList::makeList(d); } #line 2555 "cc.gr.gen.cc" // [397] ParameterDeclaration[ASTTypeId*] -> s:TypeSpecifier pd:ParameterDeclarator inline ASTTypeId* CCParse::action397_ParameterDeclaration(SourceLocation loc, SourceLocation endloc, TypeSpecifier* s, Declarator* pd) { return new ASTTypeId(s, pd); } #line 2560 "cc.gr.gen.cc" // [398] ParameterDeclaration[ASTTypeId*] -> register s:TypeSpecifier pd:ParameterDeclarator inline ASTTypeId* CCParse::action398_ParameterDeclaration(SourceLocation loc, SourceLocation endloc, TypeSpecifier* s, Declarator* pd) { return new ASTTypeId(s, pd); } #line 2565 "cc.gr.gen.cc" // [399] ParameterDeclaration[ASTTypeId*] -> s:TypeSpecifier register pd:ParameterDeclarator inline ASTTypeId* CCParse::action399_ParameterDeclaration(SourceLocation loc, SourceLocation endloc, TypeSpecifier* s, Declarator* pd) { return new ASTTypeId(s, pd); } #line 2570 "cc.gr.gen.cc" // [400] ParameterDeclaration[ASTTypeId*] -> d:UnqualifiedDeclarator inline ASTTypeId* CCParse::action400_ParameterDeclaration(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { // if this isn't K&R C, throw it out if (!LO.allowImplicitInt) { trace("cancel") << loc << ": implicit-int parameter definition in non-implicit-int language\n"; return NULL; } return new ASTTypeId (new TS_simple(loc, endloc, ST_IMPLINT), new Declarator(d, NULL /*init*/)); } #line 2585 "cc.gr.gen.cc" // [401] ParameterDeclaration[ASTTypeId*] -> register d:UnqualifiedDeclarator inline ASTTypeId* CCParse::action401_ParameterDeclaration(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { // if this isn't K&R C, throw it out if (!LO.allowImplicitInt) { trace("cancel") << loc << ": implicit-int parameter definition in non-implicit-int language\n"; return NULL; } return new ASTTypeId (new TS_simple(loc, endloc, ST_IMPLINT), new Declarator(d, NULL /*init*/)); } #line 2600 "cc.gr.gen.cc" // [402] ParameterDeclarator[Declarator*] -> d:UnqualifiedDeclarator inline Declarator* CCParse::action402_ParameterDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new Declarator(d, NULL /*init*/); } #line 2605 "cc.gr.gen.cc" // [403] ParameterDeclarator[Declarator*] -> d:UnqualifiedDeclarator = e:AssignmentExpression inline Declarator* CCParse::action403_ParameterDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, Expression* e) { return new Declarator(d, new IN_expr(loc, e)); } #line 2610 "cc.gr.gen.cc" // [404] ParameterDeclarator[Declarator*] -> d:AbstractDeclaratorOpt inline Declarator* CCParse::action404_ParameterDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new Declarator(d, NULL /*init*/); } #line 2615 "cc.gr.gen.cc" // [405] ParameterDeclarator[Declarator*] -> d:AbstractDeclaratorOpt = e:AssignmentExpression inline Declarator* CCParse::action405_ParameterDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, Expression* e) { return new Declarator(d, new IN_expr(loc, e)); } #line 2620 "cc.gr.gen.cc" // [406] FunctionDefinition[Function*] -> r:DeclSpecifier d:FDDeclarator b:FunctionBody inline Function* CCParse::action406_FunctionDefinition(SourceLocation loc, SourceLocation endloc, Declaration* r, IDeclarator* d, S_compound* b) { Function *ret = new Function( r->dflags, // decl flags (static, extern, etc.) r->spec, // type specifier for return value new Declarator(d, NULL), // declarator with fn name, params NULL, // ctor member inits b, // function body statement NULL // exception handlers ); r->spec = NULL; // stole it above (ownership transfer) delete r; // was just a carrier of dflags/spec return ret; } #line 2637 "cc.gr.gen.cc" // [407] FunctionDefinition[Function*] -> r:DeclSpecifier d:FDDeclarator try b:FunctionBody h:HandlerSeq inline Function* CCParse::action407_FunctionDefinition(SourceLocation loc, SourceLocation endloc, Declaration* r, IDeclarator* d, S_compound* b, FakeList* h) { Function *ret = new Function( r->dflags, // decl flags (static, extern, etc.) r->spec, // type specifier for return value new Declarator(d, NULL), // declarator with fn name, params NULL, // ctor member inits b, // function body statement h // exception handlers ); r->spec = NULL; // stole it above (ownership transfer) delete r; // was just a carrier of dflags/spec return ret; } #line 2654 "cc.gr.gen.cc" // [408] FunctionDefinition[Function*] -> m:CDtorModifierSeq d:FDDeclarator c:CtorInitializerOpt b:FunctionBody inline Function* CCParse::action408_FunctionDefinition(SourceLocation loc, SourceLocation endloc, DeclFlags m, IDeclarator* d, FakeList* c, S_compound* b) { return new Function( m, // decl flags: explicit, virtual, or none new TS_simple(loc, endloc, ST_CDTOR), // type specifier: ctor or dtor new Declarator(d, NULL), // declarator with fn name, params c, // ctor member inits b, // function body statement NULL // exception handlers ); } #line 2668 "cc.gr.gen.cc" // [409] FunctionDefinition[Function*] -> d:FDDeclarator c:CtorInitializerOpt b:FunctionBody inline Function* CCParse::action409_FunctionDefinition(SourceLocation loc, SourceLocation endloc, IDeclarator* d, FakeList* c, S_compound* b) { return new Function( DF_NONE, new TS_simple(loc, endloc, ST_CDTOR), new Declarator(d, NULL), c, b, NULL ); } #line 2682 "cc.gr.gen.cc" // [410] FunctionDefinition[Function*] -> e:CDtorModifierSeq d:FDDeclarator try c:CtorInitializerOpt b:FunctionBody h:HandlerSeq inline Function* CCParse::action410_FunctionDefinition(SourceLocation loc, SourceLocation endloc, DeclFlags e, IDeclarator* d, FakeList* c, S_compound* b, FakeList* h) { return new Function( e, // decl flags: explicit is only possibility new TS_simple(loc, endloc, ST_CDTOR), new Declarator(d, NULL), c, b, h // exception handlers ); } #line 2696 "cc.gr.gen.cc" // [411] FunctionDefinition[Function*] -> d:FDDeclarator try c:CtorInitializerOpt b:FunctionBody h:HandlerSeq inline Function* CCParse::action411_FunctionDefinition(SourceLocation loc, SourceLocation endloc, IDeclarator* d, FakeList* c, S_compound* b, FakeList* h) { return new Function( DF_NONE, new TS_simple(loc, endloc, ST_CDTOR), new Declarator(d, NULL), c, b, h ); } #line 2710 "cc.gr.gen.cc" // [412] FDDeclarator[IDeclarator*] -> d:Declarator inline IDeclarator* CCParse::action412_FDDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return d; } #line 2715 "cc.gr.gen.cc" // [413] FunctionBody[S_compound*] -> s:CompoundStatement inline S_compound* CCParse::action413_FunctionBody(SourceLocation loc, SourceLocation endloc, S_compound* s) { return s; } #line 2720 "cc.gr.gen.cc" // [414] CtorInitializerOpt[FakeList*] -> empty inline FakeList* CCParse::action414_CtorInitializerOpt(SourceLocation loc, SourceLocation endloc) { return FakeList::emptyList(); } #line 2725 "cc.gr.gen.cc" // [415] CtorInitializerOpt[FakeList*] -> : list:MemInitializerList inline FakeList* CCParse::action415_CtorInitializerOpt(SourceLocation loc, SourceLocation endloc, FakeList* list) { return list; } #line 2730 "cc.gr.gen.cc" // [416] ClassSpecifier[TS_classSpec*] -> k:ClassKey n:ClassHeadNameOpt b:BaseClauseOpt { memb:MemberDeclarationSeqOpt } inline TS_classSpec* CCParse::action416_ClassSpecifier(SourceLocation loc, SourceLocation endloc, enum TypeIntr k, PQName* n, FakeList* b, MemberList* memb) { popClassName(); return new TS_classSpec(loc, endloc, k, n, b, memb); } #line 2735 "cc.gr.gen.cc" // [417] ClassSpecifier[TS_classSpec*] -> k:ClassKey as:AttributeSpecifierList n:ClassHeadNameOpt b:BaseClauseOpt { memb:MemberDeclarationSeqOpt } inline TS_classSpec* CCParse::action417_ClassSpecifier(SourceLocation loc, SourceLocation endloc, enum TypeIntr k, AttributeSpecifierList* as, PQName* n, FakeList* b, MemberList* memb) { popClassName(); TS_classSpec *ts = new TS_classSpec(loc, endloc, k, n, b, memb); ts->alist = as; return ts; } #line 2745 "cc.gr.gen.cc" // [418] ClassHeadNameOpt[PQName*] -> empty inline PQName* CCParse::action418_ClassHeadNameOpt(SourceLocation loc, SourceLocation endloc) { pushClassName(NULL); return NULL; } #line 2750 "cc.gr.gen.cc" // [419] ClassHeadNameOpt[PQName*] -> n:ClassHeadName inline PQName* CCParse::action419_ClassHeadNameOpt(SourceLocation loc, SourceLocation endloc, PQName* n) { pushClassName(n->getName()); return n; } #line 2755 "cc.gr.gen.cc" // [420] ClassHeadName[PQName*] -> n:Identifier %prec(195) inline PQName* CCParse::action420_ClassHeadName(SourceLocation loc, SourceLocation endloc, StringRef n) { return new PQ_name(loc, endloc, n); } #line 2760 "cc.gr.gen.cc" // [421] ClassHeadName[PQName*] -> t:TemplateId %prec(195) inline PQName* CCParse::action421_ClassHeadName(SourceLocation loc, SourceLocation endloc, PQ_template* t) { return t; } #line 2765 "cc.gr.gen.cc" // [422] ClassHeadName[PQName*] -> n:Identifier :: rest:ClassHeadName %prec(195) inline PQName* CCParse::action422_ClassHeadName(SourceLocation loc, SourceLocation endloc, StringRef n, PQName* rest) { return new PQ_qualifier(loc, endloc, n, NULL /*targs*/, rest); } #line 2770 "cc.gr.gen.cc" // [423] ClassHeadName[PQName*] -> n:Identifier < targs:TemplateArgumentListOpt > :: rest:ClassHeadName %prec(195) inline PQName* CCParse::action423_ClassHeadName(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* targs, PQName* rest) { return new PQ_qualifier(loc, endloc, n, targs, rest); } #line 2775 "cc.gr.gen.cc" // [424] ClassHeadName[PQName*] -> template n:Identifier < targs:TemplateArgumentListOpt > :: rest:ClassHeadName %prec(195) inline PQName* CCParse::action424_ClassHeadName(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* targs, PQName* rest) { return new PQ_qualifier(loc, endloc, n, templateUsed(targs), rest); } #line 2780 "cc.gr.gen.cc" // [425] ClassKey[enum TypeIntr] -> class inline enum TypeIntr CCParse::action425_ClassKey(SourceLocation loc, SourceLocation endloc) { return TI_CLASS; } #line 2785 "cc.gr.gen.cc" // [426] ClassKey[enum TypeIntr] -> struct inline enum TypeIntr CCParse::action426_ClassKey(SourceLocation loc, SourceLocation endloc) { return TI_STRUCT; } #line 2790 "cc.gr.gen.cc" // [427] ClassKey[enum TypeIntr] -> union inline enum TypeIntr CCParse::action427_ClassKey(SourceLocation loc, SourceLocation endloc) { return TI_UNION; } #line 2795 "cc.gr.gen.cc" // [428] MemberDeclarationSeqOpt[MemberList*] -> empty inline MemberList* CCParse::action428_MemberDeclarationSeqOpt(SourceLocation loc, SourceLocation endloc) { return new MemberList(NULL); } #line 2800 "cc.gr.gen.cc" // [429] MemberDeclarationSeqOpt[MemberList*] -> list:MemberDeclarationSeqOpt ; inline MemberList* CCParse::action429_MemberDeclarationSeqOpt(SourceLocation loc, SourceLocation endloc, MemberList* list) { return list; } #line 2805 "cc.gr.gen.cc" // [430] MemberDeclarationSeqOpt[MemberList*] -> list:MemberDeclarationSeqOpt decl:MemberDeclaration inline MemberList* CCParse::action430_MemberDeclarationSeqOpt(SourceLocation loc, SourceLocation endloc, MemberList* list, Member* decl) { list->list.append(decl); return list; } #line 2810 "cc.gr.gen.cc" // [431] MemberDeclarationSeqOpt[MemberList*] -> list:MemberDeclarationSeqOpt k:AccessSpecifier : inline MemberList* CCParse::action431_MemberDeclarationSeqOpt(SourceLocation loc, SourceLocation endloc, MemberList* list, AccessKeyword k) { list->list.append(new MR_access(loc ENDLOCARG(endloc), k)); return list; } #line 2815 "cc.gr.gen.cc" // [432] AccessSpecifier[AccessKeyword] -> public inline AccessKeyword CCParse::action432_AccessSpecifier(SourceLocation loc, SourceLocation endloc) { return AK_PUBLIC; } #line 2820 "cc.gr.gen.cc" // [433] AccessSpecifier[AccessKeyword] -> private inline AccessKeyword CCParse::action433_AccessSpecifier(SourceLocation loc, SourceLocation endloc) { return AK_PRIVATE; } #line 2825 "cc.gr.gen.cc" // [434] AccessSpecifier[AccessKeyword] -> protected inline AccessKeyword CCParse::action434_AccessSpecifier(SourceLocation loc, SourceLocation endloc) { return AK_PROTECTED; } #line 2830 "cc.gr.gen.cc" // [435] MemberDeclaration[Member*] -> spec:DeclSpecifier list:MemberDeclaratorList ; inline Member* CCParse::action435_MemberDeclaration(SourceLocation loc, SourceLocation endloc, Declaration* spec, FakeList* list) { if (LO.CPlusPlus && // 10/20/04: e.g. in/c/t0017.c list->firstC()->decl->skipGroups()->isD_name() && !(spec->dflags & (DF_TYPEDEF | DF_STATIC)) && spec->spec->isTS_name()) { PQName const *n = spec->spec->asTS_nameC()->name; if (n->isPQ_name() && n->asPQ_nameC()->name == curClassName()) { // you can't declare an embedded instance of your own class // name, and this might be ambiguous with a constructor // declaration, so cancel it TRACE("cancel", loc << ": declaration of embedded self class instance"); return NULL; } } spec->decllist = list; if (!keepDeclaration(spec)) { return NULL; } return new MR_decl(loc ENDLOCARG(endloc), spec); } #line 2854 "cc.gr.gen.cc" // [436] MemberDeclaration[Member*] -> spec:DeclSpecifier ; inline Member* CCParse::action436_MemberDeclaration(SourceLocation loc, SourceLocation endloc, Declaration* spec) { // if the type specifier doesn't start with 'class' // or 'enum' then this is useless, and might be // ambiguous with superclass member publication, so // cancel it [cppstd 9.2 para 7] if (spec->spec->isTS_elaborated() || spec->spec->isTS_classSpec() || spec->spec->isTS_enumSpec()) { // ok return new MR_decl(loc ENDLOCARG(endloc), spec); } else { TRACE("cancel", loc << ": bare DeclSpecifier not starting with type keyword"); return NULL; } } #line 2873 "cc.gr.gen.cc" // [437] MemberDeclaration[Member*] -> n:PQualifiedId ; inline Member* CCParse::action437_MemberDeclaration(SourceLocation loc, SourceLocation endloc, PQName* n) { return new MR_usingDecl(loc ENDLOCARG(endloc), new ND_usingDecl(n)); } #line 2878 "cc.gr.gen.cc" // [438] MemberDeclaration[Member*] -> using n:IdExpression ; inline Member* CCParse::action438_MemberDeclaration(SourceLocation loc, SourceLocation endloc, PQName* n) { return new MR_usingDecl(loc ENDLOCARG(endloc), new ND_usingDecl(n)); } #line 2883 "cc.gr.gen.cc" // [439] MemberDeclaration[Member*] -> f:FunctionDefinition inline Member* CCParse::action439_MemberDeclaration(SourceLocation loc, SourceLocation endloc, Function* f) { return new MR_func(loc ENDLOCARG(endloc), f); } #line 2888 "cc.gr.gen.cc" // [440] MemberDeclaration[Member*] -> d:CDtorProtoDecl inline Member* CCParse::action440_MemberDeclaration(SourceLocation loc, SourceLocation endloc, Declaration* d) { if (LO.allowImplicitInt) { // in/c/k0004.c: ambiguity between constructor and implicit-int TRACE("cancel", loc << ": constructor decl in implicit-int language"); return NULL; } return new MR_decl(loc ENDLOCARG(endloc), d); } #line 2900 "cc.gr.gen.cc" // [441] MemberDeclaration[Member*] -> d:TemplateDeclaration inline Member* CCParse::action441_MemberDeclaration(SourceLocation loc, SourceLocation endloc, TemplateDeclaration* d) { return new MR_template(loc ENDLOCARG(endloc), d); } #line 2905 "cc.gr.gen.cc" // [442] MemberDeclaration[Member*] -> s:StateDefinition inline Member* CCParse::action442_MemberDeclaration(SourceLocation loc, SourceLocation endloc, State* s) { return new MR_state(loc, endloc, s); } #line 2910 "cc.gr.gen.cc" // [443] CDtorProtoDecl[Declaration*] -> flags:CDtorModifierSeq d:MemberDeclarator ; inline Declaration* CCParse::action443_CDtorProtoDecl(SourceLocation loc, SourceLocation endloc, DeclFlags flags, Declarator* d) { // 'd' is a Declarator return new Declaration( flags, new TS_simple(loc, endloc, ST_CDTOR), FakeList::makeList(d) ); } #line 2921 "cc.gr.gen.cc" // [444] CDtorProtoDecl[Declaration*] -> d:MemberDeclarator ; inline Declaration* CCParse::action444_CDtorProtoDecl(SourceLocation loc, SourceLocation endloc, Declarator* d) { // does the declarator construct a function type? // if not, this might be ambiguous (superclass // member publication), so cancel the entire reduction if (!d->decl->skipGroups()->isD_func()) { TRACE("cancel", loc << ": non-function c/dtor"); return NULL; } return new Declaration( DF_NONE, new TS_simple(loc, endloc, ST_CDTOR), FakeList::makeList(d) ); } #line 2940 "cc.gr.gen.cc" // [445] MemberDeclaratorList[FakeList*] -> d:MemberDeclarator inline FakeList* CCParse::action445_MemberDeclaratorList(SourceLocation loc, SourceLocation endloc, Declarator* d) { return FakeList::makeList(d); } #line 2945 "cc.gr.gen.cc" // [446] MemberDeclaratorList[FakeList*] -> d:MemberDeclarator , list:MemberDeclaratorList inline FakeList* CCParse::action446_MemberDeclaratorList(SourceLocation loc, SourceLocation endloc, Declarator* d, FakeList* list) { d->setNext(list->first()); return FakeList::makeList(d); } #line 2951 "cc.gr.gen.cc" // [447] MemberDeclarator[Declarator*] -> d:Declarator inline Declarator* CCParse::action447_MemberDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new Declarator(d, NULL /*init*/); } #line 2956 "cc.gr.gen.cc" // [448] MemberDeclarator[Declarator*] -> d:Declarator = e:ConstantExpression inline Declarator* CCParse::action448_MemberDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, Expression* e) { return new Declarator(d, new IN_expr(loc, e)); } #line 2961 "cc.gr.gen.cc" // [449] MemberDeclarator[Declarator*] -> n:IdentifierOpt : e:ConstantExpression inline Declarator* CCParse::action449_MemberDeclarator(SourceLocation loc, SourceLocation endloc, StringRef n, Expression* e) { return new Declarator(new D_bitfield(loc, endloc, n? new PQ_name(loc, endloc, n) : NULL, e), NULL /*init*/); } #line 2967 "cc.gr.gen.cc" // [450] MemberDeclarator[Declarator*] -> n:IdentifierOpt : e:ConstantExpression AttributeSpecifierList inline Declarator* CCParse::action450_MemberDeclarator(SourceLocation loc, SourceLocation endloc, StringRef n, Expression* e) { return new Declarator(new D_bitfield(loc, endloc, n? new PQ_name(loc, endloc, n) : NULL, e), NULL /*init*/); } #line 2973 "cc.gr.gen.cc" // [451] IdentifierOpt[StringRef] -> empty inline StringRef CCParse::action451_IdentifierOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 2978 "cc.gr.gen.cc" // [452] IdentifierOpt[StringRef] -> n:Identifier inline StringRef CCParse::action452_IdentifierOpt(SourceLocation loc, SourceLocation endloc, StringRef n) { return n; } #line 2983 "cc.gr.gen.cc" // [453] CDtorModifier[DeclFlags] -> explicit inline DeclFlags CCParse::action453_CDtorModifier(SourceLocation loc, SourceLocation endloc) { return DF_EXPLICIT; } #line 2988 "cc.gr.gen.cc" // [454] CDtorModifier[DeclFlags] -> virtual inline DeclFlags CCParse::action454_CDtorModifier(SourceLocation loc, SourceLocation endloc) { return DF_VIRTUAL; } #line 2993 "cc.gr.gen.cc" // [455] CDtorModifier[DeclFlags] -> inline inline DeclFlags CCParse::action455_CDtorModifier(SourceLocation loc, SourceLocation endloc) { return DF_INLINE; } #line 2998 "cc.gr.gen.cc" // [456] CDtorModifier[DeclFlags] -> friend inline DeclFlags CCParse::action456_CDtorModifier(SourceLocation loc, SourceLocation endloc) { return DF_FRIEND; } #line 3003 "cc.gr.gen.cc" // [457] CDtorModifier[DeclFlags] -> AttributeSpecifier inline DeclFlags CCParse::action457_CDtorModifier(SourceLocation loc, SourceLocation endloc) { return DF_NONE; } #line 3008 "cc.gr.gen.cc" // [458] CDtorModifierSeq[DeclFlags] -> m:CDtorModifier inline DeclFlags CCParse::action458_CDtorModifierSeq(SourceLocation loc, SourceLocation endloc, DeclFlags m) { return m; } #line 3013 "cc.gr.gen.cc" // [459] CDtorModifierSeq[DeclFlags] -> s:CDtorModifierSeq m:CDtorModifier inline DeclFlags CCParse::action459_CDtorModifierSeq(SourceLocation loc, SourceLocation endloc, DeclFlags s, DeclFlags m) { return s|m; } #line 3018 "cc.gr.gen.cc" // [460] BaseClauseOpt[FakeList*] -> empty inline FakeList* CCParse::action460_BaseClauseOpt(SourceLocation loc, SourceLocation endloc) { return FakeList::emptyList(); } #line 3023 "cc.gr.gen.cc" // [461] BaseClauseOpt[FakeList*] -> : b:BaseSpecifierList inline FakeList* CCParse::action461_BaseClauseOpt(SourceLocation loc, SourceLocation endloc, FakeList* b) { return b; } #line 3028 "cc.gr.gen.cc" // [462] BaseSpecifierList[FakeList*] -> b:BaseSpecifier inline FakeList* CCParse::action462_BaseSpecifierList(SourceLocation loc, SourceLocation endloc, BaseClassSpec* b) { return FakeList::makeList(b); } #line 3033 "cc.gr.gen.cc" // [463] BaseSpecifierList[FakeList*] -> b:BaseSpecifier , list:BaseSpecifierList inline FakeList* CCParse::action463_BaseSpecifierList(SourceLocation loc, SourceLocation endloc, BaseClassSpec* b, FakeList* list) { return list->prepend(b); } #line 3038 "cc.gr.gen.cc" // [464] BaseSpecifier[BaseClassSpec*] -> n:PQClassName inline BaseClassSpec* CCParse::action464_BaseSpecifier(SourceLocation loc, SourceLocation endloc, PQName* n) { return new BaseClassSpec(false /*virtual*/, AK_UNSPECIFIED, n); } #line 3043 "cc.gr.gen.cc" // [465] BaseSpecifier[BaseClassSpec*] -> virtual a:AccessSpecifierOpt n:PQClassName inline BaseClassSpec* CCParse::action465_BaseSpecifier(SourceLocation loc, SourceLocation endloc, AccessKeyword a, PQName* n) { return new BaseClassSpec(true /*virtual*/, a, n); } #line 3048 "cc.gr.gen.cc" // [466] BaseSpecifier[BaseClassSpec*] -> a:AccessSpecifier v:VirtualOpt n:PQClassName inline BaseClassSpec* CCParse::action466_BaseSpecifier(SourceLocation loc, SourceLocation endloc, AccessKeyword a, bool v, PQName* n) { return new BaseClassSpec(v, a, n); } #line 3053 "cc.gr.gen.cc" // [467] VirtualOpt[bool] -> empty inline bool CCParse::action467_VirtualOpt(SourceLocation loc, SourceLocation endloc) { return false; } #line 3058 "cc.gr.gen.cc" // [468] VirtualOpt[bool] -> virtual inline bool CCParse::action468_VirtualOpt(SourceLocation loc, SourceLocation endloc) { return true; } #line 3063 "cc.gr.gen.cc" // [469] AccessSpecifierOpt[AccessKeyword] -> empty inline AccessKeyword CCParse::action469_AccessSpecifierOpt(SourceLocation loc, SourceLocation endloc) { return AK_UNSPECIFIED; } #line 3068 "cc.gr.gen.cc" // [470] AccessSpecifierOpt[AccessKeyword] -> k:AccessSpecifier inline AccessKeyword CCParse::action470_AccessSpecifierOpt(SourceLocation loc, SourceLocation endloc, AccessKeyword k) { return k; } #line 3073 "cc.gr.gen.cc" // [471] PQClassName[PQName*] -> n:PQTypeName inline PQName* CCParse::action471_PQClassName(SourceLocation loc, SourceLocation endloc, PQName* n) { return n; } #line 3078 "cc.gr.gen.cc" // [472] ConversionFunctionId[OperatorName*] -> operator t:ConversionTypeId inline OperatorName* CCParse::action472_ConversionFunctionId(SourceLocation loc, SourceLocation endloc, ASTTypeId* t) { return new ON_conversion(t); } #line 3083 "cc.gr.gen.cc" // [473] ConversionTypeId[ASTTypeId*] -> s:TypeSpecifier d:ConversionDeclaratorOpt inline ASTTypeId* CCParse::action473_ConversionTypeId(SourceLocation loc, SourceLocation endloc, TypeSpecifier* s, IDeclarator* d) { return new ASTTypeId(s, new Declarator(d, NULL /*init*/)); } #line 3088 "cc.gr.gen.cc" // [474] ConversionDeclaratorOpt[IDeclarator*] -> empty %prec(1) inline IDeclarator* CCParse::action474_ConversionDeclaratorOpt(SourceLocation loc, SourceLocation endloc) { return new D_name(loc, endloc, NULL /*name*/); } #line 3093 "cc.gr.gen.cc" // [475] ConversionDeclaratorOpt[IDeclarator*] -> * cv:CVQualifierSeqOpt d:ConversionDeclaratorOpt %prec(110) inline IDeclarator* CCParse::action475_ConversionDeclaratorOpt(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, IDeclarator* d) { return new D_pointer(loc, endloc, cv, d); } #line 3098 "cc.gr.gen.cc" // [476] ConversionDeclaratorOpt[IDeclarator*] -> & cv:CVQualifierSeqOpt d:ConversionDeclaratorOpt %prec(60) inline IDeclarator* CCParse::action476_ConversionDeclaratorOpt(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, IDeclarator* d) { return new D_reference(loc, endloc, d); } #line 3103 "cc.gr.gen.cc" // [477] ConversionDeclaratorOpt[IDeclarator*] -> n:PtrToMemberName * cv:CVQualifierSeqOpt d:ConversionDeclaratorOpt %prec(110) inline IDeclarator* CCParse::action477_ConversionDeclaratorOpt(SourceLocation loc, SourceLocation endloc, PQName* n, enum CVFlags cv, IDeclarator* d) { return new D_ptrToMember(loc, endloc, n, cv, d); } #line 3108 "cc.gr.gen.cc" // [478] MemInitializerList[FakeList*] -> i:MemInitializer inline FakeList* CCParse::action478_MemInitializerList(SourceLocation loc, SourceLocation endloc, MemberInit* i) { return FakeList::makeList(i); } #line 3113 "cc.gr.gen.cc" // [479] MemInitializerList[FakeList*] -> i:MemInitializer , list:MemInitializerList inline FakeList* CCParse::action479_MemInitializerList(SourceLocation loc, SourceLocation endloc, MemberInit* i, FakeList* list) { return list->prepend(i); } #line 3118 "cc.gr.gen.cc" // [480] MemInitializer[MemberInit*] -> n:MemInitializerId ( e:ExpressionListOpt ) inline MemberInit* CCParse::action480_MemInitializer(SourceLocation loc, SourceLocation endloc, PQName* n, FakeList* e) { return new MemberInit(EXPR_LOC(loc ENDLOCARG(endloc)) n, e); } #line 3123 "cc.gr.gen.cc" // [481] MemInitializerId[PQName*] -> n:PQTypeName inline PQName* CCParse::action481_MemInitializerId(SourceLocation loc, SourceLocation endloc, PQName* n) { return n; } #line 3128 "cc.gr.gen.cc" // [482] OperatorFunctionId[OperatorName*] -> operator od:Operator inline OperatorName* CCParse::action482_OperatorFunctionId(SourceLocation loc, SourceLocation endloc, OperatorName* od) { return od; } #line 3133 "cc.gr.gen.cc" // [483] Operator[OperatorName*] -> new %prec(1) inline OperatorName* CCParse::action483_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_newDel(true /*isNew*/, false /*isArray*/); } #line 3138 "cc.gr.gen.cc" // [484] Operator[OperatorName*] -> delete %prec(1) inline OperatorName* CCParse::action484_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_newDel(false, false); } #line 3143 "cc.gr.gen.cc" // [485] Operator[OperatorName*] -> new [ ] inline OperatorName* CCParse::action485_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_newDel(true, true); } #line 3148 "cc.gr.gen.cc" // [486] Operator[OperatorName*] -> delete [ ] inline OperatorName* CCParse::action486_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_newDel(false, true); } #line 3153 "cc.gr.gen.cc" // [487] Operator[OperatorName*] -> ! inline OperatorName* CCParse::action487_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_NOT); } #line 3158 "cc.gr.gen.cc" // [488] Operator[OperatorName*] -> ~ inline OperatorName* CCParse::action488_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_BITNOT); } #line 3163 "cc.gr.gen.cc" // [489] Operator[OperatorName*] -> ++ inline OperatorName* CCParse::action489_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_PLUSPLUS); } #line 3168 "cc.gr.gen.cc" // [490] Operator[OperatorName*] -> -- inline OperatorName* CCParse::action490_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_MINUSMINUS); } #line 3173 "cc.gr.gen.cc" // [491] Operator[OperatorName*] -> + %prec(100) inline OperatorName* CCParse::action491_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_PLUS); } #line 3178 "cc.gr.gen.cc" // [492] Operator[OperatorName*] -> - %prec(100) inline OperatorName* CCParse::action492_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_MINUS); } #line 3183 "cc.gr.gen.cc" // [493] Operator[OperatorName*] -> * %prec(110) inline OperatorName* CCParse::action493_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_STAR); } #line 3188 "cc.gr.gen.cc" // [494] Operator[OperatorName*] -> / %prec(110) inline OperatorName* CCParse::action494_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_DIV); } #line 3193 "cc.gr.gen.cc" // [495] Operator[OperatorName*] -> % %prec(110) inline OperatorName* CCParse::action495_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_MOD); } #line 3198 "cc.gr.gen.cc" // [496] Operator[OperatorName*] -> << %prec(90) inline OperatorName* CCParse::action496_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_LSHIFT); } #line 3203 "cc.gr.gen.cc" // [497] Operator[OperatorName*] -> >> %prec(90) inline OperatorName* CCParse::action497_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_RSHIFT); } #line 3208 "cc.gr.gen.cc" // [498] Operator[OperatorName*] -> & %prec(60) inline OperatorName* CCParse::action498_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_AMPERSAND); } #line 3213 "cc.gr.gen.cc" // [499] Operator[OperatorName*] -> ^ %prec(50) inline OperatorName* CCParse::action499_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_BITXOR); } #line 3218 "cc.gr.gen.cc" // [500] Operator[OperatorName*] -> | %prec(40) inline OperatorName* CCParse::action500_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_BITOR); } #line 3223 "cc.gr.gen.cc" // [501] Operator[OperatorName*] -> = inline OperatorName* CCParse::action501_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_ASSIGN); } #line 3228 "cc.gr.gen.cc" // [502] Operator[OperatorName*] -> += inline OperatorName* CCParse::action502_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_PLUSEQ); } #line 3233 "cc.gr.gen.cc" // [503] Operator[OperatorName*] -> -= inline OperatorName* CCParse::action503_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_MINUSEQ); } #line 3238 "cc.gr.gen.cc" // [504] Operator[OperatorName*] -> *= inline OperatorName* CCParse::action504_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_MULTEQ); } #line 3243 "cc.gr.gen.cc" // [505] Operator[OperatorName*] -> /= inline OperatorName* CCParse::action505_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_DIVEQ); } #line 3248 "cc.gr.gen.cc" // [506] Operator[OperatorName*] -> %= inline OperatorName* CCParse::action506_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_MODEQ); } #line 3253 "cc.gr.gen.cc" // [507] Operator[OperatorName*] -> <<= inline OperatorName* CCParse::action507_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_LSHIFTEQ); } #line 3258 "cc.gr.gen.cc" // [508] Operator[OperatorName*] -> >>= inline OperatorName* CCParse::action508_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_RSHIFTEQ); } #line 3263 "cc.gr.gen.cc" // [509] Operator[OperatorName*] -> &= inline OperatorName* CCParse::action509_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_BITANDEQ); } #line 3268 "cc.gr.gen.cc" // [510] Operator[OperatorName*] -> ^= inline OperatorName* CCParse::action510_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_BITXOREQ); } #line 3273 "cc.gr.gen.cc" // [511] Operator[OperatorName*] -> |= inline OperatorName* CCParse::action511_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_BITOREQ); } #line 3278 "cc.gr.gen.cc" // [512] Operator[OperatorName*] -> == %prec(70) inline OperatorName* CCParse::action512_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_EQUAL); } #line 3283 "cc.gr.gen.cc" // [513] Operator[OperatorName*] -> != %prec(70) inline OperatorName* CCParse::action513_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_NOTEQUAL); } #line 3288 "cc.gr.gen.cc" // [514] Operator[OperatorName*] -> < inline OperatorName* CCParse::action514_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_LESS); } #line 3293 "cc.gr.gen.cc" // [515] Operator[OperatorName*] -> > inline OperatorName* CCParse::action515_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_GREATER); } #line 3298 "cc.gr.gen.cc" // [516] Operator[OperatorName*] -> <= inline OperatorName* CCParse::action516_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_LESSEQ); } #line 3303 "cc.gr.gen.cc" // [517] Operator[OperatorName*] -> >= inline OperatorName* CCParse::action517_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_GREATEREQ); } #line 3308 "cc.gr.gen.cc" // [518] Operator[OperatorName*] -> && %prec(30) inline OperatorName* CCParse::action518_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_AND); } #line 3313 "cc.gr.gen.cc" // [519] Operator[OperatorName*] -> || %prec(20) inline OperatorName* CCParse::action519_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_OR); } #line 3318 "cc.gr.gen.cc" // [520] Operator[OperatorName*] -> -> inline OperatorName* CCParse::action520_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_ARROW); } #line 3323 "cc.gr.gen.cc" // [521] Operator[OperatorName*] -> ->* %prec(120) inline OperatorName* CCParse::action521_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_ARROW_STAR); } #line 3328 "cc.gr.gen.cc" // [522] Operator[OperatorName*] -> [ ] inline OperatorName* CCParse::action522_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_BRACKETS); } #line 3333 "cc.gr.gen.cc" // [523] Operator[OperatorName*] -> ( ) inline OperatorName* CCParse::action523_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_PARENS); } #line 3338 "cc.gr.gen.cc" // [524] Operator[OperatorName*] -> , inline OperatorName* CCParse::action524_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_COMMA); } #line 3343 "cc.gr.gen.cc" // [525] Operator[OperatorName*] -> >? inline OperatorName* CCParse::action526_Operator(SourceLocation loc, SourceLocation endloc) { return new ON_operator(OP_MAXIMUM); } #line 3353 "cc.gr.gen.cc" // [527] TemplateDeclaration[TemplateDeclaration*] -> plist:TemplatePreamble def:FunctionDefinition inline TemplateDeclaration* CCParse::action527_TemplateDeclaration(SourceLocation loc, SourceLocation endloc, /*fakelist*/TemplateParameter* plist, Function* def) { if (anyHaveDefaultArgs(plist)) { // Function templates and definitions of members of class // templates cannot have default arguments (14.1p9). // Reject here because failure to do so can lead to an // unhandled ambiguity (t0463.cc). TRACE("cancel", loc << ": template function defn with default args"); return NULL; } return new TD_func(plist, def); } #line 3368 "cc.gr.gen.cc" // [528] TemplateDeclaration[TemplateDeclaration*] -> plist:TemplatePreamble d:SimpleDeclaration inline TemplateDeclaration* CCParse::action528_TemplateDeclaration(SourceLocation loc, SourceLocation endloc, /*fakelist*/TemplateParameter* plist, Declaration* d) { return new TD_decl(plist, d); } #line 3373 "cc.gr.gen.cc" // [529] TemplateDeclaration[TemplateDeclaration*] -> plist:TemplatePreamble td:TemplateDeclaration inline TemplateDeclaration* CCParse::action529_TemplateDeclaration(SourceLocation loc, SourceLocation endloc, /*fakelist*/TemplateParameter* plist, TemplateDeclaration* td) { return new TD_tmember(plist, td); } #line 3378 "cc.gr.gen.cc" // [530] TemplateDeclaration[TemplateDeclaration*] -> plist:TemplatePreamble d:CDtorProtoDecl inline TemplateDeclaration* CCParse::action530_TemplateDeclaration(SourceLocation loc, SourceLocation endloc, /*fakelist*/TemplateParameter* plist, Declaration* d) { return new TD_decl(plist, d); } #line 3383 "cc.gr.gen.cc" // [531] TemplatePreamble[/*fakelist*/TemplateParameter*] -> template < plist:TemplateParameterList > inline /*fakelist*/TemplateParameter* CCParse::action531_TemplatePreamble(SourceLocation loc, SourceLocation endloc, /*fakelist*/TemplateParameter* plist) { return plist; } #line 3388 "cc.gr.gen.cc" // [532] TemplatePreamble[/*fakelist*/TemplateParameter*] -> export template < plist:TemplateParameterList > inline /*fakelist*/TemplateParameter* CCParse::action532_TemplatePreamble(SourceLocation loc, SourceLocation endloc, /*fakelist*/TemplateParameter* plist) { return plist; } #line 3393 "cc.gr.gen.cc" // [533] TemplatePreamble[/*fakelist*/TemplateParameter*] -> template < > inline /*fakelist*/TemplateParameter* CCParse::action533_TemplatePreamble(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3398 "cc.gr.gen.cc" // [534] TemplatePreamble[/*fakelist*/TemplateParameter*] -> export template < > inline /*fakelist*/TemplateParameter* CCParse::action534_TemplatePreamble(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3403 "cc.gr.gen.cc" // [535] TemplateParameterList[/*fakelist*/TemplateParameter*] -> ClassOrTypename i:IdentifierOpt t:DefaultTypeOpt next:TemplateParameterListContinuation inline /*fakelist*/TemplateParameter* CCParse::action535_TemplateParameterList(SourceLocation loc, SourceLocation endloc, StringRef i, ASTTypeId* t, /*nullable fakelist*/TemplateParameter* next) { return new TP_type(loc, endloc, i, t, next); } #line 3408 "cc.gr.gen.cc" // [536] TemplateParameterList[/*fakelist*/TemplateParameter*] -> p:ParameterDeclaration next:TemplateParameterListContinuation inline /*fakelist*/TemplateParameter* CCParse::action536_TemplateParameterList(SourceLocation loc, SourceLocation endloc, ASTTypeId* p, /*nullable fakelist*/TemplateParameter* next) { // if the specifier is a TS_elaborated, then it could be a type // parameter; cppstd 14.1 para 3 seems to say that in that case it // always *is* a type parameter if (p->spec->canBeTypeParam()) { TRACE("cancel", loc << ": template parameter can be type param"); return NULL; // don't keep this, it's really a TP_type } else { return new TP_nontype(loc, endloc, p, next); } } #line 3424 "cc.gr.gen.cc" // [537] TemplateParameterList[/*fakelist*/TemplateParameter*] -> template < pl:TemplateParameterList > class i:IdentifierOpt t:DefaultTemplateOpt next:TemplateParameterListContinuation inline /*fakelist*/TemplateParameter* CCParse::action537_TemplateParameterList(SourceLocation loc, SourceLocation endloc, /*fakelist*/TemplateParameter* pl, StringRef i, PQName* t, /*nullable fakelist*/TemplateParameter* next) { return new TP_template(loc, endloc, FakeList::makeList(pl), i, t, next); } #line 3432 "cc.gr.gen.cc" // [538] TemplateParameterListContinuation[/*nullable fakelist*/TemplateParameter*] -> empty inline /*nullable fakelist*/TemplateParameter* CCParse::action538_TemplateParameterListContinuation(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3437 "cc.gr.gen.cc" // [539] TemplateParameterListContinuation[/*nullable fakelist*/TemplateParameter*] -> , next:TemplateParameterList inline /*nullable fakelist*/TemplateParameter* CCParse::action539_TemplateParameterListContinuation(SourceLocation loc, SourceLocation endloc, /*fakelist*/TemplateParameter* next) { return next; } #line 3442 "cc.gr.gen.cc" // [540] ClassOrTypename[void] -> class inline void CCParse::action540_ClassOrTypename(SourceLocation loc, SourceLocation endloc) {return; } // [541] ClassOrTypename[void] -> typename inline void CCParse::action541_ClassOrTypename(SourceLocation loc, SourceLocation endloc) {return; } // [542] DefaultTypeOpt[ASTTypeId*] -> empty inline ASTTypeId* CCParse::action542_DefaultTypeOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3453 "cc.gr.gen.cc" // [543] DefaultTypeOpt[ASTTypeId*] -> = t:TypeId inline ASTTypeId* CCParse::action543_DefaultTypeOpt(SourceLocation loc, SourceLocation endloc, ASTTypeId* t) { return t; } #line 3458 "cc.gr.gen.cc" // [544] DefaultTemplateOpt[PQName*] -> empty inline PQName* CCParse::action544_DefaultTemplateOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3463 "cc.gr.gen.cc" // [545] DefaultTemplateOpt[PQName*] -> = t:IdExpression inline PQName* CCParse::action545_DefaultTemplateOpt(SourceLocation loc, SourceLocation endloc, PQName* t) { return t; } #line 3468 "cc.gr.gen.cc" // [546] TemplateArgumentListOpt[/*fakelist*/TemplateArgument*] -> empty inline /*fakelist*/TemplateArgument* CCParse::action546_TemplateArgumentListOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3473 "cc.gr.gen.cc" // [547] TemplateArgumentListOpt[/*fakelist*/TemplateArgument*] -> list:TemplateArgumentList inline /*fakelist*/TemplateArgument* CCParse::action547_TemplateArgumentListOpt(SourceLocation loc, SourceLocation endloc, /*fakelist*/TemplateArgument* list) { return list; } #line 3478 "cc.gr.gen.cc" // [548] TemplateId[PQ_template*] -> n:Identifier < list:TemplateArgumentListOpt > inline PQ_template* CCParse::action548_TemplateId(SourceLocation loc, SourceLocation endloc, StringRef n, /*fakelist*/TemplateArgument* list) { return new PQ_template(loc, endloc, n, list); } #line 3483 "cc.gr.gen.cc" // [549] TemplateId[PQ_template*] -> on:OperatorFunctionId < list:TemplateArgumentListOpt > inline PQ_template* CCParse::action549_TemplateId(SourceLocation loc, SourceLocation endloc, OperatorName* on, /*fakelist*/TemplateArgument* list) { return new PQ_template(loc, endloc, str(on->getOperatorName()), list); } #line 3488 "cc.gr.gen.cc" // [550] TemplateArgumentList[/*fakelist*/TemplateArgument*] -> a:TemplateArgument inline /*fakelist*/TemplateArgument* CCParse::action550_TemplateArgumentList(SourceLocation loc, SourceLocation endloc, TemplateArgument* a) { return a; } #line 3493 "cc.gr.gen.cc" // [551] TemplateArgumentListTailOpt[TemplateArgument*] -> empty inline TemplateArgument* CCParse::action551_TemplateArgumentListTailOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3498 "cc.gr.gen.cc" // [552] TemplateArgumentListTailOpt[TemplateArgument*] -> , a:TemplateArgument inline TemplateArgument* CCParse::action552_TemplateArgumentListTailOpt(SourceLocation loc, SourceLocation endloc, TemplateArgument* a) { return a; } #line 3503 "cc.gr.gen.cc" // [553] TemplateArgument[TemplateArgument*] -> type:TypeId tail:TemplateArgumentListTailOpt inline TemplateArgument* CCParse::action553_TemplateArgument(SourceLocation loc, SourceLocation endloc, ASTTypeId* type, TemplateArgument* tail) { return new TA_type(type, tail); } #line 3508 "cc.gr.gen.cc" // [554] TemplateArgument[TemplateArgument*] -> e:AssignmentExpression tail:TemplateArgumentListTailOpt inline TemplateArgument* CCParse::action554_TemplateArgument(SourceLocation loc, SourceLocation endloc, Expression* e, TemplateArgument* tail) { if (Expression::hasUnparenthesizedGT(e)) { // this is the wrong interpretation because template argument // expressions aren't allowed to have unparenthesized // greater-than operators [cppstd 14.1 para 15] // // this helps eliminate a nasty ambiguity in function // declarators, as otherwise // template // Foo & Foo::get() {} // could be interpreted as a constructor (we don't realize // that 'get' != 'Foo') of a template class with template // argument "T > &Foo < T" TRACE("cancel", loc << ": template argument has unparenthesized greater-than operator"); return NULL; } else { return new TA_nontype(e, tail); } } #line 3533 "cc.gr.gen.cc" // [555] ExplicitInstantiation[TopForm*] -> template d:BlockDeclaration inline TopForm* CCParse::action555_ExplicitInstantiation(SourceLocation loc, SourceLocation endloc, Declaration* d) { return new TF_explicitInst(loc, DF_NONE, d); } #line 3538 "cc.gr.gen.cc" // [556] ExplicitInstantiation[TopForm*] -> inline template d:BlockDeclaration inline TopForm* CCParse::action556_ExplicitInstantiation(SourceLocation loc, SourceLocation endloc, Declaration* d) { xunimp(stringc << loc << " inline explicit instantiations" " (c24a5f9c-edbd-4945-a56a-ed73a1d6a0fa)"); } #line 3544 "cc.gr.gen.cc" // [557] ExplicitInstantiation[TopForm*] -> extern template d:BlockDeclaration inline TopForm* CCParse::action557_ExplicitInstantiation(SourceLocation loc, SourceLocation endloc, Declaration* d) { return new TF_explicitInst(loc, DF_EXTERN, d); } #line 3549 "cc.gr.gen.cc" // [558] TryBlock[S_try*] -> try s:CompoundStatement h:HandlerSeq inline S_try* CCParse::action558_TryBlock(SourceLocation loc, SourceLocation endloc, S_compound* s, FakeList* h) { return new S_try(loc ENDLOCARG(endloc), s, h); } #line 3554 "cc.gr.gen.cc" // [559] HandlerSeq[FakeList*] -> h:Handler inline FakeList* CCParse::action559_HandlerSeq(SourceLocation loc, SourceLocation endloc, Handler* h) { return FakeList::makeList(h); } #line 3559 "cc.gr.gen.cc" // [560] HandlerSeq[FakeList*] -> h:Handler seq:HandlerSeq inline FakeList* CCParse::action560_HandlerSeq(SourceLocation loc, SourceLocation endloc, Handler* h, FakeList* seq) { return seq->prepend(h); } #line 3564 "cc.gr.gen.cc" // [561] Handler[Handler*] -> catch ( d:HandlerParameter ) s:CompoundStatement inline Handler* CCParse::action561_Handler(SourceLocation loc, SourceLocation endloc, ASTTypeId* d, S_compound* s) { return new Handler(d, s); } #line 3569 "cc.gr.gen.cc" // [562] Handler[Handler*] -> catch ( ... ) s:CompoundStatement inline Handler* CCParse::action562_Handler(SourceLocation loc, SourceLocation endloc, S_compound* s) { return new Handler( new ASTTypeId(new TS_simple(loc, endloc, ST_ELLIPSIS), new Declarator(new D_name(loc, endloc, NULL /*name*/), NULL /*init*/)), s); } #line 3578 "cc.gr.gen.cc" // [563] HandlerParameter[ASTTypeId*] -> s:TypeSpecifier d:UnqualifiedDeclarator inline ASTTypeId* CCParse::action563_HandlerParameter(SourceLocation loc, SourceLocation endloc, TypeSpecifier* s, IDeclarator* d) { return new ASTTypeId(s, new Declarator(d, NULL /*init*/)); } #line 3583 "cc.gr.gen.cc" // [564] HandlerParameter[ASTTypeId*] -> s:TypeSpecifier d:AbstractDeclaratorOpt inline ASTTypeId* CCParse::action564_HandlerParameter(SourceLocation loc, SourceLocation endloc, TypeSpecifier* s, IDeclarator* d) { return new ASTTypeId(s, new Declarator(d, NULL /*init*/)); } #line 3588 "cc.gr.gen.cc" // [565] UnqualifiedDeclarator[IDeclarator*] -> d:Declarator inline IDeclarator* CCParse::action565_UnqualifiedDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return d; } #line 3593 "cc.gr.gen.cc" // [566] ThrowExpression[E_throw*] -> throw inline E_throw* CCParse::action566_ThrowExpression(SourceLocation loc, SourceLocation endloc) { return new E_throw(EXPR_LOC(loc ENDLOCARG(endloc)) NULL); } #line 3598 "cc.gr.gen.cc" // [567] ThrowExpression[E_throw*] -> throw e:AssignmentExpression inline E_throw* CCParse::action567_ThrowExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_throw(EXPR_LOC(loc ENDLOCARG(endloc)) e); } #line 3603 "cc.gr.gen.cc" // [568] ExceptionSpecificationOpt[ExceptionSpec*] -> empty inline ExceptionSpec* CCParse::action568_ExceptionSpecificationOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3608 "cc.gr.gen.cc" // [569] ExceptionSpecificationOpt[ExceptionSpec*] -> throw ( ) inline ExceptionSpec* CCParse::action569_ExceptionSpecificationOpt(SourceLocation loc, SourceLocation endloc) { return new ExceptionSpec(FakeList::emptyList()); } #line 3613 "cc.gr.gen.cc" // [570] ExceptionSpecificationOpt[ExceptionSpec*] -> throw ( list:TypeIdList ) inline ExceptionSpec* CCParse::action570_ExceptionSpecificationOpt(SourceLocation loc, SourceLocation endloc, FakeList* list) { return new ExceptionSpec(list); } #line 3618 "cc.gr.gen.cc" // [571] TypeIdList[FakeList*] -> t:TypeId inline FakeList* CCParse::action571_TypeIdList(SourceLocation loc, SourceLocation endloc, ASTTypeId* t) { return FakeList::makeList(t); } #line 3623 "cc.gr.gen.cc" // [572] TypeIdList[FakeList*] -> t:TypeId , list:TypeIdList inline FakeList* CCParse::action572_TypeIdList(SourceLocation loc, SourceLocation endloc, ASTTypeId* t, FakeList* list) { t->setNext(list->first()); return FakeList::makeList(t); } #line 3629 "cc.gr.gen.cc" // [573] NamespaceDefinition[TF_namespaceDefn*] -> namespace n:IdentifierOpt { unit:TranslationUnit } inline TF_namespaceDefn* CCParse::action573_NamespaceDefinition(SourceLocation loc, SourceLocation endloc, StringRef n, TranslationUnit* unit) { // RICH: I'd like to capture the loc of n here. TF_namespaceDefn *ret = new TF_namespaceDefn(loc, n, NULL /*forms*/); ret->forms.concat(unit->topForms); // steal list contents delete unit; return ret; } #line 3640 "cc.gr.gen.cc" // [574] NamespaceDefinition[TF_namespaceDefn*] -> namespace n:IdentifierOpt AttributeSpecifierList { unit:TranslationUnit } inline TF_namespaceDefn* CCParse::action574_NamespaceDefinition(SourceLocation loc, SourceLocation endloc, StringRef n, TranslationUnit* unit) { TF_namespaceDefn *ret = new TF_namespaceDefn(loc, n, NULL /*forms*/); ret->forms.concat(unit->topForms); // steal list contents delete unit; return ret; } #line 3650 "cc.gr.gen.cc" // [575] NamespaceDecl[NamespaceDecl*] -> namespace alias:Identifier = orig:IdExpression ; inline NamespaceDecl* CCParse::action575_NamespaceDecl(SourceLocation loc, SourceLocation endloc, StringRef alias, PQName* orig) { return new ND_alias(alias, orig); } #line 3655 "cc.gr.gen.cc" // [576] NamespaceDecl[NamespaceDecl*] -> using n:IdExpression ; inline NamespaceDecl* CCParse::action576_NamespaceDecl(SourceLocation loc, SourceLocation endloc, PQName* n) { return new ND_usingDecl(n); } #line 3660 "cc.gr.gen.cc" // [577] NamespaceDecl[NamespaceDecl*] -> using namespace n:IdExpression ; inline NamespaceDecl* CCParse::action577_NamespaceDecl(SourceLocation loc, SourceLocation endloc, PQName* n) { return new ND_usingDir(n); } #line 3665 "cc.gr.gen.cc" // [578] NamespaceDecl[NamespaceDecl*] -> using namespace n:IdExpression AttributeSpecifierList ; inline NamespaceDecl* CCParse::action578_NamespaceDecl(SourceLocation loc, SourceLocation endloc, PQName* n) { xunimp(stringc << loc << " using namespace __attribute__" " (a86c8a1e-2cd7-41bd-8a23-f9049358c166)"); return new ND_usingDir(n); } #line 3672 "cc.gr.gen.cc" // [579] NamesAfterDot[Expression*] -> n:NameAfterDot inline Expression* CCParse::action579_NamesAfterDot(SourceLocation loc, SourceLocation endloc, PQName* n) { return new E_arrow(loc ENDLOCARG(endloc), NULL, n); } #line 3677 "cc.gr.gen.cc" // [580] NamesAfterDot[Expression*] -> n:NamesAfterDot . n2:NameAfterDot inline Expression* CCParse::action580_NamesAfterDot(SourceLocation loc, SourceLocation endloc, Expression* n, PQName* n2) { return new E_fieldAcc(loc ENDLOCARG(endloc), n, n2); } #line 3682 "cc.gr.gen.cc" // [581] ParenthesizedExpression[Expression*] -> ( e:Expression ) inline Expression* CCParse::action581_ParenthesizedExpression(SourceLocation loc, SourceLocation endloc, Expression* e) { return new E_grouping(loc ENDLOCARG(endloc), e); } #line 3687 "cc.gr.gen.cc" // [582] LabeledEmptyStatementList[Statement*] -> n:LabelAndColon s:LabeledEmptyStatementListOpt inline Statement* CCParse::action582_LabeledEmptyStatementList(SourceLocation loc, SourceLocation endloc, StringRef n, Statement* s) { return new S_label(loc ENDLOCARG(endloc), n, s); } #line 3692 "cc.gr.gen.cc" // [583] LabeledEmptyStatementList[Statement*] -> case e:ConstantExpression : s:LabeledEmptyStatementListOpt inline Statement* CCParse::action583_LabeledEmptyStatementList(SourceLocation loc, SourceLocation endloc, Expression* e, Statement* s) { return new S_case(loc ENDLOCARG(endloc), e, new S_skip(loc ENDLOCARG(endloc))); } #line 3697 "cc.gr.gen.cc" // [584] LabeledEmptyStatementList[Statement*] -> case e:ConstantExpression ... e2:ConstantExpression : s:LabeledEmptyStatementListOpt inline Statement* CCParse::action584_LabeledEmptyStatementList(SourceLocation loc, SourceLocation endloc, Expression* e, Expression* e2, Statement* s) { return new S_rangeCase(loc ENDLOCARG(endloc), e, e2, s); } #line 3702 "cc.gr.gen.cc" // [585] LabeledEmptyStatementList[Statement*] -> default : s:LabeledEmptyStatementListOpt inline Statement* CCParse::action585_LabeledEmptyStatementList(SourceLocation loc, SourceLocation endloc, Statement* s) { return new S_default(loc ENDLOCARG(endloc), new S_skip(loc ENDLOCARG(endloc))); } #line 3707 "cc.gr.gen.cc" // [586] LabeledEmptyStatementListOpt[Statement*] -> empty inline Statement* CCParse::action586_LabeledEmptyStatementListOpt(SourceLocation loc, SourceLocation endloc) { return new S_skip(loc ENDLOCARG(endloc)); } #line 3712 "cc.gr.gen.cc" // [587] LabeledEmptyStatementListOpt[Statement*] -> s:LabeledEmptyStatementList inline Statement* CCParse::action587_LabeledEmptyStatementListOpt(SourceLocation loc, SourceLocation endloc, Statement* s) { return s; } #line 3717 "cc.gr.gen.cc" // [588] TypeofTypeSpecifier[ASTTypeof*] -> e:TypeofExpr inline ASTTypeof* CCParse::action588_TypeofTypeSpecifier(SourceLocation loc, SourceLocation endloc, FullExpression* e) { return new TS_typeof_expr(e); } #line 3722 "cc.gr.gen.cc" // [589] TypeofTypeSpecifier[ASTTypeof*] -> t:TypeofType inline ASTTypeof* CCParse::action589_TypeofTypeSpecifier(SourceLocation loc, SourceLocation endloc, ASTTypeId* t) { return new TS_typeof_type(t); } #line 3727 "cc.gr.gen.cc" // [590] TypeofExpr[FullExpression*] -> __typeof__ ( e:Expression ) inline FullExpression* CCParse::action590_TypeofExpr(SourceLocation loc, SourceLocation endloc, Expression* e) { return new FullExpression(e); } #line 3732 "cc.gr.gen.cc" // [591] TypeofType[ASTTypeId*] -> __typeof__ ( t:TypeId ) inline ASTTypeId* CCParse::action591_TypeofType(SourceLocation loc, SourceLocation endloc, ASTTypeId* t) { return t; } #line 3737 "cc.gr.gen.cc" // [592] BracketedWordOpt[StringRef] -> empty inline StringRef CCParse::action592_BracketedWordOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3742 "cc.gr.gen.cc" // [593] BracketedWordOpt[StringRef] -> [ id:Identifier ] inline StringRef CCParse::action593_BracketedWordOpt(SourceLocation loc, SourceLocation endloc, StringRef id) { return id; } #line 3747 "cc.gr.gen.cc" // [594] ParenthesizedExpressionOpt[Expression*] -> empty inline Expression* CCParse::action594_ParenthesizedExpressionOpt(SourceLocation loc, SourceLocation endloc) { return NULL; } #line 3752 "cc.gr.gen.cc" // [595] ParenthesizedExpressionOpt[Expression*] -> ( e:Expression ) inline Expression* CCParse::action595_ParenthesizedExpressionOpt(SourceLocation loc, SourceLocation endloc, Expression* e) { return e; } #line 3757 "cc.gr.gen.cc" // [596] OpConstraint[Constraint*] -> name:BracketedWordOpt constr:StringLiteral e:ParenthesizedExpressionOpt inline Constraint* CCParse::action596_OpConstraint(SourceLocation loc, SourceLocation endloc, StringRef name, E_stringLit* constr, Expression* e) { return new Constraint(loc, name, constr, e); } #line 3762 "cc.gr.gen.cc" // [597] OpConstraintList[ASTList*] -> empty inline ASTList* CCParse::action597_OpConstraintList(SourceLocation loc, SourceLocation endloc) { return new ASTList(); } #line 3767 "cc.gr.gen.cc" // [598] OpConstraintList[ASTList*] -> c:OpConstraint inline ASTList* CCParse::action598_OpConstraintList(SourceLocation loc, SourceLocation endloc, Constraint* c) { return new ASTList(c); } #line 3772 "cc.gr.gen.cc" // [599] OpConstraintList[ASTList*] -> list:OpConstraintList , c:OpConstraint inline ASTList* CCParse::action599_OpConstraintList(SourceLocation loc, SourceLocation endloc, ASTList* list, Constraint* c) { list->append(c); return list; } #line 3777 "cc.gr.gen.cc" // [600] OpConstraints[Constraints*] -> : o:OpConstraintList : i:OpConstraintList : c:OpConstraintList inline Constraints* CCParse::action600_OpConstraints(SourceLocation loc, SourceLocation endloc, ASTList* o, ASTList* i, ASTList* c) { return new Constraints(o, i, c); } #line 3782 "cc.gr.gen.cc" // [601] OpConstraints[Constraints*] -> : o:OpConstraintList : i:OpConstraintList inline Constraints* CCParse::action601_OpConstraints(SourceLocation loc, SourceLocation endloc, ASTList* o, ASTList* i) { return new Constraints(o, i, NULL); } #line 3787 "cc.gr.gen.cc" // [602] OpConstraints[Constraints*] -> : o:OpConstraintList inline Constraints* CCParse::action602_OpConstraints(SourceLocation loc, SourceLocation endloc, ASTList* o) { return new Constraints(o, NULL, NULL); } #line 3792 "cc.gr.gen.cc" // [603] OpConstraints[Constraints*] -> : o:OpConstraintList :: c:OpConstraintList %prec(195) inline Constraints* CCParse::action603_OpConstraints(SourceLocation loc, SourceLocation endloc, ASTList* o, ASTList* c) { return new Constraints(o, NULL, c); } #line 3797 "cc.gr.gen.cc" // [604] OpConstraints[Constraints*] -> :: i:OpConstraintList : c:OpConstraintList inline Constraints* CCParse::action604_OpConstraints(SourceLocation loc, SourceLocation endloc, ASTList* i, ASTList* c) { return new Constraints(NULL, i, c); } #line 3802 "cc.gr.gen.cc" // [605] OpConstraints[Constraints*] -> :: i:OpConstraintList %prec(195) inline Constraints* CCParse::action605_OpConstraints(SourceLocation loc, SourceLocation endloc, ASTList* i) { return new Constraints(NULL, i, NULL); } #line 3807 "cc.gr.gen.cc" // [606] DesignatorList[FakeList*] -> d:Designator inline FakeList* CCParse::action606_DesignatorList(SourceLocation loc, SourceLocation endloc, Designator* d) { return FakeList::makeList(d); } #line 3812 "cc.gr.gen.cc" // [607] DesignatorList[FakeList*] -> d:Designator dl:DesignatorList inline FakeList* CCParse::action607_DesignatorList(SourceLocation loc, SourceLocation endloc, Designator* d, FakeList* dl) { d->setNext(dl->first()); return FakeList::makeList(d); } #line 3818 "cc.gr.gen.cc" // [608] Designator[Designator*] -> . id:Identifier inline Designator* CCParse::action608_Designator(SourceLocation loc, SourceLocation endloc, StringRef id) { return new FieldDesignator(loc, id); } #line 3823 "cc.gr.gen.cc" // [609] Designator[Designator*] -> [ idx_expr:ConstantExpression ] inline Designator* CCParse::action609_Designator(SourceLocation loc, SourceLocation endloc, Expression* idx_expr) { return new SubscriptDesignator(loc, idx_expr, NULL); } #line 3828 "cc.gr.gen.cc" // [610] Designator[Designator*] -> [ idx_expr:ConstantExpression ... idx_expr2:ConstantExpression ] inline Designator* CCParse::action610_Designator(SourceLocation loc, SourceLocation endloc, Expression* idx_expr, Expression* idx_expr2) { return new SubscriptDesignator(loc, idx_expr, idx_expr2); } #line 3833 "cc.gr.gen.cc" // [611] BuggyGccTypeModifier[void] -> long inline void CCParse::action611_BuggyGccTypeModifier(SourceLocation loc, SourceLocation endloc) {return; } // [612] BuggyGccTypeModifier[void] -> short inline void CCParse::action612_BuggyGccTypeModifier(SourceLocation loc, SourceLocation endloc) {return; } // [613] BuggyGccTypeModifier[void] -> signed inline void CCParse::action613_BuggyGccTypeModifier(SourceLocation loc, SourceLocation endloc) {return; } // [614] BuggyGccTypeModifier[void] -> unsigned inline void CCParse::action614_BuggyGccTypeModifier(SourceLocation loc, SourceLocation endloc) {return; } // [615] BuggyGccTypeModifier[void] -> long BuggyGccTypeModifier inline void CCParse::action615_BuggyGccTypeModifier(SourceLocation loc, SourceLocation endloc) {return; } // [616] BuggyGccTypeModifier[void] -> short BuggyGccTypeModifier inline void CCParse::action616_BuggyGccTypeModifier(SourceLocation loc, SourceLocation endloc) {return; } // [617] BuggyGccTypeModifier[void] -> signed BuggyGccTypeModifier inline void CCParse::action617_BuggyGccTypeModifier(SourceLocation loc, SourceLocation endloc) {return; } // [618] BuggyGccTypeModifier[void] -> unsigned BuggyGccTypeModifier inline void CCParse::action618_BuggyGccTypeModifier(SourceLocation loc, SourceLocation endloc) {return; } // [619] CVQualAttrSeqOpt[enum CVFlags] -> empty inline enum CVFlags CCParse::action619_CVQualAttrSeqOpt(SourceLocation loc, SourceLocation endloc) { return CV_NONE; } #line 3862 "cc.gr.gen.cc" // [620] CVQualAttrSeqOpt[enum CVFlags] -> s:CVQualAttrSeq inline enum CVFlags CCParse::action620_CVQualAttrSeqOpt(SourceLocation loc, SourceLocation endloc, enum CVFlags s) { return s; } #line 3867 "cc.gr.gen.cc" // [621] CVQualAttrSeq[enum CVFlags] -> q:CVQualAttr inline enum CVFlags CCParse::action621_CVQualAttrSeq(SourceLocation loc, SourceLocation endloc, enum CVFlags q) { return q; } #line 3872 "cc.gr.gen.cc" // [622] CVQualAttrSeq[enum CVFlags] -> q:CVQualAttr s:CVQualAttrSeq inline enum CVFlags CCParse::action622_CVQualAttrSeq(SourceLocation loc, SourceLocation endloc, enum CVFlags q, enum CVFlags s) { return q | s; } #line 3877 "cc.gr.gen.cc" // [623] CVQualAttr[enum CVFlags] -> q:CVQualifier inline enum CVFlags CCParse::action623_CVQualAttr(SourceLocation loc, SourceLocation endloc, enum CVFlags q) { return q; } #line 3882 "cc.gr.gen.cc" // [624] CVQualAttr[enum CVFlags] -> AttributeSpecifier inline enum CVFlags CCParse::action624_CVQualAttr(SourceLocation loc, SourceLocation endloc) { return CV_NONE; } #line 3887 "cc.gr.gen.cc" // [625] AttributeWord[StringRef] -> n:TOK_NAME inline StringRef CCParse::action625_AttributeWord(SourceLocation loc, SourceLocation endloc, StringRef n) { return n; } #line 3892 "cc.gr.gen.cc" // [626] AttributeWord[StringRef] -> asm inline StringRef CCParse::action626_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("asm"); } #line 3897 "cc.gr.gen.cc" // [627] AttributeWord[StringRef] -> auto inline StringRef CCParse::action627_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("auto"); } #line 3902 "cc.gr.gen.cc" // [628] AttributeWord[StringRef] -> break inline StringRef CCParse::action628_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("break"); } #line 3907 "cc.gr.gen.cc" // [629] AttributeWord[StringRef] -> bool inline StringRef CCParse::action629_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("bool"); } #line 3912 "cc.gr.gen.cc" // [630] AttributeWord[StringRef] -> case inline StringRef CCParse::action630_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("case"); } #line 3917 "cc.gr.gen.cc" // [631] AttributeWord[StringRef] -> catch inline StringRef CCParse::action631_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("catch"); } #line 3922 "cc.gr.gen.cc" // [632] AttributeWord[StringRef] -> char inline StringRef CCParse::action632_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("char"); } #line 3927 "cc.gr.gen.cc" // [633] AttributeWord[StringRef] -> class inline StringRef CCParse::action633_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("class"); } #line 3932 "cc.gr.gen.cc" // [634] AttributeWord[StringRef] -> const %prec(190) inline StringRef CCParse::action634_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("const"); } #line 3937 "cc.gr.gen.cc" // [635] AttributeWord[StringRef] -> const_cast inline StringRef CCParse::action635_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("const_cast"); } #line 3942 "cc.gr.gen.cc" // [636] AttributeWord[StringRef] -> continue inline StringRef CCParse::action636_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("continue"); } #line 3947 "cc.gr.gen.cc" // [637] AttributeWord[StringRef] -> default inline StringRef CCParse::action637_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("default"); } #line 3952 "cc.gr.gen.cc" // [638] AttributeWord[StringRef] -> delete inline StringRef CCParse::action638_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("delete"); } #line 3957 "cc.gr.gen.cc" // [639] AttributeWord[StringRef] -> do inline StringRef CCParse::action639_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("do"); } #line 3962 "cc.gr.gen.cc" // [640] AttributeWord[StringRef] -> double inline StringRef CCParse::action640_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("double"); } #line 3967 "cc.gr.gen.cc" // [641] AttributeWord[StringRef] -> dynamic_cast inline StringRef CCParse::action641_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("dynamic_cast"); } #line 3972 "cc.gr.gen.cc" // [642] AttributeWord[StringRef] -> else %prec(190) inline StringRef CCParse::action642_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("else"); } #line 3977 "cc.gr.gen.cc" // [643] AttributeWord[StringRef] -> enum inline StringRef CCParse::action643_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("enum"); } #line 3982 "cc.gr.gen.cc" // [644] AttributeWord[StringRef] -> explicit inline StringRef CCParse::action644_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("explicit"); } #line 3987 "cc.gr.gen.cc" // [645] AttributeWord[StringRef] -> export inline StringRef CCParse::action645_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("export"); } #line 3992 "cc.gr.gen.cc" // [646] AttributeWord[StringRef] -> extern inline StringRef CCParse::action646_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("extern"); } #line 3997 "cc.gr.gen.cc" // [647] AttributeWord[StringRef] -> false inline StringRef CCParse::action647_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("false"); } #line 4002 "cc.gr.gen.cc" // [648] AttributeWord[StringRef] -> float inline StringRef CCParse::action648_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("float"); } #line 4007 "cc.gr.gen.cc" // [649] AttributeWord[StringRef] -> for inline StringRef CCParse::action649_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("for"); } #line 4012 "cc.gr.gen.cc" // [650] AttributeWord[StringRef] -> friend inline StringRef CCParse::action650_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("friend"); } #line 4017 "cc.gr.gen.cc" // [651] AttributeWord[StringRef] -> goto inline StringRef CCParse::action651_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("goto"); } #line 4022 "cc.gr.gen.cc" // [652] AttributeWord[StringRef] -> if inline StringRef CCParse::action652_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("if"); } #line 4027 "cc.gr.gen.cc" // [653] AttributeWord[StringRef] -> inline inline StringRef CCParse::action653_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("inline"); } #line 4032 "cc.gr.gen.cc" // [654] AttributeWord[StringRef] -> int inline StringRef CCParse::action654_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("int"); } #line 4037 "cc.gr.gen.cc" // [655] AttributeWord[StringRef] -> long inline StringRef CCParse::action655_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("long"); } #line 4042 "cc.gr.gen.cc" // [656] AttributeWord[StringRef] -> mutable inline StringRef CCParse::action656_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("mutable"); } #line 4047 "cc.gr.gen.cc" // [657] AttributeWord[StringRef] -> namespace inline StringRef CCParse::action657_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("namespace"); } #line 4052 "cc.gr.gen.cc" // [658] AttributeWord[StringRef] -> new inline StringRef CCParse::action658_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("new"); } #line 4057 "cc.gr.gen.cc" // [659] AttributeWord[StringRef] -> operator inline StringRef CCParse::action659_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("operator"); } #line 4062 "cc.gr.gen.cc" // [660] AttributeWord[StringRef] -> private inline StringRef CCParse::action660_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("private"); } #line 4067 "cc.gr.gen.cc" // [661] AttributeWord[StringRef] -> protected inline StringRef CCParse::action661_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("protected"); } #line 4072 "cc.gr.gen.cc" // [662] AttributeWord[StringRef] -> public inline StringRef CCParse::action662_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("public"); } #line 4077 "cc.gr.gen.cc" // [663] AttributeWord[StringRef] -> register inline StringRef CCParse::action663_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("register"); } #line 4082 "cc.gr.gen.cc" // [664] AttributeWord[StringRef] -> reinterpret_cast inline StringRef CCParse::action664_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("reinterpret_cast"); } #line 4087 "cc.gr.gen.cc" // [665] AttributeWord[StringRef] -> return inline StringRef CCParse::action665_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("return"); } #line 4092 "cc.gr.gen.cc" // [666] AttributeWord[StringRef] -> short inline StringRef CCParse::action666_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("short"); } #line 4097 "cc.gr.gen.cc" // [667] AttributeWord[StringRef] -> signed inline StringRef CCParse::action667_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("signed"); } #line 4102 "cc.gr.gen.cc" // [668] AttributeWord[StringRef] -> sizeof inline StringRef CCParse::action668_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("sizeof"); } #line 4107 "cc.gr.gen.cc" // [669] AttributeWord[StringRef] -> static inline StringRef CCParse::action669_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("static"); } #line 4112 "cc.gr.gen.cc" // [670] AttributeWord[StringRef] -> static_cast inline StringRef CCParse::action670_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("static_cast"); } #line 4117 "cc.gr.gen.cc" // [671] AttributeWord[StringRef] -> struct inline StringRef CCParse::action671_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("struct"); } #line 4122 "cc.gr.gen.cc" // [672] AttributeWord[StringRef] -> switch inline StringRef CCParse::action672_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("switch"); } #line 4127 "cc.gr.gen.cc" // [673] AttributeWord[StringRef] -> template inline StringRef CCParse::action673_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("template"); } #line 4132 "cc.gr.gen.cc" // [674] AttributeWord[StringRef] -> this inline StringRef CCParse::action674_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("this"); } #line 4137 "cc.gr.gen.cc" // [675] AttributeWord[StringRef] -> throw inline StringRef CCParse::action675_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("throw"); } #line 4142 "cc.gr.gen.cc" // [676] AttributeWord[StringRef] -> true inline StringRef CCParse::action676_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("true"); } #line 4147 "cc.gr.gen.cc" // [677] AttributeWord[StringRef] -> try inline StringRef CCParse::action677_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("try"); } #line 4152 "cc.gr.gen.cc" // [678] AttributeWord[StringRef] -> typedef inline StringRef CCParse::action678_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("typedef"); } #line 4157 "cc.gr.gen.cc" // [679] AttributeWord[StringRef] -> typeid inline StringRef CCParse::action679_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("typeid"); } #line 4162 "cc.gr.gen.cc" // [680] AttributeWord[StringRef] -> typename inline StringRef CCParse::action680_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("typename"); } #line 4167 "cc.gr.gen.cc" // [681] AttributeWord[StringRef] -> union inline StringRef CCParse::action681_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("union"); } #line 4172 "cc.gr.gen.cc" // [682] AttributeWord[StringRef] -> unsigned inline StringRef CCParse::action682_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("unsigned"); } #line 4177 "cc.gr.gen.cc" // [683] AttributeWord[StringRef] -> using inline StringRef CCParse::action683_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("using"); } #line 4182 "cc.gr.gen.cc" // [684] AttributeWord[StringRef] -> virtual inline StringRef CCParse::action684_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("virtual"); } #line 4187 "cc.gr.gen.cc" // [685] AttributeWord[StringRef] -> void inline StringRef CCParse::action685_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("void"); } #line 4192 "cc.gr.gen.cc" // [686] AttributeWord[StringRef] -> volatile %prec(190) inline StringRef CCParse::action686_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("volatile"); } #line 4197 "cc.gr.gen.cc" // [687] AttributeWord[StringRef] -> wchar_t inline StringRef CCParse::action687_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("wchar_t"); } #line 4202 "cc.gr.gen.cc" // [688] AttributeWord[StringRef] -> while inline StringRef CCParse::action688_AttributeWord(SourceLocation loc, SourceLocation endloc) { return str("while"); } #line 4207 "cc.gr.gen.cc" // [689] CommaSepExpressionListOpt[FakeList*] -> empty inline FakeList* CCParse::action689_CommaSepExpressionListOpt(SourceLocation loc, SourceLocation endloc) { return FakeList::emptyList(); } #line 4212 "cc.gr.gen.cc" // [690] CommaSepExpressionListOpt[FakeList*] -> el:ExpressionList inline FakeList* CCParse::action690_CommaSepExpressionListOpt(SourceLocation loc, SourceLocation endloc, FakeList* el) { return el; } #line 4217 "cc.gr.gen.cc" // [691] AttributeParameters[FakeList*] -> exprs:CommaSepExpressionListOpt inline FakeList* CCParse::action691_AttributeParameters(SourceLocation loc, SourceLocation endloc, FakeList* exprs) { return exprs; } #line 4222 "cc.gr.gen.cc" // [692] Attribute[Attribute*] -> empty inline Attribute* CCParse::action692_Attribute(SourceLocation loc, SourceLocation endloc) { return new AT_empty(loc); } #line 4227 "cc.gr.gen.cc" // [693] Attribute[Attribute*] -> w:AttributeWord inline Attribute* CCParse::action693_Attribute(SourceLocation loc, SourceLocation endloc, StringRef w) { return new AT_word(loc, w); } #line 4232 "cc.gr.gen.cc" // [694] Attribute[Attribute*] -> w:AttributeWord ( ap:AttributeParameters ) inline Attribute* CCParse::action694_Attribute(SourceLocation loc, SourceLocation endloc, StringRef w, FakeList* ap) { return new AT_func(loc, w, ap); } #line 4237 "cc.gr.gen.cc" // [695] AttributeList[AttributeSpecifier*] -> at:Attribute inline AttributeSpecifier* CCParse::action695_AttributeList(SourceLocation loc, SourceLocation endloc, Attribute* at) { return new AttributeSpecifier(at, NULL /*next*/); } #line 4242 "cc.gr.gen.cc" // [696] AttributeList[AttributeSpecifier*] -> at:Attribute , ap:AttributeList inline AttributeSpecifier* CCParse::action696_AttributeList(SourceLocation loc, SourceLocation endloc, Attribute* at, AttributeSpecifier* ap) { return new AttributeSpecifier(at, ap); } #line 4247 "cc.gr.gen.cc" // [697] AttributeSpecifier[AttributeSpecifier*] -> __attribute__ ( ( ap:AttributeList ) ) inline AttributeSpecifier* CCParse::action697_AttributeSpecifier(SourceLocation loc, SourceLocation endloc, AttributeSpecifier* ap) { return ap; } #line 4252 "cc.gr.gen.cc" // [698] AttributeSpecifierList[AttributeSpecifierList*] -> as:AttributeSpecifier inline AttributeSpecifierList* CCParse::action698_AttributeSpecifierList(SourceLocation loc, SourceLocation endloc, AttributeSpecifier* as) { return new AttributeSpecifierList(as, NULL /*next*/); } #line 4257 "cc.gr.gen.cc" // [699] AttributeSpecifierList[AttributeSpecifierList*] -> as:AttributeSpecifier asl:AttributeSpecifierList inline AttributeSpecifierList* CCParse::action699_AttributeSpecifierList(SourceLocation loc, SourceLocation endloc, AttributeSpecifier* as, AttributeSpecifierList* asl) { return new AttributeSpecifierList(as, asl); } #line 4262 "cc.gr.gen.cc" // [700] KandRFunctionDefinition[Function*] -> rds:DeclSpecifier id:KandRDeclarator ds:KandRSimpleDeclarationSeq b:FunctionBody inline Function* CCParse::action700_KandRFunctionDefinition(SourceLocation loc, SourceLocation endloc, Declaration* rds, IDeclarator* id, S_compound* ds, S_compound* b) { return makeKandRdefn(loc, rds, id, ds, b); } #line 4269 "cc.gr.gen.cc" // [701] KandRFunctionDefinition_implInt[Function*] -> id:KandRDeclarator ds:KandRSimpleDeclarationSeq b:FunctionBody inline Function* CCParse::action701_KandRFunctionDefinition_implInt(SourceLocation loc, SourceLocation endloc, IDeclarator* id, S_compound* ds, S_compound* b) { // FIX: otherwise this is a parse error; what should we do in // that case? xassert(LO.allowImplicitInt); // the return type defaults to int Declaration *rds = new Declaration(DF_NONE, new TS_simple(loc, endloc, ST_IMPLINT), NULL); return makeKandRdefn(loc, rds, id, ds, b); } #line 4282 "cc.gr.gen.cc" // [702] KandRFunctionDefinition_implInt[Function*] -> m:UberModifierSeq id:KandRDeclarator ds:KandRSimpleDeclarationSeq b:FunctionBody inline Function* CCParse::action702_KandRFunctionDefinition_implInt(SourceLocation loc, SourceLocation endloc, UberModifiers m, IDeclarator* id, S_compound* ds, S_compound* b) { xassert(LO.allowImplicitInt); DeclFlags df = uberDeclFlags(m); CVFlags cv = uberCVFlags(m); Declaration *rds = new Declaration(df, new_TS_simple(loc, endloc, cv, ST_IMPLINT), NULL); return makeKandRdefn(loc, rds, id, ds, b); } #line 4293 "cc.gr.gen.cc" // [703] KandRSimpleDeclarationSeq[S_compound*] -> s:KandRSimpleDeclaration inline S_compound* CCParse::action703_KandRSimpleDeclarationSeq(SourceLocation loc, SourceLocation endloc, Declaration* s) { S_compound *c = new S_compound(loc ENDLOCARG(endloc), NULL); c->stmts.append(new S_decl(loc ENDLOCARG(endloc), s)); return c; } #line 4301 "cc.gr.gen.cc" // [704] KandRSimpleDeclarationSeq[S_compound*] -> c:KandRSimpleDeclarationSeq s:KandRSimpleDeclaration inline S_compound* CCParse::action704_KandRSimpleDeclarationSeq(SourceLocation loc, SourceLocation endloc, S_compound* c, Declaration* s) { c->stmts.append(new S_decl(loc ENDLOCARG(endloc), s)); return c; } #line 4306 "cc.gr.gen.cc" // [705] KandRSimpleDeclaration[Declaration*] -> spec:DeclSpecifier list:KandRInitDeclaratorList ; inline Declaration* CCParse::action705_KandRSimpleDeclaration(SourceLocation loc, SourceLocation endloc, Declaration* spec, FakeList* list) { spec->decllist = list; return spec; } #line 4311 "cc.gr.gen.cc" // [706] KandRSimpleDeclaration[Declaration*] -> register list:KandRInitDeclaratorList ; inline Declaration* CCParse::action706_KandRSimpleDeclaration(SourceLocation loc, SourceLocation endloc, FakeList* list) { if (!LO.allowImplicitInt) { trace("cancel") << loc << ": implicit-int KandRSimpleDeclaration in non-implicit-int language\n"; return NULL; } return new Declaration(DF_REGISTER, new TS_simple(loc, endloc, ST_IMPLINT), list); } #line 4325 "cc.gr.gen.cc" // [707] KandRInitDeclaratorList[FakeList*] -> d:KandRInitDeclarator inline FakeList* CCParse::action707_KandRInitDeclaratorList(SourceLocation loc, SourceLocation endloc, Declarator* d) { return FakeList::makeList(d); } #line 4330 "cc.gr.gen.cc" // [708] KandRInitDeclaratorList[FakeList*] -> d:KandRInitDeclarator , list:KandRInitDeclaratorList inline FakeList* CCParse::action708_KandRInitDeclaratorList(SourceLocation loc, SourceLocation endloc, Declarator* d, FakeList* list) { d->setNext(list->first()); return FakeList::makeList(d); } #line 4336 "cc.gr.gen.cc" // [709] KandRInitDeclarator[Declarator*] -> d:Declarator inline Declarator* CCParse::action709_KandRInitDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new Declarator(d, NULL); } #line 4341 "cc.gr.gen.cc" // [710] KandRDeclarator[IDeclarator*] -> * cv:CVQualifierSeqOpt d:KandRDeclarator %prec(110) inline IDeclarator* CCParse::action710_KandRDeclarator(SourceLocation loc, SourceLocation endloc, enum CVFlags cv, IDeclarator* d) { return new D_pointer(loc, endloc, cv, d); } #line 4346 "cc.gr.gen.cc" // [711] KandRDeclarator[IDeclarator*] -> d:KandRDirectDeclarator inline IDeclarator* CCParse::action711_KandRDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return d; } #line 4351 "cc.gr.gen.cc" // [712] KandRDirectDeclarator[IDeclarator*] -> d:KandRIdExpression ( kAndR_params:KandRIdentifierList ) inline IDeclarator* CCParse::action712_KandRDirectDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, FakeList* kAndR_params) { return new_D_func_kandr (LO, loc, d, NULL/* no normal params*/, CV_NONE /*cv*/, NULL /*exception spec*/, kAndR_params ); } #line 4365 "cc.gr.gen.cc" // [713] KandRDirectDeclarator[IDeclarator*] -> ( d:KandRIdExpression ) ( kAndR_params:KandRIdentifierList ) inline IDeclarator* CCParse::action713_KandRDirectDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, FakeList* kAndR_params) { return new_D_func_kandr (LO, loc, d, NULL/* no normal params*/, CV_NONE /*cv*/, NULL /*exception spec*/, kAndR_params ); } #line 4379 "cc.gr.gen.cc" // [714] KandRDirectDeclarator[IDeclarator*] -> d:KandRDirectDeclarator ( params:ParameterDeclarationClause ) inline IDeclarator* CCParse::action714_KandRDirectDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, FakeList* params) { return new_D_func_kandr (LO, loc, d, params, CV_NONE, NULL/*exception spec*/, NULL/*kAndR_params*/ ); } #line 4393 "cc.gr.gen.cc" // [715] KandRDirectDeclarator[IDeclarator*] -> d:KandRDirectDeclarator [ sz:ConstantExpressionOpt ] inline IDeclarator* CCParse::action715_KandRDirectDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d, Expression* sz) { return new_D_array(loc, endloc, d, sz); } #line 4398 "cc.gr.gen.cc" // [716] KandRDirectDeclarator[IDeclarator*] -> ( d:KandRDeclarator ) inline IDeclarator* CCParse::action716_KandRDirectDeclarator(SourceLocation loc, SourceLocation endloc, IDeclarator* d) { return new D_grouping(loc, endloc, d); } #line 4403 "cc.gr.gen.cc" // [717] KandRIdExpression[IDeclarator*] -> n:KandRIdentifier inline IDeclarator* CCParse::action717_KandRIdExpression(SourceLocation loc, SourceLocation endloc, PQ_name* n) { return new D_name(loc, endloc, n); } #line 4408 "cc.gr.gen.cc" // [718] KandRIdentifierList[FakeList*] -> i:KandRIdentifier inline FakeList* CCParse::action718_KandRIdentifierList(SourceLocation loc, SourceLocation endloc, PQ_name* i) { return FakeList::makeList(i); } #line 4413 "cc.gr.gen.cc" // [719] KandRIdentifierList[FakeList*] -> i:KandRIdentifier , e:KandRIdentifierList inline FakeList* CCParse::action719_KandRIdentifierList(SourceLocation loc, SourceLocation endloc, PQ_name* i, FakeList* e) { i->setNext(e->first()); return FakeList::makeList(i); } #line 4419 "cc.gr.gen.cc" // [720] KandRIdentifier[PQ_name*] -> i:Identifier inline PQ_name* CCParse::action720_KandRIdentifier(SourceLocation loc, SourceLocation endloc, StringRef i) { return new PQ_name(loc, endloc, i); } #line 4424 "cc.gr.gen.cc" // [721] CFuncModifier_no_inline[UberModifiers] -> static inline UberModifiers CCParse::action721_CFuncModifier_no_inline(SourceLocation loc, SourceLocation endloc) { return UM_STATIC; } #line 4429 "cc.gr.gen.cc" // [722] CFuncModifier_no_inline[UberModifiers] -> extern inline UberModifiers CCParse::action722_CFuncModifier_no_inline(SourceLocation loc, SourceLocation endloc) { return UM_EXTERN; } #line 4434 "cc.gr.gen.cc" // [723] CFuncModifier_no_inline[UberModifiers] -> const %prec(190) inline UberModifiers CCParse::action723_CFuncModifier_no_inline(SourceLocation loc, SourceLocation endloc) { return UM_CONST; } #line 4439 "cc.gr.gen.cc" // [724] CFuncModifier_no_inline[UberModifiers] -> volatile %prec(190) inline UberModifiers CCParse::action724_CFuncModifier_no_inline(SourceLocation loc, SourceLocation endloc) { return UM_VOLATILE; } #line 4444 "cc.gr.gen.cc" // [725] CFuncModifier[UberModifiers] -> m:CFuncModifier_no_inline inline UberModifiers CCParse::action725_CFuncModifier(SourceLocation loc, SourceLocation endloc, UberModifiers m) { return m; } #line 4449 "cc.gr.gen.cc" // [726] CFuncModifier[UberModifiers] -> inline inline UberModifiers CCParse::action726_CFuncModifier(SourceLocation loc, SourceLocation endloc) { return UM_INLINE; } #line 4454 "cc.gr.gen.cc" // [727] CFuncModifierSeq[UberModifiers] -> m:CFuncModifier inline UberModifiers CCParse::action727_CFuncModifierSeq(SourceLocation loc, SourceLocation endloc, UberModifiers m) { return m; } #line 4459 "cc.gr.gen.cc" // [728] CFuncModifierSeq[UberModifiers] -> s:CFuncModifierSeq m:CFuncModifier inline UberModifiers CCParse::action728_CFuncModifierSeq(SourceLocation loc, SourceLocation endloc, UberModifiers s, UberModifiers m) { return uberCombine(loc, s, m); } #line 4464 "cc.gr.gen.cc" // [729] CFuncModifierSeqOpt[UberModifiers] -> empty inline UberModifiers CCParse::action729_CFuncModifierSeqOpt(SourceLocation loc, SourceLocation endloc) { return UM_NONE; } #line 4469 "cc.gr.gen.cc" // [730] CFuncModifierSeqOpt[UberModifiers] -> m:CFuncModifier inline UberModifiers CCParse::action730_CFuncModifierSeqOpt(SourceLocation loc, SourceLocation endloc, UberModifiers m) { return m; } #line 4474 "cc.gr.gen.cc" // [731] ImplIntFunctionDefinition[Function*] -> m:CFuncModifier_no_inline d:Declarator b:FunctionBody inline Function* CCParse::action731_ImplIntFunctionDefinition(SourceLocation loc, SourceLocation endloc, UberModifiers m, IDeclarator* d, S_compound* b) { DeclFlags df = uberDeclFlags(m); CVFlags cv = uberCVFlags(m); return new Function( df, // decl flags new_TS_simple(loc, endloc, cv, ST_CDTOR), // type specifier: ctor or dtor new Declarator(d, NULL), // declarator with fn name, params NULL, // ctor member inits b, // function body statement NULL // exception handlers ); } #line 4490 "cc.gr.gen.cc" // [732] ImplIntFunctionDefinition[Function*] -> m1:CFuncModifier_no_inline m2:CFuncModifierSeq d:Declarator b:FunctionBody inline Function* CCParse::action732_ImplIntFunctionDefinition(SourceLocation loc, SourceLocation endloc, UberModifiers m1, UberModifiers m2, IDeclarator* d, S_compound* b) { UberModifiers m = uberCombine(loc, m1, m2); DeclFlags df = uberDeclFlags(m); CVFlags cv = uberCVFlags(m); return new Function( df, // decl flags new_TS_simple(loc, endloc, cv, ST_CDTOR), // type specifier: ctor or dtor new Declarator(d, NULL), // declarator with fn name, params NULL, // ctor member inits b, // function body statement NULL // exception handlers ); } #line 4507 "cc.gr.gen.cc" // [733] ImplIntFunctionDefinition[Function*] -> inline m1:CFuncModifier_no_inline m2:CFuncModifierSeqOpt d:Declarator b:FunctionBody inline Function* CCParse::action733_ImplIntFunctionDefinition(SourceLocation loc, SourceLocation endloc, UberModifiers m1, UberModifiers m2, IDeclarator* d, S_compound* b) { UberModifiers m = uberCombine(loc, m1, m2); DeclFlags df = uberDeclFlags(m) | DF_INLINE; CVFlags cv = uberCVFlags(m); return new Function( df, // decl flags new_TS_simple(loc, endloc, cv, ST_CDTOR), // type specifier: ctor or dtor new Declarator(d, NULL), // declarator with fn name, params NULL, // ctor member inits b, // function body statement NULL // exception handlers ); } #line 4524 "cc.gr.gen.cc" // [734] ImplicitIntTypeSpecifier[TypeSpecifier*] -> m:UberCVQualifierSeq inline TypeSpecifier* CCParse::action734_ImplicitIntTypeSpecifier(SourceLocation loc, SourceLocation endloc, UberModifiers m) { UberModifiers k = uberCombine(loc, UM_INT, m); return new_TS_simple(loc, endloc, uberCVFlags(m), uberSimpleType(loc, k)); } #line 4530 "cc.gr.gen.cc" // [735] ImplicitIntTypeId[ASTTypeId*] -> spec:ImplicitIntTypeSpecifier inline ASTTypeId* CCParse::action735_ImplicitIntTypeId(SourceLocation loc, SourceLocation endloc, TypeSpecifier* spec) { return new ASTTypeId(spec, new Declarator(new D_name(loc, endloc, NULL), NULL)); } #line 4535 "cc.gr.gen.cc" // [736] StateDefinition[State*] -> i:InitialState __state__ d:Declarator ; inline State* CCParse::action736_StateDefinition(SourceLocation loc, SourceLocation endloc, bool i, IDeclarator* d) { return new State(loc, endloc, i, d, NULL); } #line 4540 "cc.gr.gen.cc" // [737] StateDefinition[State*] -> i:InitialState __state__ d:Declarator l:AndStateList inline State* CCParse::action737_StateDefinition(SourceLocation loc, SourceLocation endloc, bool i, IDeclarator* d, FakeList* l) { return new State(loc, endloc, i, d, l); } #line 4545 "cc.gr.gen.cc" // [738] InitialState[bool] -> empty inline bool CCParse::action738_InitialState(SourceLocation loc, SourceLocation endloc) { return false; } #line 4550 "cc.gr.gen.cc" // [739] InitialState[bool] -> -> inline bool CCParse::action739_InitialState(SourceLocation loc, SourceLocation endloc) { return true; } #line 4555 "cc.gr.gen.cc" // [740] AndStateList[FakeList*] -> { h:StateEntryListOpt } inline FakeList* CCParse::action740_AndStateList(SourceLocation loc, SourceLocation endloc, StateEntryList* h) { return FakeList::makeList(h); } #line 4560 "cc.gr.gen.cc" // [741] AndStateList[FakeList*] -> { h:StateEntryListOpt } && t:AndStateList %prec(30) inline FakeList* CCParse::action741_AndStateList(SourceLocation loc, SourceLocation endloc, StateEntryList* h, FakeList* t) { h->next = t->first(); return FakeList::makeList(h); } #line 4566 "cc.gr.gen.cc" // [742] StateEntryListOpt[StateEntryList*] -> empty inline StateEntryList* CCParse::action742_StateEntryListOpt(SourceLocation loc, SourceLocation endloc) { return new StateEntryList(loc, endloc, FakeList::emptyList()); } #line 4571 "cc.gr.gen.cc" // [743] StateEntryListOpt[StateEntryList*] -> l:StateEntryList inline StateEntryList* CCParse::action743_StateEntryListOpt(SourceLocation loc, SourceLocation endloc, FakeList* l) { return new StateEntryList(loc, endloc, l); } #line 4576 "cc.gr.gen.cc" // [744] StateEntryList[FakeList*] -> e:StateEntry inline FakeList* CCParse::action744_StateEntryList(SourceLocation loc, SourceLocation endloc, StateEntry* e) { return FakeList::makeList(e); } #line 4581 "cc.gr.gen.cc" // [745] StateEntryList[FakeList*] -> e:StateEntry l:StateEntryList inline FakeList* CCParse::action745_StateEntryList(SourceLocation loc, SourceLocation endloc, StateEntry* e, FakeList* l) { e->next = l->first(); return FakeList::makeList(e); } #line 4587 "cc.gr.gen.cc" // [746] StateEntry[StateEntry*] -> -> [ e:Expression ] s:Statement inline StateEntry* CCParse::action746_StateEntry(SourceLocation loc, SourceLocation endloc, Expression* e, Statement* s) { return new SE_timer(loc, endloc, e, s); } #line 4592 "cc.gr.gen.cc" // [747] StateEntry[StateEntry*] -> -> s:Statement inline StateEntry* CCParse::action747_StateEntry(SourceLocation loc, SourceLocation endloc, Statement* s) { return new SE_entry(loc, endloc, s); } #line 4597 "cc.gr.gen.cc" // [748] StateEntry[StateEntry*] -> case d:MemberDeclarator : s:Statement inline StateEntry* CCParse::action748_StateEntry(SourceLocation loc, SourceLocation endloc, Declarator* d, Statement* s) { return new SE_event(loc, endloc, d, s); } #line 4602 "cc.gr.gen.cc" // [749] StateEntry[StateEntry*] -> default : s:Statement inline StateEntry* CCParse::action749_StateEntry(SourceLocation loc, SourceLocation endloc, Statement* s) { return new SE_default(loc, endloc, s); } #line 4607 "cc.gr.gen.cc" // [750] StateEntry[StateEntry*] -> s:StateDefinition inline StateEntry* CCParse::action750_StateEntry(SourceLocation loc, SourceLocation endloc, State* s) { return new SE_reference(loc, endloc, s); } #line 4612 "cc.gr.gen.cc" // [751] StateEntry[StateEntry*] -> ->* s:Statement %prec(120) inline StateEntry* CCParse::action751_StateEntry(SourceLocation loc, SourceLocation endloc, Statement* s) { return new SE_exit(loc, endloc, s); } #line 4617 "cc.gr.gen.cc" /*static*/ SemanticValue CCParse::doReductionAction( CCParse *ths, int productionId, SemanticValue const *semanticValues, SourceLocation loc, SourceLocation endloc) { switch (productionId) { case 0: return (SemanticValue)(ths->action0___EarlyStartSymbol(loc, endloc, (TranslationUnit*)(semanticValues[0]))); case 1: return (SemanticValue)(ths->action1_File(loc, endloc, (TranslationUnit*)(semanticValues[0]))); case 2: return (SemanticValue)(ths->action2_Identifier(loc, endloc, (StringRef)(semanticValues[0]))); case 3: return (SemanticValue)(ths->action3_TranslationUnit(loc, endloc)); case 4: return (SemanticValue)(ths->action4_TranslationUnit(loc, endloc, (TranslationUnit*)(semanticValues[0]), (TopForm*)(semanticValues[1]))); case 5: return (SemanticValue)(ths->action5_TranslationUnit(loc, endloc, (TranslationUnit*)(semanticValues[0]))); case 6: return (SemanticValue)(ths->action6_PrimaryExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 7: return (SemanticValue)(ths->action7_PrimaryExpression(loc, endloc)); case 8: return (SemanticValue)(ths->action8_PrimaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 9: return (SemanticValue)(ths->action9_PrimaryExpression(loc, endloc, (PQName*)(semanticValues[0]))); case 10: return (SemanticValue)(ths->action10_PrimaryExpression(loc, endloc, (S_compound*)(semanticValues[1]))); case 11: return (SemanticValue)(ths->action11_PrimaryExpression(loc, endloc, (ASTTypeId*)(semanticValues[1]), (IN_compound*)(semanticValues[3]))); case 12: return (SemanticValue)(ths->action12_PrimaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 13: return (SemanticValue)(ths->action13_PrimaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 14: return (SemanticValue)(ths->action14_Literal(loc, endloc, (StringRef)(semanticValues[0]))); case 15: return (SemanticValue)(ths->action15_Literal(loc, endloc, (StringRef)(semanticValues[0]))); case 16: return (SemanticValue)(ths->action16_Literal(loc, endloc, (E_stringLit*)(semanticValues[0]))); case 17: return (SemanticValue)(ths->action17_Literal(loc, endloc, (StringRef)(semanticValues[0]))); case 18: return (SemanticValue)(ths->action18_Literal(loc, endloc)); case 19: return (SemanticValue)(ths->action19_Literal(loc, endloc)); case 20: return (SemanticValue)(ths->action20_PreprocString(loc, endloc, (StringRef)(semanticValues[0]))); case 21: return (SemanticValue)(ths->action21_StringLiteral(loc, endloc, (StringRef)(semanticValues[0]))); case 22: return (SemanticValue)(ths->action22_StringLiteral(loc, endloc, (StringRef)(semanticValues[0]), (E_stringLit*)(semanticValues[1]))); case 23: return (SemanticValue)(ths->action23_IdExpression(loc, endloc, (PQName*)(semanticValues[0]))); case 24: return (SemanticValue)(ths->action24_IdExpression(loc, endloc, (PQName*)(semanticValues[1]))); case 25: return (SemanticValue)(ths->action25_UnqualifiedId(loc, endloc, (StringRef)(semanticValues[0]))); case 26: return (SemanticValue)(ths->action26_UnqualifiedId(loc, endloc, (OperatorName*)(semanticValues[0]))); case 27: return (SemanticValue)(ths->action27_UnqualifiedId(loc, endloc, (OperatorName*)(semanticValues[0]))); case 28: return (SemanticValue)(ths->action28_UnqualifiedId(loc, endloc, (PQ_template*)(semanticValues[0]))); case 29: return (SemanticValue)(ths->action29_PQualifiedId(loc, endloc, (PQName*)(semanticValues[0]))); case 30: return (SemanticValue)(ths->action30_PQualifiedId(loc, endloc, (StringRef)(semanticValues[0]), (PQName*)(semanticValues[2]))); case 31: return (SemanticValue)(ths->action31_PQualifiedId(loc, endloc, (StringRef)(semanticValues[0]), (/*fakelist*/TemplateArgument*)(semanticValues[2]), (PQName*)(semanticValues[5]))); case 32: return (SemanticValue)(ths->action32_PQualifiedId(loc, endloc, (StringRef)(semanticValues[1]), (/*fakelist*/TemplateArgument*)(semanticValues[3]), (PQName*)(semanticValues[6]))); case 33: return (SemanticValue)(ths->action33_ArgumentList(loc, endloc, (FakeList*)(semanticValues[1]))); case 34: return (SemanticValue)(ths->action34_PostfixExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 35: return (SemanticValue)(ths->action35_PostfixExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 36: return (SemanticValue)(ths->action36_PostfixExpression(loc, endloc, (Expression*)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 37: return (SemanticValue)(ths->action37_PostfixExpression(loc, endloc, (PQName*)(semanticValues[1]), (FakeList*)(semanticValues[2]))); case 38: return (SemanticValue)(ths->action38_PostfixExpression(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 39: return (SemanticValue)(ths->action39_PostfixExpression(loc, endloc, (Expression*)(semanticValues[0]), (PQName*)(semanticValues[2]))); case 40: return (SemanticValue)(ths->action40_PostfixExpression(loc, endloc, (Expression*)(semanticValues[0]), (PQName*)(semanticValues[2]))); case 41: return (SemanticValue)(ths->action41_PostfixExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 42: return (SemanticValue)(ths->action42_PostfixExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 43: return (SemanticValue)(ths->action43_PostfixExpression(loc, endloc, (CastKeyword)(semanticValues[0]), (ASTTypeId*)(semanticValues[2]), (Expression*)(semanticValues[5]))); case 44: return (SemanticValue)(ths->action44_PostfixExpression(loc, endloc, (Expression*)(semanticValues[2]))); case 45: return (SemanticValue)(ths->action45_PostfixExpression(loc, endloc, (ASTTypeId*)(semanticValues[2]))); case 46: return (SemanticValue)(ths->action46_PostfixExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 47: return (SemanticValue)(ths->action47_PostfixExpression(loc, endloc, (ASTTypeId*)(semanticValues[2]))); case 48: return (SemanticValue)(ths->action48_PostfixExpression(loc, endloc, (Expression*)(semanticValues[2]))); case 49: return (SemanticValue)(ths->action49_PostfixExpression(loc, endloc, (ASTTypeId*)(semanticValues[2]), (Expression*)(semanticValues[4]))); case 50: return (SemanticValue)(ths->action50_PostfixExpression(loc, endloc, (Expression*)(semanticValues[2]))); case 51: return (SemanticValue)(ths->action51_PostfixExpression(loc, endloc, (Expression*)(semanticValues[2]))); case 52: return (SemanticValue)(ths->action52_PostfixExpression(loc, endloc, (Expression*)(semanticValues[2]), (Expression*)(semanticValues[4]))); case 53: return (SemanticValue)(ths->action53_PostfixExpression(loc, endloc, (Expression*)(semanticValues[2]), (Expression*)(semanticValues[4]))); case 54: return (SemanticValue)(ths->action54_PostfixExpression(loc, endloc, (Expression*)(semanticValues[2]), (ASTTypeId*)(semanticValues[4]))); case 55: return (SemanticValue)(ths->action55_PostfixExpression(loc, endloc, (Expression*)(semanticValues[2]))); case 56: return (SemanticValue)(ths->action56_PostfixExpression(loc, endloc, (Expression*)(semanticValues[2]))); case 57: return (SemanticValue)(ths->action57_CtorExpressionType(loc, endloc, (PQName*)(semanticValues[0]))); case 58: return (SemanticValue)(ths->action58_CtorExpressionType(loc, endloc)); case 59: return (SemanticValue)(ths->action59_CtorExpressionType(loc, endloc)); case 60: return (SemanticValue)(ths->action60_CtorExpressionType(loc, endloc)); case 61: return (SemanticValue)(ths->action61_CtorExpressionType(loc, endloc)); case 62: return (SemanticValue)(ths->action62_CtorExpressionType(loc, endloc)); case 63: return (SemanticValue)(ths->action63_CtorExpressionType(loc, endloc)); case 64: return (SemanticValue)(ths->action64_CtorExpressionType(loc, endloc)); case 65: return (SemanticValue)(ths->action65_CtorExpressionType(loc, endloc)); case 66: return (SemanticValue)(ths->action66_CtorExpressionType(loc, endloc)); case 67: return (SemanticValue)(ths->action67_CtorExpressionType(loc, endloc)); case 68: return (SemanticValue)(ths->action68_CtorExpressionType(loc, endloc)); case 69: return (SemanticValue)(ths->action69_CastKeyword(loc, endloc)); case 70: return (SemanticValue)(ths->action70_CastKeyword(loc, endloc)); case 71: return (SemanticValue)(ths->action71_CastKeyword(loc, endloc)); case 72: return (SemanticValue)(ths->action72_CastKeyword(loc, endloc)); case 73: return (SemanticValue)(ths->action73_ExpressionList(loc, endloc, (Expression*)(semanticValues[0]))); case 74: return (SemanticValue)(ths->action74_ExpressionList(loc, endloc, (Expression*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 75: return (SemanticValue)(ths->action75_ExpressionListOpt(loc, endloc)); case 76: return (SemanticValue)(ths->action76_ExpressionListOpt(loc, endloc, (FakeList*)(semanticValues[0]))); case 77: return (SemanticValue)(ths->action77_UnaryExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 78: return (SemanticValue)(ths->action78_UnaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 79: return (SemanticValue)(ths->action79_UnaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 80: return (SemanticValue)(ths->action80_UnaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 81: return (SemanticValue)(ths->action81_UnaryExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 82: return (SemanticValue)(ths->action82_UnaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 83: return (SemanticValue)(ths->action83_UnaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 84: return (SemanticValue)(ths->action84_UnaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 85: return (SemanticValue)(ths->action85_UnaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 86: return (SemanticValue)(ths->action86_UnaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 87: return (SemanticValue)(ths->action87_UnaryExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 88: return (SemanticValue)(ths->action88_UnaryExpression(loc, endloc, (ASTTypeId*)(semanticValues[2]))); case 89: return (SemanticValue)(ths->action89_UnaryExpression(loc, endloc, (E_new*)(semanticValues[0]))); case 90: return (SemanticValue)(ths->action90_UnaryExpression(loc, endloc, (StringRef)(semanticValues[1]))); case 91: return (SemanticValue)(ths->action91_ColonColonOpt(loc, endloc)); case 92: return (SemanticValue)(ths->action92_ColonColonOpt(loc, endloc)); case 93: return (SemanticValue)(ths->action93_NewExpression(loc, endloc, (bool)(semanticValues[0]), (FakeList*)(semanticValues[2]), (ASTTypeId*)(semanticValues[3]), (ArgExpressionListOpt*)(semanticValues[4]))); case 94: return (SemanticValue)(ths->action94_NewExpression(loc, endloc, (bool)(semanticValues[0]), (FakeList*)(semanticValues[2]), (ASTTypeId*)(semanticValues[4]), (ArgExpressionListOpt*)(semanticValues[6]))); case 95: return (SemanticValue)(ths->action95_NewPlacementOpt(loc, endloc)); case 96: return (SemanticValue)(ths->action96_NewPlacementOpt(loc, endloc, (FakeList*)(semanticValues[1]))); case 97: return (SemanticValue)(ths->action97_NewTypeId(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (IDeclarator*)(semanticValues[1]))); case 98: return (SemanticValue)(ths->action98_NewDeclaratorOpt(loc, endloc)); case 99: return (SemanticValue)(ths->action99_NewDeclaratorOpt(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (IDeclarator*)(semanticValues[2]))); case 100: return (SemanticValue)(ths->action100_NewDeclaratorOpt(loc, endloc, (PQName*)(semanticValues[0]), (enum CVFlags)(int)(semanticValues[2]), (IDeclarator*)(semanticValues[3]))); case 101: return (SemanticValue)(ths->action101_NewDeclaratorOpt(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 102: return (SemanticValue)(ths->action102_DirectNewDeclarator(loc, endloc, (Expression*)(semanticValues[1]))); case 103: return (SemanticValue)(ths->action103_DirectNewDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 104: return (SemanticValue)(ths->action104_NewInitializerOpt(loc, endloc)); case 105: return (SemanticValue)(ths->action105_NewInitializerOpt(loc, endloc, (FakeList*)(semanticValues[1]))); case 106: return (SemanticValue)(ths->action106_DeleteExpression(loc, endloc, (bool)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 107: return (SemanticValue)(ths->action107_DeleteExpression(loc, endloc, (bool)(semanticValues[0]), (Expression*)(semanticValues[4]))); case 108: return (SemanticValue)(ths->action108_NameAfterDot(loc, endloc, (PQName*)(semanticValues[0]))); case 109: return (SemanticValue)(ths->action109_NameAfterDot(loc, endloc, (PQName*)(semanticValues[1]))); case 110: return (SemanticValue)(ths->action110_NAD1(loc, endloc, (PQName*)(semanticValues[0]))); case 111: return (SemanticValue)(ths->action111_NAD1(loc, endloc, (StringRef)(semanticValues[1]), (/*fakelist*/TemplateArgument*)(semanticValues[3]))); case 112: return (SemanticValue)(ths->action112_NAD1(loc, endloc, (StringRef)(semanticValues[1]))); case 113: return (SemanticValue)(ths->action113_NAD1(loc, endloc, (StringRef)(semanticValues[1]), (/*fakelist*/TemplateArgument*)(semanticValues[3]))); case 114: return (SemanticValue)(ths->action114_NAD1(loc, endloc, (OperatorName*)(semanticValues[0]))); case 115: return (SemanticValue)(ths->action115_NAD1(loc, endloc, (StringRef)(semanticValues[1]), (/*fakelist*/TemplateArgument*)(semanticValues[3]), (PQName*)(semanticValues[6]))); case 116: return (SemanticValue)(ths->action116_NAD2(loc, endloc, (StringRef)(semanticValues[0]), (/*fakelist*/TemplateArgument*)(semanticValues[2]))); case 117: return (SemanticValue)(ths->action117_NAD2(loc, endloc, (StringRef)(semanticValues[0]))); case 118: return (SemanticValue)(ths->action118_NAD2(loc, endloc, (OperatorName*)(semanticValues[0]))); case 119: return (SemanticValue)(ths->action119_NAD2(loc, endloc, (OperatorName*)(semanticValues[0]), (/*fakelist*/TemplateArgument*)(semanticValues[2]))); case 120: return (SemanticValue)(ths->action120_NAD2(loc, endloc, (OperatorName*)(semanticValues[1]), (/*fakelist*/TemplateArgument*)(semanticValues[3]))); case 121: return (SemanticValue)(ths->action121_NAD2(loc, endloc, (StringRef)(semanticValues[0]), (/*fakelist*/TemplateArgument*)(semanticValues[2]), (PQName*)(semanticValues[5]))); case 122: return (SemanticValue)(ths->action122_NAD2(loc, endloc, (StringRef)(semanticValues[0]), (PQName*)(semanticValues[2]))); case 123: return (SemanticValue)(ths->action123_CastExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 124: return (SemanticValue)(ths->action124_CastExpression(loc, endloc, (ASTTypeId*)(semanticValues[1]), (Expression*)(semanticValues[3]))); case 125: return (SemanticValue)(ths->action125_CastExpression(loc, endloc, (ASTTypeId*)(semanticValues[1]), (Expression*)(semanticValues[3]))); case 126: return (SemanticValue)(ths->action126_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]))); case 127: return (SemanticValue)(ths->action127_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 128: return (SemanticValue)(ths->action128_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 129: return (SemanticValue)(ths->action129_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 130: return (SemanticValue)(ths->action130_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 131: return (SemanticValue)(ths->action131_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 132: return (SemanticValue)(ths->action132_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 133: return (SemanticValue)(ths->action133_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 134: return (SemanticValue)(ths->action134_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 135: return (SemanticValue)(ths->action135_BinExp_high(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 136: return (SemanticValue)(ths->action136_BinExp_mid(loc, endloc, (Expression*)(semanticValues[0]))); case 137: return (SemanticValue)(ths->action137_BinExp_mid(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 138: return (SemanticValue)(ths->action138_BinExp_mid(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 139: return (SemanticValue)(ths->action139_BinExp_mid(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 140: return (SemanticValue)(ths->action140_BinExp_mid(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 141: return (SemanticValue)(ths->action141_BinExp_mid(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 142: return (SemanticValue)(ths->action142_BinExp_mid(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 143: return (SemanticValue)(ths->action143_BinaryExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 144: return (SemanticValue)(ths->action144_BinaryExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 145: return (SemanticValue)(ths->action145_BinaryExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 146: return (SemanticValue)(ths->action146_BinaryExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 147: return (SemanticValue)(ths->action147_BinaryExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 148: return (SemanticValue)(ths->action148_BinaryExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 149: return (SemanticValue)(ths->action149_BinaryExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 150: return (SemanticValue)(ths->action150_BinaryExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 151: return (SemanticValue)(ths->action151_ConditionalExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 152: return (SemanticValue)(ths->action152_ConditionalExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]), (Expression*)(semanticValues[4]))); case 153: return (SemanticValue)(ths->action153_ConditionalExpression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[3]))); case 154: return (SemanticValue)(ths->action154_AssignmentExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 155: return (SemanticValue)(ths->action155_AssignmentExpression(loc, endloc, (Expression*)(semanticValues[0]), (enum BinaryOp)(int)(semanticValues[1]), (Expression*)(semanticValues[2]))); case 156: return (SemanticValue)(ths->action156_AssignmentExpression(loc, endloc, (E_throw*)(semanticValues[0]))); case 157: return (SemanticValue)(ths->action157_AssignmentOperator(loc, endloc)); case 158: return (SemanticValue)(ths->action158_AssignmentOperator(loc, endloc)); case 159: return (SemanticValue)(ths->action159_AssignmentOperator(loc, endloc)); case 160: return (SemanticValue)(ths->action160_AssignmentOperator(loc, endloc)); case 161: return (SemanticValue)(ths->action161_AssignmentOperator(loc, endloc)); case 162: return (SemanticValue)(ths->action162_AssignmentOperator(loc, endloc)); case 163: return (SemanticValue)(ths->action163_AssignmentOperator(loc, endloc)); case 164: return (SemanticValue)(ths->action164_AssignmentOperator(loc, endloc)); case 165: return (SemanticValue)(ths->action165_AssignmentOperator(loc, endloc)); case 166: return (SemanticValue)(ths->action166_AssignmentOperator(loc, endloc)); case 167: return (SemanticValue)(ths->action167_AssignmentOperator(loc, endloc)); case 168: return (SemanticValue)(ths->action168_Expression(loc, endloc, (Expression*)(semanticValues[0]))); case 169: return (SemanticValue)(ths->action169_Expression(loc, endloc, (Expression*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 170: return (SemanticValue)(ths->action170_ExpressionOpt(loc, endloc)); case 171: return (SemanticValue)(ths->action171_ExpressionOpt(loc, endloc, (Expression*)(semanticValues[0]))); case 172: return (SemanticValue)(ths->action172_ConstantExpression(loc, endloc, (Expression*)(semanticValues[0]))); case 173: return (SemanticValue)(ths->action173_ConstantExpressionOpt(loc, endloc)); case 174: return (SemanticValue)(ths->action174_ConstantExpressionOpt(loc, endloc, (Expression*)(semanticValues[0]))); case 175: return (SemanticValue)(ths->action175_LabelAndColon(loc, endloc, (StringRef)(semanticValues[0]))); case 176: return (SemanticValue)(ths->action176_LabelAndColon(loc, endloc, (StringRef)(semanticValues[0]))); case 177: return (SemanticValue)(ths->action177_Statement(loc, endloc, (StringRef)(semanticValues[0]), (Statement*)(semanticValues[1]))); case 178: return (SemanticValue)(ths->action178_Statement(loc, endloc, (Expression*)(semanticValues[1]), (Statement*)(semanticValues[3]))); case 179: return (SemanticValue)(ths->action179_Statement(loc, endloc, (Statement*)(semanticValues[2]))); case 180: return (SemanticValue)(ths->action180_Statement(loc, endloc, (Statement*)(semanticValues[0]))); case 181: return (SemanticValue)(ths->action181_Statement(loc, endloc, (S_compound*)(semanticValues[0]))); case 182: return (SemanticValue)(ths->action182_Statement(loc, endloc, (Condition*)(semanticValues[2]), (Statement*)(semanticValues[4]))); case 183: return (SemanticValue)(ths->action183_Statement(loc, endloc, (Condition*)(semanticValues[2]), (Statement*)(semanticValues[4]), (Statement*)(semanticValues[6]))); case 184: return (SemanticValue)(ths->action184_Statement(loc, endloc, (Condition*)(semanticValues[2]), (Statement*)(semanticValues[4]))); case 185: return (SemanticValue)(ths->action185_Statement(loc, endloc, (Condition*)(semanticValues[2]), (Statement*)(semanticValues[4]))); case 186: return (SemanticValue)(ths->action186_Statement(loc, endloc, (Statement*)(semanticValues[1]), (Expression*)(semanticValues[4]))); case 187: return (SemanticValue)(ths->action187_Statement(loc, endloc, (Statement*)(semanticValues[2]), (Condition*)(semanticValues[3]), (Expression*)(semanticValues[5]), (Statement*)(semanticValues[7]))); case 188: return (SemanticValue)(ths->action188_Statement(loc, endloc)); case 189: return (SemanticValue)(ths->action189_Statement(loc, endloc)); case 190: return (SemanticValue)(ths->action190_Statement(loc, endloc, (Expression*)(semanticValues[1]))); case 191: return (SemanticValue)(ths->action191_Statement(loc, endloc)); case 192: return (SemanticValue)(ths->action192_Statement(loc, endloc, (StringRef)(semanticValues[1]))); case 193: return (SemanticValue)(ths->action193_Statement(loc, endloc, (Declaration*)(semanticValues[0]))); case 194: return (SemanticValue)(ths->action194_Statement(loc, endloc, (S_try*)(semanticValues[0]))); case 195: return (SemanticValue)(ths->action195_Statement(loc, endloc, (Asm*)(semanticValues[0]))); case 196: return (SemanticValue)(ths->action196_Statement(loc, endloc, (NamespaceDecl*)(semanticValues[0]))); case 197: return (SemanticValue)(ths->action197_Statement(loc, endloc, (Function*)(semanticValues[0]))); case 198: return (SemanticValue)(ths->action198_Statement(loc, endloc, (Function*)(semanticValues[0]))); case 199: return (SemanticValue)(ths->action199_Statement(loc, endloc, (Expression*)(semanticValues[1]), (Expression*)(semanticValues[3]), (Statement*)(semanticValues[5]))); case 200: return (SemanticValue)(ths->action200_Statement(loc, endloc, (Expression*)(semanticValues[2]))); case 201: return (SemanticValue)(ths->action201_Statement(loc, endloc, (UberModifiers)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 202: return (SemanticValue)(ths->action202_Statement(loc, endloc, (IDeclarator*)(semanticValues[1]))); case 203: return (SemanticValue)(ths->action203_ExpressionStatement(loc, endloc)); case 204: return (SemanticValue)(ths->action204_ExpressionStatement(loc, endloc, (Expression*)(semanticValues[0]))); case 205: return (SemanticValue)(ths->action205_CompoundStatement(loc, endloc, (S_compound*)(semanticValues[0]))); case 206: return (SemanticValue)(ths->action206_CompoundStatement(loc, endloc, (S_compound*)(semanticValues[0]), (Statement*)(semanticValues[1]))); case 207: return (SemanticValue)(ths->action207_CompoundStmtHelper(loc, endloc)); case 208: return (SemanticValue)(ths->action208_CompoundStmtHelper(loc, endloc, (S_compound*)(semanticValues[0]), (Statement*)(semanticValues[1]))); case 209: return (SemanticValue)(ths->action209_Condition(loc, endloc, (Expression*)(semanticValues[0]))); case 210: return (SemanticValue)(ths->action210_Condition(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (IDeclarator*)(semanticValues[1]), (Expression*)(semanticValues[3]))); case 211: return (SemanticValue)(ths->action211_ConditionOpt(loc, endloc)); case 212: return (SemanticValue)(ths->action212_ConditionOpt(loc, endloc, (Condition*)(semanticValues[0]))); case 213: return (SemanticValue)(ths->action213_ForInitStatement(loc, endloc, (Statement*)(semanticValues[0]))); case 214: return (SemanticValue)(ths->action214_ForInitStatement(loc, endloc, (Declaration*)(semanticValues[0]))); case 215: return (SemanticValue)(ths->action215_Declaration(loc, endloc, (Declaration*)(semanticValues[0]))); case 216: return (SemanticValue)(ths->action216_Declaration(loc, endloc, (Function*)(semanticValues[0]))); case 217: return (SemanticValue)(ths->action217_Declaration(loc, endloc, (TemplateDeclaration*)(semanticValues[0]))); case 218: return (SemanticValue)(ths->action218_Declaration(loc, endloc, (TopForm*)(semanticValues[0]))); case 219: return (SemanticValue)(ths->action219_Declaration(loc, endloc, (TopForm*)(semanticValues[0]))); case 220: return (SemanticValue)(ths->action220_Declaration(loc, endloc, (Asm*)(semanticValues[0]))); case 221: return (SemanticValue)(ths->action221_Declaration(loc, endloc, (TF_namespaceDefn*)(semanticValues[0]))); case 222: return (SemanticValue)(ths->action222_Declaration(loc, endloc, (NamespaceDecl*)(semanticValues[0]))); case 223: return (SemanticValue)(ths->action223_Declaration(loc, endloc, (Function*)(semanticValues[0]))); case 224: return (SemanticValue)(ths->action224_Declaration(loc, endloc, (Function*)(semanticValues[0]))); case 225: return (SemanticValue)(ths->action225_Declaration(loc, endloc, (Function*)(semanticValues[0]))); case 226: return (SemanticValue)(ths->action226_Declaration(loc, endloc, (UberModifiers)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 227: return (SemanticValue)(ths->action227_Declaration(loc, endloc, (State*)(semanticValues[0]))); case 228: return (SemanticValue)(ths->action228_BlockDeclaration(loc, endloc, (Declaration*)(semanticValues[0]))); case 229: return (SemanticValue)(ths->action229_SimpleDeclaration(loc, endloc, (Declaration*)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 230: return (SemanticValue)(ths->action230_SimpleDeclaration(loc, endloc, (Declaration*)(semanticValues[0]))); case 231: return (SemanticValue)(ths->action231_SimpleDeclaration(loc, endloc, (Declarator*)(semanticValues[1]))); case 232: return (SemanticValue)(ths->action232_DeclSpecifier(loc, endloc, (PQName*)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 233: return (SemanticValue)(ths->action233_DeclSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (PQName*)(semanticValues[1]), (UberModifiers)(semanticValues[2]))); case 234: return (SemanticValue)(ths->action234_DeclSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 235: return (SemanticValue)(ths->action235_DeclSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]), (UberModifiers)(semanticValues[2]))); case 236: return (SemanticValue)(ths->action236_DeclSpecifier(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 237: return (SemanticValue)(ths->action237_DeclSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (TypeSpecifier*)(semanticValues[1]), (UberModifiers)(semanticValues[2]))); case 238: return (SemanticValue)(ths->action238_DeclSpecifier(loc, endloc, (ASTTypeof*)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 239: return (SemanticValue)(ths->action239_DeclSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (ASTTypeof*)(semanticValues[1]), (UberModifiers)(semanticValues[2]))); case 240: return (SemanticValue)(ths->action240_DeclSpecifier(loc, endloc, (PQName*)(semanticValues[0]), (UberModifiers)(semanticValues[2]))); case 241: return (SemanticValue)(ths->action241_DeclSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (PQName*)(semanticValues[1]), (UberModifiers)(semanticValues[3]))); case 242: return (SemanticValue)(ths->action242_ElaboratedOrSpecifier(loc, endloc, (TypeSpecifier*)(semanticValues[0]))); case 243: return (SemanticValue)(ths->action243_ElaboratedOrSpecifier(loc, endloc, (TS_classSpec*)(semanticValues[0]))); case 244: return (SemanticValue)(ths->action244_ElaboratedOrSpecifier(loc, endloc, (TS_enumSpec*)(semanticValues[0]))); case 245: return (SemanticValue)(ths->action245_UberModifierSeq(loc, endloc, (UberModifiers)(semanticValues[0]))); case 246: return (SemanticValue)(ths->action246_UberModifierSeq(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 247: return (SemanticValue)(ths->action247_UberModifierSeqOpt(loc, endloc)); case 248: return (SemanticValue)(ths->action248_UberModifierSeqOpt(loc, endloc, (UberModifiers)(semanticValues[0]))); case 249: return (SemanticValue)(ths->action249_UberTypeAndModifierSeqOpt(loc, endloc)); case 250: return (SemanticValue)(ths->action250_UberTypeAndModifierSeqOpt(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 251: return (SemanticValue)(ths->action251_UberTypeAndModifierSeqOpt(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 252: return (SemanticValue)(ths->action252_UberCVQualifierSeq(loc, endloc, (UberModifiers)(semanticValues[0]))); case 253: return (SemanticValue)(ths->action253_UberCVQualifierSeq(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 254: return (SemanticValue)(ths->action254_UberCVQualifierSeqOpt(loc, endloc)); case 255: return (SemanticValue)(ths->action255_UberCVQualifierSeqOpt(loc, endloc, (UberModifiers)(semanticValues[0]))); case 256: return (SemanticValue)(ths->action256_UberTypeAndCVQualifierSeqOpt(loc, endloc)); case 257: return (SemanticValue)(ths->action257_UberTypeAndCVQualifierSeqOpt(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 258: return (SemanticValue)(ths->action258_UberTypeAndCVQualifierSeqOpt(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 259: return (SemanticValue)(ths->action259_UberModifier(loc, endloc)); case 260: return (SemanticValue)(ths->action260_UberModifier(loc, endloc)); case 261: return (SemanticValue)(ths->action261_UberModifier(loc, endloc)); case 262: return (SemanticValue)(ths->action262_UberModifier(loc, endloc)); case 263: return (SemanticValue)(ths->action263_UberModifier(loc, endloc)); case 264: return (SemanticValue)(ths->action264_UberModifier(loc, endloc)); case 265: return (SemanticValue)(ths->action265_UberModifier(loc, endloc)); case 266: return (SemanticValue)(ths->action266_UberModifier(loc, endloc)); case 267: return (SemanticValue)(ths->action267_UberModifier(loc, endloc)); case 268: return (SemanticValue)(ths->action268_UberModifier(loc, endloc)); case 269: return (SemanticValue)(ths->action269_UberModifier(loc, endloc)); case 270: return (SemanticValue)(ths->action270_UberModifier(loc, endloc)); case 271: return (SemanticValue)(ths->action271_UberModifier(loc, endloc)); case 272: return (SemanticValue)(ths->action272_UberModifier(loc, endloc)); case 273: return (SemanticValue)(ths->action273_UberCVQualifier(loc, endloc)); case 274: return (SemanticValue)(ths->action274_UberCVQualifier(loc, endloc)); case 275: return (SemanticValue)(ths->action275_UberCVQualifier(loc, endloc)); case 276: return (SemanticValue)(ths->action276_UberCVQualifier(loc, endloc)); case 277: return (SemanticValue)(ths->action277_UberTypeKeyword(loc, endloc)); case 278: return (SemanticValue)(ths->action278_UberTypeKeyword(loc, endloc)); case 279: return (SemanticValue)(ths->action279_UberTypeKeyword(loc, endloc)); case 280: return (SemanticValue)(ths->action280_UberTypeKeyword(loc, endloc)); case 281: return (SemanticValue)(ths->action281_UberTypeKeyword(loc, endloc)); case 282: return (SemanticValue)(ths->action282_UberTypeKeyword(loc, endloc)); case 283: return (SemanticValue)(ths->action283_UberTypeKeyword(loc, endloc)); case 284: return (SemanticValue)(ths->action284_UberTypeKeyword(loc, endloc)); case 285: return (SemanticValue)(ths->action285_UberTypeKeyword(loc, endloc)); case 286: return (SemanticValue)(ths->action286_UberTypeKeyword(loc, endloc)); case 287: return (SemanticValue)(ths->action287_UberTypeKeyword(loc, endloc)); case 288: return (SemanticValue)(ths->action288_UberTypeKeyword(loc, endloc)); case 289: return (SemanticValue)(ths->action289_UberTypeKeyword(loc, endloc)); case 290: return (SemanticValue)(ths->action290_UberTypeKeyword(loc, endloc)); case 291: return (SemanticValue)(ths->action291_ElaboratedTypeSpecifier(loc, endloc, (enum TypeIntr)(int)(semanticValues[0]), (PQName*)(semanticValues[1]))); case 292: return (SemanticValue)(ths->action292_ElaboratedTypeSpecifier(loc, endloc, (PQName*)(semanticValues[1]))); case 293: return (SemanticValue)(ths->action293_ElaboratedTypeSpecifier(loc, endloc, (PQName*)(semanticValues[1]))); case 294: return (SemanticValue)(ths->action294_ElaboratedTypeSpecifier(loc, endloc, (enum TypeIntr)(int)(semanticValues[0]), (PQName*)(semanticValues[2]))); case 295: return (SemanticValue)(ths->action295_ElaboratedTypeSpecifier(loc, endloc, (PQName*)(semanticValues[2]))); case 296: return (SemanticValue)(ths->action296_TypeSpecifier(loc, endloc, (PQName*)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 297: return (SemanticValue)(ths->action297_TypeSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (PQName*)(semanticValues[1]), (UberModifiers)(semanticValues[2]))); case 298: return (SemanticValue)(ths->action298_TypeSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 299: return (SemanticValue)(ths->action299_TypeSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]), (UberModifiers)(semanticValues[2]))); case 300: return (SemanticValue)(ths->action300_TypeSpecifier(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 301: return (SemanticValue)(ths->action301_TypeSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (TypeSpecifier*)(semanticValues[1]), (UberModifiers)(semanticValues[2]))); case 302: return (SemanticValue)(ths->action302_TypeSpecifier(loc, endloc, (ASTTypeof*)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 303: return (SemanticValue)(ths->action303_TypeSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]), (ASTTypeof*)(semanticValues[1]), (UberModifiers)(semanticValues[2]))); case 304: return (SemanticValue)(ths->action304_PQTypeName(loc, endloc, (PQName*)(semanticValues[0]))); case 305: return (SemanticValue)(ths->action305_PQTypeName(loc, endloc, (PQName*)(semanticValues[1]))); case 306: return (SemanticValue)(ths->action306_PQTypeName_ncc(loc, endloc, (StringRef)(semanticValues[0]))); case 307: return (SemanticValue)(ths->action307_PQTypeName_ncc(loc, endloc, (PQ_template*)(semanticValues[0]))); case 308: return (SemanticValue)(ths->action308_PQTypeName_ncc(loc, endloc, (StringRef)(semanticValues[0]), (PQName*)(semanticValues[2]))); case 309: return (SemanticValue)(ths->action309_PQTypeName_ncc(loc, endloc, (StringRef)(semanticValues[0]), (/*fakelist*/TemplateArgument*)(semanticValues[2]), (PQName*)(semanticValues[5]))); case 310: return (SemanticValue)(ths->action310_PQTypeName_notfirst(loc, endloc, (PQName*)(semanticValues[0]))); case 311: return (SemanticValue)(ths->action311_PQTypeName_notfirst(loc, endloc, (PQ_template*)(semanticValues[1]))); case 312: return (SemanticValue)(ths->action312_PQTypeName_notfirst(loc, endloc, (StringRef)(semanticValues[1]), (/*fakelist*/TemplateArgument*)(semanticValues[3]), (PQName*)(semanticValues[6]))); case 313: return (SemanticValue)(ths->action313_EnumSpecifier(loc, endloc, (FakeList*)(semanticValues[2]))); case 314: return (SemanticValue)(ths->action314_EnumSpecifier(loc, endloc, (StringRef)(semanticValues[1]), (FakeList*)(semanticValues[3]))); case 315: return (SemanticValue)(ths->action315_EnumSpecifier(loc, endloc, (FakeList*)(semanticValues[3]))); case 316: return (SemanticValue)(ths->action316_EnumSpecifier(loc, endloc, (PQName*)(semanticValues[2]), (FakeList*)(semanticValues[4]))); case 317: return (SemanticValue)(ths->action317_EnumeratorListOpt(loc, endloc)); case 318: return (SemanticValue)(ths->action318_EnumeratorListOpt(loc, endloc, (Enumerator*)(semanticValues[0]))); case 319: return (SemanticValue)(ths->action319_EnumeratorListOpt(loc, endloc, (Enumerator*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 320: return (SemanticValue)(ths->action320_EnumeratorDefinition(loc, endloc, (StringRef)(semanticValues[0]))); case 321: return (SemanticValue)(ths->action321_EnumeratorDefinition(loc, endloc, (StringRef)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 322: return (SemanticValue)(ths->action322_AsmDefinition(loc, endloc, (E_stringLit*)(semanticValues[2]))); case 323: return (SemanticValue)(ths->action323_AsmDefinition(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (E_stringLit*)(semanticValues[3]))); case 324: return (SemanticValue)(ths->action324_AsmDefinition(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (E_stringLit*)(semanticValues[3]), (Constraints*)(semanticValues[4]))); case 325: return (SemanticValue)(ths->action325_AsmDefinition(loc, endloc, (E_stringLit*)(semanticValues[2]), (Constraints*)(semanticValues[3]))); case 326: return (SemanticValue)(ths->action326_LinkageSpecification(loc, endloc, (StringRef)(semanticValues[1]), (TranslationUnit*)(semanticValues[3]))); case 327: return (SemanticValue)(ths->action327_LinkageSpecification(loc, endloc, (StringRef)(semanticValues[1]), (TopForm*)(semanticValues[2]))); case 328: return (SemanticValue)(ths->action328_InitDeclaratorList(loc, endloc, (Declarator*)(semanticValues[0]))); case 329: return (SemanticValue)(ths->action329_InitDeclaratorList(loc, endloc, (Declarator*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 330: return (SemanticValue)(ths->action330_InitDeclaratorList(loc, endloc, (Declarator*)(semanticValues[0]), (FakeList*)(semanticValues[3]))); case 331: return (SemanticValue)(ths->action331_InitDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 332: return (SemanticValue)(ths->action332_InitDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (Initializer*)(semanticValues[1]))); case 333: return (SemanticValue)(ths->action333_Initializer(loc, endloc, (Initializer*)(semanticValues[1]))); case 334: return (SemanticValue)(ths->action334_Initializer(loc, endloc, (FakeList*)(semanticValues[1]))); case 335: return (SemanticValue)(ths->action335_SimpleInitializerClause(loc, endloc, (Expression*)(semanticValues[0]))); case 336: return (SemanticValue)(ths->action336_SimpleInitializerClause(loc, endloc, (IN_compound*)(semanticValues[0]))); case 337: return (SemanticValue)(ths->action337_InitializerClause(loc, endloc, (Initializer*)(semanticValues[0]))); case 338: return (SemanticValue)(ths->action338_InitializerClause(loc, endloc, (StringRef)(semanticValues[0]), (Initializer*)(semanticValues[2]))); case 339: return (SemanticValue)(ths->action339_InitializerClause(loc, endloc, (FakeList*)(semanticValues[0]), (Initializer*)(semanticValues[2]))); case 340: return (SemanticValue)(ths->action340_InitializerClause(loc, endloc, (FakeList*)(semanticValues[0]), (Initializer*)(semanticValues[1]))); case 341: return (SemanticValue)(ths->action341_CompoundInitializer(loc, endloc, (IN_compound*)(semanticValues[1]))); case 342: return (SemanticValue)(ths->action342_CompoundInitializer(loc, endloc)); case 343: return (SemanticValue)(ths->action343_CommaOpt(loc, endloc), 0); case 344: return (SemanticValue)(ths->action344_CommaOpt(loc, endloc), 0); case 345: return (SemanticValue)(ths->action345_InitializerList(loc, endloc, (Initializer*)(semanticValues[0]))); case 346: return (SemanticValue)(ths->action346_InitializerList(loc, endloc, (IN_compound*)(semanticValues[0]), (Initializer*)(semanticValues[2]))); case 347: return (SemanticValue)(ths->action347_Declarator(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (IDeclarator*)(semanticValues[2]))); case 348: return (SemanticValue)(ths->action348_Declarator(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (IDeclarator*)(semanticValues[2]))); case 349: return (SemanticValue)(ths->action349_Declarator(loc, endloc, (PQName*)(semanticValues[0]), (enum CVFlags)(int)(semanticValues[2]), (IDeclarator*)(semanticValues[3]))); case 350: return (SemanticValue)(ths->action350_Declarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 351: return (SemanticValue)(ths->action351_Declarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (E_stringLit*)(semanticValues[3]))); case 352: return (SemanticValue)(ths->action352_Declarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (E_stringLit*)(semanticValues[3]))); case 353: return (SemanticValue)(ths->action353_Declarator(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (enum CVFlags)(int)(semanticValues[3]), (IDeclarator*)(semanticValues[4]))); case 354: return (SemanticValue)(ths->action354_Declarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (AttributeSpecifierList*)(semanticValues[1]))); case 355: return (SemanticValue)(ths->action355_DirectDeclarator(loc, endloc, (PQName*)(semanticValues[0]))); case 356: return (SemanticValue)(ths->action356_DirectDeclarator(loc, endloc, (PQName*)(semanticValues[0]))); case 357: return (SemanticValue)(ths->action357_DirectDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (FakeList*)(semanticValues[2]), (enum CVFlags)(int)(semanticValues[4]), (ExceptionSpec*)(semanticValues[5]))); case 358: return (SemanticValue)(ths->action358_DirectDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 359: return (SemanticValue)(ths->action359_DirectDeclarator(loc, endloc, (IDeclarator*)(semanticValues[1]))); case 360: return (SemanticValue)(ths->action360_DirectDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (enum CVFlags)(int)(semanticValues[2]))); case 361: return (SemanticValue)(ths->action361_DirectDeclarator(loc, endloc, (AttributeSpecifierList*)(semanticValues[1]), (IDeclarator*)(semanticValues[2]))); case 362: return (SemanticValue)(ths->action362_PQDtorName(loc, endloc, (StringRef)(semanticValues[1]))); case 363: return (SemanticValue)(ths->action363_PQDtorName(loc, endloc, (StringRef)(semanticValues[1]), (/*fakelist*/TemplateArgument*)(semanticValues[3]))); case 364: return (SemanticValue)(ths->action364_PQDtorName(loc, endloc, (StringRef)(semanticValues[0]), (PQName*)(semanticValues[2]))); case 365: return (SemanticValue)(ths->action365_PQDtorName(loc, endloc, (StringRef)(semanticValues[0]), (/*fakelist*/TemplateArgument*)(semanticValues[2]), (PQName*)(semanticValues[5]))); case 366: return (SemanticValue)(ths->action366_PQDtorName(loc, endloc, (StringRef)(semanticValues[1]), (/*fakelist*/TemplateArgument*)(semanticValues[3]), (PQName*)(semanticValues[6]))); case 367: return (SemanticValue)(ths->action367_PtrToMemberName(loc, endloc, (PQName*)(semanticValues[0]))); case 368: return (SemanticValue)(ths->action368_CVQualifierSeqOpt(loc, endloc)); case 369: return (SemanticValue)(ths->action369_CVQualifierSeqOpt(loc, endloc, (enum CVFlags)(int)(semanticValues[0]))); case 370: return (SemanticValue)(ths->action370_CVQualifierSeq(loc, endloc, (enum CVFlags)(int)(semanticValues[0]))); case 371: return (SemanticValue)(ths->action371_CVQualifierSeq(loc, endloc, (enum CVFlags)(int)(semanticValues[0]), (enum CVFlags)(int)(semanticValues[1]))); case 372: return (SemanticValue)(ths->action372_CVQualifier(loc, endloc)); case 373: return (SemanticValue)(ths->action373_CVQualifier(loc, endloc)); case 374: return (SemanticValue)(ths->action374_CVQualifier(loc, endloc)); case 375: return (SemanticValue)(ths->action375_TypeId(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (IDeclarator*)(semanticValues[1]))); case 376: return (SemanticValue)(ths->action376_AbstractDeclaratorOpt(loc, endloc)); case 377: return (SemanticValue)(ths->action377_AbstractDeclaratorOpt(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 378: return (SemanticValue)(ths->action378_AbstractDeclarator(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (IDeclarator*)(semanticValues[2]))); case 379: return (SemanticValue)(ths->action379_AbstractDeclarator(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (IDeclarator*)(semanticValues[2]))); case 380: return (SemanticValue)(ths->action380_AbstractDeclarator(loc, endloc, (PQName*)(semanticValues[0]), (enum CVFlags)(int)(semanticValues[2]), (IDeclarator*)(semanticValues[3]))); case 381: return (SemanticValue)(ths->action381_AbstractDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 382: return (SemanticValue)(ths->action382_AbstractDeclarator(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (AttributeSpecifier*)(semanticValues[2]), (enum CVFlags)(int)(semanticValues[3]), (IDeclarator*)(semanticValues[4]))); case 383: return (SemanticValue)(ths->action383_AbstractDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (AttributeSpecifierList*)(semanticValues[1]))); case 384: return (SemanticValue)(ths->action384_DirectAbstractDeclaratorOpt(loc, endloc)); case 385: return (SemanticValue)(ths->action385_DirectAbstractDeclaratorOpt(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 386: return (SemanticValue)(ths->action386_DirectAbstractDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (FakeList*)(semanticValues[2]), (enum CVFlags)(int)(semanticValues[4]), (ExceptionSpec*)(semanticValues[5]))); case 387: return (SemanticValue)(ths->action387_DirectAbstractDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 388: return (SemanticValue)(ths->action388_DirectAbstractDeclarator(loc, endloc, (IDeclarator*)(semanticValues[1]))); case 389: return (SemanticValue)(ths->action389_DirectAbstractDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (enum CVFlags)(int)(semanticValues[2]))); case 390: return (SemanticValue)(ths->action390_DirectAbstractDeclarator(loc, endloc, (IDeclarator*)(semanticValues[2]))); case 391: return (SemanticValue)(ths->action391_ParameterDeclarationClause(loc, endloc, (FakeList*)(semanticValues[0]))); case 392: return (SemanticValue)(ths->action392_ParameterDeclarationClause(loc, endloc)); case 393: return (SemanticValue)(ths->action393_ParameterDeclarationList(loc, endloc)); case 394: return (SemanticValue)(ths->action394_ParameterDeclarationList(loc, endloc, (ASTTypeId*)(semanticValues[0]))); case 395: return (SemanticValue)(ths->action395_ParameterDeclarationList(loc, endloc, (ASTTypeId*)(semanticValues[0]))); case 396: return (SemanticValue)(ths->action396_ParameterDeclarationList(loc, endloc, (ASTTypeId*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 397: return (SemanticValue)(ths->action397_ParameterDeclaration(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (Declarator*)(semanticValues[1]))); case 398: return (SemanticValue)(ths->action398_ParameterDeclaration(loc, endloc, (TypeSpecifier*)(semanticValues[1]), (Declarator*)(semanticValues[2]))); case 399: return (SemanticValue)(ths->action399_ParameterDeclaration(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (Declarator*)(semanticValues[2]))); case 400: return (SemanticValue)(ths->action400_ParameterDeclaration(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 401: return (SemanticValue)(ths->action401_ParameterDeclaration(loc, endloc, (IDeclarator*)(semanticValues[1]))); case 402: return (SemanticValue)(ths->action402_ParameterDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 403: return (SemanticValue)(ths->action403_ParameterDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 404: return (SemanticValue)(ths->action404_ParameterDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 405: return (SemanticValue)(ths->action405_ParameterDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 406: return (SemanticValue)(ths->action406_FunctionDefinition(loc, endloc, (Declaration*)(semanticValues[0]), (IDeclarator*)(semanticValues[1]), (S_compound*)(semanticValues[2]))); case 407: return (SemanticValue)(ths->action407_FunctionDefinition(loc, endloc, (Declaration*)(semanticValues[0]), (IDeclarator*)(semanticValues[1]), (S_compound*)(semanticValues[3]), (FakeList*)(semanticValues[4]))); case 408: return (SemanticValue)(ths->action408_FunctionDefinition(loc, endloc, (DeclFlags)(semanticValues[0]), (IDeclarator*)(semanticValues[1]), (FakeList*)(semanticValues[2]), (S_compound*)(semanticValues[3]))); case 409: return (SemanticValue)(ths->action409_FunctionDefinition(loc, endloc, (IDeclarator*)(semanticValues[0]), (FakeList*)(semanticValues[1]), (S_compound*)(semanticValues[2]))); case 410: return (SemanticValue)(ths->action410_FunctionDefinition(loc, endloc, (DeclFlags)(semanticValues[0]), (IDeclarator*)(semanticValues[1]), (FakeList*)(semanticValues[3]), (S_compound*)(semanticValues[4]), (FakeList*)(semanticValues[5]))); case 411: return (SemanticValue)(ths->action411_FunctionDefinition(loc, endloc, (IDeclarator*)(semanticValues[0]), (FakeList*)(semanticValues[2]), (S_compound*)(semanticValues[3]), (FakeList*)(semanticValues[4]))); case 412: return (SemanticValue)(ths->action412_FDDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 413: return (SemanticValue)(ths->action413_FunctionBody(loc, endloc, (S_compound*)(semanticValues[0]))); case 414: return (SemanticValue)(ths->action414_CtorInitializerOpt(loc, endloc)); case 415: return (SemanticValue)(ths->action415_CtorInitializerOpt(loc, endloc, (FakeList*)(semanticValues[1]))); case 416: return (SemanticValue)(ths->action416_ClassSpecifier(loc, endloc, (enum TypeIntr)(int)(semanticValues[0]), (PQName*)(semanticValues[1]), (FakeList*)(semanticValues[2]), (MemberList*)(semanticValues[4]))); case 417: return (SemanticValue)(ths->action417_ClassSpecifier(loc, endloc, (enum TypeIntr)(int)(semanticValues[0]), (AttributeSpecifierList*)(semanticValues[1]), (PQName*)(semanticValues[2]), (FakeList*)(semanticValues[3]), (MemberList*)(semanticValues[5]))); case 418: return (SemanticValue)(ths->action418_ClassHeadNameOpt(loc, endloc)); case 419: return (SemanticValue)(ths->action419_ClassHeadNameOpt(loc, endloc, (PQName*)(semanticValues[0]))); case 420: return (SemanticValue)(ths->action420_ClassHeadName(loc, endloc, (StringRef)(semanticValues[0]))); case 421: return (SemanticValue)(ths->action421_ClassHeadName(loc, endloc, (PQ_template*)(semanticValues[0]))); case 422: return (SemanticValue)(ths->action422_ClassHeadName(loc, endloc, (StringRef)(semanticValues[0]), (PQName*)(semanticValues[2]))); case 423: return (SemanticValue)(ths->action423_ClassHeadName(loc, endloc, (StringRef)(semanticValues[0]), (/*fakelist*/TemplateArgument*)(semanticValues[2]), (PQName*)(semanticValues[5]))); case 424: return (SemanticValue)(ths->action424_ClassHeadName(loc, endloc, (StringRef)(semanticValues[1]), (/*fakelist*/TemplateArgument*)(semanticValues[3]), (PQName*)(semanticValues[6]))); case 425: return (SemanticValue)(ths->action425_ClassKey(loc, endloc)); case 426: return (SemanticValue)(ths->action426_ClassKey(loc, endloc)); case 427: return (SemanticValue)(ths->action427_ClassKey(loc, endloc)); case 428: return (SemanticValue)(ths->action428_MemberDeclarationSeqOpt(loc, endloc)); case 429: return (SemanticValue)(ths->action429_MemberDeclarationSeqOpt(loc, endloc, (MemberList*)(semanticValues[0]))); case 430: return (SemanticValue)(ths->action430_MemberDeclarationSeqOpt(loc, endloc, (MemberList*)(semanticValues[0]), (Member*)(semanticValues[1]))); case 431: return (SemanticValue)(ths->action431_MemberDeclarationSeqOpt(loc, endloc, (MemberList*)(semanticValues[0]), (AccessKeyword)(semanticValues[1]))); case 432: return (SemanticValue)(ths->action432_AccessSpecifier(loc, endloc)); case 433: return (SemanticValue)(ths->action433_AccessSpecifier(loc, endloc)); case 434: return (SemanticValue)(ths->action434_AccessSpecifier(loc, endloc)); case 435: return (SemanticValue)(ths->action435_MemberDeclaration(loc, endloc, (Declaration*)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 436: return (SemanticValue)(ths->action436_MemberDeclaration(loc, endloc, (Declaration*)(semanticValues[0]))); case 437: return (SemanticValue)(ths->action437_MemberDeclaration(loc, endloc, (PQName*)(semanticValues[0]))); case 438: return (SemanticValue)(ths->action438_MemberDeclaration(loc, endloc, (PQName*)(semanticValues[1]))); case 439: return (SemanticValue)(ths->action439_MemberDeclaration(loc, endloc, (Function*)(semanticValues[0]))); case 440: return (SemanticValue)(ths->action440_MemberDeclaration(loc, endloc, (Declaration*)(semanticValues[0]))); case 441: return (SemanticValue)(ths->action441_MemberDeclaration(loc, endloc, (TemplateDeclaration*)(semanticValues[0]))); case 442: return (SemanticValue)(ths->action442_MemberDeclaration(loc, endloc, (State*)(semanticValues[0]))); case 443: return (SemanticValue)(ths->action443_CDtorProtoDecl(loc, endloc, (DeclFlags)(semanticValues[0]), (Declarator*)(semanticValues[1]))); case 444: return (SemanticValue)(ths->action444_CDtorProtoDecl(loc, endloc, (Declarator*)(semanticValues[0]))); case 445: return (SemanticValue)(ths->action445_MemberDeclaratorList(loc, endloc, (Declarator*)(semanticValues[0]))); case 446: return (SemanticValue)(ths->action446_MemberDeclaratorList(loc, endloc, (Declarator*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 447: return (SemanticValue)(ths->action447_MemberDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 448: return (SemanticValue)(ths->action448_MemberDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 449: return (SemanticValue)(ths->action449_MemberDeclarator(loc, endloc, (StringRef)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 450: return (SemanticValue)(ths->action450_MemberDeclarator(loc, endloc, (StringRef)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 451: return (SemanticValue)(ths->action451_IdentifierOpt(loc, endloc)); case 452: return (SemanticValue)(ths->action452_IdentifierOpt(loc, endloc, (StringRef)(semanticValues[0]))); case 453: return (SemanticValue)(ths->action453_CDtorModifier(loc, endloc)); case 454: return (SemanticValue)(ths->action454_CDtorModifier(loc, endloc)); case 455: return (SemanticValue)(ths->action455_CDtorModifier(loc, endloc)); case 456: return (SemanticValue)(ths->action456_CDtorModifier(loc, endloc)); case 457: return (SemanticValue)(ths->action457_CDtorModifier(loc, endloc)); case 458: return (SemanticValue)(ths->action458_CDtorModifierSeq(loc, endloc, (DeclFlags)(semanticValues[0]))); case 459: return (SemanticValue)(ths->action459_CDtorModifierSeq(loc, endloc, (DeclFlags)(semanticValues[0]), (DeclFlags)(semanticValues[1]))); case 460: return (SemanticValue)(ths->action460_BaseClauseOpt(loc, endloc)); case 461: return (SemanticValue)(ths->action461_BaseClauseOpt(loc, endloc, (FakeList*)(semanticValues[1]))); case 462: return (SemanticValue)(ths->action462_BaseSpecifierList(loc, endloc, (BaseClassSpec*)(semanticValues[0]))); case 463: return (SemanticValue)(ths->action463_BaseSpecifierList(loc, endloc, (BaseClassSpec*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 464: return (SemanticValue)(ths->action464_BaseSpecifier(loc, endloc, (PQName*)(semanticValues[0]))); case 465: return (SemanticValue)(ths->action465_BaseSpecifier(loc, endloc, (AccessKeyword)(semanticValues[1]), (PQName*)(semanticValues[2]))); case 466: return (SemanticValue)(ths->action466_BaseSpecifier(loc, endloc, (AccessKeyword)(semanticValues[0]), (bool)(semanticValues[1]), (PQName*)(semanticValues[2]))); case 467: return (SemanticValue)(ths->action467_VirtualOpt(loc, endloc)); case 468: return (SemanticValue)(ths->action468_VirtualOpt(loc, endloc)); case 469: return (SemanticValue)(ths->action469_AccessSpecifierOpt(loc, endloc)); case 470: return (SemanticValue)(ths->action470_AccessSpecifierOpt(loc, endloc, (AccessKeyword)(semanticValues[0]))); case 471: return (SemanticValue)(ths->action471_PQClassName(loc, endloc, (PQName*)(semanticValues[0]))); case 472: return (SemanticValue)(ths->action472_ConversionFunctionId(loc, endloc, (ASTTypeId*)(semanticValues[1]))); case 473: return (SemanticValue)(ths->action473_ConversionTypeId(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (IDeclarator*)(semanticValues[1]))); case 474: return (SemanticValue)(ths->action474_ConversionDeclaratorOpt(loc, endloc)); case 475: return (SemanticValue)(ths->action475_ConversionDeclaratorOpt(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (IDeclarator*)(semanticValues[2]))); case 476: return (SemanticValue)(ths->action476_ConversionDeclaratorOpt(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (IDeclarator*)(semanticValues[2]))); case 477: return (SemanticValue)(ths->action477_ConversionDeclaratorOpt(loc, endloc, (PQName*)(semanticValues[0]), (enum CVFlags)(int)(semanticValues[2]), (IDeclarator*)(semanticValues[3]))); case 478: return (SemanticValue)(ths->action478_MemInitializerList(loc, endloc, (MemberInit*)(semanticValues[0]))); case 479: return (SemanticValue)(ths->action479_MemInitializerList(loc, endloc, (MemberInit*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 480: return (SemanticValue)(ths->action480_MemInitializer(loc, endloc, (PQName*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 481: return (SemanticValue)(ths->action481_MemInitializerId(loc, endloc, (PQName*)(semanticValues[0]))); case 482: return (SemanticValue)(ths->action482_OperatorFunctionId(loc, endloc, (OperatorName*)(semanticValues[1]))); case 483: return (SemanticValue)(ths->action483_Operator(loc, endloc)); case 484: return (SemanticValue)(ths->action484_Operator(loc, endloc)); case 485: return (SemanticValue)(ths->action485_Operator(loc, endloc)); case 486: return (SemanticValue)(ths->action486_Operator(loc, endloc)); case 487: return (SemanticValue)(ths->action487_Operator(loc, endloc)); case 488: return (SemanticValue)(ths->action488_Operator(loc, endloc)); case 489: return (SemanticValue)(ths->action489_Operator(loc, endloc)); case 490: return (SemanticValue)(ths->action490_Operator(loc, endloc)); case 491: return (SemanticValue)(ths->action491_Operator(loc, endloc)); case 492: return (SemanticValue)(ths->action492_Operator(loc, endloc)); case 493: return (SemanticValue)(ths->action493_Operator(loc, endloc)); case 494: return (SemanticValue)(ths->action494_Operator(loc, endloc)); case 495: return (SemanticValue)(ths->action495_Operator(loc, endloc)); case 496: return (SemanticValue)(ths->action496_Operator(loc, endloc)); case 497: return (SemanticValue)(ths->action497_Operator(loc, endloc)); case 498: return (SemanticValue)(ths->action498_Operator(loc, endloc)); case 499: return (SemanticValue)(ths->action499_Operator(loc, endloc)); case 500: return (SemanticValue)(ths->action500_Operator(loc, endloc)); case 501: return (SemanticValue)(ths->action501_Operator(loc, endloc)); case 502: return (SemanticValue)(ths->action502_Operator(loc, endloc)); case 503: return (SemanticValue)(ths->action503_Operator(loc, endloc)); case 504: return (SemanticValue)(ths->action504_Operator(loc, endloc)); case 505: return (SemanticValue)(ths->action505_Operator(loc, endloc)); case 506: return (SemanticValue)(ths->action506_Operator(loc, endloc)); case 507: return (SemanticValue)(ths->action507_Operator(loc, endloc)); case 508: return (SemanticValue)(ths->action508_Operator(loc, endloc)); case 509: return (SemanticValue)(ths->action509_Operator(loc, endloc)); case 510: return (SemanticValue)(ths->action510_Operator(loc, endloc)); case 511: return (SemanticValue)(ths->action511_Operator(loc, endloc)); case 512: return (SemanticValue)(ths->action512_Operator(loc, endloc)); case 513: return (SemanticValue)(ths->action513_Operator(loc, endloc)); case 514: return (SemanticValue)(ths->action514_Operator(loc, endloc)); case 515: return (SemanticValue)(ths->action515_Operator(loc, endloc)); case 516: return (SemanticValue)(ths->action516_Operator(loc, endloc)); case 517: return (SemanticValue)(ths->action517_Operator(loc, endloc)); case 518: return (SemanticValue)(ths->action518_Operator(loc, endloc)); case 519: return (SemanticValue)(ths->action519_Operator(loc, endloc)); case 520: return (SemanticValue)(ths->action520_Operator(loc, endloc)); case 521: return (SemanticValue)(ths->action521_Operator(loc, endloc)); case 522: return (SemanticValue)(ths->action522_Operator(loc, endloc)); case 523: return (SemanticValue)(ths->action523_Operator(loc, endloc)); case 524: return (SemanticValue)(ths->action524_Operator(loc, endloc)); case 525: return (SemanticValue)(ths->action525_Operator(loc, endloc)); case 526: return (SemanticValue)(ths->action526_Operator(loc, endloc)); case 527: return (SemanticValue)(ths->action527_TemplateDeclaration(loc, endloc, (/*fakelist*/TemplateParameter*)(semanticValues[0]), (Function*)(semanticValues[1]))); case 528: return (SemanticValue)(ths->action528_TemplateDeclaration(loc, endloc, (/*fakelist*/TemplateParameter*)(semanticValues[0]), (Declaration*)(semanticValues[1]))); case 529: return (SemanticValue)(ths->action529_TemplateDeclaration(loc, endloc, (/*fakelist*/TemplateParameter*)(semanticValues[0]), (TemplateDeclaration*)(semanticValues[1]))); case 530: return (SemanticValue)(ths->action530_TemplateDeclaration(loc, endloc, (/*fakelist*/TemplateParameter*)(semanticValues[0]), (Declaration*)(semanticValues[1]))); case 531: return (SemanticValue)(ths->action531_TemplatePreamble(loc, endloc, (/*fakelist*/TemplateParameter*)(semanticValues[2]))); case 532: return (SemanticValue)(ths->action532_TemplatePreamble(loc, endloc, (/*fakelist*/TemplateParameter*)(semanticValues[3]))); case 533: return (SemanticValue)(ths->action533_TemplatePreamble(loc, endloc)); case 534: return (SemanticValue)(ths->action534_TemplatePreamble(loc, endloc)); case 535: return (SemanticValue)(ths->action535_TemplateParameterList(loc, endloc, (StringRef)(semanticValues[1]), (ASTTypeId*)(semanticValues[2]), (/*nullable fakelist*/TemplateParameter*)(semanticValues[3]))); case 536: return (SemanticValue)(ths->action536_TemplateParameterList(loc, endloc, (ASTTypeId*)(semanticValues[0]), (/*nullable fakelist*/TemplateParameter*)(semanticValues[1]))); case 537: return (SemanticValue)(ths->action537_TemplateParameterList(loc, endloc, (/*fakelist*/TemplateParameter*)(semanticValues[2]), (StringRef)(semanticValues[5]), (PQName*)(semanticValues[6]), (/*nullable fakelist*/TemplateParameter*)(semanticValues[7]))); case 538: return (SemanticValue)(ths->action538_TemplateParameterListContinuation(loc, endloc)); case 539: return (SemanticValue)(ths->action539_TemplateParameterListContinuation(loc, endloc, (/*fakelist*/TemplateParameter*)(semanticValues[1]))); case 540: return (SemanticValue)(ths->action540_ClassOrTypename(loc, endloc), 0); case 541: return (SemanticValue)(ths->action541_ClassOrTypename(loc, endloc), 0); case 542: return (SemanticValue)(ths->action542_DefaultTypeOpt(loc, endloc)); case 543: return (SemanticValue)(ths->action543_DefaultTypeOpt(loc, endloc, (ASTTypeId*)(semanticValues[1]))); case 544: return (SemanticValue)(ths->action544_DefaultTemplateOpt(loc, endloc)); case 545: return (SemanticValue)(ths->action545_DefaultTemplateOpt(loc, endloc, (PQName*)(semanticValues[1]))); case 546: return (SemanticValue)(ths->action546_TemplateArgumentListOpt(loc, endloc)); case 547: return (SemanticValue)(ths->action547_TemplateArgumentListOpt(loc, endloc, (/*fakelist*/TemplateArgument*)(semanticValues[0]))); case 548: return (SemanticValue)(ths->action548_TemplateId(loc, endloc, (StringRef)(semanticValues[0]), (/*fakelist*/TemplateArgument*)(semanticValues[2]))); case 549: return (SemanticValue)(ths->action549_TemplateId(loc, endloc, (OperatorName*)(semanticValues[0]), (/*fakelist*/TemplateArgument*)(semanticValues[2]))); case 550: return (SemanticValue)(ths->action550_TemplateArgumentList(loc, endloc, (TemplateArgument*)(semanticValues[0]))); case 551: return (SemanticValue)(ths->action551_TemplateArgumentListTailOpt(loc, endloc)); case 552: return (SemanticValue)(ths->action552_TemplateArgumentListTailOpt(loc, endloc, (TemplateArgument*)(semanticValues[1]))); case 553: return (SemanticValue)(ths->action553_TemplateArgument(loc, endloc, (ASTTypeId*)(semanticValues[0]), (TemplateArgument*)(semanticValues[1]))); case 554: return (SemanticValue)(ths->action554_TemplateArgument(loc, endloc, (Expression*)(semanticValues[0]), (TemplateArgument*)(semanticValues[1]))); case 555: return (SemanticValue)(ths->action555_ExplicitInstantiation(loc, endloc, (Declaration*)(semanticValues[1]))); case 556: return (SemanticValue)(ths->action556_ExplicitInstantiation(loc, endloc, (Declaration*)(semanticValues[2]))); case 557: return (SemanticValue)(ths->action557_ExplicitInstantiation(loc, endloc, (Declaration*)(semanticValues[2]))); case 558: return (SemanticValue)(ths->action558_TryBlock(loc, endloc, (S_compound*)(semanticValues[1]), (FakeList*)(semanticValues[2]))); case 559: return (SemanticValue)(ths->action559_HandlerSeq(loc, endloc, (Handler*)(semanticValues[0]))); case 560: return (SemanticValue)(ths->action560_HandlerSeq(loc, endloc, (Handler*)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 561: return (SemanticValue)(ths->action561_Handler(loc, endloc, (ASTTypeId*)(semanticValues[2]), (S_compound*)(semanticValues[4]))); case 562: return (SemanticValue)(ths->action562_Handler(loc, endloc, (S_compound*)(semanticValues[4]))); case 563: return (SemanticValue)(ths->action563_HandlerParameter(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (IDeclarator*)(semanticValues[1]))); case 564: return (SemanticValue)(ths->action564_HandlerParameter(loc, endloc, (TypeSpecifier*)(semanticValues[0]), (IDeclarator*)(semanticValues[1]))); case 565: return (SemanticValue)(ths->action565_UnqualifiedDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 566: return (SemanticValue)(ths->action566_ThrowExpression(loc, endloc)); case 567: return (SemanticValue)(ths->action567_ThrowExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 568: return (SemanticValue)(ths->action568_ExceptionSpecificationOpt(loc, endloc)); case 569: return (SemanticValue)(ths->action569_ExceptionSpecificationOpt(loc, endloc)); case 570: return (SemanticValue)(ths->action570_ExceptionSpecificationOpt(loc, endloc, (FakeList*)(semanticValues[2]))); case 571: return (SemanticValue)(ths->action571_TypeIdList(loc, endloc, (ASTTypeId*)(semanticValues[0]))); case 572: return (SemanticValue)(ths->action572_TypeIdList(loc, endloc, (ASTTypeId*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 573: return (SemanticValue)(ths->action573_NamespaceDefinition(loc, endloc, (StringRef)(semanticValues[1]), (TranslationUnit*)(semanticValues[3]))); case 574: return (SemanticValue)(ths->action574_NamespaceDefinition(loc, endloc, (StringRef)(semanticValues[1]), (TranslationUnit*)(semanticValues[4]))); case 575: return (SemanticValue)(ths->action575_NamespaceDecl(loc, endloc, (StringRef)(semanticValues[1]), (PQName*)(semanticValues[3]))); case 576: return (SemanticValue)(ths->action576_NamespaceDecl(loc, endloc, (PQName*)(semanticValues[1]))); case 577: return (SemanticValue)(ths->action577_NamespaceDecl(loc, endloc, (PQName*)(semanticValues[2]))); case 578: return (SemanticValue)(ths->action578_NamespaceDecl(loc, endloc, (PQName*)(semanticValues[2]))); case 579: return (SemanticValue)(ths->action579_NamesAfterDot(loc, endloc, (PQName*)(semanticValues[0]))); case 580: return (SemanticValue)(ths->action580_NamesAfterDot(loc, endloc, (Expression*)(semanticValues[0]), (PQName*)(semanticValues[2]))); case 581: return (SemanticValue)(ths->action581_ParenthesizedExpression(loc, endloc, (Expression*)(semanticValues[1]))); case 582: return (SemanticValue)(ths->action582_LabeledEmptyStatementList(loc, endloc, (StringRef)(semanticValues[0]), (Statement*)(semanticValues[1]))); case 583: return (SemanticValue)(ths->action583_LabeledEmptyStatementList(loc, endloc, (Expression*)(semanticValues[1]), (Statement*)(semanticValues[3]))); case 584: return (SemanticValue)(ths->action584_LabeledEmptyStatementList(loc, endloc, (Expression*)(semanticValues[1]), (Expression*)(semanticValues[3]), (Statement*)(semanticValues[5]))); case 585: return (SemanticValue)(ths->action585_LabeledEmptyStatementList(loc, endloc, (Statement*)(semanticValues[2]))); case 586: return (SemanticValue)(ths->action586_LabeledEmptyStatementListOpt(loc, endloc)); case 587: return (SemanticValue)(ths->action587_LabeledEmptyStatementListOpt(loc, endloc, (Statement*)(semanticValues[0]))); case 588: return (SemanticValue)(ths->action588_TypeofTypeSpecifier(loc, endloc, (FullExpression*)(semanticValues[0]))); case 589: return (SemanticValue)(ths->action589_TypeofTypeSpecifier(loc, endloc, (ASTTypeId*)(semanticValues[0]))); case 590: return (SemanticValue)(ths->action590_TypeofExpr(loc, endloc, (Expression*)(semanticValues[2]))); case 591: return (SemanticValue)(ths->action591_TypeofType(loc, endloc, (ASTTypeId*)(semanticValues[2]))); case 592: return (SemanticValue)(ths->action592_BracketedWordOpt(loc, endloc)); case 593: return (SemanticValue)(ths->action593_BracketedWordOpt(loc, endloc, (StringRef)(semanticValues[1]))); case 594: return (SemanticValue)(ths->action594_ParenthesizedExpressionOpt(loc, endloc)); case 595: return (SemanticValue)(ths->action595_ParenthesizedExpressionOpt(loc, endloc, (Expression*)(semanticValues[1]))); case 596: return (SemanticValue)(ths->action596_OpConstraint(loc, endloc, (StringRef)(semanticValues[0]), (E_stringLit*)(semanticValues[1]), (Expression*)(semanticValues[2]))); case 597: return (SemanticValue)(ths->action597_OpConstraintList(loc, endloc)); case 598: return (SemanticValue)(ths->action598_OpConstraintList(loc, endloc, (Constraint*)(semanticValues[0]))); case 599: return (SemanticValue)(ths->action599_OpConstraintList(loc, endloc, (ASTList*)(semanticValues[0]), (Constraint*)(semanticValues[2]))); case 600: return (SemanticValue)(ths->action600_OpConstraints(loc, endloc, (ASTList*)(semanticValues[1]), (ASTList*)(semanticValues[3]), (ASTList*)(semanticValues[5]))); case 601: return (SemanticValue)(ths->action601_OpConstraints(loc, endloc, (ASTList*)(semanticValues[1]), (ASTList*)(semanticValues[3]))); case 602: return (SemanticValue)(ths->action602_OpConstraints(loc, endloc, (ASTList*)(semanticValues[1]))); case 603: return (SemanticValue)(ths->action603_OpConstraints(loc, endloc, (ASTList*)(semanticValues[1]), (ASTList*)(semanticValues[3]))); case 604: return (SemanticValue)(ths->action604_OpConstraints(loc, endloc, (ASTList*)(semanticValues[1]), (ASTList*)(semanticValues[3]))); case 605: return (SemanticValue)(ths->action605_OpConstraints(loc, endloc, (ASTList*)(semanticValues[1]))); case 606: return (SemanticValue)(ths->action606_DesignatorList(loc, endloc, (Designator*)(semanticValues[0]))); case 607: return (SemanticValue)(ths->action607_DesignatorList(loc, endloc, (Designator*)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 608: return (SemanticValue)(ths->action608_Designator(loc, endloc, (StringRef)(semanticValues[1]))); case 609: return (SemanticValue)(ths->action609_Designator(loc, endloc, (Expression*)(semanticValues[1]))); case 610: return (SemanticValue)(ths->action610_Designator(loc, endloc, (Expression*)(semanticValues[1]), (Expression*)(semanticValues[3]))); case 611: return (SemanticValue)(ths->action611_BuggyGccTypeModifier(loc, endloc), 0); case 612: return (SemanticValue)(ths->action612_BuggyGccTypeModifier(loc, endloc), 0); case 613: return (SemanticValue)(ths->action613_BuggyGccTypeModifier(loc, endloc), 0); case 614: return (SemanticValue)(ths->action614_BuggyGccTypeModifier(loc, endloc), 0); case 615: return (SemanticValue)(ths->action615_BuggyGccTypeModifier(loc, endloc), 0); case 616: return (SemanticValue)(ths->action616_BuggyGccTypeModifier(loc, endloc), 0); case 617: return (SemanticValue)(ths->action617_BuggyGccTypeModifier(loc, endloc), 0); case 618: return (SemanticValue)(ths->action618_BuggyGccTypeModifier(loc, endloc), 0); case 619: return (SemanticValue)(ths->action619_CVQualAttrSeqOpt(loc, endloc)); case 620: return (SemanticValue)(ths->action620_CVQualAttrSeqOpt(loc, endloc, (enum CVFlags)(int)(semanticValues[0]))); case 621: return (SemanticValue)(ths->action621_CVQualAttrSeq(loc, endloc, (enum CVFlags)(int)(semanticValues[0]))); case 622: return (SemanticValue)(ths->action622_CVQualAttrSeq(loc, endloc, (enum CVFlags)(int)(semanticValues[0]), (enum CVFlags)(int)(semanticValues[1]))); case 623: return (SemanticValue)(ths->action623_CVQualAttr(loc, endloc, (enum CVFlags)(int)(semanticValues[0]))); case 624: return (SemanticValue)(ths->action624_CVQualAttr(loc, endloc)); case 625: return (SemanticValue)(ths->action625_AttributeWord(loc, endloc, (StringRef)(semanticValues[0]))); case 626: return (SemanticValue)(ths->action626_AttributeWord(loc, endloc)); case 627: return (SemanticValue)(ths->action627_AttributeWord(loc, endloc)); case 628: return (SemanticValue)(ths->action628_AttributeWord(loc, endloc)); case 629: return (SemanticValue)(ths->action629_AttributeWord(loc, endloc)); case 630: return (SemanticValue)(ths->action630_AttributeWord(loc, endloc)); case 631: return (SemanticValue)(ths->action631_AttributeWord(loc, endloc)); case 632: return (SemanticValue)(ths->action632_AttributeWord(loc, endloc)); case 633: return (SemanticValue)(ths->action633_AttributeWord(loc, endloc)); case 634: return (SemanticValue)(ths->action634_AttributeWord(loc, endloc)); case 635: return (SemanticValue)(ths->action635_AttributeWord(loc, endloc)); case 636: return (SemanticValue)(ths->action636_AttributeWord(loc, endloc)); case 637: return (SemanticValue)(ths->action637_AttributeWord(loc, endloc)); case 638: return (SemanticValue)(ths->action638_AttributeWord(loc, endloc)); case 639: return (SemanticValue)(ths->action639_AttributeWord(loc, endloc)); case 640: return (SemanticValue)(ths->action640_AttributeWord(loc, endloc)); case 641: return (SemanticValue)(ths->action641_AttributeWord(loc, endloc)); case 642: return (SemanticValue)(ths->action642_AttributeWord(loc, endloc)); case 643: return (SemanticValue)(ths->action643_AttributeWord(loc, endloc)); case 644: return (SemanticValue)(ths->action644_AttributeWord(loc, endloc)); case 645: return (SemanticValue)(ths->action645_AttributeWord(loc, endloc)); case 646: return (SemanticValue)(ths->action646_AttributeWord(loc, endloc)); case 647: return (SemanticValue)(ths->action647_AttributeWord(loc, endloc)); case 648: return (SemanticValue)(ths->action648_AttributeWord(loc, endloc)); case 649: return (SemanticValue)(ths->action649_AttributeWord(loc, endloc)); case 650: return (SemanticValue)(ths->action650_AttributeWord(loc, endloc)); case 651: return (SemanticValue)(ths->action651_AttributeWord(loc, endloc)); case 652: return (SemanticValue)(ths->action652_AttributeWord(loc, endloc)); case 653: return (SemanticValue)(ths->action653_AttributeWord(loc, endloc)); case 654: return (SemanticValue)(ths->action654_AttributeWord(loc, endloc)); case 655: return (SemanticValue)(ths->action655_AttributeWord(loc, endloc)); case 656: return (SemanticValue)(ths->action656_AttributeWord(loc, endloc)); case 657: return (SemanticValue)(ths->action657_AttributeWord(loc, endloc)); case 658: return (SemanticValue)(ths->action658_AttributeWord(loc, endloc)); case 659: return (SemanticValue)(ths->action659_AttributeWord(loc, endloc)); case 660: return (SemanticValue)(ths->action660_AttributeWord(loc, endloc)); case 661: return (SemanticValue)(ths->action661_AttributeWord(loc, endloc)); case 662: return (SemanticValue)(ths->action662_AttributeWord(loc, endloc)); case 663: return (SemanticValue)(ths->action663_AttributeWord(loc, endloc)); case 664: return (SemanticValue)(ths->action664_AttributeWord(loc, endloc)); case 665: return (SemanticValue)(ths->action665_AttributeWord(loc, endloc)); case 666: return (SemanticValue)(ths->action666_AttributeWord(loc, endloc)); case 667: return (SemanticValue)(ths->action667_AttributeWord(loc, endloc)); case 668: return (SemanticValue)(ths->action668_AttributeWord(loc, endloc)); case 669: return (SemanticValue)(ths->action669_AttributeWord(loc, endloc)); case 670: return (SemanticValue)(ths->action670_AttributeWord(loc, endloc)); case 671: return (SemanticValue)(ths->action671_AttributeWord(loc, endloc)); case 672: return (SemanticValue)(ths->action672_AttributeWord(loc, endloc)); case 673: return (SemanticValue)(ths->action673_AttributeWord(loc, endloc)); case 674: return (SemanticValue)(ths->action674_AttributeWord(loc, endloc)); case 675: return (SemanticValue)(ths->action675_AttributeWord(loc, endloc)); case 676: return (SemanticValue)(ths->action676_AttributeWord(loc, endloc)); case 677: return (SemanticValue)(ths->action677_AttributeWord(loc, endloc)); case 678: return (SemanticValue)(ths->action678_AttributeWord(loc, endloc)); case 679: return (SemanticValue)(ths->action679_AttributeWord(loc, endloc)); case 680: return (SemanticValue)(ths->action680_AttributeWord(loc, endloc)); case 681: return (SemanticValue)(ths->action681_AttributeWord(loc, endloc)); case 682: return (SemanticValue)(ths->action682_AttributeWord(loc, endloc)); case 683: return (SemanticValue)(ths->action683_AttributeWord(loc, endloc)); case 684: return (SemanticValue)(ths->action684_AttributeWord(loc, endloc)); case 685: return (SemanticValue)(ths->action685_AttributeWord(loc, endloc)); case 686: return (SemanticValue)(ths->action686_AttributeWord(loc, endloc)); case 687: return (SemanticValue)(ths->action687_AttributeWord(loc, endloc)); case 688: return (SemanticValue)(ths->action688_AttributeWord(loc, endloc)); case 689: return (SemanticValue)(ths->action689_CommaSepExpressionListOpt(loc, endloc)); case 690: return (SemanticValue)(ths->action690_CommaSepExpressionListOpt(loc, endloc, (FakeList*)(semanticValues[0]))); case 691: return (SemanticValue)(ths->action691_AttributeParameters(loc, endloc, (FakeList*)(semanticValues[0]))); case 692: return (SemanticValue)(ths->action692_Attribute(loc, endloc)); case 693: return (SemanticValue)(ths->action693_Attribute(loc, endloc, (StringRef)(semanticValues[0]))); case 694: return (SemanticValue)(ths->action694_Attribute(loc, endloc, (StringRef)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 695: return (SemanticValue)(ths->action695_AttributeList(loc, endloc, (Attribute*)(semanticValues[0]))); case 696: return (SemanticValue)(ths->action696_AttributeList(loc, endloc, (Attribute*)(semanticValues[0]), (AttributeSpecifier*)(semanticValues[2]))); case 697: return (SemanticValue)(ths->action697_AttributeSpecifier(loc, endloc, (AttributeSpecifier*)(semanticValues[3]))); case 698: return (SemanticValue)(ths->action698_AttributeSpecifierList(loc, endloc, (AttributeSpecifier*)(semanticValues[0]))); case 699: return (SemanticValue)(ths->action699_AttributeSpecifierList(loc, endloc, (AttributeSpecifier*)(semanticValues[0]), (AttributeSpecifierList*)(semanticValues[1]))); case 700: return (SemanticValue)(ths->action700_KandRFunctionDefinition(loc, endloc, (Declaration*)(semanticValues[0]), (IDeclarator*)(semanticValues[1]), (S_compound*)(semanticValues[2]), (S_compound*)(semanticValues[3]))); case 701: return (SemanticValue)(ths->action701_KandRFunctionDefinition_implInt(loc, endloc, (IDeclarator*)(semanticValues[0]), (S_compound*)(semanticValues[1]), (S_compound*)(semanticValues[2]))); case 702: return (SemanticValue)(ths->action702_KandRFunctionDefinition_implInt(loc, endloc, (UberModifiers)(semanticValues[0]), (IDeclarator*)(semanticValues[1]), (S_compound*)(semanticValues[2]), (S_compound*)(semanticValues[3]))); case 703: return (SemanticValue)(ths->action703_KandRSimpleDeclarationSeq(loc, endloc, (Declaration*)(semanticValues[0]))); case 704: return (SemanticValue)(ths->action704_KandRSimpleDeclarationSeq(loc, endloc, (S_compound*)(semanticValues[0]), (Declaration*)(semanticValues[1]))); case 705: return (SemanticValue)(ths->action705_KandRSimpleDeclaration(loc, endloc, (Declaration*)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 706: return (SemanticValue)(ths->action706_KandRSimpleDeclaration(loc, endloc, (FakeList*)(semanticValues[1]))); case 707: return (SemanticValue)(ths->action707_KandRInitDeclaratorList(loc, endloc, (Declarator*)(semanticValues[0]))); case 708: return (SemanticValue)(ths->action708_KandRInitDeclaratorList(loc, endloc, (Declarator*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 709: return (SemanticValue)(ths->action709_KandRInitDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 710: return (SemanticValue)(ths->action710_KandRDeclarator(loc, endloc, (enum CVFlags)(int)(semanticValues[1]), (IDeclarator*)(semanticValues[2]))); case 711: return (SemanticValue)(ths->action711_KandRDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]))); case 712: return (SemanticValue)(ths->action712_KandRDirectDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 713: return (SemanticValue)(ths->action713_KandRDirectDeclarator(loc, endloc, (IDeclarator*)(semanticValues[1]), (FakeList*)(semanticValues[4]))); case 714: return (SemanticValue)(ths->action714_KandRDirectDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 715: return (SemanticValue)(ths->action715_KandRDirectDeclarator(loc, endloc, (IDeclarator*)(semanticValues[0]), (Expression*)(semanticValues[2]))); case 716: return (SemanticValue)(ths->action716_KandRDirectDeclarator(loc, endloc, (IDeclarator*)(semanticValues[1]))); case 717: return (SemanticValue)(ths->action717_KandRIdExpression(loc, endloc, (PQ_name*)(semanticValues[0]))); case 718: return (SemanticValue)(ths->action718_KandRIdentifierList(loc, endloc, (PQ_name*)(semanticValues[0]))); case 719: return (SemanticValue)(ths->action719_KandRIdentifierList(loc, endloc, (PQ_name*)(semanticValues[0]), (FakeList*)(semanticValues[2]))); case 720: return (SemanticValue)(ths->action720_KandRIdentifier(loc, endloc, (StringRef)(semanticValues[0]))); case 721: return (SemanticValue)(ths->action721_CFuncModifier_no_inline(loc, endloc)); case 722: return (SemanticValue)(ths->action722_CFuncModifier_no_inline(loc, endloc)); case 723: return (SemanticValue)(ths->action723_CFuncModifier_no_inline(loc, endloc)); case 724: return (SemanticValue)(ths->action724_CFuncModifier_no_inline(loc, endloc)); case 725: return (SemanticValue)(ths->action725_CFuncModifier(loc, endloc, (UberModifiers)(semanticValues[0]))); case 726: return (SemanticValue)(ths->action726_CFuncModifier(loc, endloc)); case 727: return (SemanticValue)(ths->action727_CFuncModifierSeq(loc, endloc, (UberModifiers)(semanticValues[0]))); case 728: return (SemanticValue)(ths->action728_CFuncModifierSeq(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]))); case 729: return (SemanticValue)(ths->action729_CFuncModifierSeqOpt(loc, endloc)); case 730: return (SemanticValue)(ths->action730_CFuncModifierSeqOpt(loc, endloc, (UberModifiers)(semanticValues[0]))); case 731: return (SemanticValue)(ths->action731_ImplIntFunctionDefinition(loc, endloc, (UberModifiers)(semanticValues[0]), (IDeclarator*)(semanticValues[1]), (S_compound*)(semanticValues[2]))); case 732: return (SemanticValue)(ths->action732_ImplIntFunctionDefinition(loc, endloc, (UberModifiers)(semanticValues[0]), (UberModifiers)(semanticValues[1]), (IDeclarator*)(semanticValues[2]), (S_compound*)(semanticValues[3]))); case 733: return (SemanticValue)(ths->action733_ImplIntFunctionDefinition(loc, endloc, (UberModifiers)(semanticValues[1]), (UberModifiers)(semanticValues[2]), (IDeclarator*)(semanticValues[3]), (S_compound*)(semanticValues[4]))); case 734: return (SemanticValue)(ths->action734_ImplicitIntTypeSpecifier(loc, endloc, (UberModifiers)(semanticValues[0]))); case 735: return (SemanticValue)(ths->action735_ImplicitIntTypeId(loc, endloc, (TypeSpecifier*)(semanticValues[0]))); case 736: return (SemanticValue)(ths->action736_StateDefinition(loc, endloc, (bool)(semanticValues[0]), (IDeclarator*)(semanticValues[2]))); case 737: return (SemanticValue)(ths->action737_StateDefinition(loc, endloc, (bool)(semanticValues[0]), (IDeclarator*)(semanticValues[2]), (FakeList*)(semanticValues[3]))); case 738: return (SemanticValue)(ths->action738_InitialState(loc, endloc)); case 739: return (SemanticValue)(ths->action739_InitialState(loc, endloc)); case 740: return (SemanticValue)(ths->action740_AndStateList(loc, endloc, (StateEntryList*)(semanticValues[1]))); case 741: return (SemanticValue)(ths->action741_AndStateList(loc, endloc, (StateEntryList*)(semanticValues[1]), (FakeList*)(semanticValues[4]))); case 742: return (SemanticValue)(ths->action742_StateEntryListOpt(loc, endloc)); case 743: return (SemanticValue)(ths->action743_StateEntryListOpt(loc, endloc, (FakeList*)(semanticValues[0]))); case 744: return (SemanticValue)(ths->action744_StateEntryList(loc, endloc, (StateEntry*)(semanticValues[0]))); case 745: return (SemanticValue)(ths->action745_StateEntryList(loc, endloc, (StateEntry*)(semanticValues[0]), (FakeList*)(semanticValues[1]))); case 746: return (SemanticValue)(ths->action746_StateEntry(loc, endloc, (Expression*)(semanticValues[2]), (Statement*)(semanticValues[4]))); case 747: return (SemanticValue)(ths->action747_StateEntry(loc, endloc, (Statement*)(semanticValues[1]))); case 748: return (SemanticValue)(ths->action748_StateEntry(loc, endloc, (Declarator*)(semanticValues[1]), (Statement*)(semanticValues[3]))); case 749: return (SemanticValue)(ths->action749_StateEntry(loc, endloc, (Statement*)(semanticValues[2]))); case 750: return (SemanticValue)(ths->action750_StateEntry(loc, endloc, (State*)(semanticValues[0]))); case 751: return (SemanticValue)(ths->action751_StateEntry(loc, endloc, (Statement*)(semanticValues[1]))); default: assert(!"invalid production code"); return (SemanticValue)0; // silence warning } } UserActions::ReductionActionFunc CCParse::getReductionAction() { return (ReductionActionFunc)&CCParse::doReductionAction; } // ---------------- dup/del/merge/keep nonterminals --------------- inline StringRef CCParse::dup_Identifier(StringRef n) { return n; } #line 6147 "cc.gr.gen.cc" inline void CCParse::del_Identifier(StringRef n) { } #line 6151 "cc.gr.gen.cc" inline TranslationUnit* CCParse::dup_TranslationUnit(TranslationUnit* n) { return NULL; } #line 6155 "cc.gr.gen.cc" inline PQName* CCParse::merge_IdExpression(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6159 "cc.gr.gen.cc" inline PQName* CCParse::merge_UnqualifiedId(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6163 "cc.gr.gen.cc" inline PQName* CCParse::merge_PQualifiedId(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6167 "cc.gr.gen.cc" inline Expression* CCParse::merge_PostfixExpression(Expression* L, Expression* R) { L->addAmbiguity(R); return L; } #line 6171 "cc.gr.gen.cc" inline FakeList* CCParse::merge_ExpressionList(FakeList* L, FakeList* R) { L->first()->addAmbiguity(R->first()); return L; } #line 6175 "cc.gr.gen.cc" inline Expression* CCParse::merge_UnaryExpression(Expression* L, Expression* R) { L->addAmbiguity(R); return L; } #line 6179 "cc.gr.gen.cc" inline E_new* CCParse::merge_NewExpression(E_new* L, E_new* R) { L->addAmbiguity(R); return L; } #line 6183 "cc.gr.gen.cc" inline bool CCParse::keep_DirectNewDeclarator(IDeclarator* x) { return x!=NULL; } #line 6187 "cc.gr.gen.cc" inline PQName* CCParse::merge_NameAfterDot(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6191 "cc.gr.gen.cc" inline PQName* CCParse::merge_NAD1(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6195 "cc.gr.gen.cc" inline PQName* CCParse::merge_NAD2(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6199 "cc.gr.gen.cc" inline Expression* CCParse::merge_CastExpression(Expression* L, Expression* R) { L->addAmbiguity(R); return L; } #line 6203 "cc.gr.gen.cc" inline Expression* CCParse::merge_BinExp_high(Expression* L, Expression* R) { L->addAmbiguity(R); return L; } #line 6207 "cc.gr.gen.cc" inline Expression* CCParse::merge_BinExp_mid(Expression* L, Expression* R) { L->addAmbiguity(R); return L; } #line 6211 "cc.gr.gen.cc" inline Expression* CCParse::merge_BinaryExpression(Expression* L, Expression* R) { L->addAmbiguity(R); return L; } #line 6215 "cc.gr.gen.cc" inline Expression* CCParse::merge_ConditionalExpression(Expression* L, Expression* R) { L->addAmbiguity(R); return L; } #line 6219 "cc.gr.gen.cc" inline Expression* CCParse::merge_Expression(Expression* L, Expression* R) { L->addAmbiguity(R); return L; } #line 6223 "cc.gr.gen.cc" inline Statement* CCParse::merge_Statement(Statement* L, Statement* R) { L->addAmbiguity(R); return L; } #line 6227 "cc.gr.gen.cc" inline bool CCParse::keep_Statement(Statement* x) { return x!=NULL; } #line 6231 "cc.gr.gen.cc" inline Condition* CCParse::merge_Condition(Condition* L, Condition* R) { L->addAmbiguity(R); return L; } #line 6235 "cc.gr.gen.cc" inline Statement* CCParse::merge_ForInitStatement(Statement* L, Statement* R) { L->addAmbiguity(R); return L; } #line 6239 "cc.gr.gen.cc" inline TopForm* CCParse::merge_Declaration(TopForm* L, TopForm* R) { L->addAmbiguity(R); return L; } #line 6243 "cc.gr.gen.cc" inline bool CCParse::keep_Declaration(TopForm* x) { return x!=NULL; } #line 6247 "cc.gr.gen.cc" inline bool CCParse::keep_SimpleDeclaration(Declaration* d) { return keepDeclaration(d); // e.g. in/t0057.cc } #line 6253 "cc.gr.gen.cc" inline Declaration* CCParse::dup_DeclSpecifier(Declaration* d) { return NULL; } #line 6257 "cc.gr.gen.cc" inline PQName* CCParse::merge_PQTypeName(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6261 "cc.gr.gen.cc" inline PQName* CCParse::merge_PQTypeName_ncc(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6265 "cc.gr.gen.cc" inline PQName* CCParse::merge_PQTypeName_notfirst(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6269 "cc.gr.gen.cc" inline Declarator* CCParse::merge_InitDeclarator(Declarator* L, Declarator* R) { L->addAmbiguity(R); return L; } #line 6273 "cc.gr.gen.cc" inline IN_compound* CCParse::dup_InitializerList(IN_compound* i) { return NULL; } #line 6277 "cc.gr.gen.cc" inline bool CCParse::keep_DirectDeclarator(IDeclarator* x) { return x!=NULL; } #line 6281 "cc.gr.gen.cc" inline PQName* CCParse::merge_PQDtorName(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6285 "cc.gr.gen.cc" inline PQName* CCParse::merge_PtrToMemberName(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6289 "cc.gr.gen.cc" inline bool CCParse::keep_DirectAbstractDeclarator(IDeclarator* x) { return x!=NULL; } #line 6293 "cc.gr.gen.cc" inline ASTTypeId* CCParse::merge_ParameterDeclaration(ASTTypeId* L, ASTTypeId* R) { L->addAmbiguity(R); return L; } #line 6297 "cc.gr.gen.cc" inline bool CCParse::keep_ParameterDeclaration(ASTTypeId* x) { return x!=NULL; } #line 6301 "cc.gr.gen.cc" inline Declarator* CCParse::merge_ParameterDeclarator(Declarator* L, Declarator* R) { L->addAmbiguity(R); return L; } #line 6305 "cc.gr.gen.cc" inline bool CCParse::keep_FunctionDefinition(Function* f) { if (!f->nameAndParams->decl->bottomIsDfunc()) { xfailure("should not happen anymore due to use of FDDeclarator"); TRACE("cancel", "rejecting FunctionDefinition w/o D_func at bottom"); return false; } else if (endsWithIdentifier(f->retspec) && isGlobalScopeQualified(f->nameAndParams->decl->getDeclaratorIdC())) { TRACE("cancel", "rejecting TYPENAME ::NAME"); // e.g. in/t0015.cc return false; } else { return true; } } #line 6323 "cc.gr.gen.cc" inline bool CCParse::keep_FDDeclarator(IDeclarator* d) { if (!d->bottomIsDfunc()) { TRACE("cancel", "rejecting FDDeclarator w/o D_func at bottom"); return false; } else { return true; } } #line 6335 "cc.gr.gen.cc" inline PQName* CCParse::merge_ClassHeadNameOpt(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6339 "cc.gr.gen.cc" inline PQName* CCParse::merge_ClassHeadName(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6343 "cc.gr.gen.cc" inline MemberList* CCParse::dup_MemberDeclarationSeqOpt(MemberList* m) { return NULL; } #line 6347 "cc.gr.gen.cc" inline bool CCParse::keep_MemberDeclaration(Member* m) { return m!=NULL; } #line 6351 "cc.gr.gen.cc" inline bool CCParse::keep_CDtorProtoDecl(Declaration* m) { return m!=NULL; } #line 6355 "cc.gr.gen.cc" inline PQName* CCParse::merge_PQClassName(PQName* L, PQName* R) { return L->mergeAmbiguous(R); } #line 6359 "cc.gr.gen.cc" inline bool CCParse::keep_TemplateDeclaration(TemplateDeclaration* d) { return d!=NULL; } #line 6363 "cc.gr.gen.cc" inline /*fakelist*/TemplateParameter* CCParse::merge_TemplateParameterList(/*fakelist*/TemplateParameter* L, /*fakelist*/TemplateParameter* R) { L->addAmbiguity(R); return L; } #line 6367 "cc.gr.gen.cc" inline bool CCParse::keep_TemplateParameterList(/*fakelist*/TemplateParameter* x) { return x!=NULL; } #line 6371 "cc.gr.gen.cc" inline /*nullable fakelist*/TemplateParameter* CCParse::merge_TemplateParameterListContinuation(/*nullable fakelist*/TemplateParameter* L, /*nullable fakelist*/TemplateParameter* R) { L->addAmbiguity(R); return L; } #line 6375 "cc.gr.gen.cc" inline TemplateArgument* CCParse::merge_TemplateArgument(TemplateArgument* L, TemplateArgument* R) { L->addAmbiguity(R); return L; } #line 6379 "cc.gr.gen.cc" inline bool CCParse::keep_TemplateArgument(TemplateArgument* n) { return n!=NULL; } #line 6383 "cc.gr.gen.cc" inline bool CCParse::keep_UnqualifiedDeclarator(IDeclarator* d) { PQName const *n = d->getDeclaratorIdC(); if (n->hasQualifiers()) { // 'n' is never NULL TRACE("cancel", d->loc << ": qualified UnqualifiedDeclarator"); return false; } return true; } #line 6394 "cc.gr.gen.cc" inline ASTTypeof* CCParse::merge_TypeofTypeSpecifier(ASTTypeof* L, ASTTypeof* R) { L->addAmbiguity(R); return L; } #line 6398 "cc.gr.gen.cc" inline bool CCParse::keep_KandRSimpleDeclaration(Declaration* x) { return x!=NULL; } #line 6402 "cc.gr.gen.cc" inline Declarator* CCParse::merge_KandRInitDeclarator(Declarator* L, Declarator* R) { L->addAmbiguity(R); return L; } #line 6406 "cc.gr.gen.cc" inline bool CCParse::keep_KandRDirectDeclarator(IDeclarator* x) { return x!=NULL; } #line 6410 "cc.gr.gen.cc" SemanticValue CCParse::duplicateNontermValue(int nontermId, SemanticValue sval) { switch (nontermId) { case 3: return (SemanticValue)dup_Identifier((StringRef)sval); case 4: return (SemanticValue)dup_TranslationUnit((TranslationUnit*)sval); case 52: return (SemanticValue)dup_DeclSpecifier((Declaration*)sval); case 79: return sval; case 80: return (SemanticValue)dup_InitializerList((IN_compound*)sval); case 105: return (SemanticValue)dup_MemberDeclarationSeqOpt((MemberList*)sval); case 132: return sval; case 165: return sval; default: return sval; } } void CCParse::deallocateNontermValue(int nontermId, SemanticValue sval) { switch (nontermId) { case 3: del_Identifier((StringRef)sval); return; case 79: break; case 132: break; case 165: break; default: break; } } SemanticValue CCParse::mergeAlternativeParses(int nontermId, SemanticValue left, SemanticValue right, SourceLocation loc) { switch (nontermId) { case 9: return (SemanticValue)merge_IdExpression((PQName*)left, (PQName*)right); case 10: return (SemanticValue)merge_UnqualifiedId((PQName*)left, (PQName*)right); case 11: return (SemanticValue)merge_PQualifiedId((PQName*)left, (PQName*)right); case 13: return (SemanticValue)merge_PostfixExpression((Expression*)left, (Expression*)right); case 16: return (SemanticValue)merge_ExpressionList((FakeList*)left, (FakeList*)right); case 18: return (SemanticValue)merge_UnaryExpression((Expression*)left, (Expression*)right); case 20: return (SemanticValue)merge_NewExpression((E_new*)left, (E_new*)right); case 27: return (SemanticValue)merge_NameAfterDot((PQName*)left, (PQName*)right); case 28: return (SemanticValue)merge_NAD1((PQName*)left, (PQName*)right); case 29: return (SemanticValue)merge_NAD2((PQName*)left, (PQName*)right); case 30: return (SemanticValue)merge_CastExpression((Expression*)left, (Expression*)right); case 31: return (SemanticValue)merge_BinExp_high((Expression*)left, (Expression*)right); case 32: return (SemanticValue)merge_BinExp_mid((Expression*)left, (Expression*)right); case 33: return (SemanticValue)merge_BinaryExpression((Expression*)left, (Expression*)right); case 34: return (SemanticValue)merge_ConditionalExpression((Expression*)left, (Expression*)right); case 37: return (SemanticValue)merge_Expression((Expression*)left, (Expression*)right); case 42: return (SemanticValue)merge_Statement((Statement*)left, (Statement*)right); case 46: return (SemanticValue)merge_Condition((Condition*)left, (Condition*)right); case 48: return (SemanticValue)merge_ForInitStatement((Statement*)left, (Statement*)right); case 49: return (SemanticValue)merge_Declaration((TopForm*)left, (TopForm*)right); case 65: return (SemanticValue)merge_PQTypeName((PQName*)left, (PQName*)right); case 66: return (SemanticValue)merge_PQTypeName_ncc((PQName*)left, (PQName*)right); case 67: return (SemanticValue)merge_PQTypeName_notfirst((PQName*)left, (PQName*)right); case 74: return (SemanticValue)merge_InitDeclarator((Declarator*)left, (Declarator*)right); case 83: return (SemanticValue)merge_PQDtorName((PQName*)left, (PQName*)right); case 84: return (SemanticValue)merge_PtrToMemberName((PQName*)left, (PQName*)right); case 95: return (SemanticValue)merge_ParameterDeclaration((ASTTypeId*)left, (ASTTypeId*)right); case 96: return (SemanticValue)merge_ParameterDeclarator((Declarator*)left, (Declarator*)right); case 102: return (SemanticValue)merge_ClassHeadNameOpt((PQName*)left, (PQName*)right); case 103: return (SemanticValue)merge_ClassHeadName((PQName*)left, (PQName*)right); case 119: return (SemanticValue)merge_PQClassName((PQName*)left, (PQName*)right); case 130: return (SemanticValue)merge_TemplateParameterList((/*fakelist*/TemplateParameter*)left, (/*fakelist*/TemplateParameter*)right); case 131: return (SemanticValue)merge_TemplateParameterListContinuation((/*nullable fakelist*/TemplateParameter*)left, (/*nullable fakelist*/TemplateParameter*)right); case 139: return (SemanticValue)merge_TemplateArgument((TemplateArgument*)left, (TemplateArgument*)right); case 155: return (SemanticValue)merge_TypeofTypeSpecifier((ASTTypeof*)left, (ASTTypeof*)right); case 181: return (SemanticValue)merge_KandRInitDeclarator((Declarator*)left, (Declarator*)right); default: std::cout << toString(loc) << ": error: there is no action to merge nonterm " << nontermNames[nontermId] << std::endl; abort(); } } bool CCParse::keepNontermValue(int nontermId, SemanticValue sval) { switch (nontermId) { case 24: return keep_DirectNewDeclarator((IDeclarator*)sval); case 42: return keep_Statement((Statement*)sval); case 49: return keep_Declaration((TopForm*)sval); case 51: return keep_SimpleDeclaration((Declaration*)sval); case 82: return keep_DirectDeclarator((IDeclarator*)sval); case 92: return keep_DirectAbstractDeclarator((IDeclarator*)sval); case 95: return keep_ParameterDeclaration((ASTTypeId*)sval); case 97: return keep_FunctionDefinition((Function*)sval); case 98: return keep_FDDeclarator((IDeclarator*)sval); case 107: return keep_MemberDeclaration((Member*)sval); case 108: return keep_CDtorProtoDecl((Declaration*)sval); case 128: return keep_TemplateDeclaration((TemplateDeclaration*)sval); case 130: return keep_TemplateParameterList((/*fakelist*/TemplateParameter*)sval); case 139: return keep_TemplateArgument((TemplateArgument*)sval); case 145: return keep_UnqualifiedDeclarator((IDeclarator*)sval); case 179: return keep_KandRSimpleDeclaration((Declaration*)sval); case 183: return keep_KandRDirectDeclarator((IDeclarator*)sval); default: return true; } } // ---------------- dup/del/classify terminals --------------- SemanticValue CCParse::duplicateTerminalValue(int termId, SemanticValue sval) { switch (termId) { case 0: return sval; case 1: return sval; case 2: return sval; case 3: return sval; case 9: return sval; case 10: return sval; case 11: return sval; case 12: return sval; case 13: return sval; case 14: return sval; case 15: return sval; case 16: return sval; case 17: return sval; case 18: return sval; case 19: return sval; case 20: return sval; case 21: return sval; case 22: return sval; case 23: return sval; case 24: return sval; case 25: return sval; case 26: return sval; case 27: return sval; case 28: return sval; case 29: return sval; case 30: return sval; case 31: return sval; case 32: return sval; case 33: return sval; case 34: return sval; case 35: return sval; case 36: return sval; case 37: return sval; case 38: return sval; case 39: return sval; case 40: return sval; case 41: return sval; case 42: return sval; case 43: return sval; case 44: return sval; case 45: return sval; case 46: return sval; case 47: return sval; case 48: return sval; case 49: return sval; case 50: return sval; case 51: return sval; case 52: return sval; case 53: return sval; case 54: return sval; case 55: return sval; case 56: return sval; case 57: return sval; case 58: return sval; case 59: return sval; case 60: return sval; case 61: return sval; case 62: return sval; case 63: return sval; case 64: return sval; case 65: return sval; case 66: return sval; case 67: return sval; case 68: return sval; case 69: return sval; case 70: return sval; case 71: return sval; case 72: return sval; case 73: return sval; case 74: return sval; case 75: return sval; case 76: return sval; case 77: return sval; case 78: return sval; case 79: return sval; case 80: return sval; case 81: return sval; case 82: return sval; case 83: return sval; case 84: return sval; case 85: return sval; case 86: return sval; case 87: return sval; case 88: return sval; case 89: return sval; case 90: return sval; case 91: return sval; case 92: return sval; case 93: return sval; case 94: return sval; case 95: return sval; case 96: return sval; case 97: return sval; case 98: return sval; case 99: return sval; case 100: return sval; case 101: return sval; case 102: return sval; case 103: return sval; case 104: return sval; case 105: return sval; case 106: return sval; case 107: return sval; case 108: return sval; case 109: return sval; case 110: return sval; case 111: return sval; case 112: return sval; case 113: return sval; case 114: return sval; case 115: return sval; case 116: return sval; case 117: return sval; case 118: return sval; case 119: return sval; case 120: return sval; case 121: return sval; case 122: return sval; case 123: return sval; case 124: return sval; case 125: return sval; case 126: return sval; case 127: return sval; case 128: return sval; case 129: return sval; case 130: return sval; case 131: return sval; case 132: return sval; case 133: return sval; case 134: return sval; case 135: return sval; case 136: return sval; case 137: return sval; case 138: return sval; case 139: return sval; case 140: return sval; case 141: return sval; case 142: return sval; case 143: return sval; case 144: return sval; case 145: return sval; case 146: return sval; case 147: return sval; case 148: return sval; case 149: return sval; case 150: return sval; case 151: return sval; case 152: return sval; case 153: return sval; case 154: return sval; case 155: return sval; case 156: return sval; case 157: return sval; case 158: return sval; case 159: return sval; case 160: return sval; case 161: return sval; case 162: return sval; case 163: return sval; case 164: return sval; case 165: return sval; case 166: return sval; case 167: return sval; case 168: return sval; case 169: return sval; case 170: return sval; case 171: return sval; case 172: return sval; case 173: return sval; default: return sval; } } void CCParse::deallocateTerminalValue(int termId, SemanticValue sval) { switch (termId) { case 0: break; case 1: break; case 2: break; case 3: break; case 9: break; case 10: break; case 11: break; case 12: break; case 13: break; case 14: break; case 15: break; case 16: break; case 17: break; case 18: break; case 19: break; case 20: break; case 21: break; case 22: break; case 23: break; case 24: break; case 25: break; case 26: break; case 27: break; case 28: break; case 29: break; case 30: break; case 31: break; case 32: break; case 33: break; case 34: break; case 35: break; case 36: break; case 37: break; case 38: break; case 39: break; case 40: break; case 41: break; case 42: break; case 43: break; case 44: break; case 45: break; case 46: break; case 47: break; case 48: break; case 49: break; case 50: break; case 51: break; case 52: break; case 53: break; case 54: break; case 55: break; case 56: break; case 57: break; case 58: break; case 59: break; case 60: break; case 61: break; case 62: break; case 63: break; case 64: break; case 65: break; case 66: break; case 67: break; case 68: break; case 69: break; case 70: break; case 71: break; case 72: break; case 73: break; case 74: break; case 75: break; case 76: break; case 77: break; case 78: break; case 79: break; case 80: break; case 81: break; case 82: break; case 83: break; case 84: break; case 85: break; case 86: break; case 87: break; case 88: break; case 89: break; case 90: break; case 91: break; case 92: break; case 93: break; case 94: break; case 95: break; case 96: break; case 97: break; case 98: break; case 99: break; case 100: break; case 101: break; case 102: break; case 103: break; case 104: break; case 105: break; case 106: break; case 107: break; case 108: break; case 109: break; case 110: break; case 111: break; case 112: break; case 113: break; case 114: break; case 115: break; case 116: break; case 117: break; case 118: break; case 119: break; case 120: break; case 121: break; case 122: break; case 123: break; case 124: break; case 125: break; case 126: break; case 127: break; case 128: break; case 129: break; case 130: break; case 131: break; case 132: break; case 133: break; case 134: break; case 135: break; case 136: break; case 137: break; case 138: break; case 139: break; case 140: break; case 141: break; case 142: break; case 143: break; case 144: break; case 145: break; case 146: break; case 147: break; case 148: break; case 149: break; case 150: break; case 151: break; case 152: break; case 153: break; case 154: break; case 155: break; case 156: break; case 157: break; case 158: break; case 159: break; case 160: break; case 161: break; case 162: break; case 163: break; case 164: break; case 165: break; case 166: break; case 167: break; case 168: break; case 169: break; case 170: break; case 171: break; case 172: break; case 173: break; default: break; } } /*static*/ int CCParse::reclassifyToken(CCParse *ths, int oldTokenType, SemanticValue sval) { switch (oldTokenType) { default: return oldTokenType; } } UserActions::ReclassifyFunc CCParse::getReclassifier() { return (ReclassifyFunc)&CCParse::reclassifyToken; } // this makes a ParseTables from some literal data; // the code is written by ParseTables::emitConstructionCode() // in parsetables.cc class CCParse_ParseTables : public ParseTables { public: CCParse_ParseTables(); }; CCParse_ParseTables::CCParse_ParseTables() : ParseTables(false /*owning*/) { numTerms = 174; numNonterms = 200; numStates = 1405; numProds = 752; actionCols = 174; actionRows = 1405; gotoCols = 200; gotoRows = 1405; ambigTableSize = 1022; startState = (StateId)0; finalProductionIndex = 0; bigProductionListSize = 0; errorBitsRowSize = 24; uniqueErrorRows = 0; // storage size: 488940 bytes // rows: 1405 cols: 174 static ActionEntry const actionTable_static[244470] = { /* 0*/ -4, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, -4, 0, 0, -4, 0, 0, 0, 0, 0, -4, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, -4, 0, 0, -4, -4, 0, 0, 0, -4, 0, -4, -4, -4, 0, 0, 0, -4, -4, -4, -4, -4, 0, -4, -4, 0, -4, -4, 0, -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, 0, -4, 0, 0, 0, -4, -4, 0, -4, -4, -4, 0, -4, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, -4, 0, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -4, -4, -4, /* 1*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 2*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -626, -626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 3*/ 0, 0, 0, 0, -3, -3, -3, -3, -3, 0, 0, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, 0, 0, 0, -3, -3, -3, 0, -3, -3, -3, 0, 0, -3, -3, 0, 0, 0, -3, 0, 0, -3, -3, 0, 0, 0, -3, -3, -3, -3, -3, 0, -3, -3, -3, -3, 0, 0, -3, 0, -3, -3, -3, 0, 0, 0, 0, -3, -3, 0, 0, -3, -3, -3, 0, 0, -3, -3, -3, 0, -3, -3, 0, 0, 0, -3, -3, -3, -3, -3, -3, -3, -3, -3, 0, -3, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -3, -3, 0, -3, -3, 0, -3, -3, -3, -3, -3, -3, 0, -3, 0, -3, 0, 0, 0, 0, -3, 0, 0, /* 4*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, -16, -16, -16, 0, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 0, 0, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 0, 0, 0, -16, -16, 0, 0, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 5*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, -15, -15, -15, 0, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 0, 0, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 0, 0, 0, -15, -15, 0, 0, -15, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 6*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, -18, -18, -18, 0, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 0, 0, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 0, 0, 0, -18, -18, 0, 0, -18, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 7*/ 0, 0, 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 1409, 0, 151, 0, 0, 0, 1412, 0, 0, 1415, 0, 0, 0, 0, 0, 227, 0, 0, 1418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1421, 0, 0, 0, 467, 0, 0, 477, 480, 0, 0, 0, 495, 0, 498, 500, 507, 0, 0, 0, 514, 523, 528, 533, 534, 0, 543, 548, 0, 553, 556, 0, 560, 562, 567, 571, 574, 0, 581, 582, 583, 584, 590, 0, 595, 0, 0, 0, 605, 606, 0, 612, 615, 618, 0, 1424, 0, 0, 0, 0, 0, 1427, 0, 0, 0, 0, 665, 0, 671, 677, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 698, 699, -739, /* 8*/ 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, -21, -21, -21, -21, 0, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 0, 0, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 0, 0, 0, -21, -21, -21, 0, -21, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 9*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, -174, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 482, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 536, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 576, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 10*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, -174, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 482, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 536, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 576, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 11*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, -174, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 12*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 13*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 14*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 15*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 16*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 17*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 18*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 19*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 21*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 22*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 23*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 66, 0, 156, 0, 0, 0, 180, 189, 0, 194, 0, 214, 216, 0, 222, 225, 229, 0, 235, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 467, 468, 470, 476, 479, 484, 486, 490, 494, 0, 498, 502, 506, 508, 510, 512, 517, 522, 527, 533, 534, 537, 542, 547, 549, 552, 556, 557, 560, 562, 566, 570, 573, 578, 581, 582, 583, 584, 589, 0, 595, 597, -92, 602, 605, 0, 609, 612, 615, 617, -92, 623, 0, 0, 0, 632, 634, 646, 653, 654, 658, 659, 664, 669, 671, 677, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 698, 699, 0, /* 24*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, -36, -36, -36, 0, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 0, 0, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 0, 0, 0, -36, -36, 0, 0, -36, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 25*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, -104, -104, -104, 0, -104, 0, -104, -104, -104, -104, -104, -104, -104, 0, -104, -104, 0, 0, -104, 0, 0, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, 0, 0, 0, -104, -104, 0, 0, -104, -104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 26*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -103, -103, -103, -103, 0, -103, 0, -103, -103, -103, -103, -103, -103, -103, 0, -103, -103, 0, 0, -103, 0, 0, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, 0, 0, 0, -103, -103, 0, 0, -103, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 27*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -359, 0, -359, -359, -359, 0, 0, -359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -359, 0, 0, 0, 0, 0, 0, 0, 0, 0, -359, -359, -359, 0, -359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 28*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -361, 0, -361, -361, -361, 0, 0, -361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -361, 0, 0, 0, 0, 0, 0, 0, 0, 0, -361, -361, -361, 0, -361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 29*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -388, 0, -388, -388, 0, 0, 0, -388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -388, 0, -388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -390, 0, -390, -390, 0, 0, 0, -390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -390, 0, -390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 31*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, 0, 0, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, -523, 0, 0, 0, -523, -523, -523, 0, -523, -523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 32*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, 0, 0, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, 0, 0, 0, -487, -487, -487, 0, -487, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 33*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, 0, 0, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, -486, 0, 0, 0, -486, -486, -486, 0, -486, -486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 34*/ 0, 0, 0, 0, 0, 0, 0, 0, -594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 35*/ 0, 0, 0, 0, -610, -610, -610, -610, -610, 0, 0, -610, 0, -610, 0, -610, 0, -610, 0, -610, -610, 0, -610, 0, -610, -610, 0, -610, 0, -610, 0, -610, -610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -610, 0, 0, 0, 0, 0, 0, 0, -610, 0, 0, 0, 0, 0, 0, -610, 0, 0, 0, 0, -610, 0, 0, 0, -610, 0, 0, 0, 0, -610, -610, 0, 0, 0, -610, -610, -610, 0, 0, 0, 0, 0, -610, -610, 0, 0, 0, 0, 0, 0, -610, 0, 0, -610, -610, -610, 0, 0, -610, 0, 0, 0, -610, -610, 0, 0, 0, -610, -610, -610, -610, -610, -610, 0, -610, -610, 0, 0, -610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -610, -610, 0, 0, -610, -610, 0, -610, -610, -610, -610, -610, -610, 0, -610, 0, -610, 0, 0, 0, 0, 0, 0, 0, /* 36*/ 0, 0, 0, 0, -611, -611, -611, -611, -611, 0, 0, -611, 0, -611, 0, -611, 0, -611, 0, -611, -611, 0, -611, 0, -611, -611, 0, -611, 0, -611, 0, -611, -611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -611, 0, 0, 0, 0, 0, 0, 0, -611, 0, 0, 0, 0, 0, 0, -611, 0, 0, 0, 0, -611, 0, 0, 0, -611, 0, 0, 0, 0, -611, -611, 0, 0, 0, -611, -611, -611, 0, 0, 0, 0, 0, -611, -611, 0, 0, 0, 0, 0, 0, -611, 0, 0, -611, -611, -611, 0, 0, -611, 0, 0, 0, -611, -611, 0, 0, 0, -611, -611, -611, -611, -611, -611, 0, -611, -611, 0, 0, -611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -611, -611, 0, 0, -611, -611, 0, -611, -611, -611, -611, -611, -611, 0, -611, 0, -611, 0, 0, 0, 0, 0, 0, 0, /* 37*/ 0, 0, 0, 0, -716, 0, 0, 0, 0, 0, 0, -716, 0, -716, -716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -716, 0, 0, 0, -716, 0, 0, -716, -716, 0, 0, 0, -716, 0, -716, -716, -716, 0, 0, 0, -716, -716, -716, -716, -716, 0, -716, -716, 0, -716, -716, 0, -716, -716, -716, -716, -716, 0, -716, -716, -716, 0, -716, 0, -716, 0, 0, 0, 0, 0, 0, -716, -716, 0, 0, -716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -716, 0, 0, -716, -716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -716, 0, 0, -716, 0, 0, /* 38*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 156, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 39*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 156, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 40*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 156, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 41*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 467, 0, 0, 476, 479, 0, 0, 0, 494, 0, 498, 502, 506, 0, 0, 0, 516, 522, 527, 533, 534, 0, 542, 547, 549, 552, 556, 0, 560, 562, 566, 570, 573, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 611, 615, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 676, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 698, 699, 0, /* 42*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 43*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 44*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 45*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 46*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 47*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 48*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, -76, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 49*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, -76, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 50*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, -76, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 51*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 52*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 53*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, -690, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 54*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 55*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 56*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 57*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 58*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 59*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 60*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 61*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 62*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 63*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 64*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 65*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 66, 0, 156, 0, 0, 0, 180, 189, 0, 194, 0, 214, 216, 0, 222, 0, 229, 0, 235, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 646, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 66*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 185, 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 67*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, -385, 0, 1430, 0, 0, 0, 0, 0, 183, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 68*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 72, -393, 0, 0, 0, 179, 185, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 529, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 665, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 69*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 72, -393, 0, 0, 0, 179, 185, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 529, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 665, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 70*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 72, -393, 0, 0, 0, 179, 185, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 529, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 665, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 71*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 185, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 72*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, -385, 0, 1433, 0, 0, 0, 0, 0, 184, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 73*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 74*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 0, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 665, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 75*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 0, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 665, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 76*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 0, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 665, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 77*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 0, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 665, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 78*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 79*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80*/ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, -693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 466, 469, 473, 475, 478, 485, 489, 491, 493, 497, 499, 501, 505, 509, 511, 513, 515, 521, 526, 532, 0, 538, 541, 546, 550, 551, 555, 558, 559, 561, 565, 569, 572, 580, 0, 0, 0, 586, 588, 592, 594, 598, 601, 603, 604, 607, 608, 610, 614, 619, 622, 625, 626, 628, 630, 633, 635, 651, 652, 656, 657, 663, 668, 670, 673, 675, 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 81*/ 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 82*/ 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 83*/ 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 84*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 85*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 86*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 145, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 87*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 88*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 66, 0, 156, 0, 0, 0, 180, 189, 0, 194, 0, 214, 216, 0, 222, 225, 229, 0, 235, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 467, 468, 470, 476, 479, 484, 486, 490, 494, 0, 498, 502, 506, 508, 510, 512, 517, 522, 527, 533, 534, 537, 542, 547, 549, 552, 556, 557, 560, 562, 566, 570, 573, 578, 581, 582, 583, 584, 589, 0, 595, 597, -92, 602, 605, 0, 609, 612, 615, 617, -92, 623, 0, 0, 0, 632, 634, 646, 653, 654, 658, 659, 664, 669, 671, 677, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 698, 699, 0, /* 89*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 66, 0, 156, 0, 0, 0, 180, 189, 0, 194, 0, 214, 216, 0, 222, 225, 229, 0, 235, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 467, 468, 470, 476, 479, 484, 486, 490, 494, 0, 498, 502, 506, 508, 510, 512, 517, 522, 527, 533, 534, 537, 542, 547, 549, 552, 556, 557, 560, 562, 566, 570, 573, 578, 581, 582, 583, 584, 589, 0, 595, 597, -92, 602, 605, 0, 609, 612, 615, 617, -92, 623, 0, 0, 0, 632, 634, 646, 653, 654, 658, 659, 664, 669, 671, 677, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 698, 699, 0, /* 90*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 66, 0, 156, 0, 0, 0, 180, 189, 0, 194, 0, 214, 216, 0, 222, 225, 229, 0, 235, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 467, 468, 470, 476, 479, 484, 486, 490, 494, 0, 498, 502, 506, 508, 510, 512, 517, 522, 527, 533, 534, 537, 542, 547, 549, 552, 556, 557, 560, 562, 566, 570, 573, 578, 581, 582, 583, 584, 589, 0, 595, 597, -92, 602, 605, 0, 609, 612, 615, 617, -92, 623, 0, 0, 0, 632, 634, 646, 653, 654, 658, 659, 664, 669, 671, 677, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 698, 699, 0, /* 91*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 66, 0, 156, 0, 0, 0, 180, 189, 0, 194, 0, 214, 216, 0, 222, 225, 229, 0, 235, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 467, 468, 470, 476, 479, 484, 486, 490, 494, 0, 498, 502, 506, 508, 510, 512, 517, 522, 527, 533, 534, 537, 542, 547, 549, 552, 556, 557, 560, 562, 566, 570, 573, 578, 581, 582, 583, 584, 589, 0, 595, 597, -92, 602, 605, 0, 609, 612, 615, 617, -92, 623, 0, 0, 0, 632, 634, 646, 653, 654, 658, 659, 664, 669, 671, 677, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 698, 699, 0, /* 92*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 50, -105, 0, -105, 0, -105, -105, -105, -105, -105, -105, -105, 0, -105, -105, 0, 0, -105, 0, 0, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, 0, 0, 0, -105, -105, 0, 0, -105, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 93*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 94*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 95*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 96*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 97*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 98*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89, 0, -89, 145, -89, 0, -89, -89, -89, -89, -89, -89, -89, 0, -89, -89, 0, 0, -89, 0, 0, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, 0, 0, 0, -89, -89, 0, 0, -89, -89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 99*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 100*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 101*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 102*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 103*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 104*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, -369, -369, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 105*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, -369, -369, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, -369, -369, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 106*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -352, -352, -352, 0, 0, -352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -352, 0, 0, 0, 0, 0, 0, 0, 0, 0, -352, -352, -352, 0, -352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 107*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -335, 0, 0, -335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 108*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 109*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -596, 0, 0, 0, -596, 0, 0, 0, 0, 0, -596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 110*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 111*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -106, 0, -106, 0, -106, 0, -106, -106, -106, -106, -106, -106, -106, 0, -106, -106, 0, 0, -106, 0, 0, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, 0, 0, 0, -106, -106, 0, 0, -106, -106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 112*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, -9, -9, -9, 0, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, 0, 0, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, 0, 0, 0, -9, -9, 0, 0, -9, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 113*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, -11, -11, -11, 0, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 0, 0, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 0, 0, 0, -11, -11, 0, 0, -11, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 114*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, -34, -34, -34, 0, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 0, 0, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 0, 0, 0, -34, -34, 0, 0, -34, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 115*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -44, -44, -44, 0, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, 0, 0, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, 0, 0, 0, -44, -44, 0, 0, -44, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 116*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, -45, -45, -45, 0, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, 0, 0, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, 0, 0, 0, -45, -45, 0, 0, -45, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 117*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, -46, -46, -46, 0, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 0, 0, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 0, 0, 0, -46, -46, 0, 0, -46, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 118*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, -49, -49, -49, 0, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 0, 0, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 0, 0, 0, -49, -49, 0, 0, -49, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 119*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, -48, -48, -48, 0, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 0, 0, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 0, 0, 0, -48, -48, 0, 0, -48, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 120*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, -51, -51, -51, 0, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, 0, 0, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, 0, 0, 0, -51, -51, 0, 0, -51, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 121*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, -50, -50, -50, 0, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, 0, 0, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, 0, 0, 0, -50, -50, 0, 0, -50, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 122*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, -53, -53, -53, 0, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 0, 0, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 0, 0, 0, -53, -53, 0, 0, -53, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 123*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, -54, -54, -54, 0, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 0, 0, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 0, 0, 0, -54, -54, 0, 0, -54, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 124*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, -55, -55, -55, 0, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 0, 0, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 0, 0, 0, -55, -55, 0, 0, -55, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 125*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, -56, -56, -56, 0, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 0, 0, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 0, 0, 0, -56, -56, 0, 0, -56, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 126*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, -57, -57, -57, 0, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 0, 0, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 0, 0, 0, -57, -57, 0, 0, -57, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 127*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, -52, -52, -52, 0, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, 0, 0, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, 0, 0, 0, -52, -52, 0, 0, -52, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 128*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, 0, -360, -360, -360, 0, 0, -360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, -360, -360, 0, -360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 129*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, 0, -362, -362, -362, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, -362, -362, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 130*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -389, 0, -389, -389, 0, 0, 0, -389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -389, 0, -389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 131*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -391, 0, -391, -391, 0, 0, 0, -391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -391, 0, -391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 132*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, 0, 0, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, -524, 0, 0, 0, -524, -524, -524, 0, -524, -524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 133*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -571, 0, -571, -571, -571, 0, 0, -571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -571, 0, 0, 0, 0, 0, 0, 0, 0, 0, -571, -571, -571, 0, -571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 134*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -570, 0, -570, -570, -570, 0, 0, -570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -570, 0, 0, 0, 0, 0, 0, 0, 0, 0, -570, -570, -570, 0, -570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 135*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -582, -582, -582, -582, 0, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, 0, 0, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, -582, 0, 0, 0, -582, -582, 0, 0, -582, -582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 136*/ 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, -97, -97, 0, 0, 0, -97, 0, -97, 0, -97, 0, 0, 0, 0, -97, -97, 0, -97, 0, -97, -97, 0, 0, -97, 0, 0, -97, -97, -97, -97, 0, -97, -97, -97, 0, -97, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, /* 137*/ 0, 0, 0, 0, -591, 0, 0, 0, 0, 0, 0, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, 0, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, -591, 0, 0, 0, -591, -591, -591, 0, -591, -591, -591, 0, 0, 0, -591, 0, 0, 0, 0, 0, 0, -591, 0, 0, 0, 0, -591, 0, 0, -591, -591, 0, 0, 0, 0, -591, 0, 0, -591, 0, 0, 0, -591, 0, 0, 0, 0, -591, 0, 0, 0, 0, 0, 0, 0, 0, 0, -591, -591, 0, 0, -591, 0, 0, 0, 0, 0, -591, 0, 0, 0, -591, 0, 0, 0, -591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -591, 0, 0, /* 138*/ 0, 0, 0, 0, -592, 0, 0, 0, 0, 0, 0, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, 0, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, -592, 0, 0, 0, -592, -592, -592, 0, -592, -592, -592, 0, 0, 0, -592, 0, 0, 0, 0, 0, 0, -592, 0, 0, 0, 0, -592, 0, 0, -592, -592, 0, 0, 0, 0, -592, 0, 0, -592, 0, 0, 0, -592, 0, 0, 0, 0, -592, 0, 0, 0, 0, 0, 0, 0, 0, 0, -592, -592, 0, 0, -592, 0, 0, 0, 0, 0, -592, 0, 0, 0, -592, 0, 0, 0, -592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -592, 0, 0, /* 139*/ 0, 0, 0, 0, -698, -698, -698, -698, -698, 0, 0, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, 0, 0, 0, -698, -698, -698, 0, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, 0, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, 0, -698, -698, -698, -698, -698, 0, -698, -698, -698, -698, -698, -698, 0, 0, 0, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -698, -698, -698, 0, -698, -698, 0, -698, -698, -698, -698, -698, -698, 0, -698, 0, -698, 0, -698, 0, 0, -698, -698, 0, /* 140*/ 0, 0, 0, 0, -715, 0, 0, 0, 0, 0, 0, -715, 0, -715, -715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -715, 0, 0, 0, -715, 0, 0, -715, -715, 0, 0, 0, -715, 0, -715, -715, -715, 0, 0, 0, -715, -715, -715, -715, -715, 0, -715, -715, 0, -715, -715, 0, -715, -715, -715, -715, -715, 0, -715, -715, -715, 0, -715, 0, -715, 0, 0, 0, 0, 0, 0, -715, -715, 0, 0, -715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -715, 0, 0, -715, -715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -715, 0, 0, -715, 0, 0, /* 141*/ 0, 0, 0, 0, -713, 0, 0, 0, 0, 0, 0, -713, 0, -713, -713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -713, 0, 0, 0, -713, 0, 0, -713, -713, 0, 0, 0, -713, 0, -713, -713, -713, 0, 0, 0, -713, -713, -713, -713, -713, 0, -713, -713, 0, -713, -713, 0, -713, -713, -713, -713, -713, 0, -713, -713, -713, 0, -713, 0, -713, 0, 0, 0, 0, 0, 0, -713, -713, 0, 0, -713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -713, 0, 0, -713, -713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -713, 0, 0, -713, 0, 0, /* 142*/ 0, 0, 0, 0, -717, 0, 0, 0, 0, 0, 0, -717, 0, -717, -717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -717, 0, 0, 0, -717, 0, 0, -717, -717, 0, 0, 0, -717, 0, -717, -717, -717, 0, 0, 0, -717, -717, -717, -717, -717, 0, -717, -717, 0, -717, -717, 0, -717, -717, -717, -717, -717, 0, -717, -717, -717, 0, -717, 0, -717, 0, 0, 0, 0, 0, 0, -717, -717, 0, 0, -717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -717, 0, 0, -717, -717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -717, 0, 0, -717, 0, 0, /* 143*/ 0, 0, 0, 0, -714, 0, 0, 0, 0, 0, 0, -714, 0, -714, -714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -714, 0, 0, 0, -714, 0, 0, -714, -714, 0, 0, 0, -714, 0, -714, -714, -714, 0, 0, 0, -714, -714, -714, -714, -714, 0, -714, -714, 0, -714, -714, 0, -714, -714, -714, -714, -714, 0, -714, -714, -714, 0, -714, 0, -714, 0, 0, 0, 0, 0, 0, -714, -714, 0, 0, -714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -714, 0, 0, -714, -714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -714, 0, 0, -714, 0, 0, /* 144*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 13, 0, 41, 0, 145, 159, 173, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 145*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 146*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 147*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 148*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 149*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 472, 0, 0, 0, 488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -739, /* 150*/ 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -4, 0, 0, -4, 0, 0, -4, 0, 0, 0, 0, 0, -4, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, -4, 0, 0, -4, -4, 0, 0, 0, -4, 0, -4, -4, -4, 0, 0, 0, -4, -4, -4, -4, -4, 0, -4, -4, 0, -4, -4, 0, -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, 0, -4, 0, 0, 0, -4, -4, 0, -4, -4, -4, 0, -4, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, -4, 0, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -4, -4, -4, /* 151*/ 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -4, 0, 0, -4, 0, 0, -4, 0, 0, 0, 0, 0, -4, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, -4, 0, 0, -4, -4, 0, 0, 0, -4, 0, -4, -4, -4, 0, 0, 0, -4, -4, -4, -4, -4, 0, -4, -4, 0, -4, -4, 0, -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, 0, -4, 0, 0, 0, -4, -4, 0, -4, -4, -4, 0, -4, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, -4, 0, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -4, -4, -4, /* 152*/ 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -4, 0, 0, -4, 0, 0, -4, 0, 0, 0, 0, 0, -4, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, -4, 0, 0, -4, -4, 0, 0, 0, -4, 0, -4, -4, -4, 0, 0, 0, -4, -4, -4, -4, -4, 0, -4, -4, 0, -4, -4, 0, -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, 0, -4, 0, 0, 0, -4, -4, 0, -4, -4, -4, 0, -4, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, -4, 0, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -4, -4, -4, /* 153*/ 0, 0, 0, 0, -429, 0, 0, 0, 0, 0, 0, 0, 0, -429, 0, 0, -429, 0, 0, -429, 0, 0, -429, 0, 0, 0, 0, 0, -429, 0, 0, -429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -429, -429, 0, 0, 0, 0, 0, 0, 0, 0, -429, 0, 0, 0, -429, 0, 0, -429, -429, 0, 0, 0, -429, 0, -429, -429, -429, 0, 0, 0, -429, -429, -429, -429, -429, 0, -429, -429, 0, -429, -429, 0, -429, -429, -429, -429, -429, 0, -429, -429, -429, 0, -429, 0, -429, 0, 0, 0, -429, -429, 0, -429, -429, 0, 0, -429, -429, -429, -429, 0, 0, -429, 0, 0, 0, 0, -429, 0, -429, -429, -429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -429, 0, 0, -429, 0, -429, /* 154*/ 0, 0, 0, 0, -429, 0, 0, 0, 0, 0, 0, 0, 0, -429, 0, 0, -429, 0, 0, -429, 0, 0, -429, 0, 0, 0, 0, 0, -429, 0, 0, -429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -429, -429, 0, 0, 0, 0, 0, 0, 0, 0, -429, 0, 0, 0, -429, 0, 0, -429, -429, 0, 0, 0, -429, 0, -429, -429, -429, 0, 0, 0, -429, -429, -429, -429, -429, 0, -429, -429, 0, -429, -429, 0, -429, -429, -429, -429, -429, 0, -429, -429, -429, 0, -429, 0, -429, 0, 0, 0, -429, -429, 0, -429, -429, 0, 0, -429, -429, -429, -429, 0, 0, -429, 0, 0, 0, 0, -429, 0, -429, -429, -429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -429, 0, 0, -429, 0, -429, /* 155*/ 0, 0, 0, 0, -208, -208, -208, -208, -208, 0, 0, 0, 0, -208, 0, -208, -208, 0, 0, -208, -208, 0, -208, 0, -208, -208, 0, -208, -208, -208, 0, -208, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, 0, 0, 0, 0, 0, 0, 0, 0, -208, 0, 0, 0, -208, -208, -208, -208, -208, -208, -208, -208, -208, 0, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, 0, -208, -208, -208, -208, -208, 0, -208, -208, -208, -208, -208, -208, 0, 0, 0, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, -208, -208, 0, -208, -208, 0, -208, -208, -208, -208, -208, -208, 0, -208, 0, -208, 0, -208, 0, 0, -208, -208, 0, /* 156*/ -741, 0, 0, 0, -741, 0, 0, 0, 0, 0, 0, 0, 0, -741, 0, 0, -741, 0, 0, -741, 190, 0, -741, 0, 0, 0, 0, 0, -741, 0, 0, -741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -741, -741, 0, 0, 0, 0, 0, 0, 0, -741, -741, 0, 0, 0, -741, 0, -741, -741, -741, 0, -741, 0, -741, 0, -741, -741, -741, 0, 0, 0, -741, -741, -741, -741, -741, 0, -741, -741, 0, -741, -741, 0, -741, -741, -741, -741, -741, 0, -741, -741, -741, -741, -741, 0, -741, 0, 0, 0, -741, -741, 0, -741, -741, -741, 0, -741, -741, -741, -741, 0, 0, -741, 0, 0, 0, 0, -741, 0, -741, -741, -741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -741, 0, 0, -741, -741, -741, /* 157*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -342, -342, -342, -342, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 0, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 0, 0, 0, -342, -342, 0, 0, -342, -342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 158*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -343, -343, -343, -343, 0, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, 0, 0, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, 0, 0, 0, -343, -343, 0, 0, -343, -343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 159*/ 0, 0, 0, 0, -315, 0, 0, 0, 0, 0, 0, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, 0, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, 0, 0, 0, -315, -315, -315, 0, -315, -315, -315, 0, 0, 0, -315, 0, 0, 0, 0, 0, 0, -315, 0, 0, 0, 0, -315, 0, 0, -315, -315, 0, 0, 0, 0, -315, 0, 0, -315, 0, 0, 0, -315, 0, 0, 0, 0, -315, 0, 0, 0, 0, 0, 0, 0, 0, 0, -315, -315, 0, 0, -315, 0, 0, 0, 0, 0, -315, 0, 0, 0, -315, 0, 0, 0, -315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -315, 0, 0, /* 160*/ 0, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, 0, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, 0, 0, 0, -317, -317, -317, 0, -317, -317, -317, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, -317, 0, 0, 0, 0, -317, 0, 0, -317, -317, 0, 0, 0, 0, -317, 0, 0, -317, 0, 0, 0, -317, 0, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, 0, 0, 0, -317, -317, 0, 0, -317, 0, 0, 0, 0, 0, -317, 0, 0, 0, -317, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -317, 0, 0, /* 161*/ 0, 0, 0, 0, -316, 0, 0, 0, 0, 0, 0, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, 0, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, 0, 0, 0, -316, -316, -316, 0, -316, -316, -316, 0, 0, 0, -316, 0, 0, 0, 0, 0, 0, -316, 0, 0, 0, 0, -316, 0, 0, -316, -316, 0, 0, 0, 0, -316, 0, 0, -316, 0, 0, 0, -316, 0, 0, 0, 0, -316, 0, 0, 0, 0, 0, 0, 0, 0, 0, -316, -316, 0, 0, -316, 0, 0, 0, 0, 0, -316, 0, 0, 0, -316, 0, 0, 0, -316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -316, 0, 0, /* 162*/ 0, 0, 0, 0, -314, 0, 0, 0, 0, 0, 0, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, 0, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, 0, 0, 0, -314, -314, -314, 0, -314, -314, -314, 0, 0, 0, -314, 0, 0, 0, 0, 0, 0, -314, 0, 0, 0, 0, -314, 0, 0, -314, -314, 0, 0, 0, 0, -314, 0, 0, -314, 0, 0, 0, -314, 0, 0, 0, 0, -314, 0, 0, 0, 0, 0, 0, 0, 0, 0, -314, -314, 0, 0, -314, 0, 0, 0, 0, 0, -314, 0, 0, 0, -314, 0, 0, 0, -314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -314, 0, 0, /* 163*/ 0, 0, 0, 0, -417, 0, 0, 0, 0, 0, 0, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, 0, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, 0, 0, 0, -417, -417, -417, 0, -417, -417, -417, 0, 0, 0, -417, 0, 0, 0, 0, 0, 0, -417, 0, 0, 0, 0, -417, 0, 0, -417, -417, 0, 0, 0, 0, -417, 0, 0, -417, 0, 0, 0, -417, 0, 0, 0, 0, -417, 0, 0, 0, 0, 0, 0, 0, 0, 0, -417, -417, 0, 0, -417, 0, 0, 0, 0, 0, -417, 0, 0, 0, -417, 0, 0, 0, -417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -417, 0, 0, /* 164*/ 0, 0, 0, 0, -418, 0, 0, 0, 0, 0, 0, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, 0, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, 0, 0, 0, -418, -418, -418, 0, -418, -418, -418, 0, 0, 0, -418, 0, 0, 0, 0, 0, 0, -418, 0, 0, 0, 0, -418, 0, 0, -418, -418, 0, 0, 0, 0, -418, 0, 0, -418, 0, 0, 0, -418, 0, 0, 0, 0, -418, 0, 0, 0, 0, 0, 0, 0, 0, 0, -418, -418, 0, 0, -418, 0, 0, 0, 0, 0, -418, 0, 0, 0, -418, 0, 0, 0, -418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -418, 0, 0, /* 165*/ -207, 0, 0, 0, -207, -207, -207, -207, -207, 0, 0, 0, 0, -207, -207, -207, -207, 0, 0, -207, -207, 0, -207, 0, -207, -207, 0, -207, -207, -207, 0, -207, -207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -207, -207, 0, 0, 0, 0, 0, 0, 0, -207, -207, 0, 0, 0, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -207, -207, -207, 0, -207, -207, 0, -207, -207, -207, -207, -207, -207, 0, -207, 0, -207, 0, -207, 0, 0, -207, -207, -207, /* 166*/ -206, 0, 0, 0, -206, -206, -206, -206, -206, 0, 0, 0, 0, -206, -206, -206, -206, 0, 0, -206, -206, 0, -206, 0, -206, -206, 0, -206, -206, -206, 0, -206, -206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -206, -206, 0, 0, 0, 0, 0, 0, 0, -206, -206, 0, 0, 0, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -206, -206, -206, 0, -206, -206, 0, -206, -206, -206, -206, -206, -206, 0, -206, 0, -206, 0, -206, 0, 0, -206, -206, -206, /* 167*/ -327, 0, 0, 0, -327, 0, 0, 0, 0, 0, 0, 0, 0, -327, 0, 0, -327, 0, 0, -327, 0, 0, -327, 0, 0, 0, 0, 0, -327, 0, 0, -327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -327, 0, 0, 0, 0, 0, 0, 0, 0, -327, 0, 0, 0, -327, 0, 0, -327, -327, 0, 0, 0, -327, 0, -327, -327, -327, 0, 0, 0, -327, -327, -327, -327, -327, 0, -327, -327, 0, -327, -327, 0, -327, -327, -327, -327, -327, 0, -327, -327, -327, -327, -327, 0, -327, 0, 0, 0, -327, -327, 0, -327, -327, -327, 0, -327, 0, 0, 0, 0, 0, -327, 0, 0, 0, 0, -327, 0, -327, -327, -327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -327, 0, 0, -327, -327, -327, /* 168*/ -575, 0, 0, 0, -575, 0, 0, 0, 0, 0, 0, 0, 0, -575, 0, 0, -575, 0, 0, -575, 0, 0, -575, 0, 0, 0, 0, 0, -575, 0, 0, -575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -575, 0, 0, 0, 0, 0, 0, 0, 0, -575, 0, 0, 0, -575, 0, 0, -575, -575, 0, 0, 0, -575, 0, -575, -575, -575, 0, 0, 0, -575, -575, -575, -575, -575, 0, -575, -575, 0, -575, -575, 0, -575, -575, -575, -575, -575, 0, -575, -575, -575, -575, -575, 0, -575, 0, 0, 0, -575, -575, 0, -575, -575, -575, 0, -575, 0, 0, 0, 0, 0, -575, 0, 0, 0, 0, -575, 0, -575, -575, -575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -575, 0, 0, -575, -575, -575, /* 169*/ -574, 0, 0, 0, -574, 0, 0, 0, 0, 0, 0, 0, 0, -574, 0, 0, -574, 0, 0, -574, 0, 0, -574, 0, 0, 0, 0, 0, -574, 0, 0, -574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -574, 0, 0, 0, 0, 0, 0, 0, 0, -574, 0, 0, 0, -574, 0, 0, -574, -574, 0, 0, 0, -574, 0, -574, -574, -574, 0, 0, 0, -574, -574, -574, -574, -574, 0, -574, -574, 0, -574, -574, 0, -574, -574, -574, -574, -574, 0, -574, -574, -574, -574, -574, 0, -574, 0, 0, 0, -574, -574, 0, -574, -574, -574, 0, -574, 0, 0, 0, 0, 0, -574, 0, 0, 0, 0, -574, 0, -574, -574, -574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -574, 0, 0, -574, -574, -574, /* 170*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 171*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 172*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 173*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 174*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 175*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 176*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 177*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 178*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 179*/ 0, 0, 0, 0, 1436, 5, 6, 7, 9, 0, 0, 0, 0, 1439, 0, 0, 0, 0, 0, 1442, 189, 0, 1445, 0, 214, 216, 0, 222, 0, 229, 0, 1448, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1451, 0, 0, 0, 0, 0, 0, 474, 482, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 536, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 576, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 1454, 0, 0, 0, 632, 634, 1457, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 180*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 181*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 182*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, 0, -369, -369, 0, 0, 0, 0, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 183*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, 0, -369, -369, 0, 0, 0, -369, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 184*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 185*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 0, 0, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 0, 0, 0, -369, -369, -369, 0, -369, -369, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 186*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, 0, 0, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, -499, 0, 0, 0, -499, -499, -499, 0, -499, -499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 187*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 188*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 189*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 190*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, 0, 0, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, -519, 0, 0, 0, -519, -519, -519, 0, -519, -519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 191*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, 0, 0, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, 0, 0, 0, -510, -510, -510, 0, -510, -510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 192*/ 0, 0, 0, 0, -165, -165, -165, -165, -165, 0, 0, 0, 0, -165, 0, 0, 0, 0, 0, -165, -165, 0, -165, 0, -165, -165, 0, -165, 0, -165, 0, -165, -165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -165, 0, 0, 0, 0, 0, 0, -165, 0, 0, 0, 0, -165, 0, 0, 0, -165, 0, 0, 0, 0, -165, -165, 0, 0, 0, -165, -165, -165, 0, 0, 0, 0, 0, -165, -165, 0, 0, 0, 0, 0, 0, -165, 0, 0, -165, -165, -165, 0, 0, -165, 0, 0, 0, -165, -165, 0, 0, 0, -165, -165, -165, -165, -165, -165, 0, -165, -165, 0, 0, -165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -165, -165, 0, 0, -165, -165, 0, -165, -165, -165, -165, -165, -165, 0, -165, 0, -165, 0, 0, 0, 0, 0, 0, 0, /* 193*/ 0, 0, 0, 0, 1460, 5, 6, 7, 9, 0, 0, 0, 0, 1463, 0, 0, 0, 0, 0, 1466, 189, 0, 1469, 0, 214, 216, 0, 222, 0, 229, 0, 1472, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1475, 0, 0, 0, 0, 0, 0, 474, 482, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 536, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 576, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 1478, 0, 0, 0, 632, 634, 1481, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, -369, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 194*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 195*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 196*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 197*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 0, 0, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 0, 0, 0, -369, -369, -369, 0, -369, -369, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 198*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, 0, -369, -369, 0, 0, 0, 0, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 199*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, 0, -369, -369, 0, 0, 0, 0, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 200*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, 0, -369, -369, 0, 0, 0, -369, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 201*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, 0, -369, -369, 0, 0, 0, -369, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 202*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 203*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, -369, -369, -369, 0, -369, 0, -369, -369, -369, -369, -369, -369, -369, 0, -369, -369, 0, 0, -369, 0, 0, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 0, 0, 0, -369, -369, -369, 0, -369, -369, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 204*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, -369, -369, -369, 0, -369, 0, -369, -369, -369, -369, -369, -369, -369, 0, -369, -369, 0, 0, -369, 0, 0, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 0, 0, 0, -369, -369, -369, 0, -369, -369, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 205*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 0, 0, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 0, 0, 0, -369, -369, -369, 0, -369, -369, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 206*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 207*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 208*/ 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 209*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, 0, 0, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, -494, 0, 0, 0, -494, -494, -494, 0, -494, -494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 210*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, 0, 0, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, -505, 0, 0, 0, -505, -505, -505, 0, -505, -505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 211*/ 0, 0, 0, 0, -158, -158, -158, -158, -158, 0, 0, 0, 0, -158, 0, 0, 0, 0, 0, -158, -158, 0, -158, 0, -158, -158, 0, -158, 0, -158, 0, -158, -158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, -158, 0, 0, 0, 0, -158, 0, 0, 0, -158, 0, 0, 0, 0, -158, -158, 0, 0, 0, -158, -158, -158, 0, 0, 0, 0, 0, -158, -158, 0, 0, 0, 0, 0, 0, -158, 0, 0, -158, -158, -158, 0, 0, -158, 0, 0, 0, -158, -158, 0, 0, 0, -158, -158, -158, -158, -158, -158, 0, -158, -158, 0, 0, -158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -158, -158, 0, 0, -158, -158, 0, -158, -158, -158, -158, -158, -158, 0, -158, 0, -158, 0, 0, 0, 0, 0, 0, 0, /* 212*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 213*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 214*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, 0, 0, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, -492, 0, 0, 0, -492, -492, -492, 0, -492, -492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 215*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 216*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, -42, -42, -42, 0, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, 0, 0, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, 0, 0, 0, -42, -42, 0, 0, -42, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 217*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, 0, 0, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, 0, 0, 0, -490, -490, -490, 0, -490, -490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 218*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, 0, 0, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, 0, 0, 0, -503, -503, -503, 0, -503, -503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 219*/ 0, 0, 0, 0, -161, -161, -161, -161, -161, 0, 0, 0, 0, -161, 0, 0, 0, 0, 0, -161, -161, 0, -161, 0, -161, -161, 0, -161, 0, -161, 0, -161, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 0, 0, 0, 0, 0, 0, -161, 0, 0, 0, 0, -161, 0, 0, 0, -161, 0, 0, 0, 0, -161, -161, 0, 0, 0, -161, -161, -161, 0, 0, 0, 0, 0, -161, -161, 0, 0, 0, 0, 0, 0, -161, 0, 0, -161, -161, -161, 0, 0, -161, 0, 0, 0, -161, -161, 0, 0, 0, -161, -161, -161, -161, -161, -161, 0, -161, -161, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, -161, 0, 0, -161, -161, 0, -161, -161, -161, -161, -161, -161, 0, -161, 0, -161, 0, 0, 0, 0, 0, 0, 0, /* 220*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 221*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 222*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, 0, 0, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, 0, 0, 0, -493, -493, -493, 0, -493, -493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 223*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 17, 0, 66, 0, 156, 0, 0, 0, 180, 189, 0, 194, 0, 214, 216, 0, 222, 225, 229, 0, 235, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 467, 468, 470, 476, 479, 484, 486, 490, 494, 0, 498, 502, 506, 508, 510, 512, 517, 522, 527, 533, 534, 537, 542, 547, 549, 552, 556, 557, 560, 562, 566, 570, 573, 578, 581, 582, 583, 584, 589, 0, 595, 597, -92, 602, 605, 0, 609, 612, 615, 617, -92, 623, 0, 0, 0, 632, 634, 646, 653, 654, 658, 659, 664, 669, 671, 677, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 698, 699, -740, /* 224*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 185, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 225*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 226*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -740, /* 227*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, 0, 0, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, -521, 0, 0, 0, -521, -521, -521, 0, -521, -521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 228*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 229*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, -43, -43, -43, 0, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 0, 0, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 0, 0, 0, -43, -43, 0, 0, -43, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 230*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, 0, 0, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, -491, 0, 0, 0, -491, -491, -491, 0, -491, -491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 231*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, 0, 0, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, 0, 0, 0, -504, -504, -504, 0, -504, -504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 232*/ 0, 0, 0, 0, -162, -162, -162, -162, -162, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, -162, -162, 0, -162, 0, -162, -162, 0, -162, 0, -162, 0, -162, -162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, -162, 0, 0, 0, -162, 0, 0, 0, 0, -162, -162, 0, 0, 0, -162, -162, -162, 0, 0, 0, 0, 0, -162, -162, 0, 0, 0, 0, 0, 0, -162, 0, 0, -162, -162, -162, 0, 0, -162, 0, 0, 0, -162, -162, 0, 0, 0, -162, -162, -162, -162, -162, -162, 0, -162, -162, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -162, -162, 0, 0, -162, -162, 0, -162, -162, -162, -162, -162, -162, 0, -162, 0, -162, 0, 0, 0, 0, 0, 0, 0, /* 233*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 234*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 235*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 236*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 237*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, 0, 0, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, -489, 0, 0, 0, -489, -489, -489, 0, -489, -489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 238*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 239*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, 0, 0, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, -488, 0, 0, 0, -488, -488, -488, 0, -488, -488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 240*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 241*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, 0, 0, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, -514, 0, 0, 0, -514, -514, -514, 0, -514, -514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 242*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 243*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, 0, 0, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, 0, 0, 0, -495, -495, -495, 0, -495, -495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 244*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, 0, 0, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, 0, 0, 0, -506, -506, -506, 0, -506, -506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 245*/ 0, 0, 0, 0, -159, -159, -159, -159, -159, 0, 0, 0, 0, -159, 0, 0, 0, 0, 0, -159, -159, 0, -159, 0, -159, -159, 0, -159, 0, -159, 0, -159, -159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0, 0, -159, 0, 0, 0, -159, 0, 0, 0, 0, -159, -159, 0, 0, 0, -159, -159, -159, 0, 0, 0, 0, 0, -159, -159, 0, 0, 0, 0, 0, 0, -159, 0, 0, -159, -159, -159, 0, 0, -159, 0, 0, 0, -159, -159, 0, 0, 0, -159, -159, -159, -159, -159, -159, 0, -159, -159, 0, 0, -159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, -159, 0, 0, -159, -159, 0, -159, -159, -159, -159, -159, -159, 0, -159, 0, -159, 0, 0, 0, 0, 0, 0, 0, /* 246*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 247*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, 0, 0, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, 0, 0, 0, -496, -496, -496, 0, -496, -496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 248*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, 0, 0, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, -507, 0, 0, 0, -507, -507, -507, 0, -507, -507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 249*/ 0, 0, 0, 0, -160, -160, -160, -160, -160, 0, 0, 0, 0, -160, 0, 0, 0, 0, 0, -160, -160, 0, -160, 0, -160, -160, 0, -160, 0, -160, 0, -160, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 0, 0, 0, 0, 0, 0, -160, 0, 0, 0, 0, -160, 0, 0, 0, -160, 0, 0, 0, 0, -160, -160, 0, 0, 0, -160, -160, -160, 0, 0, 0, 0, 0, -160, -160, 0, 0, 0, 0, 0, 0, -160, 0, 0, -160, -160, -160, 0, 0, -160, 0, 0, 0, -160, -160, 0, 0, 0, -160, -160, -160, -160, -160, -160, 0, -160, -160, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, -160, 0, 0, -160, -160, 0, -160, -160, -160, -160, -160, -160, 0, -160, 0, -160, 0, 0, 0, 0, 0, 0, 0, /* 250*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 251*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 252*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 253*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 254*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 255*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 256*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 257*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 258*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 259*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 260*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 261*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 262*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 263*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 264*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 265*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 266*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 267*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 268*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 269*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 270*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 271*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 272*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 476, 481, 0, 0, 0, 494, 0, 498, 0, 506, 0, 0, 0, 0, 522, 527, 0, 535, 0, 542, 547, 549, 0, 556, 0, 0, 562, 566, 570, 575, 0, 581, 582, 583, 0, 589, 0, 595, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 654, 658, 0, 664, 669, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 686, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 697, 0, 0, 0, 0, 0, /* 273*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 274*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 185, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 529, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 638, 0, 0, 0, 0, 666, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 275*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 185, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 529, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 638, 0, 0, 0, 0, 666, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 276*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 185, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 529, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 638, 0, 0, 0, 0, 666, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 277*/ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 477, 481, 0, 0, 0, 495, 0, 498, 0, 507, 0, 0, 0, 0, 523, 528, 0, 535, 0, 543, 548, 0, 0, 556, 0, 0, 562, 567, 571, 575, 0, 581, 582, 583, 0, 590, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 665, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, /* 278*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, 0, 0, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, -515, 0, 0, 0, -515, -515, -515, 0, -515, -515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 279*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 280*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, 0, 0, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, -497, 0, 0, 0, -497, -497, -497, 0, -497, -497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 281*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 282*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, 0, 0, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, 0, 0, 0, -517, -517, -517, 0, -517, -517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 283*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, 0, 0, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, 0, 0, 0, -508, -508, -508, 0, -508, -508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 284*/ 0, 0, 0, 0, -164, -164, -164, -164, -164, 0, 0, 0, 0, -164, 0, 0, 0, 0, 0, -164, -164, 0, -164, 0, -164, -164, 0, -164, 0, -164, 0, -164, -164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -164, 0, 0, 0, 0, 0, 0, -164, 0, 0, 0, 0, -164, 0, 0, 0, -164, 0, 0, 0, 0, -164, -164, 0, 0, 0, -164, -164, -164, 0, 0, 0, 0, 0, -164, -164, 0, 0, 0, 0, 0, 0, -164, 0, 0, -164, -164, -164, 0, 0, -164, 0, 0, 0, -164, -164, 0, 0, 0, -164, -164, -164, -164, -164, -164, 0, -164, -164, 0, 0, -164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -164, -164, 0, 0, -164, -164, 0, -164, -164, -164, -164, -164, -164, 0, -164, 0, -164, 0, 0, 0, 0, 0, 0, 0, /* 285*/ 0, 0, 0, 0, 4, 5, 6, 7, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 182, 189, 0, 197, 0, 214, 216, 0, 222, 0, 229, 0, 234, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 492, 0, 0, 0, 504, 0, 0, 0, 0, 520, 525, 0, 0, 0, 540, 545, 549, 0, 0, 0, 0, 0, 564, 568, 0, 0, 0, 0, 0, 0, 587, 0, 0, 597, -92, 602, 0, 0, 609, 0, 0, 0, -92, 623, 0, 0, 0, 632, 634, 647, 653, 0, 658, 0, 667, 669, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 685, 0, 0, 687, 688, 0, 689, 690, 691, 692, 693, 694, 0, 695, 0, 696, 0, 0, 0, 0, 0, 0, 0, /* 286*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 287*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -549, 0, -549, -549, -549, 0, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, 0, 0, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, 0, 0, 0, -549, -549, 1484, 0, -549, -549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 288*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 289*/ 0, 0, 0, 0, -549, 0, 0, 0, 0, 0, 0, -549, 0, -549, -549, -549, 0, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, 0, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, -549, 0, 0, 0, -549, -549, 1487, 0, -549, -549, -549, 0, 0, 0, -5