diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 2874bb3bbe..568e94e3df 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,40 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-05-12 10:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbcomp.h + * harbour/include/hbexpra.c + * harbour/include/hbexprb.c + * harbour/include/hbexprop.h + * harbour/include/hbpp.h + * harbour/source/compiler/complex.c + * harbour/source/compiler/harbour.y + * harbour/source/compiler/harbour.yyc + * harbour/source/compiler/harbour.yyh + * harbour/source/compiler/hbmain.c + * harbour/source/pp/ppcore.c + + added support for extended multiline codeblocks: + { || + + ... + + return + } + Such codeblocks allow nested definitions. They can also have their + own variable declarations (local, static, field, memvar, parameters, + private, public) and visibility of declared variables is similar to + nested function in Pascal but please note that there is one limitation + which exists also for normal codeblocks (Clipper compatible behavior): + internal codeblock local parameters and local variables cannot be + used in nested codeblocks, f.e. such code: + eval( { |p| eval( {|| qout( p + 1 ) } ) } ) + is illegal in Clipper and Harbour. This limitation also can be + eliminated but but it will be necessary to make deeper modifications + in code for local detaching changing the method of generating + codeblocks local variables in nested blocks so unlike the above + also some modifications in HVM will be necessary. + Please test. + 2007-05-11 22:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcomp.h * harbour/include/hbcompdf.h diff --git a/harbour/include/hbcomp.h b/harbour/include/hbcomp.h index 3cc7de99d9..3423863e12 100644 --- a/harbour/include/hbcomp.h +++ b/harbour/include/hbcomp.h @@ -133,6 +133,7 @@ extern int hb_compVariableScope( HB_COMP_DECL, char * ); #define FUN_BREAK_CODE 0x08 /* last statement breaks execution flow */ #define FUN_USES_LOCAL_PARAMS 0x10 /* parameters are declared using () */ #define FUN_WITH_RETURN 0x20 /* there was RETURN statement in previous line */ +#define FUN_EXTBLOCK 0x40 /* it's extended codeblock */ extern void hb_compFunctionAdd( HB_COMP_DECL, char * szFunName, HB_SYMBOLSCOPE cScope, int iType ); /* starts a new Clipper language function definition */ extern PFUNCTION hb_compFunctionFind( HB_COMP_DECL, char * szFunName ); /* locates a previously defined function */ diff --git a/harbour/include/hbexpra.c b/harbour/include/hbexpra.c index 63e85edd0b..f36d93fd1b 100644 --- a/harbour/include/hbexpra.c +++ b/harbour/include/hbexpra.c @@ -566,6 +566,18 @@ HB_EXPR_PTR hb_compExprAssignStatic( HB_EXPR_PTR pLeftExpr, HB_EXPR_PTR pRightEx return pExpr; } + +HB_EXPR_PTR hb_compExprSetCodeblockBody( HB_EXPR_PTR pExpr, BYTE * pCode, ULONG ulLen ) +{ + HB_TRACE(HB_TR_DEBUG, ("hb_compExprSetCodeblockBody(%p,%p,%lu)", pExpr, pCode, ulLen)); + + pExpr->value.asCodeblock.string = ( char * ) hb_xgrab( ulLen + 1 ); + memcpy( pExpr->value.asCodeblock.string, pCode, ulLen ); + pExpr->value.asCodeblock.string[ ulLen ] = '\0'; + pExpr->ulLength = ulLen; + + return pExpr; +} #endif /* ************************************************************************* */ diff --git a/harbour/include/hbexprb.c b/harbour/include/hbexprb.c index ca5c5b5972..5a8b7e8648 100644 --- a/harbour/include/hbexprb.c +++ b/harbour/include/hbexprb.c @@ -133,6 +133,7 @@ static HB_EXPR_FUNC( hb_compExprUseNegate ); #else static void hb_compExprCodeblockPush( HB_EXPR_PTR, BOOL, HB_COMP_DECL ); static void hb_compExprCodeblockEarly( HB_EXPR_PTR, HB_COMP_DECL ); + static void hb_compExprCodeblockExtPush( HB_EXPR_PTR pSelf, HB_COMP_DECL ); #endif static void hb_compExprPushSendPop( HB_EXPR_PTR pSelf, HB_COMP_DECL ); @@ -409,9 +410,11 @@ static HB_EXPR_FUNC( hb_compExprUseCodeblock ) #if defined(HB_MACRO_SUPPORT) HB_EXPR_PCODE1( hb_compExprCodeblockPush, pSelf ); #else - if( ( pSelf->value.asCodeblock.flags & HB_BLOCK_MACRO ) && - !( pSelf->value.asCodeblock.flags & - ( HB_BLOCK_LATEEVAL | HB_BLOCK_VPARAMS ) ) ) + if( pSelf->value.asCodeblock.flags & HB_BLOCK_EXT ) + hb_compExprCodeblockExtPush( pSelf, HB_COMP_PARAM ); + else if( ( pSelf->value.asCodeblock.flags & HB_BLOCK_MACRO ) && + !( pSelf->value.asCodeblock.flags & + ( HB_BLOCK_LATEEVAL | HB_BLOCK_VPARAMS ) ) ) /* early evaluation of a macro */ hb_compExprCodeblockEarly( pSelf, HB_COMP_PARAM ); else @@ -3874,6 +3877,12 @@ static void hb_compExprCodeblockPush( HB_EXPR_PTR pSelf, BOOL bLateEval, HB_COMP /* This generates a push pcode for early evaluation of a macro */ #if !defined(HB_MACRO_SUPPORT) +static void hb_compExprCodeblockExtPush( HB_EXPR_PTR pSelf, HB_COMP_DECL ) +{ + hb_compGenPCodeN( ( BYTE * ) pSelf->value.asCodeblock.string, + pSelf->ulLength, HB_COMP_PARAM ); +} + static void hb_compExprCodeblockEarly( HB_EXPR_PTR pSelf, HB_COMP_DECL ) { HB_EXPR_PTR pExpr; diff --git a/harbour/include/hbexprop.h b/harbour/include/hbexprop.h index dc6c195156..1398ed3c40 100644 --- a/harbour/include/hbexprop.h +++ b/harbour/include/hbexprop.h @@ -143,6 +143,7 @@ extern HB_EXPR_PTR hb_compExprAddListExpr( HB_EXPR_PTR, HB_EXPR_PTR ); extern HB_EXPR_PTR hb_compExprCBVarAdd( HB_EXPR_PTR, char *, BYTE, HB_COMP_DECL ); extern void hb_compExprCBVarDel( HB_CBVAR_PTR ); extern HB_EXPR_PTR hb_compExprAddCodeblockExpr( HB_EXPR_PTR, HB_EXPR_PTR ); +extern HB_EXPR_PTR hb_compExprSetCodeblockBody( HB_EXPR_PTR pExpr, BYTE * pCode, ULONG ulLen ); extern HB_EXPR_PTR hb_compExprNewIIF( HB_EXPR_PTR ); extern HB_EXPR_PTR hb_compExprMacroAsAlias( HB_EXPR_PTR ); extern HB_EXPR_PTR hb_compExprAssign( HB_EXPR_PTR, HB_EXPR_PTR, HB_COMP_DECL ); diff --git a/harbour/include/hbpp.h b/harbour/include/hbpp.h index b3a44d36e9..976ed62c56 100644 --- a/harbour/include/hbpp.h +++ b/harbour/include/hbpp.h @@ -62,6 +62,7 @@ HB_EXTERN_BEGIN #define HB_BLOCK_MACRO 1 #define HB_BLOCK_LATEEVAL 2 #define HB_BLOCK_VPARAMS 4 +#define HB_BLOCK_EXT 8 /* #pragma {__text,__stream,__cstream}|functionOut|functionEnd|functionStart */ #define HB_PP_STREAM_OFF 0 /* standard preprocessing */ @@ -599,6 +600,8 @@ typedef struct int iInLineCount; /* number of hb_inLine() functions */ int iInLineState; /* hb_inLine() state */ int iInLineBraces; /* braces counter for hb_inLine() */ + int iNestedBlock; /* nested extended block counter */ + int iBlockState; /* state of extended block declaration */ PHB_PP_FILE pFile; /* currently preprocessed file structure */ int iFiles; /* number of open files */ diff --git a/harbour/source/compiler/harbour.y b/harbour/source/compiler/harbour.y index 91d41c7a66..009d9af4f1 100644 --- a/harbour/source/compiler/harbour.y +++ b/harbour/source/compiler/harbour.y @@ -164,7 +164,7 @@ extern void yyerror( HB_COMP_DECL, char * ); /* parsing error management fun %token AS_ARRAY AS_BLOCK AS_CHARACTER AS_CLASS AS_DATE AS_LOGICAL AS_NUMERIC AS_OBJECT AS_VARIANT DECLARE OPTIONAL DECLARE_CLASS DECLARE_MEMBER %token AS_ARRAY_ARRAY AS_BLOCK_ARRAY AS_CHARACTER_ARRAY AS_CLASS_ARRAY AS_DATE_ARRAY AS_LOGICAL_ARRAY AS_NUMERIC_ARRAY AS_OBJECT_ARRAY %token PROCREQ -%token CBSTART BEGINCODE DOIDENT +%token CBSTART DOIDENT %token FOREACH DESCEND %token DOSWITCH WITHOBJECT %token NUM_DATE @@ -211,7 +211,7 @@ extern void yyerror( HB_COMP_DECL, char * ); /* parsing error management fun %type WhileBegin %type IfElseIf Cases %type Argument ExtArgument RefArgument ArgList ElemList -%type BlockExpList BlockVars BlockVarList +%type BlockHead BlockExpList BlockVars BlockVarList %type DoName DoProc DoArgs DoArgument DoArgList %type NumValue NumAlias %type NilValue NilAlias @@ -408,7 +408,11 @@ Statement : ExecFlow CrlfStmnt } /* TODO: check if return value agree with declared value */ HB_COMP_EXPR_DELETE( hb_compExprGenPush( $3, HB_COMP_PARAM ) ); - hb_compGenPCode2( HB_P_RETVALUE, HB_P_ENDPROC, HB_COMP_PARAM ); + if( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) + /* extended clodeblock, use HB_P_ENDBLOCK to return value and stop execution */ + hb_compGenPCode1( HB_P_ENDBLOCK, HB_COMP_PARAM ); + else + hb_compGenPCode2( HB_P_RETVALUE, HB_P_ENDPROC, HB_COMP_PARAM ); if( HB_COMP_PARAM->functions.pLast->bFlags & FUN_PROCEDURE ) { /* procedure returns a value */ hb_compGenWarning( HB_COMP_PARAM, hb_comp_szWarnings, 'W', HB_COMP_WARN_PROC_RETURN_VALUE, NULL, NULL ); @@ -1010,17 +1014,11 @@ ElemList : ExtArgument { $$ = hb_compExprNewList( $1, HB_COMP_PA | ElemList ',' ExtArgument { $$ = hb_compExprAddListExpr( $1, $3 ); } ; -CodeBlock : CBSTART { $$ = hb_compExprNewCodeBlock( $1.string, $1.length, $1.flags, HB_COMP_PARAM ); $1.string = NULL; } - BlockVars '|' BlockExpList '}' { $$ = $2; } - ; +BlockHead : CBSTART { $$ = hb_compExprNewCodeBlock( $1.string, $1.length, $1.flags, HB_COMP_PARAM ); $1.string = NULL; } + BlockVars '|' { $$ = $2; } + ; -/* NOTE: This uses $-2 then don't use BlockExpList in other context - */ -BlockExpList : Expression { $$ = hb_compExprAddCodeblockExpr( $-2, $1 ); } - | BlockExpList ',' Expression { $$ = hb_compExprAddCodeblockExpr( $-2, $3 ); } - ; - -/* NOTE: This uses $0 then don't use BlockVars and BlockVarList in other context +/* NOTE: This uses $0 then don't use BlockVars, BlockVarList and BlockExpList in other context */ BlockVars : /* empty list */ { $$ = NULL; } | EPSILON { $$ = NULL; $0->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; } @@ -1032,6 +1030,47 @@ BlockVarList : IdentName AsType { HB_COMP_PARAM->iVarScope = | BlockVarList ',' IdentName AsType { HB_COMP_PARAM->iVarScope = VS_LOCAL; $$ = hb_compExprCBVarAdd( $0, $3, HB_COMP_PARAM->cVarType, HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; } ; +BlockExpList : Expression { $$ = hb_compExprAddCodeblockExpr( $0, $1 ); } + | BlockExpList ',' Expression { $$ = hb_compExprAddCodeblockExpr( $0, $3 ); } + ; + +CodeBlock : BlockHead BlockExpList '}' + | BlockHead Crlf + { /* 3 */ + HB_CBVAR_PTR pVar; + $$ = HB_COMP_PARAM->functions.pLast->lPCodePos; + hb_compCodeBlockStart( HB_COMP_PARAM, TRUE ); + HB_COMP_PARAM->functions.pLast->bFlags |= FUN_EXTBLOCK; + HB_COMP_PARAM->functions.pLast->fVParams = + ( $1->value.asCodeblock.flags & HB_BLOCK_VPARAMS ) != 0; + + $1->value.asCodeblock.flags |= HB_BLOCK_EXT; + if( $1->value.asCodeblock.string ) + { + hb_xfree( $1->value.asCodeblock.string ); + $1->value.asCodeblock.string = NULL; + $1->ulLength = 0; + } + + HB_COMP_PARAM->iVarScope = VS_PARAMETER; + pVar = $1->value.asCodeblock.pLocals; + while( pVar ) + { + hb_compVariableAdd( HB_COMP_PARAM, pVar->szName, pVar->bType ); + pVar =pVar->pNext; + } + } + EmptyStats '}' + { /* 6 */ + hb_compCodeBlockEnd( HB_COMP_PARAM ); + $$ = hb_compExprSetCodeblockBody( $1, + HB_COMP_PARAM->functions.pLast->pCode + ( ULONG ) $3, + HB_COMP_PARAM->functions.pLast->lPCodePos - $3 ); + HB_COMP_PARAM->functions.pLast->lPCodePos = $3; + HB_COMP_PARAM->lastLinePos = 0; + } + ; + ExpList : Expression { $$ = hb_compExprNewList( $1, HB_COMP_PARAM ); } | ExpList ',' Expression { $$ = hb_compExprAddListExpr( $1, $3 ); } @@ -1108,6 +1147,11 @@ VarDef : IdentName AsType { hb_compVariableAdd( HB_COMP_PARAM, $1, HB_COMP_P { hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( $1, NULL, HB_COMP_PARAM ), FALSE ); } + else if( HB_COMP_PARAM->iVarScope == VS_LOCAL && + ( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) + { + HB_COMP_EXPR_DELETE( hb_compExprGenPush( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ) ); + } } | IdentName AsType { $$ = HB_COMP_PARAM->iVarScope; hb_compVariableAdd( HB_COMP_PARAM, $1, HB_COMP_PARAM->cVarType ); @@ -1129,6 +1173,11 @@ VarDef : IdentName AsType { hb_compVariableAdd( HB_COMP_PARAM, $1, HB_COMP_P HB_COMP_EXPR_DELETE( hb_compExprGenPush( $6, HB_COMP_PARAM ) ); hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( $1, NULL, HB_COMP_PARAM ), TRUE ); } + else if( HB_COMP_PARAM->iVarScope == VS_LOCAL && + ( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) + { + HB_COMP_EXPR_DELETE( hb_compExprGenPush( $6, HB_COMP_PARAM ) ); + } else { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( hb_compExprAssign( hb_compExprNewVar( $1, HB_COMP_PARAM ), $6, HB_COMP_PARAM ), HB_COMP_PARAM ) ); @@ -2212,7 +2261,12 @@ static void hb_compVariableDim( char * szName, HB_EXPR_PTR pInitValue, HB_COMP_D hb_compVariableAdd( HB_COMP_PARAM, szName, 'A' ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( pInitValue, HB_COMP_PARAM ) ); hb_compGenPCode3( HB_P_ARRAYDIM, HB_LOBYTE( uCount ), HB_HIBYTE( uCount ), HB_COMP_PARAM ); - HB_COMP_EXPR_DELETE( hb_compExprGenPop( hb_compExprNewVar( szName, HB_COMP_PARAM ), HB_COMP_PARAM ) ); + + if( HB_COMP_PARAM->iVarScope != VS_LOCAL || + !( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) + { + HB_COMP_EXPR_DELETE( hb_compExprGenPop( hb_compExprNewVar( szName, HB_COMP_PARAM ), HB_COMP_PARAM ) ); + } } } @@ -2596,6 +2650,11 @@ BOOL hb_compCheckUnclosedStru( HB_COMP_DECL ) hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_UNCLOSED_STRU, "BEGIN SEQUENCE", NULL ); HB_COMP_PARAM->wSeqCounter = 0; } + else if( HB_COMP_PARAM->functions.pLast && + ( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) + { + hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_UNCLOSED_STRU, "<||...>", NULL ); + } else fUnclosed = FALSE; diff --git a/harbour/source/compiler/harbour.yyc b/harbour/source/compiler/harbour.yyc index 27a115071f..642ebfba95 100644 --- a/harbour/source/compiler/harbour.yyc +++ b/harbour/source/compiler/harbour.yyc @@ -167,18 +167,17 @@ AS_OBJECT_ARRAY = 348, PROCREQ = 349, CBSTART = 350, - BEGINCODE = 351, - DOIDENT = 352, - FOREACH = 353, - DESCEND = 354, - DOSWITCH = 355, - WITHOBJECT = 356, - NUM_DATE = 357, - EPSILON = 358, - HASHOP = 359, - POST = 360, - UNARY = 361, - PRE = 362 + DOIDENT = 351, + FOREACH = 352, + DESCEND = 353, + DOSWITCH = 354, + WITHOBJECT = 355, + NUM_DATE = 356, + EPSILON = 357, + HASHOP = 358, + POST = 359, + UNARY = 360, + PRE = 361 }; #endif /* Tokens. */ @@ -275,18 +274,17 @@ #define AS_OBJECT_ARRAY 348 #define PROCREQ 349 #define CBSTART 350 -#define BEGINCODE 351 -#define DOIDENT 352 -#define FOREACH 353 -#define DESCEND 354 -#define DOSWITCH 355 -#define WITHOBJECT 356 -#define NUM_DATE 357 -#define EPSILON 358 -#define HASHOP 359 -#define POST 360 -#define UNARY 361 -#define PRE 362 +#define DOIDENT 351 +#define FOREACH 352 +#define DESCEND 353 +#define DOSWITCH 354 +#define WITHOBJECT 355 +#define NUM_DATE 356 +#define EPSILON 357 +#define HASHOP 358 +#define POST 359 +#define UNARY 360 +#define PRE 361 @@ -455,7 +453,7 @@ typedef union YYSTYPE } asMessage; } /* Line 193 of yacc.c. */ -#line 459 "harboury.c" +#line 457 "harboury.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -475,7 +473,7 @@ extern void yyerror( HB_COMP_DECL, char * ); /* parsing error management fun /* Line 216 of yacc.c. */ -#line 479 "harboury.c" +#line 477 "harboury.c" #ifdef short # undef short @@ -688,22 +686,22 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 286 +#define YYFINAL 287 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 8284 +#define YYLAST 8559 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 130 +#define YYNTOKENS 129 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 241 +#define YYNNTS 243 /* YYNRULES -- Number of rules. */ -#define YYNRULES 620 +#define YYNRULES 623 /* YYNRULES -- Number of states. */ -#define YYNSTATES 991 +#define YYNSTATES 996 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 362 +#define YYMAXUTOK 361 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -712,18 +710,18 @@ union yyalloc static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 119, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 118, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 109, 114, 117, 2, - 122, 123, 112, 110, 121, 111, 2, 113, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 126, 120, - 107, 106, 108, 2, 118, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 108, 113, 116, 2, + 121, 122, 111, 109, 120, 110, 2, 112, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 125, 119, + 106, 105, 107, 2, 117, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 128, 2, 127, 2, 2, 2, 2, 2, 2, + 2, 127, 2, 126, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 124, 129, 125, 2, 2, 2, 2, + 2, 2, 2, 123, 128, 124, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -747,7 +745,7 @@ static const yytype_uint8 yytranslate[] = 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 115, 116 + 114, 115 }; #if YYDEBUG @@ -795,216 +793,217 @@ static const yytype_uint16 yyprhs[] = 1011, 1015, 1019, 1023, 1027, 1031, 1033, 1035, 1037, 1039, 1041, 1043, 1047, 1051, 1055, 1059, 1063, 1067, 1071, 1075, 1079, 1083, 1087, 1091, 1095, 1099, 1103, 1107, 1111, 1114, - 1117, 1121, 1126, 1128, 1132, 1133, 1140, 1142, 1146, 1147, - 1149, 1151, 1155, 1158, 1163, 1165, 1169, 1173, 1176, 1185, - 1188, 1189, 1194, 1195, 1200, 1201, 1206, 1208, 1212, 1214, - 1218, 1220, 1223, 1228, 1232, 1233, 1237, 1238, 1239, 1246, - 1250, 1253, 1256, 1260, 1265, 1266, 1272, 1275, 1280, 1281, - 1284, 1285, 1290, 1293, 1298, 1299, 1308, 1309, 1315, 1319, - 1323, 1324, 1332, 1334, 1338, 1340, 1343, 1345, 1348, 1349, - 1356, 1357, 1361, 1362, 1364, 1366, 1370, 1372, 1376, 1378, - 1381, 1385, 1391, 1396, 1402, 1410, 1414, 1419, 1426, 1432, - 1439, 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1462, 1464, - 1467, 1471, 1475, 1480, 1481, 1482, 1489, 1490, 1495, 1496, - 1497, 1504, 1505, 1506, 1514, 1516, 1518, 1522, 1526, 1529, - 1534, 1536, 1538, 1539, 1543, 1545, 1548, 1549, 1550, 1557, - 1558, 1559, 1567, 1568, 1569, 1575, 1576, 1582, 1583, 1584, - 1592, 1594, 1596, 1598, 1599, 1600, 1601, 1614, 1616, 1618, - 1619, 1622, 1625, 1629, 1632, 1636, 1638, 1640, 1642, 1646, - 1649, 1651, 1653, 1657, 1658, 1659, 1660, 1671, 1672, 1674, - 1675, 1680, 1683, 1685, 1686, 1691, 1693, 1696, 1697, 1703, - 1704, 1711, 1713, 1716, 1717, 1718, 1724, 1725, 1726, 1727, - 1728, 1739, 1740, 1744, 1746, 1747, 1751, 1755, 1757, 1760, - 1762, 1764, 1765, 1770, 1771, 1775, 1776, 1779, 1781, 1784, - 1786, 1789, 1793, 1795, 1797, 1799, 1801, 1803, 1804, 1811, - 1813 + 1117, 1121, 1126, 1128, 1132, 1133, 1138, 1139, 1141, 1143, + 1147, 1150, 1155, 1157, 1161, 1165, 1166, 1172, 1174, 1178, + 1182, 1185, 1194, 1197, 1198, 1203, 1204, 1209, 1210, 1215, + 1217, 1221, 1223, 1227, 1229, 1232, 1237, 1241, 1242, 1246, + 1247, 1248, 1255, 1259, 1262, 1265, 1269, 1274, 1275, 1281, + 1284, 1289, 1290, 1293, 1294, 1299, 1302, 1307, 1308, 1317, + 1318, 1324, 1328, 1332, 1333, 1341, 1343, 1347, 1349, 1352, + 1354, 1357, 1358, 1365, 1366, 1370, 1371, 1373, 1375, 1379, + 1381, 1385, 1387, 1390, 1394, 1400, 1405, 1411, 1419, 1423, + 1428, 1435, 1441, 1448, 1457, 1459, 1461, 1463, 1465, 1467, + 1469, 1471, 1473, 1476, 1480, 1484, 1489, 1490, 1491, 1498, + 1499, 1504, 1505, 1506, 1513, 1514, 1515, 1523, 1525, 1527, + 1531, 1535, 1538, 1543, 1545, 1547, 1548, 1552, 1554, 1557, + 1558, 1559, 1566, 1567, 1568, 1576, 1577, 1578, 1584, 1585, + 1591, 1592, 1593, 1601, 1603, 1605, 1607, 1608, 1609, 1610, + 1623, 1625, 1627, 1628, 1631, 1634, 1638, 1641, 1645, 1647, + 1649, 1651, 1655, 1658, 1660, 1662, 1666, 1667, 1668, 1669, + 1680, 1681, 1683, 1684, 1689, 1692, 1694, 1695, 1700, 1702, + 1705, 1706, 1712, 1713, 1720, 1722, 1725, 1726, 1727, 1733, + 1734, 1735, 1736, 1737, 1748, 1749, 1753, 1755, 1756, 1760, + 1764, 1766, 1769, 1771, 1773, 1774, 1779, 1780, 1784, 1785, + 1788, 1790, 1793, 1795, 1798, 1802, 1804, 1806, 1808, 1810, + 1812, 1813, 1820, 1822 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 131, 0, -1, 132, -1, -1, 370, -1, 276, -1, - 134, -1, 146, -1, 133, -1, 1, 370, -1, 132, - 370, -1, 132, 276, -1, 132, 134, -1, 132, 146, - -1, 132, 133, -1, 132, 1, 370, -1, 70, 10, - 19, 370, -1, 70, 10, 19, 118, 19, 370, -1, - -1, 139, 3, 164, 135, 370, -1, -1, 139, 4, - 164, 136, 370, -1, -1, 139, 3, 164, 137, 122, - 140, 123, 370, -1, -1, 139, 4, 164, 138, 122, - 140, 123, 370, -1, -1, 12, -1, 25, -1, 26, - -1, -1, 103, -1, 145, -1, 145, 121, 103, -1, - -1, 143, -1, -1, 144, -1, 79, -1, 75, -1, - 77, -1, 78, -1, 74, -1, 80, -1, 76, 164, - -1, 81, -1, 144, -1, 73, -1, 92, -1, 88, + 130, 0, -1, 131, -1, -1, 371, -1, 277, -1, + 133, -1, 145, -1, 132, -1, 1, 371, -1, 131, + 371, -1, 131, 277, -1, 131, 133, -1, 131, 145, + -1, 131, 132, -1, 131, 1, 371, -1, 70, 10, + 19, 371, -1, 70, 10, 19, 117, 19, 371, -1, + -1, 138, 3, 163, 134, 371, -1, -1, 138, 4, + 163, 135, 371, -1, -1, 138, 3, 163, 136, 121, + 139, 122, 371, -1, -1, 138, 4, 163, 137, 121, + 139, 122, 371, -1, -1, 12, -1, 25, -1, 26, + -1, -1, 102, -1, 144, -1, 144, 120, 102, -1, + -1, 142, -1, -1, 143, -1, 79, -1, 75, -1, + 77, -1, 78, -1, 74, -1, 80, -1, 76, 163, + -1, 81, -1, 143, -1, 73, -1, 92, -1, 88, -1, 90, -1, 91, -1, 86, -1, 87, -1, 93, - -1, 89, 164, -1, 164, 141, -1, 145, 121, 164, - 141, -1, 291, 155, -1, 254, 155, -1, 199, 155, - -1, 194, 155, -1, 212, 155, -1, 186, 155, -1, - 188, 155, -1, 252, 155, -1, 229, 155, -1, 228, - 155, -1, 239, 155, -1, 232, 155, -1, 231, 155, - -1, 362, 155, -1, 63, 155, -1, -1, 63, 147, - 220, 370, -1, 26, 155, -1, 44, 155, -1, 6, - 155, -1, -1, 6, 148, 220, 370, -1, -1, -1, - 30, 149, 261, 150, 370, -1, -1, -1, 61, 151, - 261, 152, 370, -1, 256, -1, 269, -1, 273, -1, - 23, 162, 370, -1, 24, 163, 370, -1, -1, 22, - 164, 153, 370, -1, 94, 154, 123, 370, -1, 19, - -1, 19, 110, 19, -1, -1, 156, 370, -1, 370, - -1, 146, -1, 276, -1, 133, -1, 158, -1, 1, - -1, 159, 3, 164, 370, -1, 159, 3, 164, 122, - 140, 123, 370, -1, 159, 4, 164, 370, -1, 159, - 4, 164, 122, 140, 123, 370, -1, -1, 12, -1, - 25, -1, 26, -1, 157, -1, 160, 157, -1, -1, - 160, -1, 164, -1, 162, 121, 164, -1, 164, -1, - 163, 121, 164, -1, 5, -1, 48, -1, 47, -1, + -1, 89, 163, -1, 163, 140, -1, 144, 120, 163, + 140, -1, 292, 154, -1, 255, 154, -1, 198, 154, + -1, 193, 154, -1, 211, 154, -1, 185, 154, -1, + 187, 154, -1, 253, 154, -1, 228, 154, -1, 227, + 154, -1, 238, 154, -1, 231, 154, -1, 230, 154, + -1, 363, 154, -1, 63, 154, -1, -1, 63, 146, + 219, 371, -1, 26, 154, -1, 44, 154, -1, 6, + 154, -1, -1, 6, 147, 219, 371, -1, -1, -1, + 30, 148, 262, 149, 371, -1, -1, -1, 61, 150, + 262, 151, 371, -1, 257, -1, 270, -1, 274, -1, + 23, 161, 371, -1, 24, 162, 371, -1, -1, 22, + 163, 152, 371, -1, 94, 153, 122, 371, -1, 19, + -1, 19, 109, 19, -1, -1, 155, 371, -1, 371, + -1, 145, -1, 277, -1, 132, -1, 157, -1, 1, + -1, 158, 3, 163, 371, -1, 158, 3, 163, 121, + 139, 122, 371, -1, 158, 4, 163, 371, -1, 158, + 4, 163, 121, 139, 122, 371, -1, -1, 12, -1, + 25, -1, 26, -1, 156, -1, 159, 156, -1, -1, + 159, -1, 163, -1, 161, 120, 163, -1, 163, -1, + 162, 120, 163, -1, 5, -1, 48, -1, 47, -1, 44, -1, 26, -1, 52, -1, 83, -1, 23, -1, 24, -1, 22, -1, 11, -1, 42, -1, 12, -1, - 61, -1, 30, -1, 53, -1, 94, -1, 99, -1, - 8, -1, 10, -1, 102, -1, 10, 36, -1, 8, - 36, -1, 7, -1, 168, 36, -1, 19, -1, 170, - 36, -1, 246, 36, -1, 20, -1, 21, -1, 173, - 36, -1, 69, -1, 175, 36, -1, 124, 245, 125, - -1, 177, 36, -1, 177, 243, -1, 179, 36, -1, - 124, 104, 125, -1, 124, 183, 125, -1, 181, 36, - -1, 220, 104, 224, -1, 183, 121, 220, 104, 224, - -1, 164, -1, 164, 36, -1, 71, -1, 72, -1, - 186, 36, -1, 117, 252, -1, 188, 36, -1, 51, - 36, -1, 51, 36, 190, -1, 190, 185, -1, 190, - 167, -1, 190, 253, -1, 190, 187, -1, 190, 189, - -1, 190, 169, -1, 190, 171, -1, 190, 174, -1, - 190, 172, -1, 190, 176, -1, 190, 178, -1, 190, - 180, -1, 190, 182, -1, 190, 255, -1, 164, -1, - 186, -1, 188, -1, 167, 192, -1, 187, 192, -1, - 189, 192, -1, 253, 192, -1, 169, 192, -1, 171, - 192, -1, 174, 192, -1, 172, 192, -1, 182, 192, - -1, 176, 192, -1, 178, 192, -1, 180, 192, -1, - 196, 192, -1, 255, 192, -1, 203, 192, -1, 211, - 192, -1, 214, 192, -1, 185, 192, -1, 190, 192, - -1, 191, 192, -1, 167, 252, -1, 185, 252, -1, - 187, 252, -1, 189, 252, -1, 253, 252, -1, 190, - 252, -1, 165, 243, -1, 168, 243, -1, 166, 243, - -1, 170, 243, -1, 246, 243, -1, 173, 243, -1, - 181, 243, -1, 175, 243, -1, 184, 243, -1, 193, - 243, -1, 194, 243, -1, 186, 243, -1, 188, 243, - -1, 208, 243, -1, 212, 243, -1, 199, 243, -1, - 254, 243, -1, 252, 243, -1, 195, 36, -1, -1, - 164, 122, 198, 204, 123, -1, 197, -1, -1, 186, - 122, 200, 204, 123, -1, -1, 188, 122, 201, 204, - 123, -1, 118, 197, -1, 199, 36, -1, 207, -1, - 204, 121, 207, -1, 224, -1, 206, -1, 118, 164, - -1, 118, 186, -1, 118, 193, -1, 118, 208, -1, - 118, 195, -1, 103, -1, 205, -1, 226, 126, 209, - -1, 210, 126, 209, -1, 126, 209, -1, 164, -1, - 186, -1, 188, -1, 122, 118, 164, 123, -1, 208, - 36, -1, -1, 208, 122, 213, 204, 123, -1, 212, - 36, -1, 165, -1, 168, -1, 166, -1, 170, -1, - 246, -1, 173, -1, 175, -1, -1, 175, 216, 143, - -1, 177, -1, 179, -1, 181, -1, 193, -1, 194, - -1, 186, -1, 188, -1, 195, -1, 199, -1, -1, - 199, 217, 143, -1, 254, -1, 208, -1, -1, 208, - 218, 143, -1, 212, -1, -1, 212, 219, 143, -1, - 231, -1, 239, -1, 228, -1, 229, -1, 230, -1, - 240, -1, 241, -1, 242, -1, 215, -1, 184, -1, - 252, -1, -1, 184, 221, 143, -1, -1, 252, 222, - 143, -1, 202, -1, 103, -1, 220, -1, -1, 220, - -1, 164, -1, 193, -1, 186, -1, 188, -1, 208, - -1, 195, -1, 252, -1, 165, -1, 168, -1, 166, - -1, 170, -1, 246, -1, 173, -1, 175, -1, 177, - -1, 179, -1, 181, -1, 193, -1, 194, -1, 186, - -1, 188, -1, 184, -1, 195, -1, 252, -1, 199, - -1, 254, -1, 208, -1, 212, -1, 34, -1, 35, - -1, 226, 227, -1, 34, 220, -1, 35, 220, -1, - 29, 220, -1, 111, 220, -1, 110, 220, -1, 165, - 9, 220, -1, 168, 9, 220, -1, 166, 9, 220, - -1, 170, 9, 220, -1, 246, 9, 220, -1, 173, - 9, 220, -1, 175, 9, 220, -1, 177, 9, 220, - -1, 179, 9, 220, -1, 181, 9, 220, -1, 193, - 9, 220, -1, 194, 9, 220, -1, 186, 9, 220, - -1, 188, 9, 220, -1, 184, 9, 220, -1, 195, - 9, 220, -1, 252, 9, 220, -1, 254, 9, 220, - -1, 199, 9, 220, -1, 208, 9, 220, -1, 212, - 9, 220, -1, 226, 106, 220, -1, 226, 54, 220, - -1, 226, 55, 220, -1, 226, 56, 220, -1, 226, - 57, 220, -1, 226, 60, 220, -1, 226, 59, 220, - -1, 233, -1, 234, -1, 235, -1, 236, -1, 237, - -1, 238, -1, 220, 110, 220, -1, 220, 111, 220, - -1, 220, 112, 220, -1, 220, 113, 220, -1, 220, - 114, 220, -1, 220, 58, 220, -1, 220, 27, 220, - -1, 220, 28, 220, -1, 220, 31, 220, -1, 220, - 107, 220, -1, 220, 108, 220, -1, 220, 49, 220, - -1, 220, 50, 220, -1, 220, 32, 220, -1, 220, - 33, 220, -1, 220, 109, 220, -1, 220, 106, 220, - -1, 244, 127, -1, 128, 223, -1, 244, 121, 223, - -1, 244, 127, 128, 223, -1, 207, -1, 245, 121, - 207, -1, -1, 95, 247, 249, 129, 248, 125, -1, - 220, -1, 248, 121, 220, -1, -1, 103, -1, 250, - -1, 250, 121, 103, -1, 164, 141, -1, 250, 121, - 164, 141, -1, 220, -1, 251, 121, 220, -1, 122, - 251, 123, -1, 252, 36, -1, 13, 122, 220, 121, - 205, 121, 205, 123, -1, 254, 36, -1, -1, 11, - 257, 260, 370, -1, -1, 12, 258, 260, 370, -1, - -1, 53, 259, 275, 370, -1, 263, -1, 260, 121, - 263, -1, 262, -1, 261, 121, 262, -1, 263, -1, - 186, 141, -1, 186, 141, 9, 220, -1, 186, 267, - 142, -1, -1, 164, 141, 264, -1, -1, -1, 164, - 141, 265, 9, 266, 220, -1, 164, 267, 142, -1, - 268, 127, -1, 128, 220, -1, 268, 121, 220, -1, - 268, 127, 128, 220, -1, -1, 51, 270, 271, 272, - 370, -1, 164, 141, -1, 271, 121, 164, 141, -1, - -1, 52, 164, -1, -1, 42, 274, 275, 370, -1, - 164, 141, -1, 275, 121, 164, 141, -1, -1, 82, - 164, 122, 277, 286, 123, 141, 370, -1, -1, 82, - 164, 278, 281, 370, -1, 84, 164, 370, -1, 85, - 282, 370, -1, -1, 85, 124, 141, 279, 280, 125, - 370, -1, 284, -1, 280, 121, 284, -1, 282, -1, - 281, 282, -1, 284, -1, 281, 284, -1, -1, 164, - 122, 283, 286, 123, 141, -1, -1, 164, 285, 141, - -1, -1, 289, -1, 290, -1, 289, 121, 290, -1, - 288, -1, 287, 121, 288, -1, 224, -1, 164, 141, - -1, 118, 164, 141, -1, 118, 164, 122, 287, 123, - -1, 289, 121, 164, 141, -1, 289, 121, 118, 164, - 141, -1, 289, 121, 118, 164, 122, 287, 123, -1, - 83, 164, 141, -1, 83, 118, 164, 141, -1, 83, - 118, 164, 122, 287, 123, -1, 290, 121, 83, 164, - 141, -1, 290, 121, 83, 118, 164, 141, -1, 290, - 121, 83, 118, 164, 122, 287, 123, -1, 292, -1, - 304, -1, 318, -1, 323, -1, 351, -1, 334, -1, - 339, -1, 368, -1, 293, 303, -1, 293, 296, 303, - -1, 293, 298, 303, -1, 293, 298, 296, 303, -1, - -1, -1, 14, 220, 294, 370, 295, 161, -1, -1, - 15, 370, 297, 161, -1, -1, -1, 16, 299, 220, - 370, 300, 161, -1, -1, -1, 298, 16, 301, 220, - 370, 302, 161, -1, 18, -1, 17, -1, 308, 309, - 305, -1, 308, 314, 305, -1, 308, 305, -1, 308, - 309, 314, 305, -1, 40, -1, 17, -1, -1, 37, - 307, 370, -1, 306, -1, 306, 160, -1, -1, -1, - 38, 310, 220, 370, 311, 161, -1, -1, -1, 309, - 38, 312, 220, 370, 313, 161, -1, -1, -1, 39, - 315, 370, 316, 161, -1, -1, 314, 39, 317, 370, - 161, -1, -1, -1, 321, 220, 370, 319, 161, 320, - 322, -1, 43, -1, 17, -1, 41, -1, -1, -1, - -1, 45, 225, 327, 220, 324, 47, 220, 328, 325, - 370, 326, 329, -1, 106, -1, 9, -1, -1, 48, - 220, -1, 161, 46, -1, 161, 46, 164, -1, 161, - 17, -1, 161, 17, 164, -1, 164, -1, 193, -1, - 330, -1, 331, 121, 330, -1, 118, 164, -1, 220, - -1, 332, -1, 333, 121, 332, -1, -1, -1, -1, - 98, 331, 52, 333, 335, 338, 336, 370, 337, 329, - -1, -1, 99, -1, -1, 344, 340, 345, 341, -1, - 344, 341, -1, 17, -1, -1, 100, 343, 220, 370, - -1, 342, -1, 342, 160, -1, -1, 38, 220, 346, - 370, 161, -1, -1, 345, 38, 220, 347, 370, 161, - -1, 348, -1, 345, 348, -1, -1, -1, 39, 349, - 370, 350, 161, -1, -1, -1, -1, -1, 62, 352, - 370, 161, 353, 358, 354, 356, 355, 17, -1, -1, - 357, 370, 161, -1, 66, -1, -1, 359, 370, 161, - -1, 360, 370, 161, -1, 64, -1, 65, 164, -1, - 186, -1, 188, -1, -1, 67, 361, 363, 365, -1, - -1, 97, 364, 365, -1, -1, 68, 366, -1, 121, - -1, 121, 367, -1, 367, -1, 366, 121, -1, 366, - 121, 367, -1, 164, -1, 206, -1, 202, -1, 215, - -1, 252, -1, -1, 101, 220, 370, 369, 161, 17, - -1, 119, -1, 120, -1 + 61, -1, 30, -1, 53, -1, 94, -1, 98, -1, + 8, -1, 10, -1, 101, -1, 10, 36, -1, 8, + 36, -1, 7, -1, 167, 36, -1, 19, -1, 169, + 36, -1, 250, 36, -1, 20, -1, 21, -1, 172, + 36, -1, 69, -1, 174, 36, -1, 123, 244, 124, + -1, 176, 36, -1, 176, 242, -1, 178, 36, -1, + 123, 103, 124, -1, 123, 182, 124, -1, 180, 36, + -1, 219, 103, 223, -1, 182, 120, 219, 103, 223, + -1, 163, -1, 163, 36, -1, 71, -1, 72, -1, + 185, 36, -1, 116, 253, -1, 187, 36, -1, 51, + 36, -1, 51, 36, 189, -1, 189, 184, -1, 189, + 166, -1, 189, 254, -1, 189, 186, -1, 189, 188, + -1, 189, 168, -1, 189, 170, -1, 189, 173, -1, + 189, 171, -1, 189, 175, -1, 189, 177, -1, 189, + 179, -1, 189, 181, -1, 189, 256, -1, 163, -1, + 185, -1, 187, -1, 166, 191, -1, 186, 191, -1, + 188, 191, -1, 254, 191, -1, 168, 191, -1, 170, + 191, -1, 173, 191, -1, 171, 191, -1, 181, 191, + -1, 175, 191, -1, 177, 191, -1, 179, 191, -1, + 195, 191, -1, 256, 191, -1, 202, 191, -1, 210, + 191, -1, 213, 191, -1, 184, 191, -1, 189, 191, + -1, 190, 191, -1, 166, 253, -1, 184, 253, -1, + 186, 253, -1, 188, 253, -1, 254, 253, -1, 189, + 253, -1, 164, 242, -1, 167, 242, -1, 165, 242, + -1, 169, 242, -1, 250, 242, -1, 172, 242, -1, + 180, 242, -1, 174, 242, -1, 183, 242, -1, 192, + 242, -1, 193, 242, -1, 185, 242, -1, 187, 242, + -1, 207, 242, -1, 211, 242, -1, 198, 242, -1, + 255, 242, -1, 253, 242, -1, 194, 36, -1, -1, + 163, 121, 197, 203, 122, -1, 196, -1, -1, 185, + 121, 199, 203, 122, -1, -1, 187, 121, 200, 203, + 122, -1, 117, 196, -1, 198, 36, -1, 206, -1, + 203, 120, 206, -1, 223, -1, 205, -1, 117, 163, + -1, 117, 185, -1, 117, 192, -1, 117, 207, -1, + 117, 194, -1, 102, -1, 204, -1, 225, 125, 208, + -1, 209, 125, 208, -1, 125, 208, -1, 163, -1, + 185, -1, 187, -1, 121, 117, 163, 122, -1, 207, + 36, -1, -1, 207, 121, 212, 203, 122, -1, 211, + 36, -1, 164, -1, 167, -1, 165, -1, 169, -1, + 250, -1, 172, -1, 174, -1, -1, 174, 215, 142, + -1, 176, -1, 178, -1, 180, -1, 192, -1, 193, + -1, 185, -1, 187, -1, 194, -1, 198, -1, -1, + 198, 216, 142, -1, 255, -1, 207, -1, -1, 207, + 217, 142, -1, 211, -1, -1, 211, 218, 142, -1, + 230, -1, 238, -1, 227, -1, 228, -1, 229, -1, + 239, -1, 240, -1, 241, -1, 214, -1, 183, -1, + 253, -1, -1, 183, 220, 142, -1, -1, 253, 221, + 142, -1, 201, -1, 102, -1, 219, -1, -1, 219, + -1, 163, -1, 192, -1, 185, -1, 187, -1, 207, + -1, 194, -1, 253, -1, 164, -1, 167, -1, 165, + -1, 169, -1, 250, -1, 172, -1, 174, -1, 176, + -1, 178, -1, 180, -1, 192, -1, 193, -1, 185, + -1, 187, -1, 183, -1, 194, -1, 253, -1, 198, + -1, 255, -1, 207, -1, 211, -1, 34, -1, 35, + -1, 225, 226, -1, 34, 219, -1, 35, 219, -1, + 29, 219, -1, 110, 219, -1, 109, 219, -1, 164, + 9, 219, -1, 167, 9, 219, -1, 165, 9, 219, + -1, 169, 9, 219, -1, 250, 9, 219, -1, 172, + 9, 219, -1, 174, 9, 219, -1, 176, 9, 219, + -1, 178, 9, 219, -1, 180, 9, 219, -1, 192, + 9, 219, -1, 193, 9, 219, -1, 185, 9, 219, + -1, 187, 9, 219, -1, 183, 9, 219, -1, 194, + 9, 219, -1, 253, 9, 219, -1, 255, 9, 219, + -1, 198, 9, 219, -1, 207, 9, 219, -1, 211, + 9, 219, -1, 225, 105, 219, -1, 225, 54, 219, + -1, 225, 55, 219, -1, 225, 56, 219, -1, 225, + 57, 219, -1, 225, 60, 219, -1, 225, 59, 219, + -1, 232, -1, 233, -1, 234, -1, 235, -1, 236, + -1, 237, -1, 219, 109, 219, -1, 219, 110, 219, + -1, 219, 111, 219, -1, 219, 112, 219, -1, 219, + 113, 219, -1, 219, 58, 219, -1, 219, 27, 219, + -1, 219, 28, 219, -1, 219, 31, 219, -1, 219, + 106, 219, -1, 219, 107, 219, -1, 219, 49, 219, + -1, 219, 50, 219, -1, 219, 32, 219, -1, 219, + 33, 219, -1, 219, 108, 219, -1, 219, 105, 219, + -1, 243, 126, -1, 127, 222, -1, 243, 120, 222, + -1, 243, 126, 127, 222, -1, 206, -1, 244, 120, + 206, -1, -1, 95, 246, 247, 128, -1, -1, 102, + -1, 248, -1, 248, 120, 102, -1, 163, 140, -1, + 248, 120, 163, 140, -1, 219, -1, 249, 120, 219, + -1, 245, 249, 124, -1, -1, 245, 371, 251, 160, + 124, -1, 219, -1, 252, 120, 219, -1, 121, 252, + 122, -1, 253, 36, -1, 13, 121, 219, 120, 204, + 120, 204, 122, -1, 255, 36, -1, -1, 11, 258, + 261, 371, -1, -1, 12, 259, 261, 371, -1, -1, + 53, 260, 276, 371, -1, 264, -1, 261, 120, 264, + -1, 263, -1, 262, 120, 263, -1, 264, -1, 185, + 140, -1, 185, 140, 9, 219, -1, 185, 268, 141, + -1, -1, 163, 140, 265, -1, -1, -1, 163, 140, + 266, 9, 267, 219, -1, 163, 268, 141, -1, 269, + 126, -1, 127, 219, -1, 269, 120, 219, -1, 269, + 126, 127, 219, -1, -1, 51, 271, 272, 273, 371, + -1, 163, 140, -1, 272, 120, 163, 140, -1, -1, + 52, 163, -1, -1, 42, 275, 276, 371, -1, 163, + 140, -1, 276, 120, 163, 140, -1, -1, 82, 163, + 121, 278, 287, 122, 140, 371, -1, -1, 82, 163, + 279, 282, 371, -1, 84, 163, 371, -1, 85, 283, + 371, -1, -1, 85, 123, 140, 280, 281, 124, 371, + -1, 285, -1, 281, 120, 285, -1, 283, -1, 282, + 283, -1, 285, -1, 282, 285, -1, -1, 163, 121, + 284, 287, 122, 140, -1, -1, 163, 286, 140, -1, + -1, 290, -1, 291, -1, 290, 120, 291, -1, 289, + -1, 288, 120, 289, -1, 223, -1, 163, 140, -1, + 117, 163, 140, -1, 117, 163, 121, 288, 122, -1, + 290, 120, 163, 140, -1, 290, 120, 117, 163, 140, + -1, 290, 120, 117, 163, 121, 288, 122, -1, 83, + 163, 140, -1, 83, 117, 163, 140, -1, 83, 117, + 163, 121, 288, 122, -1, 291, 120, 83, 163, 140, + -1, 291, 120, 83, 117, 163, 140, -1, 291, 120, + 83, 117, 163, 121, 288, 122, -1, 293, -1, 305, + -1, 319, -1, 324, -1, 352, -1, 335, -1, 340, + -1, 369, -1, 294, 304, -1, 294, 297, 304, -1, + 294, 299, 304, -1, 294, 299, 297, 304, -1, -1, + -1, 14, 219, 295, 371, 296, 160, -1, -1, 15, + 371, 298, 160, -1, -1, -1, 16, 300, 219, 371, + 301, 160, -1, -1, -1, 299, 16, 302, 219, 371, + 303, 160, -1, 18, -1, 17, -1, 309, 310, 306, + -1, 309, 315, 306, -1, 309, 306, -1, 309, 310, + 315, 306, -1, 40, -1, 17, -1, -1, 37, 308, + 371, -1, 307, -1, 307, 159, -1, -1, -1, 38, + 311, 219, 371, 312, 160, -1, -1, -1, 310, 38, + 313, 219, 371, 314, 160, -1, -1, -1, 39, 316, + 371, 317, 160, -1, -1, 315, 39, 318, 371, 160, + -1, -1, -1, 322, 219, 371, 320, 160, 321, 323, + -1, 43, -1, 17, -1, 41, -1, -1, -1, -1, + 45, 224, 328, 219, 325, 47, 219, 329, 326, 371, + 327, 330, -1, 105, -1, 9, -1, -1, 48, 219, + -1, 160, 46, -1, 160, 46, 163, -1, 160, 17, + -1, 160, 17, 163, -1, 163, -1, 192, -1, 331, + -1, 332, 120, 331, -1, 117, 163, -1, 219, -1, + 333, -1, 334, 120, 333, -1, -1, -1, -1, 97, + 332, 52, 334, 336, 339, 337, 371, 338, 330, -1, + -1, 98, -1, -1, 345, 341, 346, 342, -1, 345, + 342, -1, 17, -1, -1, 99, 344, 219, 371, -1, + 343, -1, 343, 159, -1, -1, 38, 219, 347, 371, + 160, -1, -1, 346, 38, 219, 348, 371, 160, -1, + 349, -1, 346, 349, -1, -1, -1, 39, 350, 371, + 351, 160, -1, -1, -1, -1, -1, 62, 353, 371, + 160, 354, 359, 355, 357, 356, 17, -1, -1, 358, + 371, 160, -1, 66, -1, -1, 360, 371, 160, -1, + 361, 371, 160, -1, 64, -1, 65, 163, -1, 185, + -1, 187, -1, -1, 67, 362, 364, 366, -1, -1, + 96, 365, 366, -1, -1, 68, 367, -1, 120, -1, + 120, 368, -1, 368, -1, 367, 120, -1, 367, 120, + 368, -1, 163, -1, 205, -1, 201, -1, 214, -1, + 253, -1, -1, 100, 219, 371, 370, 160, 17, -1, + 118, -1, 119, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -1018,61 +1017,61 @@ static const yytype_uint16 yyrline[] = 336, 337, 338, 339, 340, 341, 344, 345, 353, 354, 355, 356, 357, 358, 364, 370, 371, 372, 373, 374, 375, 376, 377, 379, 379, 385, 386, 387, 399, 399, - 418, 420, 418, 424, 426, 424, 430, 431, 432, 433, - 434, 435, 435, 449, 452, 460, 473, 473, 476, 477, - 478, 479, 480, 481, 493, 494, 495, 496, 499, 500, - 501, 502, 505, 506, 509, 510, 513, 514, 517, 518, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 543, 544, - 547, 555, 556, 561, 564, 569, 575, 580, 585, 586, - 589, 594, 597, 608, 611, 616, 619, 622, 623, 626, - 629, 630, 635, 638, 643, 644, 647, 652, 655, 662, - 663, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 684, 685, 686, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 717, 718, - 719, 720, 721, 722, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, - 743, 744, 747, 750, 750, 753, 754, 754, 755, 755, - 759, 762, 765, 766, 769, 770, 773, 774, 775, 776, - 777, 780, 781, 786, 787, 788, 794, 795, 796, 799, - 802, 807, 807, 810, 819, 820, 821, 822, 823, 824, - 825, 826, 826, 827, 828, 829, 830, 831, 832, 833, - 834, 835, 836, 836, 837, 838, 839, 839, 840, 841, - 841, 842, 843, 844, 845, 846, 847, 848, 849, 852, - 853, 854, 855, 855, 856, 856, 857, 860, 861, 864, - 865, 868, 869, 870, 871, 872, 873, 874, 881, 882, - 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, - 893, 894, 895, 896, 897, 898, 899, 900, 901, 907, - 908, 911, 914, 915, 918, 919, 920, 923, 924, 925, - 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, - 936, 937, 938, 939, 940, 941, 942, 943, 946, 949, - 952, 955, 958, 961, 964, 967, 968, 969, 970, 971, - 972, 975, 976, 977, 978, 979, 980, 983, 984, 987, - 988, 989, 990, 991, 992, 993, 994, 995, 998, 1004, - 1005, 1006, 1009, 1010, 1013, 1013, 1019, 1020, 1025, 1026, - 1027, 1028, 1031, 1032, 1035, 1036, 1038, 1041, 1050, 1054, - 1057, 1057, 1059, 1059, 1061, 1061, 1071, 1072, 1075, 1076, - 1084, 1085, 1087, 1091, 1100, 1100, 1112, 1115, 1112, 1139, - 1145, 1148, 1149, 1150, 1153, 1153, 1161, 1162, 1165, 1166, - 1169, 1169, 1172, 1173, 1176, 1176, 1199, 1199, 1200, 1201, - 1202, 1202, 1205, 1206, 1209, 1210, 1211, 1212, 1215, 1215, - 1237, 1237, 1293, 1294, 1295, 1296, 1299, 1300, 1303, 1306, - 1307, 1308, 1309, 1310, 1311, 1314, 1315, 1316, 1317, 1318, - 1319, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1332, - 1333, 1334, 1335, 1339, 1341, 1338, 1346, 1346, 1350, 1352, - 1350, 1360, 1362, 1360, 1371, 1374, 1379, 1383, 1387, 1390, - 1396, 1401, 1408, 1408, 1411, 1412, 1420, 1421, 1420, 1432, - 1433, 1432, 1445, 1445, 1445, 1447, 1447, 1452, 1457, 1451, - 1471, 1474, 1475, 1479, 1491, 1496, 1478, 1536, 1537, 1540, - 1541, 1544, 1547, 1550, 1553, 1558, 1559, 1562, 1563, 1566, - 1567, 1570, 1571, 1576, 1582, 1591, 1575, 1611, 1612, 1616, - 1615, 1628, 1635, 1643, 1642, 1652, 1653, 1661, 1661, 1664, - 1664, 1667, 1669, 1672, 1672, 1672, 1677, 1684, 1692, 1702, - 1676, 1726, 1727, 1730, 1738, 1739, 1740, 1743, 1754, 1772, - 1773, 1777, 1776, 1784, 1783, 1794, 1795, 1798, 1799, 1800, - 1801, 1802, 1805, 1806, 1807, 1808, 1809, 1813, 1812, 1835, - 1836 + 422, 424, 422, 428, 430, 428, 434, 435, 436, 437, + 438, 439, 439, 453, 456, 464, 477, 477, 480, 481, + 482, 483, 484, 485, 497, 498, 499, 500, 503, 504, + 505, 506, 509, 510, 513, 514, 517, 518, 521, 522, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 547, 548, + 551, 559, 560, 565, 568, 573, 579, 584, 589, 590, + 593, 598, 601, 612, 615, 620, 623, 626, 627, 630, + 633, 634, 639, 642, 647, 648, 651, 656, 659, 666, + 667, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 688, 689, 690, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 721, 722, + 723, 724, 725, 726, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + 747, 748, 751, 754, 754, 757, 758, 758, 759, 759, + 763, 766, 769, 770, 773, 774, 777, 778, 779, 780, + 781, 784, 785, 790, 791, 792, 798, 799, 800, 803, + 806, 811, 811, 814, 823, 824, 825, 826, 827, 828, + 829, 830, 830, 831, 832, 833, 834, 835, 836, 837, + 838, 839, 840, 840, 841, 842, 843, 843, 844, 845, + 845, 846, 847, 848, 849, 850, 851, 852, 853, 856, + 857, 858, 859, 859, 860, 860, 861, 864, 865, 868, + 869, 872, 873, 874, 875, 876, 877, 878, 885, 886, + 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, + 897, 898, 899, 900, 901, 902, 903, 904, 905, 911, + 912, 915, 918, 919, 922, 923, 924, 927, 928, 929, + 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, + 940, 941, 942, 943, 944, 945, 946, 947, 950, 953, + 956, 959, 962, 965, 968, 971, 972, 973, 974, 975, + 976, 979, 980, 981, 982, 983, 984, 987, 988, 991, + 992, 993, 994, 995, 996, 997, 998, 999, 1002, 1008, + 1009, 1010, 1013, 1014, 1017, 1017, 1023, 1024, 1025, 1026, + 1029, 1030, 1033, 1034, 1037, 1039, 1038, 1074, 1075, 1077, + 1080, 1089, 1093, 1096, 1096, 1098, 1098, 1100, 1100, 1110, + 1111, 1114, 1115, 1123, 1124, 1126, 1130, 1139, 1139, 1156, + 1159, 1156, 1188, 1194, 1197, 1198, 1199, 1202, 1202, 1210, + 1211, 1214, 1215, 1218, 1218, 1221, 1222, 1225, 1225, 1248, + 1248, 1249, 1250, 1251, 1251, 1254, 1255, 1258, 1259, 1260, + 1261, 1264, 1264, 1286, 1286, 1342, 1343, 1344, 1345, 1348, + 1349, 1352, 1355, 1356, 1357, 1358, 1359, 1360, 1363, 1364, + 1365, 1366, 1367, 1368, 1371, 1372, 1373, 1374, 1375, 1376, + 1377, 1378, 1381, 1382, 1383, 1384, 1388, 1390, 1387, 1395, + 1395, 1399, 1401, 1399, 1409, 1411, 1409, 1420, 1423, 1428, + 1432, 1436, 1439, 1445, 1450, 1457, 1457, 1460, 1461, 1469, + 1470, 1469, 1481, 1482, 1481, 1494, 1494, 1494, 1496, 1496, + 1501, 1506, 1500, 1520, 1523, 1524, 1528, 1540, 1545, 1527, + 1585, 1586, 1589, 1590, 1593, 1596, 1599, 1602, 1607, 1608, + 1611, 1612, 1615, 1616, 1619, 1620, 1625, 1631, 1640, 1624, + 1660, 1661, 1665, 1664, 1677, 1684, 1692, 1691, 1701, 1702, + 1710, 1710, 1713, 1713, 1716, 1718, 1721, 1721, 1721, 1726, + 1733, 1741, 1751, 1725, 1775, 1776, 1779, 1787, 1788, 1789, + 1792, 1803, 1821, 1822, 1826, 1825, 1833, 1832, 1843, 1844, + 1847, 1848, 1849, 1850, 1851, 1854, 1855, 1856, 1857, 1858, + 1862, 1861, 1884, 1885 }; #endif @@ -1096,18 +1095,17 @@ static const char *const yytname[] = "OPTIONAL", "DECLARE_CLASS", "DECLARE_MEMBER", "AS_ARRAY_ARRAY", "AS_BLOCK_ARRAY", "AS_CHARACTER_ARRAY", "AS_CLASS_ARRAY", "AS_DATE_ARRAY", "AS_LOGICAL_ARRAY", "AS_NUMERIC_ARRAY", - "AS_OBJECT_ARRAY", "PROCREQ", "CBSTART", "BEGINCODE", "DOIDENT", - "FOREACH", "DESCEND", "DOSWITCH", "WITHOBJECT", "NUM_DATE", "EPSILON", - "HASHOP", "POST", "'='", "'<'", "'>'", "'$'", "'+'", "'-'", "'*'", "'/'", - "'%'", "UNARY", "PRE", "'&'", "'@'", "'\\n'", "';'", "','", "'('", "')'", - "'{'", "'}'", "':'", "']'", "'['", "'|'", "$accept", "Main", "Source", - "Line", "Function", "@1", "@2", "@3", "@4", "FunScope", "Params", - "AsType", "AsArrayType", "StrongType", "AsArray", "ParamList", - "Statement", "@5", "@6", "@7", "@8", "@9", "@10", "@11", "CompTimeStr", - "CrlfStmnt", "@12", "LineStat", "ControlError", "FunScopeId", - "Statements", "EmptyStats", "ExtList", "DynList", "IdentName", - "NumValue", "DateValue", "NumAlias", "NilValue", "NilAlias", - "LiteralValue", "LiteralAlias", "CodeBlockAlias", "Logical", + "AS_OBJECT_ARRAY", "PROCREQ", "CBSTART", "DOIDENT", "FOREACH", "DESCEND", + "DOSWITCH", "WITHOBJECT", "NUM_DATE", "EPSILON", "HASHOP", "POST", "'='", + "'<'", "'>'", "'$'", "'+'", "'-'", "'*'", "'/'", "'%'", "UNARY", "PRE", + "'&'", "'@'", "'\\n'", "';'", "','", "'('", "')'", "'{'", "'}'", "':'", + "']'", "'['", "'|'", "$accept", "Main", "Source", "Line", "Function", + "@1", "@2", "@3", "@4", "FunScope", "Params", "AsType", "AsArrayType", + "StrongType", "AsArray", "ParamList", "Statement", "@5", "@6", "@7", + "@8", "@9", "@10", "@11", "CompTimeStr", "CrlfStmnt", "@12", "LineStat", + "ControlError", "FunScopeId", "Statements", "EmptyStats", "ExtList", + "DynList", "IdentName", "NumValue", "DateValue", "NumAlias", "NilValue", + "NilAlias", "LiteralValue", "LiteralAlias", "CodeBlockAlias", "Logical", "LogicalAlias", "SelfValue", "SelfAlias", "Array", "ArrayAlias", "ArrayAt", "ArrayAtAlias", "Hash", "HashAlias", "HashList", "Variable", "VarAlias", "MacroVar", "MacroVarAlias", "MacroExpr", "MacroExprAlias", @@ -1121,25 +1119,26 @@ static const char *const yytname[] = "ExprPreOp", "ExprUnary", "ExprAssign", "ExprEqual", "ExprPlusEq", "ExprMinusEq", "ExprMultEq", "ExprDivEq", "ExprModEq", "ExprExpEq", "ExprOperEq", "ExprMath", "ExprBool", "ExprRelation", "ArrayIndex", - "IndexList", "ElemList", "CodeBlock", "@23", "BlockExpList", "BlockVars", - "BlockVarList", "ExpList", "PareExpList", "PareExpListAlias", "IfInline", - "IfInlineAlias", "VarDefs", "@24", "@25", "@26", "VarList", "ExtVarList", - "ExtVarDef", "VarDef", "@27", "@28", "@29", "DimList", "DimIndex", - "FieldsDef", "@30", "FieldList", "InAlias", "MemvarDef", "@31", - "MemvarList", "Declaration", "@32", "@33", "@34", "DecDataList", - "ClassInfo", "DecMethod", "@35", "DecData", "@36", "DecList", - "DummyArgList", "DummyArgument", "FormalList", "OptList", "ExecFlow", - "IfEndif", "IfBegin", "@37", "@38", "IfElse", "@39", "IfElseIf", "@40", - "@41", "@42", "@43", "EndIf", "DoCase", "EndCase", "DoCaseStart", "@44", - "DoCaseBegin", "Cases", "@45", "@46", "@47", "@48", "Otherwise", "@49", - "@50", "@51", "DoWhile", "@52", "@53", "WhileBegin", "EndWhile", - "ForNext", "@54", "@55", "@56", "ForAssign", "StepExpr", "ForStatements", - "ForVar", "ForList", "ForExpr", "ForArgs", "ForEach", "@57", "@58", - "@59", "Descend", "DoSwitch", "@60", "EndSwitch", "SwitchStart", "@61", - "SwitchBegin", "SwitchCases", "@62", "@63", "SwitchDefault", "@64", - "@65", "BeginSeq", "@66", "@67", "@68", "@69", "AlwaysSeq", "Always", - "RecoverSeq", "RecoverEmpty", "RecoverUsing", "DoName", "DoProc", "@70", - "@71", "DoArgs", "DoArgList", "DoArgument", "WithObject", "@72", "Crlf", 0 + "IndexList", "ElemList", "BlockHead", "@23", "BlockVars", "BlockVarList", + "BlockExpList", "CodeBlock", "@24", "ExpList", "PareExpList", + "PareExpListAlias", "IfInline", "IfInlineAlias", "VarDefs", "@25", "@26", + "@27", "VarList", "ExtVarList", "ExtVarDef", "VarDef", "@28", "@29", + "@30", "DimList", "DimIndex", "FieldsDef", "@31", "FieldList", "InAlias", + "MemvarDef", "@32", "MemvarList", "Declaration", "@33", "@34", "@35", + "DecDataList", "ClassInfo", "DecMethod", "@36", "DecData", "@37", + "DecList", "DummyArgList", "DummyArgument", "FormalList", "OptList", + "ExecFlow", "IfEndif", "IfBegin", "@38", "@39", "IfElse", "@40", + "IfElseIf", "@41", "@42", "@43", "@44", "EndIf", "DoCase", "EndCase", + "DoCaseStart", "@45", "DoCaseBegin", "Cases", "@46", "@47", "@48", "@49", + "Otherwise", "@50", "@51", "@52", "DoWhile", "@53", "@54", "WhileBegin", + "EndWhile", "ForNext", "@55", "@56", "@57", "ForAssign", "StepExpr", + "ForStatements", "ForVar", "ForList", "ForExpr", "ForArgs", "ForEach", + "@58", "@59", "@60", "Descend", "DoSwitch", "@61", "EndSwitch", + "SwitchStart", "@62", "SwitchBegin", "SwitchCases", "@63", "@64", + "SwitchDefault", "@65", "@66", "BeginSeq", "@67", "@68", "@69", "@70", + "AlwaysSeq", "Always", "RecoverSeq", "RecoverEmpty", "RecoverUsing", + "DoName", "DoProc", "@71", "@72", "DoArgs", "DoArgList", "DoArgument", + "WithObject", "@73", "Crlf", 0 }; #endif @@ -1158,78 +1157,78 @@ static const yytype_uint16 yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 61, 60, 62, 36, - 43, 45, 42, 47, 37, 361, 362, 38, 64, 10, - 59, 44, 40, 41, 123, 125, 58, 93, 91, 124 + 355, 356, 357, 358, 359, 61, 60, 62, 36, 43, + 45, 42, 47, 37, 360, 361, 38, 64, 10, 59, + 44, 40, 41, 123, 125, 58, 93, 91, 124 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 130, 131, 131, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 133, 133, 135, 134, - 136, 134, 137, 134, 138, 134, 139, 139, 139, 139, - 140, 140, 140, 140, 141, 141, 142, 142, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 145, 145, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 147, 146, 146, 146, 146, 148, 146, - 149, 150, 146, 151, 152, 146, 146, 146, 146, 146, - 146, 153, 146, 146, 154, 154, 156, 155, 157, 157, - 157, 157, 157, 157, 158, 158, 158, 158, 159, 159, - 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 165, 165, - 166, 167, 167, 168, 169, 170, 171, 172, 173, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 181, 182, - 183, 183, 184, 185, 186, 186, 187, 188, 189, 190, - 190, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 192, 192, 192, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 194, 194, - 194, 194, 194, 194, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 196, 198, 197, 199, 200, 199, 201, 199, - 202, 203, 204, 204, 205, 205, 206, 206, 206, 206, - 206, 207, 207, 208, 208, 208, 209, 209, 209, 210, - 211, 213, 212, 214, 215, 215, 215, 215, 215, 215, - 215, 216, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 217, 215, 215, 215, 218, 215, 215, 219, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 220, - 220, 220, 221, 220, 222, 220, 220, 223, 223, 224, - 224, 225, 225, 225, 225, 225, 225, 225, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 227, - 227, 228, 229, 229, 230, 230, 230, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 239, 239, 239, 239, - 239, 240, 240, 240, 240, 240, 240, 241, 241, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 243, 244, - 244, 244, 245, 245, 247, 246, 248, 248, 249, 249, - 249, 249, 250, 250, 251, 251, 252, 253, 254, 255, - 257, 256, 258, 256, 259, 256, 260, 260, 261, 261, - 262, 262, 262, 262, 264, 263, 265, 266, 263, 263, - 267, 268, 268, 268, 270, 269, 271, 271, 272, 272, - 274, 273, 275, 275, 277, 276, 278, 276, 276, 276, - 279, 276, 280, 280, 281, 281, 281, 281, 283, 282, - 285, 284, 286, 286, 286, 286, 287, 287, 288, 289, - 289, 289, 289, 289, 289, 290, 290, 290, 290, 290, - 290, 291, 291, 291, 291, 291, 291, 291, 291, 292, - 292, 292, 292, 294, 295, 293, 297, 296, 299, 300, - 298, 301, 302, 298, 303, 303, 304, 304, 304, 304, - 305, 305, 307, 306, 308, 308, 310, 311, 309, 312, - 313, 309, 315, 316, 314, 317, 314, 319, 320, 318, - 321, 322, 322, 324, 325, 326, 323, 327, 327, 328, - 328, 329, 329, 329, 329, 330, 330, 331, 331, 332, - 332, 333, 333, 335, 336, 337, 334, 338, 338, 340, - 339, 339, 341, 343, 342, 344, 344, 346, 345, 347, - 345, 345, 345, 349, 350, 348, 352, 353, 354, 355, - 351, 356, 356, 357, 358, 358, 358, 359, 360, 361, - 361, 363, 362, 364, 362, 365, 365, 366, 366, 366, - 366, 366, 367, 367, 367, 367, 367, 369, 368, 370, - 370 + 0, 129, 130, 130, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 132, 132, 134, 133, + 135, 133, 136, 133, 137, 133, 138, 138, 138, 138, + 139, 139, 139, 139, 140, 140, 141, 141, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 144, 144, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 146, 145, 145, 145, 145, 147, 145, + 148, 149, 145, 150, 151, 145, 145, 145, 145, 145, + 145, 152, 145, 145, 153, 153, 155, 154, 156, 156, + 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, + 158, 158, 159, 159, 160, 160, 161, 161, 162, 162, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 164, 164, + 165, 166, 166, 167, 168, 169, 170, 171, 172, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 180, 181, + 182, 182, 183, 184, 185, 185, 186, 187, 188, 189, + 189, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 191, 191, 191, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 193, 193, + 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 195, 197, 196, 198, 199, 198, 200, 198, + 201, 202, 203, 203, 204, 204, 205, 205, 205, 205, + 205, 206, 206, 207, 207, 207, 208, 208, 208, 209, + 210, 212, 211, 213, 214, 214, 214, 214, 214, 214, + 214, 215, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 216, 214, 214, 214, 217, 214, 214, 218, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 219, + 219, 219, 220, 219, 221, 219, 219, 222, 222, 223, + 223, 224, 224, 224, 224, 224, 224, 224, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 226, + 226, 227, 228, 228, 229, 229, 229, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 238, 238, 238, 238, + 238, 239, 239, 239, 239, 239, 239, 240, 240, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 242, 243, + 243, 243, 244, 244, 246, 245, 247, 247, 247, 247, + 248, 248, 249, 249, 250, 251, 250, 252, 252, 253, + 254, 255, 256, 258, 257, 259, 257, 260, 257, 261, + 261, 262, 262, 263, 263, 263, 263, 265, 264, 266, + 267, 264, 264, 268, 269, 269, 269, 271, 270, 272, + 272, 273, 273, 275, 274, 276, 276, 278, 277, 279, + 277, 277, 277, 280, 277, 281, 281, 282, 282, 282, + 282, 284, 283, 286, 285, 287, 287, 287, 287, 288, + 288, 289, 290, 290, 290, 290, 290, 290, 291, 291, + 291, 291, 291, 291, 292, 292, 292, 292, 292, 292, + 292, 292, 293, 293, 293, 293, 295, 296, 294, 298, + 297, 300, 301, 299, 302, 303, 299, 304, 304, 305, + 305, 305, 305, 306, 306, 308, 307, 309, 309, 311, + 312, 310, 313, 314, 310, 316, 317, 315, 318, 315, + 320, 321, 319, 322, 323, 323, 325, 326, 327, 324, + 328, 328, 329, 329, 330, 330, 330, 330, 331, 331, + 332, 332, 333, 333, 334, 334, 336, 337, 338, 335, + 339, 339, 341, 340, 340, 342, 344, 343, 345, 345, + 347, 346, 348, 346, 346, 346, 350, 351, 349, 353, + 354, 355, 356, 352, 357, 357, 358, 359, 359, 359, + 360, 361, 362, 362, 364, 363, 365, 363, 366, 366, + 367, 367, 367, 367, 367, 368, 368, 368, 368, 368, + 370, 369, 371, 371 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1275,29 +1274,29 @@ static const yytype_uint8 yyr2[] = 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, - 3, 4, 1, 3, 0, 6, 1, 3, 0, 1, - 1, 3, 2, 4, 1, 3, 3, 2, 8, 2, - 0, 4, 0, 4, 0, 4, 1, 3, 1, 3, - 1, 2, 4, 3, 0, 3, 0, 0, 6, 3, - 2, 2, 3, 4, 0, 5, 2, 4, 0, 2, - 0, 4, 2, 4, 0, 8, 0, 5, 3, 3, - 0, 7, 1, 3, 1, 2, 1, 2, 0, 6, - 0, 3, 0, 1, 1, 3, 1, 3, 1, 2, - 3, 5, 4, 5, 7, 3, 4, 6, 5, 6, - 8, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 3, 3, 4, 0, 0, 6, 0, 4, 0, 0, - 6, 0, 0, 7, 1, 1, 3, 3, 2, 4, - 1, 1, 0, 3, 1, 2, 0, 0, 6, 0, - 0, 7, 0, 0, 5, 0, 5, 0, 0, 7, - 1, 1, 1, 0, 0, 0, 12, 1, 1, 0, - 2, 2, 3, 2, 3, 1, 1, 1, 3, 2, - 1, 1, 3, 0, 0, 0, 10, 0, 1, 0, - 4, 2, 1, 0, 4, 1, 2, 0, 5, 0, - 6, 1, 2, 0, 0, 5, 0, 0, 0, 0, - 10, 0, 3, 1, 0, 3, 3, 1, 2, 1, - 1, 0, 4, 0, 3, 0, 2, 1, 2, 1, - 2, 3, 1, 1, 1, 1, 1, 0, 6, 1, - 1 + 3, 4, 1, 3, 0, 4, 0, 1, 1, 3, + 2, 4, 1, 3, 3, 0, 5, 1, 3, 3, + 2, 8, 2, 0, 4, 0, 4, 0, 4, 1, + 3, 1, 3, 1, 2, 4, 3, 0, 3, 0, + 0, 6, 3, 2, 2, 3, 4, 0, 5, 2, + 4, 0, 2, 0, 4, 2, 4, 0, 8, 0, + 5, 3, 3, 0, 7, 1, 3, 1, 2, 1, + 2, 0, 6, 0, 3, 0, 1, 1, 3, 1, + 3, 1, 2, 3, 5, 4, 5, 7, 3, 4, + 6, 5, 6, 8, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 3, 3, 4, 0, 0, 6, 0, + 4, 0, 0, 6, 0, 0, 7, 1, 1, 3, + 3, 2, 4, 1, 1, 0, 3, 1, 2, 0, + 0, 6, 0, 0, 7, 0, 0, 5, 0, 5, + 0, 0, 7, 1, 1, 1, 0, 0, 0, 12, + 1, 1, 0, 2, 2, 3, 2, 3, 1, 1, + 1, 3, 2, 1, 1, 3, 0, 0, 0, 10, + 0, 1, 0, 4, 2, 1, 0, 4, 1, 2, + 0, 5, 0, 6, 1, 2, 0, 0, 5, 0, + 0, 0, 0, 10, 0, 3, 1, 0, 3, 3, + 1, 2, 1, 1, 0, 4, 0, 3, 0, 2, + 1, 2, 1, 2, 3, 1, 1, 1, 1, 1, + 0, 6, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1305,1668 +1304,1686 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 0, 120, 78, 143, 138, 139, 420, 422, 0, + 0, 0, 120, 78, 143, 138, 139, 423, 425, 0, 0, 145, 148, 149, 129, 127, 128, 28, 124, 80, - 0, 0, 522, 450, 540, 123, 0, 122, 121, 444, - 125, 424, 83, 586, 73, 0, 151, 0, 164, 165, - 0, 126, 0, 0, 136, 404, 603, 0, 137, 573, - 0, 140, 0, 619, 620, 0, 309, 0, 0, 0, + 0, 0, 525, 453, 543, 123, 0, 122, 121, 447, + 125, 427, 83, 589, 73, 0, 151, 0, 164, 165, + 0, 126, 0, 0, 136, 404, 606, 0, 137, 576, + 0, 140, 0, 622, 623, 0, 309, 0, 0, 0, 8, 6, 0, 7, 162, 318, 320, 0, 319, 0, 321, 0, 0, 323, 0, 324, 0, 325, 0, 326, 0, 327, 0, 332, 0, 330, 0, 331, 0, 0, 0, 328, 329, 333, 0, 235, 335, 0, 337, 0, 0, 338, 0, 0, 96, 96, 96, 96, 375, 376, - 377, 378, 379, 380, 96, 322, 334, 0, 336, 0, - 86, 87, 88, 5, 96, 491, 0, 492, 0, 0, - 493, 0, 494, 496, 497, 0, 569, 495, 96, 498, - 4, 9, 0, 77, 0, 142, 141, 0, 0, 0, - 130, 132, 129, 127, 128, 124, 0, 134, 131, 123, - 0, 135, 133, 136, 0, 0, 0, 264, 266, 265, - 267, 269, 270, 273, 274, 275, 300, 278, 279, 276, - 277, 280, 281, 306, 285, 288, 299, 503, 0, 293, - 294, 295, 291, 292, 296, 297, 298, 268, 301, 284, - 91, 0, 116, 0, 118, 75, 0, 342, 343, 0, - 0, 76, 162, 318, 320, 319, 321, 323, 324, 325, - 326, 327, 332, 313, 314, 312, 329, 316, 335, 315, - 338, 0, 0, 322, 317, 336, 169, 0, 0, 0, - 0, 0, 72, 599, 600, 601, 0, 456, 0, 34, - 0, 0, 94, 0, 408, 605, 162, 330, 331, 556, - 333, 337, 334, 557, 0, 0, 0, 0, 167, 0, - 414, 0, 251, 0, 0, 0, 252, 245, 402, 310, - 244, 0, 256, 257, 258, 255, 1, 0, 14, 12, - 13, 11, 10, 0, 0, 163, 233, 0, 0, 214, - 0, 0, 216, 185, 186, 187, 188, 208, 0, 144, - 215, 192, 0, 146, 217, 193, 195, 0, 150, 219, - 194, 0, 152, 221, 197, 0, 154, 155, 198, 0, - 156, 199, 0, 159, 220, 196, 0, 222, 205, 209, - 0, 166, 236, 63, 225, 189, 210, 0, 168, 238, - 64, 226, 190, 211, 0, 0, 185, 172, 0, 176, - 0, 177, 179, 0, 178, 0, 180, 0, 181, 0, - 182, 0, 183, 171, 186, 174, 187, 175, 206, 0, - 213, 173, 0, 184, 207, 0, 223, 0, 61, 224, - 0, 232, 200, 0, 241, 60, 229, 202, 0, 260, - 261, 227, 0, 203, 0, 263, 62, 228, 204, 339, - 340, 0, 0, 0, 0, 0, 0, 0, 0, 341, - 67, 66, 70, 69, 68, 0, 147, 218, 0, 417, - 65, 231, 191, 212, 0, 419, 59, 230, 201, 58, - 0, 508, 515, 514, 0, 0, 499, 103, 422, 110, - 124, 101, 99, 112, 102, 0, 0, 100, 98, 521, - 526, 532, 520, 518, 0, 0, 0, 0, 572, 0, - 571, 71, 0, 97, 34, 0, 426, 0, 0, 344, - 346, 345, 0, 240, 0, 0, 0, 0, 0, 0, + 377, 378, 379, 380, 96, 0, 322, 334, 0, 336, + 0, 86, 87, 88, 5, 96, 494, 0, 495, 0, + 0, 496, 0, 497, 499, 500, 0, 572, 498, 96, + 501, 4, 9, 0, 77, 0, 142, 141, 0, 0, + 0, 130, 132, 129, 127, 128, 124, 0, 134, 131, + 123, 0, 135, 133, 136, 0, 0, 0, 264, 266, + 265, 267, 269, 270, 273, 274, 275, 300, 278, 279, + 276, 277, 280, 281, 306, 285, 288, 299, 506, 0, + 293, 294, 295, 291, 292, 296, 297, 298, 268, 301, + 284, 91, 0, 116, 0, 118, 75, 0, 342, 343, + 0, 0, 76, 162, 318, 320, 319, 321, 323, 324, + 325, 326, 327, 332, 313, 314, 312, 329, 316, 335, + 315, 338, 0, 0, 322, 317, 336, 169, 0, 0, + 0, 0, 0, 72, 602, 603, 604, 0, 459, 0, + 34, 0, 0, 94, 0, 406, 608, 162, 330, 331, + 559, 333, 337, 334, 560, 0, 0, 0, 0, 167, + 0, 417, 0, 251, 0, 0, 0, 252, 245, 402, + 310, 244, 0, 256, 257, 258, 255, 1, 0, 14, + 12, 13, 11, 10, 0, 0, 163, 233, 0, 0, + 214, 0, 0, 216, 185, 186, 187, 188, 208, 0, + 144, 215, 192, 0, 146, 217, 193, 195, 0, 150, + 219, 194, 0, 152, 221, 197, 0, 154, 155, 198, + 0, 156, 199, 0, 159, 220, 196, 0, 222, 205, + 209, 0, 166, 236, 63, 225, 189, 210, 0, 168, + 238, 64, 226, 190, 211, 0, 0, 185, 172, 0, + 176, 0, 177, 179, 0, 178, 0, 180, 0, 181, + 0, 182, 0, 183, 171, 186, 174, 187, 175, 206, + 0, 213, 173, 0, 184, 207, 0, 223, 0, 61, + 224, 0, 232, 200, 0, 241, 60, 229, 202, 0, + 260, 261, 227, 0, 203, 0, 263, 62, 228, 204, + 339, 340, 0, 0, 0, 0, 0, 0, 0, 0, + 341, 67, 66, 70, 69, 68, 412, 0, 415, 0, + 147, 218, 0, 420, 65, 231, 191, 212, 0, 422, + 59, 230, 201, 58, 0, 511, 518, 517, 0, 0, + 502, 103, 425, 110, 124, 101, 99, 112, 102, 0, + 0, 100, 98, 524, 529, 535, 523, 521, 0, 0, + 0, 0, 575, 0, 574, 71, 0, 97, 34, 0, + 429, 0, 0, 344, 346, 345, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89, 0, 90, 34, 81, 428, 430, 523, 34, 0, - 548, 547, 0, 170, 34, 448, 0, 84, 0, 0, - 605, 0, 454, 0, 458, 47, 42, 39, 0, 40, - 41, 38, 43, 45, 52, 53, 49, 0, 50, 51, - 48, 54, 460, 35, 46, 468, 459, 0, 0, 409, - 34, 0, 410, 0, 604, 0, 0, 0, 617, 0, - 0, 416, 157, 246, 247, 248, 250, 240, 249, 0, - 158, 309, 309, 153, 15, 18, 20, 309, 347, 307, - 308, 399, 0, 398, 349, 348, 350, 352, 353, 354, - 355, 356, 361, 359, 309, 360, 309, 357, 358, 362, - 365, 366, 309, 254, 367, 369, 370, 371, 372, 374, - 373, 368, 253, 351, 363, 364, 506, 0, 500, 511, - 0, 501, 0, 0, 113, 0, 0, 529, 516, 0, - 535, 517, 537, 0, 583, 0, 581, 79, 0, 434, - 36, 0, 0, 421, 423, 309, 272, 303, 283, 287, - 290, 387, 388, 389, 394, 395, 392, 393, 386, 397, - 390, 391, 396, 381, 382, 383, 384, 385, 504, 305, - 92, 117, 119, 431, 36, 0, 0, 452, 0, 451, - 543, 446, 0, 0, 0, 425, 0, 0, 587, 74, - 602, 0, 16, 472, 470, 0, 464, 466, 44, 55, - 0, 472, 95, 93, 412, 0, 0, 607, 162, 306, - 613, 299, 0, 301, 606, 609, 0, 560, 561, 563, - 558, 574, 0, 259, 415, 0, 310, 160, 403, 0, - 0, 0, 0, 0, 242, 400, 0, 0, 0, 0, - 0, 0, 0, 502, 0, 0, 0, 533, 0, 519, - 0, 0, 577, 0, 0, 570, 582, 441, 435, 0, - 439, 37, 0, 440, 427, 0, 0, 0, 433, 429, - 82, 34, 0, 449, 34, 445, 85, 594, 0, 126, - 0, 34, 0, 473, 474, 34, 465, 467, 457, 470, - 0, 462, 0, 406, 0, 411, 34, 608, 610, 559, - 0, 567, 0, 309, 19, 30, 21, 30, 309, 234, - 401, 237, 239, 262, 507, 509, 0, 30, 104, 30, - 106, 527, 0, 0, 0, 538, 0, 584, 579, 437, - 442, 0, 309, 505, 432, 453, 0, 447, 597, 0, - 588, 0, 0, 17, 0, 34, 34, 479, 34, 0, - 0, 471, 0, 0, 34, 0, 405, 413, 611, 562, - 568, 564, 618, 161, 31, 0, 32, 34, 0, 243, - 0, 512, 0, 0, 0, 534, 530, 536, 0, 0, - 0, 0, 0, 443, 0, 549, 598, 591, 0, 0, - 34, 485, 309, 480, 0, 0, 34, 475, 0, 463, - 461, 469, 407, 0, 0, 0, 56, 0, 510, 0, - 0, 0, 528, 0, 541, 542, 539, 578, 585, 0, - 438, 418, 0, 544, 593, 589, 0, 595, 596, 309, - 486, 478, 0, 476, 455, 34, 482, 0, 34, 565, - 23, 33, 34, 25, 513, 105, 107, 531, 580, 550, - 0, 0, 0, 0, 309, 481, 309, 483, 34, 488, - 0, 57, 545, 590, 592, 487, 477, 0, 309, 489, - 0, 566, 0, 484, 0, 553, 551, 546, 490, 554, - 552 + 0, 0, 0, 0, 89, 0, 90, 34, 81, 431, + 433, 526, 34, 0, 551, 550, 0, 170, 34, 451, + 0, 84, 0, 0, 608, 0, 457, 0, 461, 47, + 42, 39, 0, 40, 41, 38, 43, 45, 52, 53, + 49, 0, 50, 51, 48, 54, 463, 35, 46, 471, + 462, 0, 0, 407, 34, 0, 408, 0, 607, 0, + 0, 0, 620, 0, 0, 419, 157, 246, 247, 248, + 250, 240, 249, 0, 158, 309, 309, 153, 15, 18, + 20, 309, 347, 307, 308, 399, 0, 398, 349, 348, + 350, 352, 353, 354, 355, 356, 361, 359, 309, 360, + 309, 357, 358, 362, 365, 366, 309, 254, 367, 369, + 370, 371, 372, 374, 373, 368, 253, 0, 414, 0, + 351, 363, 364, 509, 0, 503, 514, 0, 504, 0, + 0, 113, 0, 0, 532, 519, 0, 538, 520, 540, + 0, 586, 0, 584, 79, 0, 437, 36, 0, 0, + 424, 426, 309, 272, 303, 283, 287, 290, 387, 388, + 389, 394, 395, 392, 393, 386, 397, 390, 391, 396, + 381, 382, 383, 384, 385, 507, 305, 92, 117, 119, + 434, 36, 0, 0, 455, 0, 454, 546, 449, 0, + 0, 0, 428, 0, 0, 590, 74, 605, 0, 16, + 475, 473, 0, 467, 469, 44, 55, 0, 475, 95, + 93, 410, 405, 0, 610, 162, 306, 616, 299, 0, + 301, 609, 612, 0, 563, 564, 566, 561, 577, 0, + 259, 418, 0, 310, 160, 403, 0, 0, 0, 0, + 0, 242, 400, 0, 0, 0, 0, 413, 0, 0, + 0, 0, 505, 0, 0, 0, 536, 0, 522, 0, + 0, 580, 0, 0, 573, 585, 444, 438, 0, 442, + 37, 0, 443, 430, 0, 0, 0, 436, 432, 82, + 34, 0, 452, 34, 448, 85, 597, 0, 126, 0, + 34, 0, 476, 477, 34, 468, 470, 460, 473, 0, + 465, 0, 409, 34, 611, 613, 562, 0, 570, 0, + 309, 19, 30, 21, 30, 309, 234, 401, 237, 239, + 262, 416, 510, 512, 0, 30, 104, 30, 106, 530, + 0, 0, 0, 541, 0, 587, 582, 440, 445, 0, + 309, 508, 435, 456, 0, 450, 600, 0, 591, 0, + 0, 17, 0, 34, 34, 482, 34, 0, 0, 474, + 0, 0, 34, 411, 614, 565, 571, 567, 621, 161, + 31, 0, 32, 34, 0, 243, 0, 515, 0, 0, + 0, 537, 533, 539, 0, 0, 0, 0, 0, 446, + 0, 552, 601, 594, 0, 0, 34, 488, 309, 483, + 0, 0, 34, 478, 0, 466, 464, 472, 0, 0, + 0, 56, 0, 513, 0, 0, 0, 531, 0, 544, + 545, 542, 581, 588, 0, 441, 421, 0, 547, 596, + 592, 0, 598, 599, 309, 489, 481, 0, 479, 458, + 34, 485, 0, 34, 568, 23, 33, 34, 25, 516, + 105, 107, 534, 583, 553, 0, 0, 0, 0, 309, + 484, 309, 486, 34, 491, 0, 57, 548, 593, 595, + 490, 480, 0, 309, 492, 0, 569, 0, 487, 0, + 556, 554, 549, 493, 557, 555 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 58, 59, 451, 61, 739, 741, 740, 742, 62, - 875, 552, 770, 553, 554, 876, 452, 241, 142, 206, - 686, 239, 696, 508, 253, 205, 144, 453, 454, 455, - 697, 980, 201, 203, 64, 167, 168, 67, 169, 69, - 170, 71, 72, 171, 74, 172, 76, 173, 78, 174, - 80, 175, 82, 275, 176, 84, 177, 86, 178, 88, - 89, 90, 306, 179, 180, 181, 94, 95, 587, 182, - 604, 606, 183, 97, 743, 276, 277, 744, 184, 285, - 99, 100, 185, 612, 102, 186, 484, 486, 487, 488, - 736, 485, 507, 591, 280, 231, 188, 419, 189, 190, - 191, 192, 107, 108, 109, 110, 111, 112, 113, 193, - 194, 195, 196, 344, 300, 281, 197, 254, 804, 561, - 562, 271, 198, 117, 199, 119, 120, 147, 148, 238, - 475, 514, 515, 516, 768, 769, 892, 650, 651, 121, - 237, 525, 694, 122, 210, 519, 457, 703, 533, 710, - 800, 705, 251, 711, 707, 795, 792, 942, 943, 793, - 794, 124, 125, 126, 506, 776, 444, 750, 445, 627, - 880, 752, 919, 446, 127, 463, 128, 209, 129, 464, - 635, 884, 758, 923, 465, 636, 832, 760, 130, 761, - 888, 131, 926, 132, 782, 960, 982, 522, 933, 981, - 263, 264, 728, 729, 133, 811, 913, 970, 871, 134, - 469, 470, 135, 265, 136, 645, 836, 891, 646, 763, - 890, 137, 240, 787, 897, 961, 935, 936, 850, 851, - 852, 245, 138, 530, 255, 564, 724, 725, 139, 732, - 458 + -1, 58, 59, 455, 61, 746, 748, 747, 749, 62, + 881, 556, 779, 557, 558, 882, 456, 242, 143, 207, + 693, 240, 703, 512, 254, 206, 145, 457, 458, 459, + 704, 985, 202, 204, 64, 168, 169, 67, 170, 69, + 171, 71, 72, 172, 74, 173, 76, 174, 78, 175, + 80, 176, 82, 276, 177, 84, 178, 86, 179, 88, + 89, 90, 307, 180, 181, 182, 94, 95, 591, 183, + 608, 610, 184, 97, 750, 277, 278, 751, 185, 286, + 99, 100, 186, 616, 102, 187, 488, 490, 491, 492, + 743, 489, 511, 595, 281, 232, 189, 420, 190, 191, + 192, 193, 107, 108, 109, 110, 111, 112, 113, 194, + 195, 196, 197, 345, 301, 282, 115, 255, 565, 566, + 427, 198, 629, 272, 199, 118, 200, 120, 121, 148, + 149, 239, 479, 518, 519, 520, 777, 778, 898, 657, + 658, 122, 238, 529, 701, 123, 211, 523, 461, 710, + 537, 717, 809, 712, 252, 718, 714, 804, 801, 947, + 948, 802, 803, 125, 126, 127, 510, 785, 448, 759, + 449, 634, 886, 761, 924, 450, 128, 467, 129, 210, + 130, 468, 642, 890, 767, 928, 469, 643, 840, 769, + 131, 770, 894, 132, 931, 133, 791, 965, 987, 526, + 938, 986, 264, 265, 735, 736, 134, 818, 918, 975, + 877, 135, 473, 474, 136, 266, 137, 652, 844, 897, + 653, 772, 896, 138, 241, 796, 903, 966, 940, 941, + 858, 859, 860, 246, 139, 534, 256, 568, 731, 732, + 140, 739, 462 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -788 +#define YYPACT_NINF -899 static const yytype_int16 yypact[] = { - 4430, 293, -788, 335, -788, 17, 29, 616, 466, -35, - 6760, -788, -788, -788, 8085, 8085, 8085, -788, 20, 755, - 6760, 6760, -788, 788, -788, 335, 7240, -788, -788, 56, - -788, 1466, 1505, -788, 335, -44, -788, 98, -788, -788, - 8085, -788, 8085, 532, 210, -788, -788, 7240, -788, -788, - 6760, -788, 46, -788, -788, 6880, 3660, 7827, 176, 4780, - -788, -788, 460, -788, -7, 42, 54, 4271, 10, 7827, - 13, 7827, 7827, 24, 7827, 76, 7827, 84, 7827, 45, - 7827, 109, 7827, 61, 4271, 59, 4271, 94, 4271, 7348, - 7827, 70, 112, 47, 7827, -788, 89, 7827, 28, 130, - 7827, 100, 7827, 392, -788, -788, -788, -788, -788, -788, - -788, -788, -788, -788, -788, 227, 157, 4271, 206, 7827, - -788, -788, -788, -788, -788, -788, 488, -788, 5028, 440, - -788, 6760, -788, -788, -788, 5648, 311, -788, -788, -788, - -788, -788, 6760, -788, 293, -788, -788, 8085, 8085, 6760, - -788, -788, -788, -788, -788, -788, 6760, -788, -788, -788, - 56, -788, -788, -788, 6760, 6760, 8085, 313, 627, 1378, - 1635, 1757, 3235, 1965, 670, 2117, 7596, 190, 1302, 1116, - 1916, 1582, 4669, -788, 2590, 7476, -788, 3707, 457, -788, - -788, -788, -788, -788, -788, -788, -788, 2159, 7536, 2166, - -788, 220, -788, 284, -788, -788, 8027, -788, -788, 293, - 8085, -788, 271, 181, 181, -5, 9, 30, 55, 63, - 301, 77, 181, 5, 191, 291, 181, 69, 93, 253, - 205, 8, 194, 235, -2, 258, 310, 8085, 8085, 8027, - 293, 6760, -788, -788, -788, -788, 347, 266, 293, 8191, - 286, 293, 327, 345, 3019, 382, 294, 199, 216, 291, - 454, 243, 261, -788, -14, 6760, 7395, 6760, -788, 8085, - 3707, 312, -788, 351, 7240, -63, -788, -788, -788, 2909, - -788, 183, -788, -788, -788, -788, -788, 293, -788, -788, - -788, -788, -788, 8085, 8085, -788, -788, 6760, 3498, -788, - -77, 6760, -788, -788, -788, -788, -788, -788, 6760, -788, - -788, -788, 6760, -788, -788, -788, -788, 6760, -788, -788, - -788, 6760, -788, -788, -788, 6760, -788, -788, -788, 6760, - -788, -788, 6760, -788, -788, -788, 6760, -788, -788, -788, - 6760, -788, -788, -788, -788, -788, -788, 6760, -788, -788, - -788, -788, -788, -788, 17, 29, 463, -788, 479, -788, - 483, -788, -788, 528, -788, 537, -788, 63, -788, 301, - -788, 545, -788, -788, 553, -788, 581, -788, -788, 586, - 594, -788, 598, -788, -788, 6760, -788, 6760, -788, -788, - 6760, -788, -788, 6760, -788, -788, -788, -788, 6760, -788, - -788, -788, 7827, -788, 6760, -788, -788, -788, -788, -788, - -788, 6760, 6760, 6760, 6760, 6760, 6760, 6760, 7827, -788, - -788, -788, -788, -788, -788, 6760, -788, -788, 6760, -788, - -788, -788, -788, -788, 6760, -788, -788, -788, -788, -788, - 293, -788, -788, -788, 543, 584, -788, -788, 656, -788, - 264, -788, -788, -788, -788, 583, 5152, -788, -788, -788, - -788, -788, -788, -788, 444, 357, 7395, 5772, -788, 571, - -788, -788, 7395, -788, 3755, 323, -788, 323, 2760, 1360, - -788, -788, 374, -788, 8191, 8191, 8191, 8191, 8191, 6760, - 6760, 6760, 6760, 6760, 6760, 6760, 6760, 6760, 6760, 6760, - 6760, 6760, 6760, 6760, 6760, 6760, 293, 8191, 293, 8085, - -788, 8085, -788, 3755, 403, -788, -788, -788, 8191, 419, - -788, -788, 6760, -788, 8191, 149, 419, 403, 5276, 7395, - 382, 304, -788, 8085, -788, -788, -788, -788, 8085, -788, - -788, -788, -788, -788, -788, -788, -788, 8085, -788, -788, - -788, -788, -788, -788, -788, -788, -788, 510, 293, -788, - 8191, 475, 514, 4091, -788, 7000, 7240, 7395, -788, 506, - 6760, -788, -788, 254, 5, 291, 69, 60, 253, 6760, - -788, 6760, 4563, -788, -788, 515, 517, 4563, 3707, -788, - 3707, -788, 3498, 512, 3707, 3707, 3707, 3707, 3707, 3707, - 3707, 3707, 3707, 3707, 4563, 3707, 4563, 3707, 3707, 3707, - 3707, 3707, 4563, -788, 3707, 3707, 3707, 3707, 3707, 3707, - 3707, 3707, -788, 3707, 3707, 3707, -788, 6760, -788, -788, - 543, -788, 8085, 8085, -788, 6760, 293, -788, -788, 357, - -788, -788, -788, 6760, -788, 390, -788, -788, 6760, 633, - 713, 184, 8085, -788, -788, 7120, -788, -788, -788, -788, - -788, 2880, 3707, 1360, 1360, 1360, 1360, 1360, 585, 1360, - 1360, 1360, 1360, 439, 439, 240, 240, 240, -788, -788, - -788, -788, -788, 635, 713, 8027, 293, -788, 8085, -788, - 3707, -788, 8085, 8085, 293, -788, 293, 4904, -788, -788, - -788, 628, -788, 2410, 286, 2723, -788, -788, -788, -788, - 8085, 2410, -788, -788, -788, 6760, 7881, 7120, 426, 476, - -788, 487, 3707, 7401, 525, -788, 8085, 3707, -788, 527, - -788, -788, 6640, -788, 3707, 4298, 3707, -788, -788, 293, - 531, 293, 533, 337, -788, -788, 3498, 366, 387, 436, - 6144, 7395, 6760, -788, 352, 413, 7395, -788, 6760, -788, - 293, 6268, 3707, 293, 6760, -788, -788, 3707, -788, 640, - -788, -788, 6760, 529, -788, 546, 5400, 6760, -788, -788, - -788, 8191, 611, -788, 8191, -788, -788, 568, 293, 7685, - 8085, 8191, 541, 547, 548, 8191, -788, -788, -788, -788, - 211, -788, 554, 3707, 273, -788, 8191, -788, 7120, 374, - 7000, 589, 672, 6760, -788, 7925, -788, 7925, 4563, -788, - -788, -788, -788, -788, -788, -788, 7395, 7925, -788, 7925, - -788, -788, 5896, 7395, 5896, -788, 293, -788, 3707, -788, - 3707, 6760, 7120, -788, 3707, -788, 6760, -788, -788, 8085, - -788, 293, 293, -788, 8085, 8191, 3949, -788, 8191, 7729, - 612, -788, 8085, 293, 8191, 6760, -788, -788, -788, -788, - -788, -788, -788, -788, -788, 573, 577, 8191, 578, -788, - 5400, -788, 579, 580, 5524, -788, -788, -788, 269, 6020, - 6020, 293, 6760, 3707, 591, 8086, -788, 641, 6392, 6392, - 8083, -788, 6760, -788, 293, 8085, 8191, 548, 7783, -788, - -788, -788, 3707, 293, 293, 7983, -788, 293, -788, 5400, - 293, 293, -788, 5524, -788, -788, -788, -788, -788, 6020, - 3707, -788, 6760, -788, -788, -788, 293, -788, -788, 6760, - -788, -788, 490, -788, -788, 8133, -788, 8085, 8191, -788, - -788, -788, 8191, -788, -788, -788, -788, -788, -788, 3707, - 293, 677, 6640, 493, 6760, -788, 6760, -788, 8154, -788, - 6516, -788, -788, -788, -788, -788, -788, 497, 6760, -788, - 15, -788, 6516, -788, 500, 8085, 8085, -788, -788, -788, - -788 + 4540, 326, -899, 348, -899, 41, 55, 681, 541, -5, + 7261, -899, -899, -899, 8412, 8412, 8412, -899, 200, 722, + 7261, 7261, -899, 1500, -899, 348, 7737, -899, -899, 95, + -899, 1608, 1686, -899, 348, 249, -899, 233, -899, -899, + 8412, -899, 8412, 1340, 271, -899, -899, 7737, -899, -899, + 7261, -899, 132, -899, -899, 7380, 3477, 8148, 293, 4666, + -899, -899, 476, -899, -7, 31, 53, 3764, 22, 8148, + 24, 8148, 8148, 27, 8148, 28, 8148, 32, 8148, 47, + 8148, 34, 8148, 57, 3764, 3, 3764, 14, 3764, 7844, + 8148, 72, 97, 90, 8148, -899, 19, 8148, 18, 173, + 8148, 29, 8148, 1269, -899, -899, -899, -899, -899, -899, + -899, -899, -899, -899, -899, 6785, 43, 87, 3764, 287, + 8148, -899, -899, -899, -899, -899, -899, 457, -899, 4942, + 370, -899, 7261, -899, -899, -899, 5557, 284, -899, -899, + -899, -899, -899, 7261, -899, 326, -899, -899, 8412, 8412, + 7261, -899, -899, -899, -899, -899, -899, 7261, -899, -899, + -899, 95, -899, -899, -899, 7261, 7261, 8412, 250, 1030, + 583, 691, 1258, 3916, 1299, 906, 1738, 2843, 232, 392, + 1626, 2024, 2232, 7895, -899, 4107, 7955, -899, 3691, 449, + -899, -899, -899, -899, -899, -899, -899, -899, 1868, 8015, + 1980, -899, 428, -899, 438, -899, -899, 8368, -899, -899, + 326, 8412, -899, 176, 201, 201, -12, -2, 17, 39, + 81, 297, 91, 201, -14, 117, -95, 201, -15, 184, + 264, 187, 7, 223, 189, 107, 203, 322, 8412, 8412, + 8368, 326, 7261, -899, -899, -899, -899, 357, 295, 326, + 8459, 304, 326, 341, 309, 8192, 402, 344, 156, 181, + -95, 422, 291, 211, -899, 136, 7261, 3796, 7261, -899, + 8412, 3691, 234, -899, 362, 7737, 76, -899, -899, -899, + 7665, -899, 138, -899, -899, -899, -899, -899, 326, -899, + -899, -899, -899, -899, 8412, 8412, -899, -899, 7261, 6904, + -899, -75, 7261, -899, -899, -899, -899, -899, -899, 7261, + -899, -899, -899, 7261, -899, -899, -899, -899, 7261, -899, + -899, -899, 7261, -899, -899, -899, 7261, -899, -899, -899, + 7261, -899, -899, 7261, -899, -899, -899, 7261, -899, -899, + -899, 7261, -899, -899, -899, -899, -899, -899, 7261, -899, + -899, -899, -899, -899, -899, 41, 55, 463, -899, 466, + -899, 475, -899, -899, 490, -899, 498, -899, 81, -899, + 297, -899, 516, -899, -899, 533, -899, 563, -899, -899, + 576, 584, -899, 600, -899, -899, 7261, -899, 7261, -899, + -899, 7261, -899, -899, 7261, -899, -899, -899, -899, 7261, + -899, -899, -899, 8148, -899, 7261, -899, -899, -899, -899, + -899, -899, 7261, 7261, 7261, 7261, 7261, 7261, 7261, 8148, + -899, -899, -899, -899, -899, -899, 3691, 221, -899, 7261, + -899, -899, 7261, -899, -899, -899, -899, -899, 7261, -899, + -899, -899, -899, -899, 326, -899, -899, -899, 477, 513, + -899, -899, 551, -899, 276, -899, -899, -899, -899, 579, + 5065, -899, -899, -899, -899, -899, -899, -899, 497, 390, + 3796, 5680, -899, 555, -899, -899, 3796, -899, 3131, 461, + -899, 461, 3018, 2405, -899, -899, 421, -899, 8459, 8459, + 8459, 8459, 8459, 7261, 7261, 7261, 7261, 7261, 7261, 7261, + 7261, 7261, 7261, 7261, 7261, 7261, 7261, 7261, 7261, 7261, + 326, 8459, 326, 8412, -899, 8412, -899, 3131, 429, -899, + -899, -899, 8459, 471, -899, -899, 7261, -899, 8459, 175, + 471, 429, 5188, 3796, 402, 505, -899, 8412, -899, -899, + -899, -899, 8412, -899, -899, -899, -899, -899, -899, -899, + -899, 8412, -899, -899, -899, -899, -899, -899, -899, -899, + -899, 597, 326, -899, 8459, 487, 521, 7023, -899, 7499, + 7737, 3796, -899, 482, 7261, -899, -899, 277, -14, -95, + -15, 121, 264, 7261, -899, 7261, 7142, -899, -899, 526, + 527, 7142, 3691, -899, 3691, -899, 6904, 522, 3691, 3691, + 3691, 3691, 3691, 3691, 3691, 3691, 3691, 3691, 7142, 3691, + 7142, 3691, 3691, 3691, 3691, 3691, 7142, -899, 3691, 3691, + 3691, 3691, 3691, 3691, 3691, 3691, -899, 7261, -899, 6541, + 3691, 3691, 3691, -899, 7261, -899, -899, 477, -899, 8412, + 8412, -899, 7261, 326, -899, -899, 390, -899, -899, -899, + 7261, -899, 423, -899, -899, 7261, 641, 596, 150, 8412, + -899, -899, 7618, -899, -899, -899, -899, -899, 3201, 3691, + 2405, 2405, 2405, 2405, 2405, 594, 2405, 2405, 2405, 2405, + 380, 380, 161, 161, 161, -899, -899, -899, -899, -899, + 644, 596, 8368, 326, -899, 8412, -899, 3691, -899, 8412, + 8412, 326, -899, 326, 4810, -899, -899, -899, 636, -899, + 2935, 304, 2409, -899, -899, -899, -899, 8412, 2935, -899, + -899, -899, -899, 8236, 7618, 336, 512, -899, 515, 3691, + 3575, 537, -899, 8412, 3691, -899, 538, -899, -899, 6666, + -899, 3691, 7772, 3691, -899, -899, 326, 539, 326, 543, + 259, -899, -899, 6904, 315, 396, 439, 3691, 535, 6049, + 3796, 7261, -899, 403, 420, 3796, -899, 7261, -899, 326, + 6172, 3691, 326, 7261, -899, -899, 3691, -899, 656, -899, + -899, 7261, 540, -899, 553, 5311, 7261, -899, -899, -899, + 8459, 624, -899, 8459, -899, -899, 580, 326, 3316, 8412, + 8459, 557, 560, 573, 8459, -899, -899, -899, -899, 273, + -899, 572, -899, 8459, -899, 7618, 421, 7499, 577, 660, + 7261, -899, 8280, -899, 8280, 7142, -899, -899, -899, -899, + -899, -899, -899, -899, 3796, 8280, -899, 8280, -899, -899, + 5803, 3796, 5803, -899, 326, -899, 3691, -899, 3691, 7261, + 7618, -899, 3691, -899, 7261, -899, -899, 8412, -899, 326, + 326, -899, 8412, 8459, 3998, -899, 8459, 4225, 613, -899, + 8412, 326, 8459, -899, -899, -899, -899, -899, -899, -899, + -899, 575, 581, 8459, 585, -899, 5311, -899, 589, 591, + 5434, -899, -899, -899, 325, 5926, 5926, 326, 7261, 3691, + 592, 4326, -899, 633, 6295, 6295, 4434, -899, 7261, -899, + 326, 8412, 8459, 573, 8104, -899, -899, -899, 326, 326, + 8324, -899, 326, -899, 5311, 326, 326, -899, 5434, -899, + -899, -899, -899, -899, 5926, 3691, -899, 7261, -899, -899, + -899, 326, -899, -899, 7261, -899, -899, 443, -899, -899, + 8401, -899, 8412, 8459, -899, -899, -899, 8459, -899, -899, + -899, -899, -899, -899, 3691, 326, 686, 6666, 446, 7261, + -899, 7261, -899, 8438, -899, 6418, -899, -899, -899, -899, + -899, -899, 451, 7261, -899, 204, -899, 6418, -899, 506, + 8412, 8412, -899, -899, -899, -899 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -788, -788, -788, 265, 650, -788, -788, -788, -788, -788, - -787, -370, 33, 83, -607, -788, 292, -788, -788, -788, - -788, -788, -788, -788, -788, 177, -788, -449, -788, -788, - -80, -489, -788, -788, 3365, 1148, 1184, 629, 207, 630, - 303, 631, 632, 331, 634, 406, 639, 565, 642, 619, - 644, 853, 647, -788, 1280, 651, 0, 652, 75, 654, - 503, -788, 3397, 1308, 1485, 1596, -788, -163, -788, 1804, - -788, -788, -557, -788, -248, -646, -555, -55, 1964, -366, - -788, -788, 2076, -788, -788, -550, -788, -788, -788, -788, - 3924, -788, -788, -572, -579, -788, 2253, -788, 1729, 2275, - -788, 2378, -788, -788, -788, -788, -788, -788, -788, 2453, - -788, -788, -788, 3786, -788, -788, 949, -788, -788, -788, - -788, -788, 171, 657, 1024, 659, -788, -788, -788, -788, - 597, 513, 64, -143, -788, -788, -788, 238, -788, -788, - -788, -788, -788, -788, -788, 518, 300, -788, -788, -788, - -788, -788, -521, -788, -689, -788, 49, -664, -207, -788, - -101, -788, -788, -788, -788, -788, 320, -788, -788, -788, - -788, -788, -788, -430, -788, -454, -788, -788, -788, -788, - -788, -788, -788, -788, 302, -788, -788, -788, -788, -788, - -788, -788, -788, -788, -788, -788, -788, -788, -788, -215, - 202, -788, -41, -788, -788, -788, -788, -788, -788, -788, - -788, 126, -788, -788, -788, -788, -788, -788, 129, -788, - -788, -788, -788, -788, -788, -788, -788, -788, -788, -788, - -788, -788, -788, -788, -788, 245, -788, -692, -788, -788, - 2890 + -899, -899, -899, 42, 646, -899, -899, -899, -899, -899, + -337, -430, 30, -68, -596, -899, 44, -899, -899, -899, + -899, -899, -899, -899, -899, 230, -899, -453, -899, -899, + 116, -427, -899, -899, 3200, 1045, 1232, 629, 210, 630, + 235, 631, 634, 303, 635, 352, 640, 525, 643, 562, + 645, 702, 654, -899, 1349, 655, 0, 663, 93, 664, + 493, -899, 2512, 1436, 1473, 1640, -899, -166, -899, 1763, + -899, -899, -561, -899, -226, -652, -552, -53, 1858, -52, + -899, -899, 1895, -899, -899, -550, -899, -899, -899, -899, + 3718, -899, -899, -577, -583, -899, 2120, -899, 1780, 2169, + -899, 2262, -899, -899, -899, -899, -899, -899, -899, 2349, + -899, -899, -899, 4230, -899, -899, -899, -899, -899, -899, + -899, 945, -899, -899, 142, 665, 1123, 666, -899, -899, + -899, -899, 611, 524, 70, -144, -899, -899, -899, 216, + -899, -899, -899, -899, -899, -899, -899, 529, 49, -899, + -899, -899, -899, -899, -526, -899, -692, -899, 48, -898, + -204, -899, -98, -899, -899, -899, -899, -899, 324, -899, + -899, -899, -899, -899, -899, -440, -899, -455, -899, -899, + -899, -899, -899, -899, -899, -899, 307, -899, -899, -899, + -899, -899, -899, -899, -899, -899, -899, -899, -899, -899, + -899, -203, 213, -899, -30, -899, -899, -899, -899, -899, + -899, -899, -899, 137, -899, -899, -899, -899, -899, -899, + 140, -899, -899, -899, -899, -899, -899, -899, -899, -899, + -899, -899, -899, -899, -899, -899, -899, 254, -899, -475, + -899, -899, 2912 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -617 +#define YYTABLE_NINF -620 static const yytype_int16 yytable[] = { - 85, 278, 737, 483, 476, 476, 719, 634, 720, 775, - 638, 641, 706, 721, 628, 631, 797, 520, 634, 308, - 745, 801, 312, -29, -29, 807, 223, 38, 39, 295, - 878, 309, 985, 317, 429, 243, 613, 398, 565, 698, - 882, 341, 883, 771, 592, 313, 309, 257, 456, 313, - 593, 297, 622, 145, 329, 467, 390, 283, 579, 85, - 318, 986, 580, 301, 399, 146, 318, 304, 340, 304, - 336, 304, 304, 52, 304, 87, 304, 771, 304, 385, - 304, 330, 304, 391, 304, 321, 304, 149, 304, 374, - 304, 322, 236, 325, 304, 341, -235, 304, 393, 326, - 304, 224, 304, 347, 649, 391, 483, 566, 246, 404, - 244, 577, 322, 333, 521, 296, 868, 304, 332, 304, - 326, 387, 258, 298, -334, 394, 298, 342, 85, 394, - 348, -330, 284, 298, 87, 85, 405, 298, 298, -96, - -96, 298, 305, 683, 305, 333, 305, 305, 687, 305, - 400, 305, 298, 305, 691, 305, 298, 305, 298, 305, - 719, 305, 720, 305, 376, 305, 428, 721, 267, 305, - 298, 116, 305, 909, 820, 305, 286, 305, -96, -96, - 143, 342, 298, 298, 796, 759, -235, 298, -235, 298, - 714, 298, 305, 429, 305, -333, 894, 234, 298, 340, - 753, 692, 211, 87, 298, 298, 513, 68, -96, -96, - 87, 242, 298, -96, -96, 434, 349, 298, 262, -96, - -96, 298, 298, 268, -330, -330, 341, 348, 298, 252, - 116, -96, -96, 215, 873, 341, 425, 298, 307, 513, - 298, 405, 435, 812, -330, -330, -330, -330, 634, -330, - -330, 719, 348, 720, 215, 339, 402, 346, 721, 353, - 380, 824, 343, 426, 350, 60, 68, -111, -111, 388, - 693, 426, 835, 395, 574, 963, -96, -96, 406, 399, - -311, 420, 421, 422, 423, 298, 924, 843, 433, 399, - 295, 424, 63, 430, 435, 436, 358, 429, 496, 116, - 123, 439, 977, 70, 582, 772, 116, 295, 583, 298, - 925, 773, 342, 349, 984, 471, -330, -331, 298, 298, - 418, 342, 297, 941, 288, -96, -96, 298, 468, 216, - 295, 73, 862, 298, 298, 68, 863, 330, 349, 53, - 54, 509, 68, 885, 298, 887, -555, -318, -318, 258, - 216, 290, 503, 504, 505, 298, 747, 217, 748, 291, - 941, 160, 70, 298, 749, 400, 531, -318, -318, -318, - -318, 298, -318, -318, 459, 400, 296, -311, 217, -337, - -162, 298, -162, -96, -96, 941, 298, 941, 532, 298, - 73, 918, 360, 296, 865, 922, 640, 462, 866, 941, - 927, 928, 283, 53, 54, 511, 75, 468, 555, 937, - 938, 845, 53, 54, 847, -555, 296, -328, 283, 298, - 363, 857, 701, 53, 54, 861, 409, 410, 764, 644, - 954, 70, 218, 570, 957, 571, 867, 557, 70, -318, - 958, 298, 53, 54, 652, 262, 411, 412, 413, 414, - 563, 415, 416, 218, -96, -96, 85, 459, 818, 73, - 819, 459, 295, 293, 294, 75, 73, 85, 558, -27, - -27, 53, 54, 974, 827, -132, 572, 284, 460, 461, - 462, 215, 637, 461, 462, 901, 903, 818, 904, 821, - 391, 409, 410, 284, 911, 365, 296, 496, 417, 295, - -132, -132, -132, 440, 441, 442, 443, 916, 818, 774, - 822, 411, 412, 413, 414, 309, 415, 416, 418, 313, - -132, -132, -132, -132, 685, -132, -132, 738, 85, 712, - 940, 87, 53, 54, 75, 829, 946, 2, 53, 54, - 688, 75, 87, 150, 151, -612, -612, -612, 296, 501, - 502, 503, 504, 505, 152, 153, 154, 818, 155, 823, - 442, 443, 157, 483, 318, 77, 257, 656, 657, 658, - 659, 660, -132, 322, 158, 967, 159, 216, 969, 27, - 28, 333, 971, 418, 30, 161, 632, 633, -132, 341, - 679, 219, -132, 162, -132, -614, -614, -614, 979, 440, - 629, 442, 443, 87, 715, 217, -615, -615, -615, 643, - 644, 964, 219, 965, 964, 41, 975, 348, 964, 79, - 983, 964, 426, 988, 77, -130, 163, 116, 296, 733, - 429, 48, 848, 849, 435, 716, 301, -22, 116, -24, - 746, 258, -436, 496, 777, 220, 808, 788, 810, 839, - -130, -130, -130, 815, 367, 817, 249, 841, 846, -109, - -109, -320, -320, 68, 858, -132, 220, 842, 859, 860, - -130, -130, -130, -130, 68, -130, -130, 864, 79, 329, - 218, -320, -320, -320, -320, 513, -320, -320, 870, 872, - -132, -132, -132, 77, 973, 908, 914, 85, 915, 116, - 77, 917, 920, 921, -326, -326, 330, 934, 369, 289, - -132, -132, -132, -132, 931, -132, -132, 778, 357, 359, - 361, 362, -130, 364, -326, -326, -326, -326, 366, -326, - -326, 368, 85, 370, 723, 68, 372, 262, -130, 523, - 373, 375, -130, 377, -130, 477, 381, 79, 383, 779, - 85, 684, 527, -320, 79, 298, 526, 976, 907, 70, - 802, 85, -132, 879, -134, 630, 639, 987, 730, 869, - 70, 765, 87, 215, 766, 700, 85, 0, -132, 0, - 0, 0, -132, 0, -132, 0, 535, 73, 0, -134, - -134, -134, 0, 0, 0, 0, -326, -131, 73, 544, - 545, 546, 547, 548, 549, 550, 551, 87, 0, -134, - -134, -134, -134, 0, -134, -134, 0, 0, 0, 0, - 0, 0, -131, -131, -131, 87, 0, 0, 0, 0, - 0, 70, 85, 0, 85, 0, 87, 0, 0, 219, - 0, 0, -131, -131, -131, -131, 0, -131, -131, 0, - 0, 87, 0, 81, 0, 0, 0, 0, 0, 73, - 0, -134, 75, 0, 0, 0, 0, 0, 116, 216, - 0, 0, 0, 75, 0, 0, 0, -134, 0, 221, - 85, -134, 0, -134, 85, 0, 0, 0, 723, 85, - 85, 0, 0, 220, -131, 0, 0, 217, 85, 85, - 221, 0, 0, 116, 68, 0, 0, 87, 0, 87, - -131, 0, 81, 0, -131, 0, -131, 0, 0, 85, - 0, 116, 0, 85, 0, 0, 0, 0, 0, 85, - 0, 0, 116, 0, 75, 0, 0, 0, 0, 68, - 0, 0, 371, 0, 0, 0, 0, 116, 0, 115, - 0, 0, 0, 0, 0, 87, 0, 68, 0, 87, - 0, 0, 85, 0, 87, 87, 0, 0, 68, 0, - 85, 0, 218, 87, 87, 233, 0, 0, 0, 723, - 0, 81, 85, 68, 0, 0, 0, 0, 81, 0, - 0, 0, 0, 0, 87, 0, 233, 0, 87, 0, - 70, 0, 0, 116, 87, 116, 0, 0, 115, 0, + 85, 487, 744, 279, 480, 480, 726, 641, 635, 638, + 784, 713, 341, 645, 648, 727, 524, 728, 641, 752, + 806, 392, 342, 348, 310, 810, 224, 399, 394, 296, + -328, 309, 299, 313, 314, 244, 318, 322, 405, 342, + 298, 326, 60, 333, 63, 596, 968, 258, 656, 124, + 349, 597, 429, 319, 400, 395, 330, 284, 310, 85, + 314, 780, 302, 319, 323, 406, 337, 305, 327, 305, + 334, 305, 305, 982, 305, 323, 305, 146, 305, 430, + 305, 386, 305, 331, 305, 989, 305, 690, 305, 375, + 305, 147, 694, 87, 305, 780, 432, 305, 698, 391, + 305, 289, 305, 291, 487, 705, 388, 343, 292, 581, + -333, -330, 525, 299, 297, 299, 150, 327, 305, 225, + 305, -96, -96, 433, 343, 299, 392, 334, 245, 85, + 299, 237, -96, -96, 721, 350, 85, -96, -96, 401, + 259, 299, 117, 433, 299, 299, 299, -96, -96, 299, + 285, 299, 87, 349, 299, 299, 299, -235, 299, 299, + 306, 299, 306, 726, 306, 306, 299, 306, 235, 306, + 299, 306, 727, 306, 728, 306, 827, 306, 915, 306, + 299, 306, 377, 306, 299, -311, 805, 306, 569, 263, + 306, 768, 342, 306, 269, 306, 583, 762, 900, 299, + 584, 117, 758, -29, -29, -96, -96, 517, 299, 308, + 68, 306, 296, 306, 299, -96, -96, 349, 299, 500, + 395, 990, 87, 406, 299, 430, 340, 699, 347, 87, + 354, 381, -334, 144, 299, 70, 216, 879, 350, 439, + 517, 341, -331, 247, 299, 460, -235, 433, -235, 814, + 991, 641, 471, 268, 726, 212, 570, 216, 586, 298, + 437, 217, 587, 727, 243, 728, -330, -330, 342, 68, + 781, 117, 507, 508, 509, 578, 782, 343, 117, -111, + -111, -311, 217, 299, -318, -318, -330, -330, -330, -330, + 253, -330, -330, 287, 70, 700, 438, 297, 403, 359, + 400, 472, 350, 73, -318, -318, -318, -318, 299, -318, + -318, 299, 819, 296, 299, 344, 299, 351, -96, -96, + 38, 39, 389, 439, 361, 946, 396, 400, 299, 218, + 299, 407, 832, 331, 421, 422, 423, 424, 299, 68, + 874, 627, 929, 843, 425, 628, 68, 434, 419, 440, + 218, 617, 75, 343, 574, 443, 575, -330, 851, 299, + 853, 946, 73, 855, 70, 52, 930, 626, 259, 475, + 865, 70, 296, 161, 869, -318, 535, 299, 219, 825, + 296, 826, 754, 873, 755, 401, 946, 463, 946, -337, + 756, 299, 364, 870, -96, -96, -558, 871, 297, 219, + 946, 348, -162, 284, -162, -96, -96, 463, 464, 465, + 466, 75, 401, 891, 299, 893, 536, 263, 299, 284, + 663, 664, 665, 666, 667, 559, -331, -331, 349, 647, + 466, 562, 73, 907, 909, 825, 910, 828, 500, 73, + 472, 366, 917, 686, 53, 54, -331, -331, -331, -331, + 561, -331, -331, 921, -615, -615, -615, 297, 392, 923, + 85, 773, 651, 927, -558, 297, -96, -96, 932, 933, + 567, 85, 444, 445, 446, 447, 945, 942, 943, 294, + 295, 75, 951, 410, 411, 216, 576, 884, 75, 505, + 506, 507, 508, 509, 446, 447, 285, 959, 888, 296, + 889, 962, 310, 412, 413, 414, 415, 963, 416, 417, + 217, 314, 285, 350, 463, 783, 825, -331, 829, 299, + 972, 53, 54, 974, 835, 77, 319, 976, 444, 636, + 446, 447, 85, 745, 323, 644, 465, 466, 53, 54, + 979, 837, 297, 984, -27, -27, 53, 54, 513, 692, + -132, 220, 334, 87, -109, -109, 53, 54, 515, 825, + -132, 830, 79, 969, 87, 970, 969, 487, 980, 342, + 258, 969, 220, 988, 419, -132, -132, -132, 218, 53, + 54, 659, 639, 640, 77, -132, -132, -132, 221, 53, + 54, 695, 309, 650, 651, -132, -132, -132, -132, 349, + -132, -132, 117, 297, 740, -132, -132, -132, -132, 221, + -132, -132, 430, 117, 368, 722, 719, -319, -319, 310, + 433, 79, 708, 53, 54, 87, 969, 219, 993, 85, + -617, -617, -617, -618, -618, -618, 439, -319, -319, -319, + -319, 723, -319, -319, 856, 857, -132, -22, -24, 753, + -439, 370, 500, 786, 77, 797, -132, 815, 817, 831, + 822, 77, -132, 259, 824, 847, -132, 849, -132, 539, + 68, 854, -132, 850, 117, 876, -132, 878, -132, 866, + 867, 68, 548, 549, 550, 551, 552, 553, 554, 555, + -130, 79, 517, 868, 872, 70, 914, 919, 79, 939, + 313, 920, 81, 978, 85, 290, 70, 922, -319, 730, + 299, 925, 263, 926, 936, -130, -130, -130, 358, 360, + 362, 787, 87, 363, 365, -321, -321, 314, 222, 367, + 527, -134, 369, 691, 371, -130, -130, -130, -130, 85, + -130, -130, 68, 373, 374, -321, -321, -321, -321, 222, + -321, -321, 376, 378, 382, 384, -134, -134, -134, 85, + 481, 81, 788, 73, 531, 981, 811, 70, 530, 913, + 85, 117, 885, 637, 73, 646, -134, -134, -134, -134, + 216, -134, -134, 737, 992, 85, -130, 875, 707, 774, + 0, 372, 775, 0, 0, 0, 0, 87, 0, 0, + 220, 0, -130, 0, 0, 217, -130, 0, -130, 0, + 0, 0, 75, 0, 0, 0, -321, 0, 299, 0, + 0, 0, 0, 75, 0, 0, 0, -134, 0, 0, + 0, 81, 87, 0, 0, 73, 0, 221, 81, 68, + 85, 0, 85, -134, 0, 0, 117, -134, 0, -134, + 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 87, 70, 0, 730, 0, 0, 0, + 0, 0, 0, 218, 0, 0, 0, 0, 87, 0, + 0, 117, 0, 0, 75, 0, 85, 0, 0, 0, + 85, 0, 0, 0, 0, 85, 85, 0, 0, 0, + 0, 117, 0, 0, 85, 85, 0, 0, 0, 0, + 0, 0, 117, 0, 68, 330, 0, 0, 0, 0, + 0, 0, 219, 0, 85, 0, 0, 117, 85, 0, + 0, 0, 73, 87, 85, 87, 0, 0, 0, 70, + -326, -326, 331, 0, 0, 116, 0, 0, 0, 68, + 0, 0, 0, 0, 0, 0, 0, 730, 0, 0, + -326, -326, -326, -326, 0, -326, -326, 85, 0, 68, + 0, 234, 0, 0, 70, 85, 0, 222, 0, 87, + 68, 75, 117, 87, 117, 77, 0, 85, 87, 87, + 0, 0, 234, 0, 70, 68, 77, 87, 87, 0, + 0, 0, 0, 0, 116, 70, 0, 73, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, + 70, 87, 79, 0, 0, 0, 0, 87, 117, 0, + 0, -326, 117, 79, 380, 0, 0, 117, 117, 302, + 0, 0, 73, 0, 0, 65, 117, 117, 0, 0, + 68, 0, 68, 0, 0, 0, 75, 77, 0, 0, + 87, 0, 73, 0, -320, -320, 117, 0, 87, 0, + 117, 214, 0, 73, 116, 70, 117, 70, 0, 0, + 87, 116, 0, 0, -320, -320, -320, -320, 73, -320, + -320, 75, 214, 0, 79, 220, 68, 0, 0, 0, + 68, 0, 0, 0, 65, 68, 68, 0, 0, 117, + 0, 75, 0, 0, 68, 68, 0, 117, 0, 0, + 0, 70, 75, 119, 0, 70, 0, 0, 0, 117, + 70, 70, 221, 0, 68, 0, 0, 75, 68, 70, + 70, 0, 0, 73, 68, 73, 0, 0, 0, 236, + 0, 0, 0, 0, 77, -320, 0, 299, 0, 70, + 0, 0, 81, 70, 0, 0, 0, 0, 0, 70, + 236, 0, 0, 81, 65, 0, 0, 68, 0, 0, + 0, 65, 119, 0, 0, 68, 0, 0, 0, 73, + 0, 79, 75, 73, 75, 0, 0, 68, 73, 73, + 0, 0, 70, 0, 0, 0, 0, 73, 73, 0, + 70, 0, 383, 0, 0, 0, 0, 0, 0, 0, + 234, 0, 70, 0, 0, 0, 0, 73, 0, 77, + 0, 73, 66, 0, 81, 0, 0, 73, 75, 0, + 0, 0, 75, 0, 0, 0, 0, 75, 75, 0, + 0, 0, 119, 0, 0, 0, 75, 75, 215, 119, + 0, 0, 0, 0, 77, 0, 79, 318, 0, 0, + 73, 0, 222, 0, 0, 0, 75, 0, 73, 215, + 75, 0, 0, 0, 77, 0, 75, 0, 0, 0, + 73, 66, -323, -323, 319, 77, 0, 0, 0, 0, + 0, 79, 0, 410, 411, 0, 0, 0, 326, 0, + 77, 0, -323, -323, -323, -323, 0, -323, -323, 75, + 214, 79, 0, 412, 413, 414, 415, 75, 416, 417, + 0, 81, 79, -325, -325, 327, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 2, 0, 79, 0, 83, + 0, 151, 152, -325, -325, -325, -325, 0, -325, -325, + 0, 66, 153, 154, 155, 77, 156, 77, 66, 0, + 158, 0, 0, 0, 418, 223, 0, 0, 0, 0, + 0, 0, 159, -323, 160, 299, 0, 27, 28, 0, + 0, 0, 30, 162, 419, 0, 223, 0, 236, 0, + 0, 163, 79, 0, 79, 116, 81, 0, 83, 0, + 0, 77, 0, 0, 0, 77, 116, 0, 0, 0, + 77, 77, 0, 41, -325, 0, 299, 0, 0, 77, + 77, 0, 0, 0, 164, 0, 91, 0, 48, 0, + 0, 81, 0, 0, 0, 0, 0, 0, 79, 77, + 0, 0, 79, 77, 0, 0, 0, 79, 79, 77, + 0, 81, 226, 250, 0, 0, 79, 79, 0, 0, + 0, 0, 81, 92, 0, 0, 0, 116, 83, 0, + 0, 0, 0, 260, 0, 83, 79, 81, 0, 0, + 79, 0, 77, 0, 0, 91, 79, 0, 0, 227, + 77, 0, 0, 0, 0, 65, 0, 215, 0, -131, + 0, 0, 77, 0, 0, 234, 65, 0, 0, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 0, 79, + 0, 0, 92, 0, -131, -131, -131, 79, 0, 0, + 0, 0, 81, 0, 81, 0, 0, 0, 0, 79, + 0, 0, 0, 0, -131, -131, -131, -131, 0, -131, + -131, 0, 0, 0, 0, 91, 0, 0, 0, 0, + 0, 0, 91, 0, 116, 0, 0, 65, 0, 0, + 0, 0, 0, 119, 0, 0, 0, 0, 81, 0, + 0, 0, 81, 0, 119, 0, 0, 81, 81, 0, + 0, 0, 92, 0, 0, -131, 81, 81, 0, 92, + 0, 0, 0, 0, 0, 214, 0, -135, 0, 0, + 0, -131, 0, 0, 223, -131, 81, -131, 0, 0, + 81, 0, 0, 0, 0, 386, 81, 0, 0, 0, + 93, 0, -135, -135, -135, 0, 0, 0, 0, 116, + 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, + -328, -328, -135, -135, -135, -135, 228, -135, -135, 81, + 0, 0, 0, 0, 65, 0, 0, 81, 0, 0, + -328, -328, -328, -328, 116, -328, -328, 261, 0, 81, + 0, 0, 66, 236, 0, -133, 0, 0, 0, 93, + 0, 0, 0, 66, 116, 0, 0, 0, 0, 0, + 0, 579, 0, -135, 0, 116, 0, 0, 0, 0, + -133, -133, -133, 0, 0, 0, 0, 0, 0, -135, + 116, 0, 0, -135, 0, -135, 0, 0, 0, 0, + -133, -133, -133, -133, 0, -133, -133, 333, 227, 65, + 0, -328, 119, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 96, 66, 0, 0, 0, 0, 93, + 0, 0, -327, -327, 334, 0, 93, 0, 0, 0, + 104, 0, 0, 0, 65, 116, 0, 116, 0, 229, + 0, -133, -327, -327, -327, -327, 0, -327, -327, 0, + 0, 0, 215, 0, 65, 0, 0, -133, 0, 83, + 229, -133, 0, -133, 0, 65, 0, 0, 0, 0, + 83, 0, 96, 0, 0, 0, 0, 119, 0, 0, + 65, 116, 0, 0, 0, 116, 0, 0, 0, 104, + 116, 116, 0, 0, 0, 0, 0, 0, 0, 116, + 116, 0, 0, 0, 0, 0, 0, 0, 98, 0, + 0, 66, 119, -327, 0, 299, 0, 0, 0, 116, + 0, 0, 0, 116, 0, 0, 0, 429, 0, 116, + 0, 83, 119, 0, 230, 65, 0, 65, 0, 0, + 0, 0, 96, 119, 0, 101, 91, 0, 0, 96, + 0, 0, -322, -322, 430, 262, 0, 91, 119, 104, + 0, 0, 116, 0, 0, 580, 104, 98, 0, 223, + 116, 231, -322, -322, -322, -322, 0, -322, -322, 0, + 0, 65, 116, 92, 0, 65, 66, 0, 0, 0, + 65, 65, 231, 0, 92, 0, 0, 0, 0, 65, + 65, 0, 0, 0, 101, 0, 0, 0, 0, 0, + 0, 0, 0, 119, 0, 119, 0, 0, 91, 65, + 0, 66, 0, 65, 0, 0, 0, 0, 83, 65, + 0, 0, 0, 0, 0, 0, 0, 98, 0, 438, + 0, 66, 0, -322, 98, 299, 0, 0, 0, 0, + 0, 0, 66, 0, 0, 92, 260, 0, 0, 119, + 0, 0, 65, 119, -336, -336, 439, 66, 119, 119, + 65, 0, 0, 0, 101, 0, 0, 119, 119, 0, + 0, 101, 65, 388, -336, -336, -336, -336, 229, -336, + -336, 0, 0, 227, 0, 0, 0, 119, 0, 0, + 0, 119, 0, 83, 0, 0, 0, 119, -329, -329, + 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, + 0, 0, 66, 0, 66, 0, 0, 0, -329, -329, + -329, -329, 0, -329, -329, 0, 0, 0, 83, 0, + 119, 0, 0, 0, 0, 0, 0, 0, 119, 0, + 93, 0, 92, 0, 0, -336, 0, 299, 83, 0, + 119, 93, 0, 0, 0, 0, 0, 0, 66, 83, + 103, 0, 66, 0, 0, 0, 0, 66, 66, 0, + 0, 0, 0, 582, 83, 0, 66, 66, 0, 0, + 91, 0, 0, 0, 0, 0, 233, 0, 0, -329, + 0, 299, 0, 0, 0, 0, 66, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 66, 233, 0, 105, + 231, 0, 93, 0, 0, 91, 0, 92, 0, 103, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, + 0, 83, 0, 0, 0, 91, 0, 0, 0, 66, + 0, 0, 0, 0, 0, 0, 91, 66, 0, 0, + 261, 0, 92, 0, 0, 0, 0, 0, 0, 66, + 0, 91, 0, 96, 0, 0, 0, 0, 105, 0, + 0, 0, 92, 0, 96, 83, 0, 0, 0, 83, + 104, 391, 0, 92, 83, 83, 0, 0, 0, 103, + 0, 104, 0, 83, 83, 0, 103, 0, 92, 0, + 0, 0, 106, 0, 0, 0, -333, -333, 392, 93, + 0, 0, 0, 83, 0, 0, 91, 83, 91, 0, + 0, 0, 0, 83, 0, 0, -333, -333, -333, -333, + 0, -333, -333, 0, 0, 96, 0, 0, 105, 0, + 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, + 0, 0, 104, 92, 0, 92, 83, 0, 98, 0, + 0, 106, 91, 0, 83, 0, 91, 0, 0, 98, + 0, 91, 91, 229, 0, 0, 83, 0, 0, 0, + 91, 91, 0, 0, 93, 0, 0, 0, 0, 114, + 0, 0, 0, 0, 0, 101, 0, -333, 0, 92, + 91, 0, 0, 92, 91, 0, 101, 0, 92, 92, + 91, 0, 0, 0, 0, 0, 0, 92, 92, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 0, 118, 0, 0, 0, 73, 0, - 0, 0, 77, 0, 0, 70, 0, 87, 379, 68, - 0, 68, 0, 0, 0, 87, 0, 0, 0, 0, - 235, 116, 0, 70, 0, 116, 0, 87, 0, 0, - 116, 116, 0, 73, 70, 0, 0, 0, 0, 116, - 116, 235, 0, 0, 0, 79, 0, 115, 0, 70, - 0, 73, 0, 118, 115, 0, 79, 68, 0, 0, - 116, 68, 73, 77, 116, 0, 68, 68, 0, 0, - 116, 0, 0, 75, 0, 68, 68, 73, 0, 0, - 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 385, 68, 221, 0, 0, - 68, 219, 0, 116, 0, 70, 68, 70, 75, 0, - 0, 116, 0, 0, 0, 0, 0, 79, 65, 0, - -328, -328, 118, 116, 0, 0, 75, 0, 0, 118, - 0, 0, 0, 73, 0, 73, 0, 75, 0, 68, - -328, -328, -328, -328, 213, -328, -328, 68, 0, 0, - 0, 0, 75, 70, 66, 220, 0, 70, 0, 68, - 0, 0, 70, 70, 0, 213, 0, 0, 0, 0, - 0, 70, 70, 0, 0, 0, 0, 65, 0, 0, - 214, 73, 0, 0, 0, 73, 0, 0, 0, 0, - 73, 73, 70, 233, 0, 0, 70, 0, 0, 73, - 73, 214, 70, 0, 0, 0, 0, 0, 75, 0, - 75, 0, -328, 66, 298, 0, 0, 0, 0, 0, - 73, 0, 0, 0, 73, 0, 0, 0, 0, 0, - 73, 0, 77, 0, 0, 70, 0, 0, 0, 0, - 0, 0, 0, 70, 0, 0, 65, 0, 0, 0, - 83, 0, 0, 65, 0, 70, 75, 0, 0, 0, - 75, 0, 0, 73, 0, 75, 75, 77, 235, 0, - 0, 73, 0, 0, 75, 75, 222, 0, 91, 81, - 0, 347, 66, 73, 0, 77, 79, 0, 0, 66, - 81, 0, 0, 0, 0, 75, 77, 222, 0, 75, - 0, 0, 0, 0, 225, 75, -331, -331, 348, 83, - 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 79, 0, 0, 0, 259, -331, -331, -331, -331, - 0, -331, -331, 0, 0, 0, 0, 91, 75, 79, - 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, - 79, 81, 0, 0, 0, 0, 0, 308, 75, 0, - 0, 491, 492, 493, 0, 79, 0, 77, 0, 77, - 0, 0, 0, 0, 0, 115, 0, 0, 83, 494, - 495, 0, -319, -319, 309, 83, 115, 0, 496, 221, - 0, 0, 213, 0, 349, 0, 0, 0, -331, 0, - 298, 0, -319, -319, -319, -319, 91, -319, -319, 0, - 0, 0, 0, 91, 0, 77, 0, 0, 0, 77, - 0, 79, 0, 79, 77, 77, 0, 0, 214, 0, - 0, 0, 0, 77, 77, 0, 497, 498, 499, 500, - 501, 502, 503, 504, 505, -135, 0, 115, 0, 0, - 118, 0, 0, 0, 77, 92, 0, 0, 77, 0, - 0, 118, 0, 0, 77, 0, 0, 0, 0, 79, - -135, -135, -135, 79, -319, 0, 298, 0, 79, 79, - 0, 226, 0, 0, -133, 233, 0, 79, 79, 0, - -135, -135, -135, -135, 0, -135, -135, 77, 0, 0, - 0, 0, 226, 0, 0, 77, 0, 0, 79, -133, - -133, -133, 79, 0, 92, 0, 0, 77, 79, 0, - 81, 0, 118, 0, 222, 0, 0, 0, 0, -133, - -133, -133, -133, 0, -133, -133, 0, 0, 0, 0, - 0, 0, -135, 0, 0, 0, 0, 0, 0, 0, - 0, 79, 575, 0, 0, 81, 0, 0, -135, 79, - 235, 390, -135, 0, -135, 0, 93, 0, 0, 0, - 0, 79, 0, 81, 65, 0, 0, 0, 0, 0, - 0, -133, 0, 92, 81, 65, -333, -333, 391, 0, - 92, 0, 227, 0, 0, 0, 0, -133, 0, 81, - 0, -133, 0, -133, 0, 0, -333, -333, -333, -333, - 66, -333, -333, 260, 312, 0, 115, 0, 0, 0, - 0, 66, 0, 0, 0, 93, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -321, - -321, 313, 0, 0, 0, 0, 65, 0, 0, 0, - 0, 115, 0, 0, 0, 81, 0, 81, 0, -321, - -321, -321, -321, 0, -321, -321, 0, 0, 0, 115, - 0, 0, 0, 0, 0, 0, 0, 0, -333, 0, - 115, 0, 66, 0, 213, 0, 0, 0, 0, 0, - 0, 118, 0, 0, 93, 115, 0, 0, 0, 104, - 0, 93, 0, 81, 0, 0, 83, 81, 0, 0, - 0, 0, 81, 81, 0, 0, 0, 83, 0, 0, - 214, 81, 81, 0, 0, 0, 118, 0, 0, 226, - 0, -321, 0, 298, 91, 0, 317, 0, 0, 0, - 0, 0, 81, 0, 118, 91, 81, 0, 0, 0, - 0, 115, 81, 115, 0, 118, 0, 0, 104, 0, - 0, -323, -323, 318, 0, 0, 0, 0, 0, 0, - 118, 0, 0, 0, 96, 0, 0, 0, 83, 0, - 0, -323, -323, -323, -323, 81, -323, -323, 0, 0, - 0, 0, 0, 81, 0, 0, 0, 0, 0, 115, - 228, 0, 0, 115, 0, 81, 91, 0, 115, 115, - 0, 0, 0, 0, 0, 65, 222, 115, 115, 0, - 0, 228, 0, 0, 0, 0, 118, 104, 118, 0, - 0, 0, 0, 96, 104, 0, 0, 0, 115, 0, - 576, 0, 115, 0, 259, 0, 0, 0, 115, 0, - 65, 66, 0, -323, 0, 298, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, - 0, 0, 0, 0, 118, 0, 0, 0, 118, 65, - 0, 115, 0, 118, 118, 0, 66, 0, 0, 115, - 0, 0, 118, 118, 65, 387, 0, 0, 0, 0, - 0, 115, 96, 0, 66, 0, 0, 0, 0, 96, - 0, 92, 0, 118, 0, 66, 0, 118, 0, 0, - -329, -329, 92, 118, 0, 0, 0, 0, 0, 0, - 66, 0, 0, 0, 98, 0, 0, 0, 0, 0, - -329, -329, -329, -329, 325, -329, -329, 83, 0, 0, - 65, 0, 65, 0, 0, 0, 118, 0, 0, 0, - 229, 0, 0, 0, 118, 0, 0, 0, 0, -325, - -325, 326, 0, 0, 0, 91, 118, 0, 0, 0, - 0, 261, 83, 92, 0, 0, 66, 0, 66, -325, - -325, -325, -325, 98, -325, -325, 0, 0, 65, 0, - 83, 0, 65, 0, 0, 0, 0, 65, 65, 0, - 91, 83, -329, 0, 298, 0, 65, 65, 0, 0, - 0, 226, 93, 0, 0, 0, 83, 0, 91, 0, - 0, 0, 0, 93, 66, 0, 0, 65, 66, 91, - 0, 65, 0, 66, 66, 0, 101, 65, 228, 0, - 0, 0, 66, 66, 91, 0, 0, 0, 0, 0, - 0, -325, 98, 298, 0, 0, 0, 0, 0, 98, - 0, 0, 230, 66, 0, 0, 0, 66, 0, 0, - 65, 0, 83, 66, 83, 0, 0, 0, 65, 0, - 0, 0, 0, 230, 93, 0, 332, 0, 0, 0, - 65, 0, 0, 0, 0, 101, 0, 0, 0, 0, - 91, 0, 91, 0, 0, 0, 66, 0, 0, 0, - 0, -327, -327, 333, 66, 0, 0, 0, 0, 0, - 83, 0, 260, 0, 83, 0, 66, 0, 425, 83, - 83, -327, -327, -327, -327, 434, -327, -327, 83, 83, - 0, 0, 92, 0, 0, 104, 0, 0, 91, 0, - 0, 0, 91, -322, -322, 426, 104, 91, 91, 83, - -336, -336, 435, 83, 101, 0, 91, 91, 0, 83, - 0, 101, 0, -322, -322, -322, -322, 92, -322, -322, - -336, -336, -336, -336, 0, -336, -336, 91, 0, 0, - 0, 91, 0, 0, 0, 92, 0, 91, 578, 0, - 0, 0, 83, -327, 0, 298, 92, 0, 0, 0, - 83, 0, 0, 103, 0, 0, 0, 104, 0, 0, - 96, 92, 83, 0, 0, 0, 0, 0, 0, 0, - 91, 96, 0, 0, 0, 105, 0, 0, 91, 232, - 0, 0, 0, 0, 0, -322, 0, 298, 0, 0, - 91, 0, -336, 93, 298, 0, 0, 0, 0, 0, - 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 103, 0, 0, 0, 0, 92, 0, 92, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, - 0, 0, 96, 0, 105, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, - 230, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 0, 0, 0, 92, 0, 0, 0, 92, - 228, 0, 93, 0, 92, 92, 0, 0, 106, 0, - 0, 103, 0, 92, 92, 0, 0, 0, 103, 0, + 98, 106, 96, 0, 0, 233, 0, 92, 106, 93, + 0, 92, 0, 91, 0, 0, 0, 92, 114, 104, + 93, 91, 0, 0, 2, 0, 0, 0, 0, 0, + 151, 152, 0, 91, 0, 93, 0, 101, 262, 0, + 0, 153, 154, 155, 0, 156, 495, 496, 497, 158, + 92, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 0, 159, 0, 160, 498, 499, 27, 28, 0, 0, + 92, 30, 162, 500, 0, 231, 0, 96, 0, 0, + 163, 0, 0, 0, 0, 0, 0, 0, 114, 0, + 93, 0, 93, 0, 104, 114, 0, 98, 0, 0, + 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 96, 164, 0, 0, 0, 48, 0, 0, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 104, + 0, 0, 96, 0, 101, 0, 93, 53, 54, 0, + 93, 0, 0, 96, 0, 93, 93, 0, 0, 104, + 0, 0, 0, 0, 93, 93, 0, 0, 96, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 98, 0, 93, 104, 0, 0, 93, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, + 103, 312, 0, 316, 317, 0, 321, 0, 325, 0, + 329, 103, 332, 0, 336, 0, 339, 98, 346, 101, + 353, 379, 385, 96, 0, 96, 393, 93, 0, 398, + 0, 0, 404, 0, 409, 93, 0, 98, 0, 0, + 104, 0, 104, 0, 0, 0, 0, 93, 98, 105, + 436, 0, 442, 0, 101, 0, 0, 0, 0, 0, + 105, 0, 0, 98, 0, 0, 0, 0, 0, 96, + 0, 0, 103, 96, 101, 0, 0, 0, 96, 96, + 0, 0, 0, 0, 0, 101, 104, 96, 96, 0, + 104, 0, 0, 0, 0, 104, 104, 0, 0, 0, + 101, 0, 0, 0, 104, 104, 0, 96, 0, 0, + 233, 96, 0, 0, 0, 0, 0, 96, 98, 0, + 98, 105, 0, 0, 104, 0, 0, 0, 104, 0, + 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, + 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, + 96, 0, 0, 106, 0, 101, 0, 101, 96, 0, + 0, 0, 0, 0, 98, 0, 0, 104, 98, 103, + 96, 0, 0, 98, 98, 104, 0, 0, 0, 0, + 0, 0, 98, 98, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 105, 92, 0, 0, 0, 92, 0, - 105, 0, 0, 0, 92, 2, 0, 0, 0, 0, - 98, 150, 151, 0, 0, 0, 104, 0, 93, 0, - 93, 98, 152, 153, 154, 0, 155, 106, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 92, 0, 0, - 0, 0, 158, 114, 159, 92, 0, 27, 28, 0, - 0, 104, 30, 161, 0, 0, 0, 92, 0, 0, - 0, 162, 0, 0, 0, 0, 93, 0, 0, 104, - 93, 0, 0, 0, 0, 93, 93, 0, 0, 0, - 104, 0, 98, 789, 93, 93, 0, 0, 0, 0, - 0, 96, 0, 0, 163, 104, 106, 0, 0, 48, - 0, 0, 114, 106, 0, 93, 0, 0, 0, 93, - 0, 0, 0, 0, 0, 93, 0, 232, 790, 0, - 261, 0, 101, 0, 0, 0, 96, 0, 0, 0, - 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 0, 0, 0, 93, 0, - 0, 104, 0, 104, 0, 96, 93, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, - 96, 114, 0, 0, 0, 0, 0, 0, 114, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 398, - 0, 0, 0, 0, 101, 0, 0, 0, 0, 104, - 0, 0, 0, 104, 0, 0, 0, 0, 104, 104, - 0, 0, 0, 0, -337, -337, 399, 104, 104, 0, - 0, 0, 0, 0, 0, 0, 96, 0, 96, 0, - 0, 0, 230, 0, -337, -337, -337, -337, 104, -337, - -337, 0, 104, 0, 0, 0, 0, 0, 104, 0, - 0, 98, 0, -286, -286, -286, -286, -286, -286, -286, - -286, -286, 0, 0, 0, 0, -286, -286, -286, -286, - -286, -286, -286, -286, 96, 0, 0, 0, 96, 0, - 0, 104, 0, 96, 96, 0, 98, 0, 0, 104, - 0, 0, 96, 96, 0, 0, 0, 0, 0, 103, - 0, 104, 400, 0, 98, 0, -337, 0, 298, 0, - 103, 0, 0, 96, 0, 98, 0, 96, 2, 0, - 0, 105, 0, 96, 150, 151, 0, 0, 0, 0, - 98, 0, 105, 0, 0, 152, 153, 154, 0, 155, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 96, 159, 0, 0, - 27, 28, 0, 101, 96, 30, 161, 0, 0, 0, - 0, 103, 0, 0, 162, 0, 96, 489, 490, 0, - 0, 491, 492, 493, 0, 0, 98, 0, 98, 0, - 0, 0, 0, 105, 0, 0, 41, 0, 101, 494, - 495, 0, 0, 0, 0, 0, 0, 163, 496, 232, - 0, 0, 48, 0, 0, 0, 101, 0, 0, 0, - 0, 0, 0, 0, 106, 0, 0, 101, 0, 0, - 0, 0, 53, 54, 98, 106, 0, 0, 98, 0, - 0, 0, 101, 98, 98, 0, 0, 0, 0, 0, - 0, 0, 98, 98, 0, 0, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 0, 0, 0, 0, 0, - 0, 655, 0, 98, 0, 0, 0, 98, 0, 0, - 140, 141, 0, 98, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 106, 489, 101, 114, - 101, 491, 492, 493, 0, 0, 0, 0, 0, 0, - 114, 0, 0, 0, 0, 0, 98, 0, 0, 494, - 495, 0, 0, 0, 98, 0, 489, 490, 496, 0, - 491, 492, 493, 0, 0, 0, 98, 0, 0, 292, - 103, 0, 0, 0, 0, 0, 101, 0, 494, 495, - 101, 0, 0, 0, 0, 101, 101, 496, 0, 0, - 0, 0, 105, 0, 101, 101, 0, 0, 0, 0, - 0, 114, 0, 0, 0, 103, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 101, 0, 0, 0, 101, - 0, 0, 0, 103, 0, 101, 0, 105, 0, 0, - 0, 0, 0, 581, 103, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 2, 105, 0, 0, 0, 103, - 150, 151, 0, 0, 473, 0, 105, 0, 101, 0, - 0, 152, 153, 154, 0, 155, 101, 0, 0, 157, - 0, 105, 0, 0, 0, 0, 0, 0, 101, 0, - 0, 158, 0, 159, 0, 0, 27, 28, 0, 0, - 0, 30, 161, 0, 0, 106, 0, 0, 0, 0, - 162, 0, 0, 0, 0, 103, 0, 103, 0, 0, - 0, 510, 0, 512, 0, 0, 0, 0, 0, 517, - 0, 0, 41, 0, 0, 0, 0, 105, 0, 105, - 106, 0, 0, 163, 0, 0, 0, 0, 48, 0, - 0, 0, 559, 0, 0, 0, 0, 0, 106, 0, - 528, 0, 0, 103, 0, 0, 0, 103, 534, 106, - 0, 556, 103, 103, 0, 0, 0, 0, 0, 0, - 114, 103, 103, 0, 106, 105, 568, 0, 0, 105, - 0, 0, 0, 0, 105, 105, 0, 0, 0, 0, - 0, 0, 103, 105, 105, 0, 103, 584, 0, 0, - 0, 0, 103, 0, 0, 114, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 0, 0, 0, 105, 0, - 0, 0, 0, 114, 105, 0, 0, 0, 0, 0, - 106, 0, 106, 0, 114, 103, 0, 0, 0, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 0, 114, - 0, 0, 0, 0, 0, 103, 0, 105, 0, 0, - 0, 0, 0, 0, 321, 105, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, - 0, 0, 106, 0, 0, 0, 0, 106, 106, -324, - -324, 322, 0, 0, 0, 0, 106, 106, 0, 0, - 0, 0, 0, 0, 0, 114, 0, 114, 0, -324, - -324, -324, -324, 0, -324, -324, 0, 106, 0, 0, - 0, 106, 0, 0, 0, 0, 0, 106, -271, -271, - -271, -271, -271, -271, -271, -271, -271, 0, 0, 0, - 0, -271, -271, -271, -271, -271, -271, -271, -271, 0, - 626, 0, 0, 114, 0, 0, 0, 114, 0, 0, - 106, 0, 114, 114, 0, 0, 0, 0, 106, 0, - 0, 114, 114, 0, 0, 0, 642, 0, 0, 0, - 106, -324, 647, 298, 0, 653, 0, 654, 0, 0, - 0, 0, 114, 0, 0, 0, 114, 0, 0, 200, - 202, 204, 114, 0, 0, 0, 0, 0, 0, 0, - 0, 212, 0, 0, 0, 0, 678, 0, 680, 0, - 0, 0, 0, 0, 0, 247, 0, 248, 250, 689, - 0, 0, 256, 0, 0, 114, 695, 0, 0, 699, - 0, 702, 282, 114, 0, 0, 0, 0, 0, 0, - 0, 0, 303, 0, 303, 114, 303, 303, 0, 303, - 0, 303, 0, 303, 0, 303, 0, 303, 713, 303, - 0, 303, 0, 303, 356, 303, 0, 731, 0, 303, - 0, 0, 303, 0, 0, 303, 311, 303, 315, 316, - 0, 320, 0, 324, 0, 328, 0, 331, 0, 335, - 0, 338, 303, 345, 303, 352, 378, 384, 0, 0, - 0, 392, 0, 0, 397, 0, 0, 403, 0, 408, - 0, 0, 0, 2, 0, 4, 5, 0, 6, 150, - 151, 9, 474, 474, 432, 0, 438, 11, 12, 13, - 152, 153, 154, 0, 155, 0, 757, 156, 157, 0, - 0, 482, 20, 21, 0, 0, 0, 0, 0, 0, - 158, 0, 159, 0, 0, 27, 28, 0, 0, 160, - 30, 161, 0, 0, 0, 0, 0, 0, 0, 162, - 0, 0, 0, 0, 0, 0, 0, 36, 0, 38, - 39, 474, 0, 0, 0, 518, 780, 0, 0, 0, - 0, 41, 0, 0, 785, 0, 786, 0, 0, 0, - 0, 0, 163, 45, 0, 798, 0, 48, 0, 0, - 51, 589, 524, 518, 474, 0, 0, 0, 164, 165, - 0, 0, 0, 0, 0, 52, 166, 0, 0, 560, - 55, 0, 56, 0, 57, 0, 0, 0, 0, 814, - 0, 816, 0, 0, 569, 0, 0, 0, 0, 573, - 0, 825, 0, 0, 828, 830, 831, 0, 0, 0, - 834, 0, 0, 837, 0, 0, 0, 0, 585, 586, - 0, 0, 0, 0, 0, 2, 0, 4, 5, 0, - 6, 150, 151, 9, 0, 0, 0, 0, 853, 11, - 12, 13, 152, 153, 154, 0, 155, 0, 0, 156, - 157, 0, 0, 0, 20, 21, 0, 0, 0, 0, - 0, 0, 158, 0, 159, 0, 0, 27, 28, 0, - 0, 160, 30, 161, 0, 0, 881, 0, 0, 0, - 0, 162, 0, 886, 0, 0, 889, 0, 0, 36, - 0, 38, 39, 0, 489, 490, 0, 0, 491, 492, - 493, 898, 899, 41, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 910, 163, 45, 494, 495, 0, 48, - 0, 0, 51, 272, 273, 496, 0, 282, 0, 0, - 164, 165, 0, 0, 0, 0, 0, 52, 274, 0, - 0, 929, 55, 282, 56, 0, 57, 0, 0, 0, - 0, 0, 0, 0, 944, 0, 0, 0, 0, 0, - 0, 0, 0, 949, 950, 0, 0, 953, 0, 0, - 955, 956, 0, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 0, 0, 0, 0, 962, 0, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 0, 0, 0, - 0, 544, 545, 546, 547, 548, 549, 550, 551, 0, - 972, 299, 302, 0, 310, 0, 314, 0, 0, 319, - 0, 323, 0, 327, 0, 0, 0, 334, 0, 337, - 0, 0, 0, 351, 681, 0, 682, 386, 389, 0, - 0, 0, 396, 648, 401, 0, 0, 407, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, - 0, 427, 431, 708, 437, 0, 0, 0, 0, 0, - 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 718, 0, - 0, 256, 0, 0, 187, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 207, 208, 0, 0, 0, 0, - 0, 0, 0, 299, 302, 310, 314, 319, 323, 327, - 0, 334, 337, 0, 351, 386, 389, 0, 396, 0, - 401, 407, 0, 0, 266, 0, 0, 0, 0, 270, - 279, 0, 0, 427, 431, 437, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 754, 755, 299, - 302, 310, 314, 319, 323, 327, 0, 334, 337, 0, - 351, 386, 389, 0, 396, 401, 407, 474, 0, 427, - 431, 437, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 0, 0, 0, 0, 544, 545, 546, 547, 548, - 549, 550, 551, 0, 351, 386, 0, 401, 431, 0, - 474, 0, 0, 781, 0, 466, 0, 783, 784, 0, - 0, 0, 0, 0, 0, 0, 472, 0, 791, 0, - 704, 902, 0, 478, 0, 799, 791, 0, 0, 0, - 479, 806, 718, 0, 0, 0, 0, 0, 480, 481, - 0, 809, 0, 0, 0, 0, 2, 0, 4, 5, - 0, 6, 150, 151, 9, 0, 0, 0, 0, 0, - 11, 12, 13, 152, 153, 154, 0, 155, 0, 0, - 156, 157, 0, 0, 0, 20, 21, 0, 0, 0, - 0, 0, 0, 158, 0, 159, 0, 0, 27, 28, - 0, 0, 160, 30, 161, 0, 0, 0, 0, 0, - 0, 0, 162, 327, 855, 856, 0, 0, 0, 0, - 36, 0, 38, 39, 0, 529, 0, 0, 0, 0, - 0, 0, 0, 718, 41, 0, 0, 0, 0, 0, - 877, 0, 877, 0, 0, 163, 45, 0, 0, 567, - 48, 270, 877, 51, 877, 0, 0, 0, 0, 0, - 0, 164, 165, 0, 0, 0, 0, 0, 52, 274, - 0, 0, 717, 55, 896, 56, 0, 57, 0, 900, - 0, 588, 590, 0, 906, 594, 0, 799, 0, 0, - 0, 0, 595, 0, 0, 0, 596, 0, 0, 0, - 0, 597, 0, 0, 0, 598, 0, 0, 0, 599, - 0, 0, 0, 600, 0, 0, 601, 0, 0, 0, - 602, 0, 0, 0, 603, 0, 0, 0, 0, 0, - 945, 605, 0, 948, 0, 0, 2, 0, 0, 0, - 952, 0, 150, 151, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 152, 153, 154, 0, 155, 0, 0, - 0, 157, 0, 0, 0, 0, 0, 0, 0, 607, - 0, 608, 968, 158, 609, 159, 0, 610, 27, 28, - 0, 0, 611, 30, 161, 489, 490, 0, 614, 491, - 492, 493, 162, 0, 0, 615, 616, 617, 618, 619, - 620, 621, 38, 39, 0, 0, 0, 494, 495, 623, - 989, 990, 624, 0, 41, 0, 496, 0, 625, 0, - 0, 386, 0, 0, 401, 163, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 0, 0, 267, 0, 0, 0, 0, 0, 0, - 0, 0, 813, 0, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 661, 662, 663, 664, 665, 666, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 0, 101, 98, 0, 0, 101, 98, 0, 0, 0, + 101, 101, 98, 0, 106, 0, 0, 0, 105, 101, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 114, 0, 0, 101, 103, 98, 0, 0, 0, 101, + 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 0, 0, 0, 0, 103, + 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, + 101, 0, 0, 105, 0, 0, 0, -332, -332, 103, + 0, 114, 101, 0, 0, 0, 0, 0, 0, 0, + 103, 106, 0, 0, 0, 0, 0, -332, -332, -332, + -332, 0, -332, -332, 0, 103, 0, 0, 105, 0, + 0, 0, 141, 142, 0, 0, -302, -302, -302, -302, + -302, -302, -302, -302, -302, 0, 0, 0, 105, -302, + -302, -302, -302, -302, -302, -302, -302, 0, 0, 105, + 2, 0, 0, 0, 0, 0, 151, 152, 0, 0, + 0, 0, 0, 0, 105, 0, 0, 153, 154, 155, + 103, 156, 103, 0, 0, 158, 106, 0, -332, 0, + 299, 293, 0, 0, 0, 0, 0, 159, 114, 160, + 0, 0, 27, 28, 0, 0, 0, 30, 162, 0, + 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, + 0, 106, 0, 0, 0, 0, 103, 0, 0, 105, + 103, 105, 0, 0, 0, 103, 103, 0, 798, 0, + 0, 106, 0, 0, 103, 103, 0, 428, 0, 164, + 0, 0, 106, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 103, 493, 494, 106, 103, 495, + 496, 497, 799, 114, 103, 105, 0, 477, 0, 105, + 0, 0, 0, 0, 105, 105, 0, 498, 499, 0, + 0, 0, 0, 105, 105, 0, 500, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 114, 0, + 0, 0, 0, 105, 0, 103, 0, 105, 0, 0, + 0, 0, 106, 105, 106, 0, 0, 103, 114, 0, + 0, 0, 0, 0, 514, 0, 516, 0, 0, 114, + 0, 0, 521, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 0, 0, 114, 0, 105, 0, 662, 0, + 0, 0, 0, 0, 105, 0, 0, 0, 106, 0, + 0, 0, 106, 532, 0, 0, 105, 106, 106, 0, + 0, 538, 0, 0, 560, 0, 106, 106, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 114, + 106, 114, 0, 0, 0, 0, 106, 0, 0, 0, + 588, 0, 0, 0, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 0, 201, 203, 205, 548, 549, 550, + 551, 552, 553, 554, 555, 0, 213, 0, 493, 106, + 0, 0, 495, 496, 497, 114, 0, 106, 0, 114, + 248, 0, 249, 251, 114, 114, 0, 257, 0, 106, + 498, 499, 0, 114, 114, 0, 0, 283, 655, 500, + 0, 0, 0, 0, 0, 0, 0, 304, 0, 304, + 0, 304, 304, 114, 304, 0, 304, 114, 304, 0, + 304, 0, 304, 114, 304, 0, 304, 0, 304, 357, + 304, 0, 0, 0, 304, 0, 0, 304, 0, 0, + 304, 0, 304, 0, 0, 0, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 0, 114, 0, 304, 0, + 304, 2, 0, 0, 114, 0, 0, 151, 152, 0, + 0, 0, 0, 0, 0, 0, 114, 0, 153, 154, + 155, 0, 156, 0, 0, 0, 158, 0, 478, 478, + 0, 0, 0, 0, 0, 0, 633, 0, 159, 0, + 160, 0, 0, 27, 28, 0, 0, 486, 30, 162, + 0, 0, 0, 0, 0, 0, 0, 163, 0, 0, + 0, 0, 649, 0, 0, 0, 0, 0, 654, 0, + 0, 660, 0, 661, 0, 0, 0, 0, 0, 41, + 0, 0, 0, 0, 0, 0, 0, 478, 0, 0, + 164, 522, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 685, 0, 687, 0, 0, 0, 0, 0, + 0, 0, 0, 862, 0, 696, 0, 0, 528, 522, + 478, 0, 702, 0, 0, 706, 0, 709, 0, 0, + 0, 0, 0, 0, 0, 564, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 573, 0, 0, 0, 720, 577, 0, 0, 0, 0, + 0, 0, 2, 738, 4, 5, 0, 6, 151, 152, + 9, 0, 0, 0, 589, 590, 11, 12, 13, 153, + 154, 155, 0, 156, 0, 0, 157, 158, 0, 0, + 0, 20, 21, 0, 0, 0, 0, 0, 0, 159, + 0, 160, 0, 0, 27, 28, 0, 0, 161, 30, + 162, 0, 0, 0, 0, 0, 0, 0, 163, 0, + 0, 0, 0, 0, 0, 0, 36, 0, 38, 39, + 0, 0, 0, 0, 0, 766, 0, 0, 0, 0, + 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 164, 45, 0, 0, 48, 0, 0, 51, 273, + 274, 0, 0, 0, 432, 0, 165, 166, 0, 0, + 0, 0, 0, 52, 275, 0, 0, 0, 55, 0, + 56, 0, 57, 283, 0, 789, 0, 0, 0, -334, + -334, 433, 0, 794, 0, 795, 0, 0, 0, 283, + 0, 0, 0, 0, 807, 0, 0, 0, 0, -334, + -334, -334, -334, 0, -334, -334, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -304, -304, + -304, -304, -304, -304, -304, -304, -304, 0, 821, 0, + 823, -304, -304, -304, -304, -304, -304, -304, -304, 0, + 0, 0, 833, 0, 0, 836, 838, 839, 0, 0, + 0, 842, 0, 0, 845, 0, 0, 0, 0, 0, + 0, 0, 0, -619, -619, -619, 0, 0, 0, 0, + -334, 0, 299, 0, 0, 0, 0, 0, 0, 861, + 0, 0, 0, 688, 0, 689, 0, 0, 493, 494, + 0, 0, 495, 496, 497, 0, 0, 0, 188, 0, + 0, 0, 0, 0, 0, 0, 0, 711, 208, 209, + 498, 499, 715, 0, 0, 0, 887, 0, 0, 500, + 0, 716, 0, 892, 0, 0, 895, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 725, 267, 2, + 257, 904, 905, 271, 280, 151, 152, 0, 0, 0, + 0, 0, 0, 916, 0, 0, 153, 154, 155, 0, + 156, 0, 0, 0, 158, 0, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 0, 159, 0, 160, 934, + 0, 27, 28, 0, 0, 0, 30, 162, 0, 0, + 0, 0, 949, 493, 494, 163, 0, 495, 496, 497, + 954, 955, 0, 426, 958, 38, 39, 960, 961, 763, + 764, 0, 0, 0, 0, 498, 499, 41, 0, 0, + 470, 0, 0, 967, 500, 0, 0, 0, 164, 478, + 0, 476, 48, 0, 0, 0, 0, 0, 482, 0, + 0, 0, 0, 0, 0, 483, 0, 977, 0, 0, + 52, 0, 0, 484, 485, 268, 0, 0, 0, 0, + 0, 0, 478, 0, 0, 790, 0, 0, 0, 792, + 793, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 800, 0, 711, 0, 53, 54, 0, 808, 800, 0, + 0, 0, 0, 813, 725, 322, 0, 0, 0, 0, + 0, 0, 0, 816, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -324, -324, 323, 0, 0, 0, 0, 0, 0, 0, + 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -324, -324, -324, -324, 0, -324, -324, 0, 0, 0, + 0, 0, 0, 0, 571, 0, 271, 0, 0, -271, + -271, -271, -271, -271, -271, -271, -271, -271, 863, 864, + 0, 0, -271, -271, -271, -271, -271, -271, -271, -271, + 0, 0, 0, 0, 0, 725, 592, 594, 0, 0, + 598, 0, 883, 0, 883, 0, 0, 599, 0, 0, + 0, 600, 0, 0, 0, 883, 601, 883, 0, 0, + 602, -324, 0, 299, 603, 0, 0, 0, 604, 0, + 0, 605, 0, 0, 0, 606, 0, 902, 0, 607, + 0, 0, 906, 0, 0, 0, 609, 912, 0, 0, + 808, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 0, 0, 0, 0, 548, 549, 550, 551, 552, 553, + 554, 555, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 611, 0, 612, 0, 0, 613, + 0, 950, 614, 0, 953, 0, 399, 615, 0, 908, + 957, 0, 0, 618, 0, 0, 0, 0, 0, 0, + 619, 620, 621, 622, 623, 624, 625, 0, 0, 0, + 0, -337, -337, 400, 0, 0, 0, 630, 0, 0, + 631, 0, 973, 0, 0, 0, 632, 0, 0, 0, + 0, -337, -337, -337, -337, 0, -337, -337, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -286, -286, -286, -286, -286, -286, -286, -286, -286, 0, + 994, 995, 0, -286, -286, -286, -286, -286, -286, -286, + -286, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 401, 0, + 2, 0, -337, 0, 299, 0, 151, 152, 0, 0, + 0, 0, 0, 0, 697, 0, 0, 153, 154, 155, + 0, 156, 0, 0, 0, 158, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 159, 0, 160, + 0, 0, 27, 28, 0, 0, 0, 30, 162, 0, + 0, 0, 0, 0, 0, 729, 163, 734, 0, 0, + 0, 0, 741, 0, 0, 300, 303, 0, 311, 0, + 315, 742, 0, 320, 0, 324, 0, 328, 798, 0, + 0, 335, 0, 338, 594, 0, 0, 352, 0, 164, + 0, 387, 390, 48, 0, 0, 397, 0, 402, 0, + 0, 408, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 911, 0, 0, 757, 431, 435, 0, 441, + 0, 0, 760, 493, 494, 0, 0, 495, 496, 497, + 765, 0, 0, 0, 0, 0, 0, 0, 771, 0, + 0, 0, 0, 776, 937, 498, 499, 0, 0, 0, + 0, 0, 0, 0, 500, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 300, 303, + 311, 315, 320, 324, 328, 0, 335, 338, 0, 352, + 387, 390, 0, 397, 0, 402, 408, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 431, 435, + 441, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 0, 0, 729, 0, 300, 303, 311, 315, 320, 324, + 328, 0, 335, 338, 0, 352, 387, 390, 0, 397, + 402, 408, 0, 0, 431, 435, 441, 0, 0, 0, + 0, 594, 0, 0, 0, 0, 0, 0, 0, 834, + 0, 0, 0, 0, 0, 841, 0, 0, 0, 352, + 387, 846, 402, 435, 0, 0, 0, 0, 0, 848, + 0, 0, 0, 0, 852, 0, 0, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 0, 0, 0, 0, + 548, 549, 550, 551, 552, 553, 554, 555, 0, 0, + 0, 0, 0, 729, 0, 734, 0, 0, 0, 0, -3, 1, 0, -26, -26, 2, 3, 4, 5, 0, - 6, 7, 8, 9, 10, 0, 690, 0, 0, 11, - 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, - 19, 0, 0, 0, 20, 21, 0, 22, 0, 0, + 6, 7, 8, 9, 10, 944, 0, 0, 0, 11, + 12, 13, 14, 15, 16, 17, 18, 899, 0, 0, + 19, 0, 901, 0, 20, 21, 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, - 0, 29, 30, 31, 0, 0, 0, 722, 0, 727, - 0, 32, 33, 34, 734, 0, 0, 35, 0, 36, - 37, 38, 39, 735, 0, 0, 0, 0, 0, 431, - 0, 0, 40, 41, 42, 43, 590, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 0, 46, 47, 48, - 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 53, - 54, 751, 55, 0, 56, 0, 57, 0, 0, 756, - 0, 0, 0, 0, 0, 0, 0, 762, 2, 0, - 4, 5, 767, 6, 150, 151, 9, 0, 0, 0, - 0, 0, 11, 12, 13, 152, 153, 154, 0, 155, - 0, 0, 156, 157, 0, 0, 0, 20, 21, 0, - 0, 0, 0, 0, 0, 158, 0, 159, 0, 0, - 27, 28, 0, 0, 160, 30, 161, 0, 0, 0, - 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, - 0, 0, 36, 0, 38, 39, 0, 0, 0, 803, - 0, 722, 0, 0, 0, 0, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 163, 45, 0, - 0, 0, 48, 0, 0, 51, 272, 0, 0, 0, - 590, 0, 0, 164, 165, 0, 826, 0, 393, 0, - 52, 274, 833, 0, 0, 55, 0, 56, 838, 57, - 0, 0, 0, 0, 0, 0, 840, 0, 0, 0, - 0, 844, 0, -335, -335, 394, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -335, -335, -335, -335, 0, -335, -335, - 0, 0, 722, 0, 727, 0, 0, 0, 0, 0, - 0, 0, -282, -282, -282, -282, -282, -282, -282, -282, - -282, 0, 0, 0, 0, -282, -282, -282, -282, -282, - -282, -282, -282, 0, 0, 893, 0, 0, 0, 0, - 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -2, 287, 0, -26, -26, 2, 3, 4, 5, 912, - 6, 7, 8, 9, 10, -335, 0, 298, 0, 11, - 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, - 19, 0, 0, 0, 20, 21, 930, 22, 0, 0, - 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, - 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, + 0, 29, 30, 31, 0, 0, 0, 0, 328, 0, 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, - 37, 38, 39, 0, 0, 0, 959, 0, 0, 0, + 37, 38, 39, 0, 0, 0, 935, 0, 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 0, 46, 47, 48, - 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 53, - 54, 0, 55, 0, 56, 447, 57, -108, -108, 2, - 3, 4, 5, 0, 6, 7, 448, 9, 10, -115, - -115, -115, -115, 11, 12, 13, 14, 15, 16, 449, - 450, 0, 0, 0, 19, 0, 0, 0, 20, 21, - 0, 22, -115, -115, -115, -115, 23, 24, 25, 26, - -115, 27, 28, 0, 0, 29, 30, 31, 0, 0, - 0, 0, 0, 0, 0, 32, 33, 34, -115, -115, - -115, 35, 0, 36, 37, 38, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 0, 46, 47, 48, 49, 50, 51, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, + 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 964, 52, 0, 53, 54, + 0, 55, 0, 56, 0, 57, -2, 288, 0, -26, + -26, 2, 3, 4, 5, 0, 6, 7, 8, 9, + 10, 0, 0, 0, 0, 11, 12, 13, 14, 15, + 16, 17, 18, 0, 0, 0, 19, 0, 0, 0, + 20, 21, 0, 22, 0, 0, 0, 0, 23, 24, + 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, + 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, + 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 53, 54, 0, 55, 0, 56, 447, - 57, -108, -108, 2, 3, 4, 5, 0, 6, 7, - 448, 9, 10, 0, 0, -524, 0, 11, 12, 13, - 14, 15, 16, 449, 450, 0, 0, 0, 19, 0, - 0, 0, 20, 21, 0, 22, -524, -524, -524, 0, - 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, - 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, - 33, 34, 0, 0, 0, 35, 0, 36, 37, 38, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 0, 46, 47, 48, 49, 50, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 53, 54, 0, - 55, 0, 56, 447, 57, -108, -108, 2, 3, 4, - 5, 0, 6, 7, 448, 9, 10, 0, 0, -525, - 0, 11, 12, 13, 14, 15, 16, 449, 450, 0, + 0, 0, 52, 0, 53, 54, 0, 55, 0, 56, + 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, + 0, 451, 402, -108, -108, 2, 3, 4, 5, 0, + 6, 7, 452, 9, 10, -115, -115, -115, -115, 11, + 12, 13, 14, 15, 16, 453, 454, 0, 0, 0, + 19, 0, 0, 0, 20, 21, 0, 22, -115, -115, + -115, -115, 23, 24, 25, 26, -115, 27, 28, 0, + 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, + 0, 32, 33, 34, -115, -115, -115, 35, 0, 36, + 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, + 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 0, 53, 54, + 0, 55, 0, 56, -115, 57, 0, 0, 0, 0, + 0, 0, 0, 451, 0, -108, -108, 2, 3, 4, + 5, 0, 6, 7, 452, 9, 10, 0, 0, -527, + 435, 11, 12, 13, 14, 15, 16, 453, 454, 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, 22, - -525, -525, -525, 0, 23, 24, 25, 26, 0, 27, + -527, -527, -527, 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 0, 46, - 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 0, 53, 54, 0, 55, 0, 56, 447, 57, -108, - -108, 2, 3, 4, 5, 0, 6, 7, 448, 9, - 10, 0, 0, -114, 0, 11, 12, 13, 14, 15, - 16, 449, 450, 0, 0, 0, 19, 0, 0, 0, - 20, 21, 0, 22, 0, 0, 0, 0, 23, 24, - 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, - 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, - -114, -114, -114, 35, 0, 36, 37, 38, 39, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 0, 46, 47, 48, 49, 50, 51, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, + 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 53, 54, 0, 55, 0, 56, 451, 57, -108, -108, + 2, 3, 4, 5, 0, 6, 7, 452, 9, 10, + 0, 0, -528, 0, 11, 12, 13, 14, 15, 16, + 453, 454, 0, 0, 0, 19, 0, 0, 0, 20, + 21, 0, 22, -528, -528, -528, 0, 23, 24, 25, + 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, + 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 53, 54, 0, 55, 0, - 56, 447, 57, -108, -108, 2, 3, 4, 5, 0, - 6, 7, 448, 9, 10, -114, -114, -114, -114, 11, - 12, 13, 14, 15, 16, 449, 450, 0, 0, 0, - 19, 0, 0, 0, 20, 21, 0, 22, 0, 0, - 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, - 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, - 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, - 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 0, 46, 47, 48, + 0, 52, 0, 53, 54, 0, 55, 0, 56, 451, + 57, -108, -108, 2, 3, 4, 5, 0, 6, 7, + 452, 9, 10, 0, 0, -114, 0, 11, 12, 13, + 14, 15, 16, 453, 454, 0, 0, 0, 19, 0, + 0, 0, 20, 21, 0, 22, 0, 0, 0, 0, + 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, + 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, + 33, 34, -114, -114, -114, 35, 0, 36, 37, 38, + 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 0, 53, 54, 0, 55, + 0, 56, 451, 57, -108, -108, 2, 3, 4, 5, + 0, 6, 7, 452, 9, 10, -114, -114, -114, -114, + 11, 12, 13, 14, 15, 16, 453, 454, 0, 0, + 0, 19, 0, 0, 0, 20, 21, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 27, 28, + 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 32, 33, 34, 0, 0, 0, 35, 0, + 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 53, - 54, 0, 55, 0, 56, 447, 57, -108, -108, 2, - 3, 4, 5, 0, 6, 7, 448, 9, 10, 0, - 0, -114, 0, 11, 12, 13, 14, 15, 16, 449, - 450, 0, 0, 0, 19, 0, 0, 0, 20, 21, + 54, 0, 55, 0, 56, 451, 57, -108, -108, 2, + 3, 4, 5, 0, 6, 7, 452, 9, 10, 0, + 0, -114, 0, 11, 12, 13, 14, 15, 16, 453, + 454, 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, 22, -114, -114, -114, 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 0, 46, 47, 48, 49, 50, 51, 0, 0, 0, + 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 53, 54, 0, 55, 0, 56, 447, - 57, -108, -108, 2, 3, 4, 5, 0, 6, 7, - 448, 9, 10, 0, 0, -575, 0, 11, 12, 13, - 14, 15, 16, 449, 450, 0, 0, 0, 19, 0, - 0, 0, 20, 21, 0, 22, -575, -575, 0, 0, - 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, - 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, - 33, 34, 0, 0, 0, 35, 0, 36, 37, 38, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 0, 46, 47, 48, 49, 50, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 53, 54, 0, - 55, 0, 56, 447, 57, -108, -108, 2, 3, 4, - 5, 0, 6, 7, 448, 9, 10, 0, 0, -576, - 0, 11, 12, 13, 14, 15, 16, 449, 450, 0, - 0, 0, 19, 0, 0, 0, 20, 21, 0, 22, - -576, -576, 0, 0, 23, 24, 25, 26, 0, 27, - 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, - 0, 0, 0, 32, 33, 34, 0, 0, 0, 35, - 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 0, 46, + 52, 0, 53, 54, 0, 55, 0, 56, 451, 57, + -108, -108, 2, 3, 4, 5, 0, 6, 7, 452, + 9, 10, 0, 0, -578, 0, 11, 12, 13, 14, + 15, 16, 453, 454, 0, 0, 0, 19, 0, 0, + 0, 20, 21, 0, 22, -578, -578, 0, 0, 23, + 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, + 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, + 34, 0, 0, 0, 35, 0, 36, 37, 38, 39, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, + 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 0, 53, 54, 0, 55, 0, + 56, 451, 57, -108, -108, 2, 3, 4, 5, 0, + 6, 7, 452, 9, 10, 0, 0, -579, 0, 11, + 12, 13, 14, 15, 16, 453, 454, 0, 0, 0, + 19, 0, 0, 0, 20, 21, 0, 22, -579, -579, + 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, + 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, + 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, + 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, + 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 0, 53, 54, + 0, 55, 0, 56, 451, 57, -108, -108, 2, 3, + 4, 5, 0, 6, 7, 452, 9, 10, 0, 0, + -114, 0, 11, 12, 13, 14, 15, 16, 453, 454, + 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, + 22, 0, -114, -114, 0, 23, 24, 25, 26, 0, + 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, + 35, 0, 36, 37, 38, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 40, 41, 42, 43, 0, + 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 0, 53, 54, 0, 55, 0, 56, 447, 57, -108, - -108, 2, 3, 4, 5, 0, 6, 7, 448, 9, + 0, 53, 54, 0, 55, 0, 56, 451, 57, -108, + -108, 2, 3, 4, 5, 0, 6, 7, 452, 9, 10, 0, 0, -114, 0, 11, 12, 13, 14, 15, - 16, 449, 450, 0, 0, 0, 19, 0, 0, 0, - 20, 21, 0, 22, 0, -114, -114, 0, 23, 24, + 16, 453, 454, 0, 0, 0, 19, 0, 0, 0, + 20, 21, 0, 22, -114, -114, 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 0, 46, 47, 48, 49, 50, 51, 0, + 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 53, 54, 0, 55, 0, - 56, 447, 57, -108, -108, 2, 3, 4, 5, 0, - 6, 7, 448, 9, 10, 0, 0, -114, 0, 11, - 12, 13, 14, 15, 16, 449, 450, 0, 0, 0, - 19, 0, 0, 0, 20, 21, 0, 22, -114, -114, - 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, - 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, - 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, - 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 0, 46, 47, 48, - 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 53, - 54, 0, 55, 0, 56, 447, 57, -108, -108, 2, - 3, 4, 5, 0, 6, 7, 448, 9, 10, 0, - 0, -114, -114, 11, 12, 13, 14, 15, 16, 449, - 450, 0, 0, 0, 19, 0, 0, 0, 20, 21, - 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, - 0, 27, 28, 0, 0, 29, 30, 31, 0, 0, - 0, 0, 0, 0, 0, 32, 33, 34, 0, 0, - 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 0, 46, 47, 48, 49, 50, 51, 0, 0, 0, + 0, 0, 52, 0, 53, 54, 0, 55, 0, 56, + 451, 57, -108, -108, 2, 3, 4, 5, 0, 6, + 7, 452, 9, 10, 0, 0, -114, -114, 11, 12, + 13, 14, 15, 16, 453, 454, 0, 0, 0, 19, + 0, 0, 0, 20, 21, 0, 22, 0, 0, 0, + 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, + 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 32, 33, 34, 0, 0, 0, 35, 0, 36, 37, + 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 53, 54, 0, + 55, 0, 56, 451, 57, -108, -108, 2, 3, 4, + 5, 0, 6, 7, 452, 9, 10, 0, 0, -114, + 0, 11, 12, 13, 14, 15, 16, 453, 454, 0, + 0, 0, 19, 0, 0, 0, 20, 21, 0, 22, + 0, 0, 0, -114, 23, 24, 25, 26, 0, 27, + 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, + 0, 0, 0, 32, 33, 34, 0, 0, 0, 35, + 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, + 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 53, 54, 0, 55, 0, 56, 451, 57, -108, -108, + 2, 3, 4, 5, 0, 6, 7, 452, 9, 10, + 0, 0, -114, 0, 11, 12, 13, 14, 15, 16, + 453, 454, 0, 0, 0, 19, 0, 0, 0, 20, + 21, 0, 22, 0, 0, 0, 0, 23, 24, 25, + 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, + 0, -114, 35, 0, 36, 37, 38, 39, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 53, 54, 0, 55, 0, 56, 447, + 0, 52, 0, 53, 54, 0, 55, 0, 56, 451, 57, -108, -108, 2, 3, 4, 5, 0, 6, 7, - 448, 9, 10, 0, 0, -114, 0, 11, 12, 13, - 14, 15, 16, 449, 450, 0, 0, 0, 19, 0, - 0, 0, 20, 21, 0, 22, 0, 0, 0, -114, - 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, + 452, 9, 10, 0, 0, -114, 0, 11, 12, 13, + 14, 15, 16, 453, 454, 0, 0, 0, 19, 0, + 0, 0, 20, 21, 0, 22, 0, 0, 0, 0, + 23, 24, 25, 26, -114, 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 0, 46, 47, 48, 49, 50, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 53, 54, 0, - 55, 0, 56, 447, 57, -108, -108, 2, 3, 4, - 5, 0, 6, 7, 448, 9, 10, 0, 0, -114, - 0, 11, 12, 13, 14, 15, 16, 449, 450, 0, - 0, 0, 19, 0, 0, 0, 20, 21, 0, 22, - 0, 0, 0, 0, 23, 24, 25, 26, 0, 27, - 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, - 0, 0, 0, 32, 33, 34, 0, 0, -114, 35, - 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 0, 46, - 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 0, 53, 54, 0, 55, 0, 56, 447, 57, -108, - -108, 2, 3, 4, 5, 0, 6, 7, 448, 9, + 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 0, 53, 54, 0, 55, + 0, 56, 451, 57, -108, -108, 2, 3, 4, 5, + 0, 6, 7, 452, 9, 10, 0, 0, 0, 0, + 11, 12, 13, 14, 15, 16, 453, 454, 0, 0, + 0, 19, 0, 0, 0, 20, 21, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 27, 28, + 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 32, 33, 34, 0, 0, 0, 35, 0, + 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, + 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 53, + 54, 0, 55, 0, 56, -114, 57, 451, 0, -108, + -108, 2, 3, 4, 5, 0, 6, 7, 452, 9, 10, 0, 0, -114, 0, 11, 12, 13, 14, 15, - 16, 449, 450, 0, 0, 0, 19, 0, 0, 0, + 16, 453, 454, 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, 22, 0, 0, 0, 0, 23, 24, - 25, 26, -114, 27, 28, 0, 0, 29, 30, 31, + 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 0, 46, 47, 48, 49, 50, 51, 0, + 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 53, 54, 0, 55, 0, - 56, 447, 57, -108, -108, 2, 3, 4, 5, 0, - 6, 7, 448, 9, 10, 0, 0, -114, 0, 11, - 12, 13, 14, 15, 16, 449, 450, 0, 0, 0, - 19, 0, 0, 0, 20, 21, 0, 22, 0, 0, - 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, - 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, - 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, - 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 0, 46, 47, 48, - 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 53, - 54, 0, 55, 0, 56, 2, 57, 4, 5, 0, - 6, 150, 151, 9, 0, 0, 0, 0, 0, 11, - 12, 13, 152, 153, 154, 0, 155, 0, 0, 156, - 157, 0, 0, 0, 20, 21, 0, 0, 0, 0, - 0, 0, 158, 0, 159, 0, 0, 27, 28, 0, - 0, 160, 30, 161, 0, 0, 0, 0, 0, 0, - 0, 162, 0, 0, 0, 0, 0, 0, 0, 36, - 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 163, 45, 0, 0, 0, 48, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, - 164, 165, 0, 0, 0, 0, 0, 52, 166, 0, - 0, 0, 55, 0, 56, 2, 57, 4, 5, 0, - 6, 150, 151, 9, 0, 0, 0, 0, 0, 11, - 12, 13, 152, 153, 154, 0, 155, 0, 0, 156, - 157, 0, 0, 0, 20, 21, 0, 0, 0, 0, - 0, 0, 158, 0, 159, 0, 0, 27, 28, 0, - 0, 160, 30, 161, 0, 0, 0, 0, 0, 0, - 0, 162, 0, 0, 0, 0, 0, 0, 0, 36, - 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 163, 45, 0, 0, 0, 48, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, - 164, 165, 0, 0, 0, 0, 0, 52, 269, 0, - 0, 0, 55, 0, 56, 2, 57, 4, 5, 0, - 6, 150, 151, 9, 0, 0, 0, 0, 0, 11, - 12, 13, 152, 153, 154, 0, 155, 0, 0, 156, - 157, 0, 0, 0, 20, 21, 0, 0, 0, 0, - 0, 0, 158, 0, 159, 0, 0, 27, 28, 0, - 0, 160, 30, 161, 0, 0, 0, 0, 0, 0, - 0, 162, 0, 0, 0, 0, 0, 0, 0, 36, - 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 163, 45, 0, 0, 0, 48, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, - 164, 165, 0, 0, 0, 0, 0, 52, 726, 0, - 0, 0, 55, 0, 56, 2, 57, 4, 5, 0, - 6, 150, 151, 9, 0, 0, 0, 0, 0, 11, - 12, 13, 152, 153, 154, 0, 155, 0, 0, 156, - 157, 0, 0, 0, 20, 21, 0, 0, 0, 0, - 0, 0, 158, 0, 159, 0, 0, 27, 28, 0, - 0, 160, 30, 161, 0, 0, 0, 0, 0, 0, - 0, 162, 0, 0, 0, 0, 0, 0, 0, 36, - 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 163, 45, 0, 0, 0, 48, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, - 164, 165, 0, 0, 0, 0, 0, 52, 274, 0, - 0, 0, 55, 0, 56, 2, 57, 4, 5, 0, - 6, 150, 151, 9, 0, 0, 0, 0, 0, 11, - 12, 13, 152, 153, 154, 0, 155, 0, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 158, 0, 159, 0, 0, 27, 28, 0, - 0, 160, 30, 161, 0, 0, 0, 0, 0, 0, - 0, 162, 0, 0, 0, 0, 0, 0, 0, 36, - 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 163, 45, 0, 0, 0, 48, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 4, 354, 52, 355, 150, - 151, 9, 55, 0, 56, 0, 57, 11, 12, 13, - 152, 153, 154, 0, 155, 0, 0, 0, 157, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 158, 0, 159, 0, 0, 27, 28, 0, 0, 0, - 30, 161, 0, 0, 0, 0, 0, 0, 0, 162, - 428, 0, 0, 0, 0, 0, 0, 36, 0, 38, - 39, 0, 489, 490, 0, 0, 491, 492, 493, 0, - 0, 41, 0, 0, 0, -334, -334, 429, 0, 0, - 0, 0, 163, 45, 494, 495, 0, 48, 0, 0, - 0, 0, 0, 496, 0, -334, -334, -334, -334, 0, - -334, -334, 0, 0, 0, 52, 0, 0, 0, 0, - 267, 0, 56, 0, -304, -304, -304, -304, -304, -304, - -304, -304, -304, 0, 0, 404, 0, -304, -304, -304, - -304, -304, -304, -304, -304, 0, 0, 0, 0, 0, - 0, 497, 498, 499, 500, 501, 502, 503, 504, 505, - -338, -338, 405, 0, 53, 54, 0, 0, 0, 0, - -616, -616, -616, 0, 0, 0, 0, -334, 0, 298, - -338, -338, -338, -338, 0, -338, -338, 0, 0, 0, - 0, 0, 0, 0, 0, 428, 0, 0, 0, -289, - -289, -289, -289, -289, -289, -289, -289, -289, 0, 0, - 0, 0, -289, -289, -289, -289, -289, -289, -289, -289, - -334, -334, 429, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -334, -334, -334, -334, 0, -334, -334, 0, 0, 0, - 0, 0, -338, 0, 298, 336, 0, 0, 0, -304, - -304, -304, -304, -304, -304, -304, -304, -304, 0, 0, - 0, 0, -304, -304, -304, -304, -304, -304, -304, -304, - -332, -332, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -332, -332, -332, -332, 0, -332, -332, 0, 0, 0, - 0, 0, -334, 0, 298, 0, 0, 0, 0, -302, - -302, -302, -302, -302, -302, -302, -302, -302, 0, 0, - 0, 0, -302, -302, -302, -302, -302, -302, -302, -302, - 2, 0, 0, 0, 0, 0, 150, 151, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 0, 155, 0, 0, 0, 157, 0, 0, 0, 0, - 0, 0, -332, 0, 298, 0, 0, 158, 0, 159, - 0, 0, 27, 28, 2, 0, 0, 30, 161, 0, - 150, 151, 0, 0, 0, 0, 162, 0, 0, 0, - 0, 152, 153, 154, 0, 155, 0, 0, 0, 157, + 0, 0, 52, 0, 53, 54, 0, 55, 0, 56, + 2, 57, 4, 5, 0, 6, 151, 152, 9, 0, + 0, 0, 0, 0, 11, 12, 13, 153, 154, 155, + 0, 156, 0, 0, 157, 158, 0, 0, 0, 20, + 21, 0, 0, 0, 0, 0, 0, 159, 0, 160, + 0, 0, 27, 28, 0, 0, 161, 30, 162, 0, + 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, + 0, 0, 0, 0, 36, 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, - 0, 158, 0, 159, 0, 0, 27, 28, 0, 163, - 0, 30, 161, 0, 48, 0, 0, 0, 2, 0, - 162, 0, 0, 0, 150, 151, 0, 0, 0, 0, - 0, 0, 0, 854, 0, 152, 153, 154, 0, 155, - 0, 0, 789, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 163, 0, 158, 0, 159, 48, 0, - 27, 28, 2, 0, 0, 30, 161, 0, 150, 151, - 0, 0, 0, 0, 162, 0, 0, 905, 0, 152, - 153, 154, 0, 155, 0, 0, 0, 157, 0, 0, - 0, 0, 0, 0, 0, 0, 41, 0, 0, 158, - 0, 159, 0, 0, 27, 28, 0, 163, 0, 30, - 161, 0, 48, 0, 0, 0, 2, 0, 162, 0, - 0, 0, 150, 151, 0, 0, 0, 0, 38, 39, - 0, 947, 0, 152, 153, 154, 0, 155, 0, 0, - 41, 157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 163, 0, 158, 0, 159, 48, 0, 27, 28, - 2, 0, 0, 30, 161, 0, 150, 151, 0, 0, - 0, 0, 162, 0, 52, 0, 0, 152, 153, 154, - 0, 155, 0, 0, 0, 157, 0, 0, 0, 0, - 0, 0, 0, 0, 41, 0, 0, 158, 0, 159, - 0, 0, 27, 28, 0, 163, 0, 30, 161, 0, - 48, 0, 0, 0, 805, 0, 162, 0, 2, 0, - 0, 0, 0, 0, 150, 151, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 152, 153, 154, 41, 155, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 163, - 0, 0, 0, 0, 48, 158, 0, 159, 874, 0, - 27, 28, 2, 0, 0, 30, 161, 0, 150, 151, - 0, 0, 0, 0, 162, 0, 0, 0, 0, 152, - 153, 154, 0, 155, 0, 0, 0, 157, 0, 0, - 0, 0, 0, 0, 0, 0, 41, 0, 0, 158, - 0, 159, 0, 0, 27, 28, 0, 163, 0, 30, - 161, 0, 48, 0, 0, 0, 951, 0, 162, 0, - 2, 0, 0, 0, 0, 0, 150, 151, 38, 39, - 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, - 41, 155, 0, 489, 490, 157, 0, 491, 492, 493, - 0, 163, 0, 0, 0, 0, 48, 158, 0, 159, - 0, 0, 27, 28, 932, 494, 495, 30, 161, 0, - 0, 0, 0, 0, 496, 0, 162, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 0, 0, 0, 41, 544, - 545, 546, 547, 548, 549, 550, 551, 0, 0, 163, - 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 0, 0, 0, 0, 939, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 0, 0, 0, 0, 544, - 545, 546, 547, 548, 549, 550, 551, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 0, 0, 0, 0, - 544, 545, 546, 547, 548, 549, 550, 551, 0, 0, - 0, 0, 0, 0, 0, 966, 0, 0, 0, 0, - 0, 0, 0, 0, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 0, 0, 0, 978, 544, 545, 546, - 547, 548, 549, 550, 551 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, + 45, 0, 0, 48, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 0, 165, 166, 0, 0, 0, 0, + 0, 52, 167, 53, 54, 0, 55, 0, 56, 2, + 57, 4, 5, 0, 6, 151, 152, 9, 0, 0, + 0, 0, 0, 11, 12, 13, 153, 154, 155, 0, + 156, 0, 0, 157, 158, 0, 0, 0, 20, 21, + 0, 0, 0, 0, 0, 0, 159, 0, 160, 0, + 0, 27, 28, 0, 0, 161, 30, 162, 0, 0, + 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, + 0, 0, 0, 36, 0, 38, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 45, + 0, 0, 48, 0, 0, 51, 593, 0, 0, 0, + 0, 0, 0, 165, 166, 0, 0, 0, 0, 0, + 52, 167, 0, 0, 0, 55, 0, 56, 2, 57, + 4, 5, 0, 6, 151, 152, 9, 0, 0, 0, + 0, 0, 11, 12, 13, 153, 154, 155, 0, 156, + 0, 0, 157, 158, 0, 0, 0, 20, 21, 0, + 0, 0, 0, 0, 0, 159, 0, 160, 0, 0, + 27, 28, 0, 0, 161, 30, 162, 0, 0, 0, + 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, + 0, 0, 36, 0, 38, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 164, 45, 0, + 0, 48, 0, 0, 51, 0, 0, 0, 0, 0, + 0, 0, 165, 166, 0, 0, 0, 0, 0, 52, + 275, 0, 0, 724, 55, 0, 56, 2, 57, 4, + 5, 0, 6, 151, 152, 9, 0, 0, 0, 0, + 0, 11, 12, 13, 153, 154, 155, 0, 156, 0, + 0, 157, 158, 0, 0, 0, 20, 21, 0, 0, + 0, 0, 0, 0, 159, 0, 160, 0, 0, 27, + 28, 0, 0, 161, 30, 162, 0, 0, 0, 0, + 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, + 0, 36, 0, 38, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 164, 45, 0, 0, + 48, 0, 0, 51, 273, 0, 0, 0, 0, 0, + 0, 165, 166, 0, 0, 0, 0, 0, 52, 275, + 0, 0, 0, 55, 0, 56, 2, 57, 4, 5, + 0, 6, 151, 152, 9, 0, 0, 0, 0, 0, + 11, 12, 13, 153, 154, 155, 0, 156, 0, 0, + 157, 158, 0, 0, 0, 20, 21, 0, 0, 0, + 0, 0, 0, 159, 0, 160, 0, 0, 27, 28, + 0, 0, 161, 30, 162, 0, 0, 0, 0, 0, + 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, + 36, 0, 38, 39, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 45, 0, 0, 48, + 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, + 165, 166, 0, 0, 0, 0, 0, 52, 167, 0, + 0, 0, 55, 0, 56, 2, 57, 4, 5, 0, + 6, 151, 152, 9, 0, 0, 0, 0, 0, 11, + 12, 13, 153, 154, 155, 0, 156, 0, 0, 157, + 158, 0, 0, 0, 20, 21, 0, 0, 0, 0, + 0, 0, 159, 0, 160, 0, 0, 27, 28, 0, + 0, 161, 30, 162, 0, 0, 0, 0, 0, 0, + 0, 163, 0, 0, 0, 0, 0, 0, 0, 36, + 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 164, 45, 0, 0, 48, 0, + 0, 51, 0, 0, 0, 0, 0, 0, 0, 165, + 166, 0, 0, 0, 0, 0, 52, 270, 0, 0, + 0, 55, 0, 56, 2, 57, 4, 5, 0, 6, + 151, 152, 9, 0, 0, 0, 0, 0, 11, 12, + 13, 153, 154, 155, 0, 156, 0, 0, 157, 158, + 0, 0, 0, 20, 21, 0, 0, 0, 0, 0, + 0, 159, 0, 160, 0, 0, 27, 28, 0, 0, + 161, 30, 162, 0, 0, 0, 0, 0, 0, 0, + 163, 0, 0, 0, 0, 0, 0, 0, 36, 0, + 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 45, 0, 0, 48, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 165, 166, + 0, 0, 0, 0, 0, 52, 733, 0, 0, 0, + 55, 0, 56, 2, 57, 4, 5, 0, 6, 151, + 152, 9, 0, 0, 0, 0, 0, 11, 12, 13, + 153, 154, 155, 0, 156, 0, 0, 157, 158, 0, + 0, 0, 20, 21, 0, 0, 0, 0, 0, 0, + 159, 0, 160, 0, 0, 27, 28, 0, 0, 161, + 30, 162, 0, 0, 0, 0, 0, 0, 0, 163, + 0, 0, 0, 0, 0, 0, 0, 36, 0, 38, + 39, 0, 493, 494, 0, 0, 495, 496, 497, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 164, 45, 498, 499, 48, 0, 0, 51, + 0, 0, 0, 500, 0, 0, 0, 165, 166, 0, + 0, 0, 0, 0, 52, 275, 0, 0, 0, 55, + 0, 56, 2, 57, 4, 5, 0, 6, 151, 152, + 9, 0, 0, 0, 0, 0, 11, 12, 13, 153, + 154, 155, 0, 156, 0, 0, 0, 158, 585, 0, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 159, + 0, 160, 0, 0, 27, 28, 0, 0, 161, 30, + 162, 0, 0, 0, 0, 0, 0, 0, 163, 493, + 494, 0, 0, 495, 496, 497, 36, 0, 38, 39, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 41, 498, 499, 0, 0, 0, 0, 0, 0, 0, + 500, 164, 45, 0, 0, 48, 0, 0, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 4, 355, 52, 356, 151, 152, 9, 55, 0, + 56, 0, 57, 11, 12, 13, 153, 154, 155, 0, + 156, 0, 0, 0, 158, 820, 0, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 159, 0, 160, 0, + 0, 27, 28, 0, 0, 0, 30, 162, 0, 0, + 0, 0, 0, 0, 394, 163, 0, 0, 0, 0, + 0, 0, 0, 36, 0, 38, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 41, 0, -335, + -335, 395, 0, 0, 0, 0, 0, 0, 164, 45, + 0, 0, 48, 0, 0, 0, 0, 0, 0, -335, + -335, -335, -335, 0, -335, -335, 0, 0, 0, 0, + 52, 0, 0, 0, 405, 268, 0, 56, -282, -282, + -282, -282, -282, -282, -282, -282, -282, 0, 0, 0, + 0, -282, -282, -282, -282, -282, -282, -282, -282, -338, + -338, 406, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -338, + -338, -338, -338, 0, -338, -338, 0, 0, 0, 0, + -335, 0, 299, 0, 432, 0, 0, 0, -289, -289, + -289, -289, -289, -289, -289, -289, -289, 0, 0, 0, + 0, -289, -289, -289, -289, -289, -289, -289, -289, -334, + -334, 433, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -334, + -334, -334, -334, 0, -334, -334, 0, 0, 0, 0, + -338, 0, 299, 0, 0, 0, 0, 0, -304, -304, + -304, -304, -304, -304, -304, -304, -304, 0, 0, 0, + 0, -304, -304, -304, -304, -304, -304, -304, -304, 2, + 0, 0, 0, 0, 0, 151, 152, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 153, 154, 155, 0, + 156, 0, 0, 0, 158, 0, 0, 0, 0, 0, + -334, 0, 299, 0, 0, 0, 159, 0, 160, 0, + 0, 27, 28, 2, 0, 0, 30, 162, 0, 151, + 152, 0, 0, 0, 0, 163, 0, 0, 0, 0, + 153, 154, 155, 0, 156, 0, 0, 0, 158, 0, + 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, + 159, 0, 160, 0, 0, 27, 28, 2, 164, 0, + 30, 162, 48, 151, 152, 0, 0, 0, 0, 163, + 0, 0, 0, 0, 153, 154, 155, 0, 156, 38, + 39, 952, 158, 0, 0, 0, 0, 0, 0, 0, + 0, 41, 0, 0, 159, 0, 160, 0, 0, 27, + 28, 2, 164, 0, 30, 162, 48, 151, 152, 0, + 0, 0, 0, 163, 0, 0, 0, 0, 153, 154, + 155, 0, 156, 0, 52, 0, 158, 0, 0, 0, + 0, 0, 0, 0, 0, 41, 0, 0, 159, 0, + 160, 0, 0, 27, 28, 2, 164, 0, 30, 162, + 48, 151, 152, 0, 563, 0, 0, 163, 0, 0, + 0, 0, 153, 154, 155, 0, 156, 0, 0, 0, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 41, + 0, 0, 159, 0, 160, 0, 0, 27, 28, 2, + 164, 0, 30, 162, 48, 151, 152, 0, 812, 0, + 0, 163, 0, 0, 0, 0, 153, 154, 155, 0, + 156, 0, 0, 0, 158, 0, 0, 0, 0, 0, + 0, 0, 0, 41, 0, 0, 159, 0, 160, 0, + 0, 27, 28, 2, 164, 0, 30, 162, 48, 151, + 152, 0, 880, 0, 0, 163, 0, 0, 0, 0, + 153, 154, 155, 0, 156, 0, 0, 0, 158, 0, + 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, + 159, 0, 160, 0, 0, 27, 28, 2, 164, 0, + 30, 162, 48, 151, 152, 0, 956, 0, 0, 163, + 0, 0, 0, 0, 153, 154, 155, 0, 156, 38, + 39, 0, 158, 0, 0, 0, 0, 0, 0, 0, + 0, 41, 0, 0, 159, 0, 160, 0, 0, 27, + 28, 0, 164, 0, 30, 162, 48, 0, 0, 0, + 0, 0, 0, 163, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 0, 0, 0, 0, 548, 549, 550, + 551, 552, 553, 554, 555, 41, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, + 48, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 0, 0, 971, 0, 548, 549, 550, 551, 552, 553, + 554, 555, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 0, 0, 0, 0, 548, 549, 550, 551, 552, + 553, 554, 555, 0, 0, 0, 0, 0, 0, 983 }; static const yytype_int16 yycheck[] = { - 0, 56, 581, 166, 147, 148, 563, 456, 563, 655, - 464, 465, 533, 563, 444, 445, 705, 9, 467, 9, - 592, 710, 9, 3, 4, 717, 26, 71, 72, 36, - 817, 36, 17, 9, 36, 35, 402, 9, 52, 528, - 827, 36, 829, 650, 121, 36, 36, 47, 128, 36, - 127, 9, 418, 36, 9, 135, 9, 57, 121, 59, - 36, 46, 125, 9, 36, 36, 36, 67, 9, 69, - 9, 71, 72, 117, 74, 0, 76, 684, 78, 9, - 80, 36, 82, 36, 84, 9, 86, 122, 88, 89, - 90, 36, 36, 9, 94, 36, 36, 97, 9, 36, - 100, 26, 102, 9, 474, 36, 269, 121, 10, 9, - 35, 274, 36, 36, 106, 122, 808, 117, 9, 119, - 36, 9, 47, 128, 126, 36, 128, 122, 128, 36, - 36, 126, 57, 128, 59, 135, 36, 128, 128, 119, - 120, 128, 67, 513, 69, 36, 71, 72, 518, 74, - 122, 76, 128, 78, 524, 80, 128, 82, 128, 84, - 717, 86, 717, 88, 89, 90, 9, 717, 122, 94, - 128, 0, 97, 862, 746, 100, 0, 102, 119, 120, - 3, 122, 128, 128, 705, 639, 126, 128, 128, 128, - 560, 128, 117, 36, 119, 126, 842, 26, 128, 9, - 630, 52, 25, 128, 128, 128, 206, 0, 119, 120, - 135, 34, 128, 119, 120, 9, 122, 128, 47, 119, - 120, 128, 128, 52, 34, 35, 36, 36, 128, 19, - 59, 119, 120, 26, 813, 36, 9, 128, 67, 239, - 128, 36, 36, 732, 54, 55, 56, 57, 697, 59, - 60, 808, 36, 808, 47, 84, 126, 86, 808, 88, - 89, 750, 85, 36, 87, 0, 59, 3, 4, 92, - 121, 36, 761, 96, 274, 939, 119, 120, 101, 36, - 9, 104, 105, 106, 107, 128, 17, 776, 117, 36, - 36, 114, 0, 116, 36, 118, 89, 36, 58, 128, - 0, 124, 966, 0, 121, 121, 135, 36, 125, 128, - 41, 127, 122, 122, 978, 138, 126, 126, 128, 128, - 126, 122, 9, 902, 59, 119, 120, 128, 17, 26, - 36, 0, 121, 128, 128, 128, 125, 36, 122, 119, - 120, 121, 135, 832, 128, 834, 52, 34, 35, 274, - 47, 59, 112, 113, 114, 128, 604, 26, 606, 59, - 939, 51, 59, 128, 612, 122, 19, 54, 55, 56, - 57, 128, 59, 60, 17, 122, 122, 106, 47, 126, - 126, 128, 128, 119, 120, 964, 128, 966, 122, 128, - 59, 880, 89, 122, 121, 884, 39, 40, 125, 978, - 889, 890, 402, 119, 120, 121, 0, 17, 122, 898, - 899, 781, 119, 120, 784, 121, 122, 126, 418, 128, - 89, 791, 118, 119, 120, 795, 34, 35, 38, 39, - 919, 128, 26, 121, 923, 123, 806, 110, 135, 126, - 929, 128, 119, 120, 121, 274, 54, 55, 56, 57, - 68, 59, 60, 47, 119, 120, 456, 17, 121, 128, - 123, 17, 36, 3, 4, 59, 135, 467, 123, 3, - 4, 119, 120, 962, 122, 9, 125, 402, 38, 39, - 40, 274, 38, 39, 40, 855, 856, 121, 858, 123, - 36, 34, 35, 418, 864, 89, 122, 58, 106, 36, - 34, 35, 36, 15, 16, 17, 18, 877, 121, 652, - 123, 54, 55, 56, 57, 36, 59, 60, 126, 36, - 54, 55, 56, 57, 121, 59, 60, 582, 528, 19, - 900, 456, 119, 120, 128, 122, 906, 5, 119, 120, - 121, 135, 467, 11, 12, 119, 120, 121, 122, 110, - 111, 112, 113, 114, 22, 23, 24, 121, 26, 123, - 17, 18, 30, 726, 36, 0, 566, 484, 485, 486, - 487, 488, 106, 36, 42, 945, 44, 274, 948, 47, - 48, 36, 952, 126, 52, 53, 3, 4, 122, 36, - 507, 26, 126, 61, 128, 119, 120, 121, 968, 15, - 16, 17, 18, 528, 129, 274, 119, 120, 121, 38, - 39, 121, 47, 123, 121, 83, 123, 36, 121, 0, - 123, 121, 36, 123, 59, 9, 94, 456, 122, 123, - 36, 99, 64, 65, 36, 121, 9, 122, 467, 122, - 128, 566, 9, 58, 9, 26, 121, 19, 121, 9, - 34, 35, 36, 122, 89, 122, 124, 128, 47, 3, - 4, 34, 35, 456, 123, 9, 47, 121, 121, 121, - 54, 55, 56, 57, 467, 59, 60, 123, 59, 9, - 274, 54, 55, 56, 57, 685, 59, 60, 99, 17, - 34, 35, 36, 128, 17, 83, 123, 697, 121, 528, - 135, 123, 123, 123, 34, 35, 36, 66, 89, 59, - 54, 55, 56, 57, 123, 59, 60, 684, 89, 89, - 89, 89, 106, 89, 54, 55, 56, 57, 89, 59, - 60, 89, 732, 89, 563, 528, 89, 566, 122, 236, - 89, 89, 126, 89, 128, 148, 89, 128, 89, 685, - 750, 513, 239, 126, 135, 128, 238, 964, 859, 456, - 711, 761, 106, 818, 9, 445, 464, 982, 566, 810, - 467, 645, 697, 566, 645, 530, 776, -1, 122, -1, - -1, -1, 126, -1, 128, -1, 73, 456, -1, 34, - 35, 36, -1, -1, -1, -1, 126, 9, 467, 86, - 87, 88, 89, 90, 91, 92, 93, 732, -1, 54, - 55, 56, 57, -1, 59, 60, -1, -1, -1, -1, - -1, -1, 34, 35, 36, 750, -1, -1, -1, -1, - -1, 528, 832, -1, 834, -1, 761, -1, -1, 274, - -1, -1, 54, 55, 56, 57, -1, 59, 60, -1, - -1, 776, -1, 0, -1, -1, -1, -1, -1, 528, - -1, 106, 456, -1, -1, -1, -1, -1, 697, 566, - -1, -1, -1, 467, -1, -1, -1, 122, -1, 26, - 880, 126, -1, 128, 884, -1, -1, -1, 717, 889, - 890, -1, -1, 274, 106, -1, -1, 566, 898, 899, - 47, -1, -1, 732, 697, -1, -1, 832, -1, 834, - 122, -1, 59, -1, 126, -1, 128, -1, -1, 919, - -1, 750, -1, 923, -1, -1, -1, -1, -1, 929, - -1, -1, 761, -1, 528, -1, -1, -1, -1, 732, - -1, -1, 89, -1, -1, -1, -1, 776, -1, 0, - -1, -1, -1, -1, -1, 880, -1, 750, -1, 884, - -1, -1, 962, -1, 889, 890, -1, -1, 761, -1, - 970, -1, 566, 898, 899, 26, -1, -1, -1, 808, - -1, 128, 982, 776, -1, -1, -1, -1, 135, -1, - -1, -1, -1, -1, 919, -1, 47, -1, 923, -1, - 697, -1, -1, 832, 929, 834, -1, -1, 59, -1, + 0, 167, 585, 56, 148, 149, 567, 460, 448, 449, + 662, 537, 9, 468, 469, 567, 9, 567, 471, 596, + 712, 36, 36, 9, 36, 717, 26, 9, 9, 36, + 125, 9, 127, 9, 36, 35, 9, 9, 9, 36, + 9, 9, 0, 9, 0, 120, 944, 47, 478, 0, + 36, 126, 9, 36, 36, 36, 9, 57, 36, 59, + 36, 657, 9, 36, 36, 36, 9, 67, 36, 69, + 36, 71, 72, 971, 74, 36, 76, 36, 78, 36, + 80, 9, 82, 36, 84, 983, 86, 517, 88, 89, + 90, 36, 522, 0, 94, 691, 9, 97, 528, 9, + 100, 59, 102, 59, 270, 532, 9, 121, 59, 275, + 125, 125, 105, 127, 121, 127, 121, 36, 118, 26, + 120, 118, 119, 36, 121, 127, 36, 36, 35, 129, + 127, 36, 118, 119, 564, 121, 136, 118, 119, 121, + 47, 127, 0, 36, 127, 127, 127, 118, 119, 127, + 57, 127, 59, 36, 127, 127, 127, 36, 127, 127, + 67, 127, 69, 724, 71, 72, 127, 74, 26, 76, + 127, 78, 724, 80, 724, 82, 753, 84, 870, 86, + 127, 88, 89, 90, 127, 9, 712, 94, 52, 47, + 97, 646, 36, 100, 52, 102, 120, 637, 850, 127, + 124, 59, 629, 3, 4, 118, 119, 207, 127, 67, + 0, 118, 36, 120, 127, 118, 119, 36, 127, 58, + 36, 17, 129, 36, 127, 36, 84, 52, 86, 136, + 88, 89, 125, 3, 127, 0, 26, 820, 121, 36, + 240, 9, 125, 10, 127, 129, 125, 36, 127, 724, + 46, 704, 136, 121, 815, 25, 120, 47, 120, 9, + 118, 26, 124, 815, 34, 815, 34, 35, 36, 59, + 120, 129, 111, 112, 113, 275, 126, 121, 136, 3, + 4, 105, 47, 127, 34, 35, 54, 55, 56, 57, + 19, 59, 60, 0, 59, 120, 9, 121, 125, 89, + 36, 17, 121, 0, 54, 55, 56, 57, 127, 59, + 60, 127, 739, 36, 127, 85, 127, 87, 118, 119, + 71, 72, 92, 36, 89, 908, 96, 36, 127, 26, + 127, 101, 759, 36, 104, 105, 106, 107, 127, 129, + 815, 120, 17, 770, 114, 124, 136, 117, 125, 119, + 47, 403, 0, 121, 120, 125, 122, 125, 785, 127, + 790, 944, 59, 793, 129, 116, 41, 419, 275, 139, + 800, 136, 36, 51, 804, 125, 19, 127, 26, 120, + 36, 122, 608, 813, 610, 121, 969, 17, 971, 125, + 616, 127, 89, 120, 118, 119, 52, 124, 121, 47, + 983, 9, 125, 403, 127, 118, 119, 17, 38, 39, + 40, 59, 121, 840, 127, 842, 121, 275, 127, 419, + 488, 489, 490, 491, 492, 121, 34, 35, 36, 39, + 40, 122, 129, 863, 864, 120, 866, 122, 58, 136, + 17, 89, 872, 511, 118, 119, 54, 55, 56, 57, + 109, 59, 60, 883, 118, 119, 120, 121, 36, 886, + 460, 38, 39, 890, 120, 121, 118, 119, 895, 896, + 68, 471, 15, 16, 17, 18, 906, 904, 905, 3, + 4, 129, 912, 34, 35, 275, 124, 824, 136, 109, + 110, 111, 112, 113, 17, 18, 403, 924, 835, 36, + 837, 928, 36, 54, 55, 56, 57, 934, 59, 60, + 275, 36, 419, 121, 17, 659, 120, 125, 122, 127, + 950, 118, 119, 953, 121, 0, 36, 957, 15, 16, + 17, 18, 532, 586, 36, 38, 39, 40, 118, 119, + 967, 121, 121, 973, 3, 4, 118, 119, 120, 120, + 9, 26, 36, 460, 3, 4, 118, 119, 120, 120, + 9, 122, 0, 120, 471, 122, 120, 733, 122, 36, + 570, 120, 47, 122, 125, 34, 35, 36, 275, 118, + 119, 120, 3, 4, 59, 34, 35, 36, 26, 118, + 119, 120, 9, 38, 39, 54, 55, 56, 57, 36, + 59, 60, 460, 121, 122, 54, 55, 56, 57, 47, + 59, 60, 36, 471, 89, 128, 19, 34, 35, 36, + 36, 59, 117, 118, 119, 532, 120, 275, 122, 629, + 118, 119, 120, 118, 119, 120, 36, 54, 55, 56, + 57, 120, 59, 60, 64, 65, 105, 121, 121, 127, + 9, 89, 58, 9, 129, 19, 105, 120, 120, 124, + 121, 136, 121, 570, 121, 9, 125, 127, 127, 73, + 460, 47, 121, 120, 532, 98, 125, 17, 127, 122, + 120, 471, 86, 87, 88, 89, 90, 91, 92, 93, + 9, 129, 692, 120, 122, 460, 83, 122, 136, 66, + 9, 120, 0, 17, 704, 59, 471, 122, 125, 567, + 127, 122, 570, 122, 122, 34, 35, 36, 89, 89, + 89, 691, 629, 89, 89, 34, 35, 36, 26, 89, + 237, 9, 89, 517, 89, 54, 55, 56, 57, 739, + 59, 60, 532, 89, 89, 54, 55, 56, 57, 47, + 59, 60, 89, 89, 89, 89, 34, 35, 36, 759, + 149, 59, 692, 460, 240, 969, 718, 532, 239, 867, + 770, 629, 825, 449, 471, 468, 54, 55, 56, 57, + 570, 59, 60, 570, 987, 785, 105, 817, 534, 652, + -1, 89, 652, -1, -1, -1, -1, 704, -1, -1, + 275, -1, 121, -1, -1, 570, 125, -1, 127, -1, + -1, -1, 460, -1, -1, -1, 125, -1, 127, -1, + -1, -1, -1, 471, -1, -1, -1, 105, -1, -1, + -1, 129, 739, -1, -1, 532, -1, 275, 136, 629, + 840, -1, 842, 121, -1, -1, 704, 125, -1, 127, + -1, -1, 759, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 770, 629, -1, 724, -1, -1, -1, + -1, -1, -1, 570, -1, -1, -1, -1, 785, -1, + -1, 739, -1, -1, 532, -1, 886, -1, -1, -1, + 890, -1, -1, -1, -1, 895, 896, -1, -1, -1, + -1, 759, -1, -1, 904, 905, -1, -1, -1, -1, + -1, -1, 770, -1, 704, 9, -1, -1, -1, -1, + -1, -1, 570, -1, 924, -1, -1, 785, 928, -1, + -1, -1, 629, 840, 934, 842, -1, -1, -1, 704, + 34, 35, 36, -1, -1, 0, -1, -1, -1, 739, + -1, -1, -1, -1, -1, -1, -1, 815, -1, -1, + 54, 55, 56, 57, -1, 59, 60, 967, -1, 759, + -1, 26, -1, -1, 739, 975, -1, 275, -1, 886, + 770, 629, 840, 890, 842, 460, -1, 987, 895, 896, + -1, -1, 47, -1, 759, 785, 471, 904, 905, -1, + -1, -1, -1, -1, 59, 770, -1, 704, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 924, -1, -1, + 785, 928, 460, -1, -1, -1, -1, 934, 886, -1, + -1, 125, 890, 471, 89, -1, -1, 895, 896, 9, + -1, -1, 739, -1, -1, 0, 904, 905, -1, -1, + 840, -1, 842, -1, -1, -1, 704, 532, -1, -1, + 967, -1, 759, -1, 34, 35, 924, -1, 975, -1, + 928, 26, -1, 770, 129, 840, 934, 842, -1, -1, + 987, 136, -1, -1, 54, 55, 56, 57, 785, 59, + 60, 739, 47, -1, 532, 570, 886, -1, -1, -1, + 890, -1, -1, -1, 59, 895, 896, -1, -1, 967, + -1, 759, -1, -1, 904, 905, -1, 975, -1, -1, + -1, 886, 770, 0, -1, 890, -1, -1, -1, 987, + 895, 896, 570, -1, 924, -1, -1, 785, 928, 904, + 905, -1, -1, 840, 934, 842, -1, -1, -1, 26, + -1, -1, -1, -1, 629, 125, -1, 127, -1, 924, + -1, -1, 460, 928, -1, -1, -1, -1, -1, 934, + 47, -1, -1, 471, 129, -1, -1, 967, -1, -1, + -1, 136, 59, -1, -1, 975, -1, -1, -1, 886, + -1, 629, 840, 890, 842, -1, -1, 987, 895, 896, + -1, -1, 967, -1, -1, -1, -1, 904, 905, -1, + 975, -1, 89, -1, -1, -1, -1, -1, -1, -1, + 275, -1, 987, -1, -1, -1, -1, 924, -1, 704, + -1, 928, 0, -1, 532, -1, -1, 934, 886, -1, + -1, -1, 890, -1, -1, -1, -1, 895, 896, -1, + -1, -1, 129, -1, -1, -1, 904, 905, 26, 136, + -1, -1, -1, -1, 739, -1, 704, 9, -1, -1, + 967, -1, 570, -1, -1, -1, 924, -1, 975, 47, + 928, -1, -1, -1, 759, -1, 934, -1, -1, -1, + 987, 59, 34, 35, 36, 770, -1, -1, -1, -1, + -1, 739, -1, 34, 35, -1, -1, -1, 9, -1, + 785, -1, 54, 55, 56, 57, -1, 59, 60, 967, + 275, 759, -1, 54, 55, 56, 57, 975, 59, 60, + -1, 629, 770, 34, 35, 36, -1, -1, -1, 987, + -1, -1, -1, -1, -1, 5, -1, 785, -1, 0, + -1, 11, 12, 54, 55, 56, 57, -1, 59, 60, + -1, 129, 22, 23, 24, 840, 26, 842, 136, -1, + 30, -1, -1, -1, 105, 26, -1, -1, -1, -1, + -1, -1, 42, 125, 44, 127, -1, 47, 48, -1, + -1, -1, 52, 53, 125, -1, 47, -1, 275, -1, + -1, 61, 840, -1, 842, 460, 704, -1, 59, -1, + -1, 886, -1, -1, -1, 890, 471, -1, -1, -1, + 895, 896, -1, 83, 125, -1, 127, -1, -1, 904, + 905, -1, -1, -1, 94, -1, 0, -1, 98, -1, + -1, 739, -1, -1, -1, -1, -1, -1, 886, 924, + -1, -1, 890, 928, -1, -1, -1, 895, 896, 934, + -1, 759, 26, 123, -1, -1, 904, 905, -1, -1, + -1, -1, 770, 0, -1, -1, -1, 532, 129, -1, + -1, -1, -1, 47, -1, 136, 924, 785, -1, -1, + 928, -1, 967, -1, -1, 59, 934, -1, -1, 26, + 975, -1, -1, -1, -1, 460, -1, 275, -1, 9, + -1, -1, 987, -1, -1, 570, 471, -1, -1, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, 967, + -1, -1, 59, -1, 34, 35, 36, 975, -1, -1, + -1, -1, 840, -1, 842, -1, -1, -1, -1, 987, + -1, -1, -1, -1, 54, 55, 56, 57, -1, 59, + 60, -1, -1, -1, -1, 129, -1, -1, -1, -1, + -1, -1, 136, -1, 629, -1, -1, 532, -1, -1, + -1, -1, -1, 460, -1, -1, -1, -1, 886, -1, + -1, -1, 890, -1, 471, -1, -1, 895, 896, -1, + -1, -1, 129, -1, -1, 105, 904, 905, -1, 136, + -1, -1, -1, -1, -1, 570, -1, 9, -1, -1, + -1, 121, -1, -1, 275, 125, 924, 127, -1, -1, + 928, -1, -1, -1, -1, 9, 934, -1, -1, -1, + 0, -1, 34, 35, 36, -1, -1, -1, -1, 704, + -1, -1, -1, -1, -1, 532, -1, -1, -1, -1, + 34, 35, 54, 55, 56, 57, 26, 59, 60, 967, + -1, -1, -1, -1, 629, -1, -1, 975, -1, -1, + 54, 55, 56, 57, 739, 59, 60, 47, -1, 987, + -1, -1, 460, 570, -1, 9, -1, -1, -1, 59, + -1, -1, -1, 471, 759, -1, -1, -1, -1, -1, + -1, 275, -1, 105, -1, 770, -1, -1, -1, -1, + 34, 35, 36, -1, -1, -1, -1, -1, -1, 121, + 785, -1, -1, 125, -1, 127, -1, -1, -1, -1, + 54, 55, 56, 57, -1, 59, 60, 9, 275, 704, + -1, 125, 629, 127, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, 532, -1, -1, -1, -1, 129, + -1, -1, 34, 35, 36, -1, 136, -1, -1, -1, + 0, -1, -1, -1, 739, 840, -1, 842, -1, 26, + -1, 105, 54, 55, 56, 57, -1, 59, 60, -1, + -1, -1, 570, -1, 759, -1, -1, 121, -1, 460, + 47, 125, -1, 127, -1, 770, -1, -1, -1, -1, + 471, -1, 59, -1, -1, -1, -1, 704, -1, -1, + 785, 886, -1, -1, -1, 890, -1, -1, -1, 59, + 895, 896, -1, -1, -1, -1, -1, -1, -1, 904, + 905, -1, -1, -1, -1, -1, -1, -1, 0, -1, + -1, 629, 739, 125, -1, 127, -1, -1, -1, 924, + -1, -1, -1, 928, -1, -1, -1, 9, -1, 934, + -1, 532, 759, -1, 26, 840, -1, 842, -1, -1, + -1, -1, 129, 770, -1, 0, 460, -1, -1, 136, + -1, -1, 34, 35, 36, 47, -1, 471, 785, 129, + -1, -1, 967, -1, -1, 275, 136, 59, -1, 570, + 975, 26, 54, 55, 56, 57, -1, 59, 60, -1, + -1, 886, 987, 460, -1, 890, 704, -1, -1, -1, + 895, 896, 47, -1, 471, -1, -1, -1, -1, 904, + 905, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, 840, -1, 842, -1, -1, 532, 924, + -1, 739, -1, 928, -1, -1, -1, -1, 629, 934, + -1, -1, -1, -1, -1, -1, -1, 129, -1, 9, + -1, 759, -1, 125, 136, 127, -1, -1, -1, -1, + -1, -1, 770, -1, -1, 532, 570, -1, -1, 886, + -1, -1, 967, 890, 34, 35, 36, 785, 895, 896, + 975, -1, -1, -1, 129, -1, -1, 904, 905, -1, + -1, 136, 987, 9, 54, 55, 56, 57, 275, 59, + 60, -1, -1, 570, -1, -1, -1, 924, -1, -1, + -1, 928, -1, 704, -1, -1, -1, 934, 34, 35, + -1, -1, -1, -1, -1, 629, -1, -1, -1, -1, + -1, -1, 840, -1, 842, -1, -1, -1, 54, 55, + 56, 57, -1, 59, 60, -1, -1, -1, 739, -1, + 967, -1, -1, -1, -1, -1, -1, -1, 975, -1, + 460, -1, 629, -1, -1, 125, -1, 127, 759, -1, + 987, 471, -1, -1, -1, -1, -1, -1, 886, 770, + 0, -1, 890, -1, -1, -1, -1, 895, 896, -1, + -1, -1, -1, 275, 785, -1, 904, 905, -1, -1, + 704, -1, -1, -1, -1, -1, 26, -1, -1, 125, + -1, 127, -1, -1, -1, -1, 924, -1, -1, -1, + 928, -1, -1, -1, -1, -1, 934, 47, -1, 0, + 275, -1, 532, -1, -1, 739, -1, 704, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 840, + -1, 842, -1, -1, -1, 759, -1, -1, -1, 967, + -1, -1, -1, -1, -1, -1, 770, 975, -1, -1, + 570, -1, 739, -1, -1, -1, -1, -1, -1, 987, + -1, 785, -1, 460, -1, -1, -1, -1, 59, -1, + -1, -1, 759, -1, 471, 886, -1, -1, -1, 890, + 460, 9, -1, 770, 895, 896, -1, -1, -1, 129, + -1, 471, -1, 904, 905, -1, 136, -1, 785, -1, + -1, -1, 0, -1, -1, -1, 34, 35, 36, 629, + -1, -1, -1, 924, -1, -1, 840, 928, 842, -1, + -1, -1, -1, 934, -1, -1, 54, 55, 56, 57, + -1, 59, 60, -1, -1, 532, -1, -1, 129, -1, + -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, 532, 840, -1, 842, 967, -1, 460, -1, + -1, 59, 886, -1, 975, -1, 890, -1, -1, 471, + -1, 895, 896, 570, -1, -1, 987, -1, -1, -1, + 904, 905, -1, -1, 704, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, 460, -1, 125, -1, 886, + 924, -1, -1, 890, 928, -1, 471, -1, 895, 896, + 934, -1, -1, -1, -1, -1, -1, 904, 905, 739, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 456, -1, -1, 0, -1, -1, -1, 697, -1, - -1, -1, 467, -1, -1, 732, -1, 962, 89, 832, - -1, 834, -1, -1, -1, 970, -1, -1, -1, -1, - 26, 880, -1, 750, -1, 884, -1, 982, -1, -1, - 889, 890, -1, 732, 761, -1, -1, -1, -1, 898, - 899, 47, -1, -1, -1, 456, -1, 128, -1, 776, - -1, 750, -1, 59, 135, -1, 467, 880, -1, -1, - 919, 884, 761, 528, 923, -1, 889, 890, -1, -1, - 929, -1, -1, 697, -1, 898, 899, 776, -1, -1, - -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 9, 919, 274, -1, -1, - 923, 566, -1, 962, -1, 832, 929, 834, 732, -1, - -1, 970, -1, -1, -1, -1, -1, 528, 0, -1, - 34, 35, 128, 982, -1, -1, 750, -1, -1, 135, - -1, -1, -1, 832, -1, 834, -1, 761, -1, 962, - 54, 55, 56, 57, 26, 59, 60, 970, -1, -1, - -1, -1, 776, 880, 0, 566, -1, 884, -1, 982, - -1, -1, 889, 890, -1, 47, -1, -1, -1, -1, - -1, 898, 899, -1, -1, -1, -1, 59, -1, -1, - 26, 880, -1, -1, -1, 884, -1, -1, -1, -1, - 889, 890, 919, 274, -1, -1, 923, -1, -1, 898, - 899, 47, 929, -1, -1, -1, -1, -1, 832, -1, - 834, -1, 126, 59, 128, -1, -1, -1, -1, -1, - 919, -1, -1, -1, 923, -1, -1, -1, -1, -1, - 929, -1, 697, -1, -1, 962, -1, -1, -1, -1, - -1, -1, -1, 970, -1, -1, 128, -1, -1, -1, - 0, -1, -1, 135, -1, 982, 880, -1, -1, -1, - 884, -1, -1, 962, -1, 889, 890, 732, 274, -1, - -1, 970, -1, -1, 898, 899, 26, -1, 0, 456, - -1, 9, 128, 982, -1, 750, 697, -1, -1, 135, - 467, -1, -1, -1, -1, 919, 761, 47, -1, 923, - -1, -1, -1, -1, 26, 929, 34, 35, 36, 59, - -1, 776, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 732, -1, -1, -1, 47, 54, 55, 56, 57, - -1, 59, 60, -1, -1, -1, -1, 59, 962, 750, - -1, -1, -1, -1, -1, -1, 970, -1, -1, -1, - 761, 528, -1, -1, -1, -1, -1, 9, 982, -1, - -1, 31, 32, 33, -1, 776, -1, 832, -1, 834, - -1, -1, -1, -1, -1, 456, -1, -1, 128, 49, - 50, -1, 34, 35, 36, 135, 467, -1, 58, 566, - -1, -1, 274, -1, 122, -1, -1, -1, 126, -1, - 128, -1, 54, 55, 56, 57, 128, 59, 60, -1, - -1, -1, -1, 135, -1, 880, -1, -1, -1, 884, - -1, 832, -1, 834, 889, 890, -1, -1, 274, -1, - -1, -1, -1, 898, 899, -1, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 9, -1, 528, -1, -1, - 456, -1, -1, -1, 919, 0, -1, -1, 923, -1, - -1, 467, -1, -1, 929, -1, -1, -1, -1, 880, - 34, 35, 36, 884, 126, -1, 128, -1, 889, 890, - -1, 26, -1, -1, 9, 566, -1, 898, 899, -1, - 54, 55, 56, 57, -1, 59, 60, 962, -1, -1, - -1, -1, 47, -1, -1, 970, -1, -1, 919, 34, - 35, 36, 923, -1, 59, -1, -1, 982, 929, -1, - 697, -1, 528, -1, 274, -1, -1, -1, -1, 54, - 55, 56, 57, -1, 59, 60, -1, -1, -1, -1, - -1, -1, 106, -1, -1, -1, -1, -1, -1, -1, - -1, 962, 274, -1, -1, 732, -1, -1, 122, 970, - 566, 9, 126, -1, 128, -1, 0, -1, -1, -1, - -1, 982, -1, 750, 456, -1, -1, -1, -1, -1, - -1, 106, -1, 128, 761, 467, 34, 35, 36, -1, - 135, -1, 26, -1, -1, -1, -1, 122, -1, 776, - -1, 126, -1, 128, -1, -1, 54, 55, 56, 57, - 456, 59, 60, 47, 9, -1, 697, -1, -1, -1, - -1, 467, -1, -1, -1, 59, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, - 35, 36, -1, -1, -1, -1, 528, -1, -1, -1, - -1, 732, -1, -1, -1, 832, -1, 834, -1, 54, - 55, 56, 57, -1, 59, 60, -1, -1, -1, 750, - -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, - 761, -1, 528, -1, 566, -1, -1, -1, -1, -1, - -1, 697, -1, -1, 128, 776, -1, -1, -1, 0, - -1, 135, -1, 880, -1, -1, 456, 884, -1, -1, - -1, -1, 889, 890, -1, -1, -1, 467, -1, -1, - 566, 898, 899, -1, -1, -1, 732, -1, -1, 274, - -1, 126, -1, 128, 456, -1, 9, -1, -1, -1, - -1, -1, 919, -1, 750, 467, 923, -1, -1, -1, - -1, 832, 929, 834, -1, 761, -1, -1, 59, -1, - -1, 34, 35, 36, -1, -1, -1, -1, -1, -1, - 776, -1, -1, -1, 0, -1, -1, -1, 528, -1, - -1, 54, 55, 56, 57, 962, 59, 60, -1, -1, - -1, -1, -1, 970, -1, -1, -1, -1, -1, 880, - 26, -1, -1, 884, -1, 982, 528, -1, 889, 890, - -1, -1, -1, -1, -1, 697, 566, 898, 899, -1, - -1, 47, -1, -1, -1, -1, 832, 128, 834, -1, - -1, -1, -1, 59, 135, -1, -1, -1, 919, -1, - 274, -1, 923, -1, 566, -1, -1, -1, 929, -1, - 732, 697, -1, 126, -1, 128, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 750, -1, - -1, -1, -1, -1, 880, -1, -1, -1, 884, 761, - -1, 962, -1, 889, 890, -1, 732, -1, -1, 970, - -1, -1, 898, 899, 776, 9, -1, -1, -1, -1, - -1, 982, 128, -1, 750, -1, -1, -1, -1, 135, - -1, 456, -1, 919, -1, 761, -1, 923, -1, -1, - 34, 35, 467, 929, -1, -1, -1, -1, -1, -1, - 776, -1, -1, -1, 0, -1, -1, -1, -1, -1, - 54, 55, 56, 57, 9, 59, 60, 697, -1, -1, - 832, -1, 834, -1, -1, -1, 962, -1, -1, -1, - 26, -1, -1, -1, 970, -1, -1, -1, -1, 34, - 35, 36, -1, -1, -1, 697, 982, -1, -1, -1, - -1, 47, 732, 528, -1, -1, 832, -1, 834, 54, - 55, 56, 57, 59, 59, 60, -1, -1, 880, -1, - 750, -1, 884, -1, -1, -1, -1, 889, 890, -1, - 732, 761, 126, -1, 128, -1, 898, 899, -1, -1, - -1, 566, 456, -1, -1, -1, 776, -1, 750, -1, - -1, -1, -1, 467, 880, -1, -1, 919, 884, 761, - -1, 923, -1, 889, 890, -1, 0, 929, 274, -1, - -1, -1, 898, 899, 776, -1, -1, -1, -1, -1, - -1, 126, 128, 128, -1, -1, -1, -1, -1, 135, - -1, -1, 26, 919, -1, -1, -1, 923, -1, -1, - 962, -1, 832, 929, 834, -1, -1, -1, 970, -1, - -1, -1, -1, 47, 528, -1, 9, -1, -1, -1, - 982, -1, -1, -1, -1, 59, -1, -1, -1, -1, - 832, -1, 834, -1, -1, -1, 962, -1, -1, -1, - -1, 34, 35, 36, 970, -1, -1, -1, -1, -1, - 880, -1, 566, -1, 884, -1, 982, -1, 9, 889, - 890, 54, 55, 56, 57, 9, 59, 60, 898, 899, - -1, -1, 697, -1, -1, 456, -1, -1, 880, -1, - -1, -1, 884, 34, 35, 36, 467, 889, 890, 919, - 34, 35, 36, 923, 128, -1, 898, 899, -1, 929, - -1, 135, -1, 54, 55, 56, 57, 732, 59, 60, - 54, 55, 56, 57, -1, 59, 60, 919, -1, -1, - -1, 923, -1, -1, -1, 750, -1, 929, 274, -1, - -1, -1, 962, 126, -1, 128, 761, -1, -1, -1, - 970, -1, -1, 0, -1, -1, -1, 528, -1, -1, - 456, 776, 982, -1, -1, -1, -1, -1, -1, -1, - 962, 467, -1, -1, -1, 0, -1, -1, 970, 26, - -1, -1, -1, -1, -1, 126, -1, 128, -1, -1, - 982, -1, 126, 697, 128, -1, -1, -1, -1, -1, - 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, 832, -1, 834, - -1, -1, -1, -1, -1, -1, -1, -1, 732, -1, - -1, -1, 528, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 750, -1, -1, -1, - 274, -1, -1, -1, -1, -1, -1, 761, -1, -1, - -1, -1, -1, -1, -1, 880, -1, -1, -1, 884, - 566, -1, 776, -1, 889, 890, -1, -1, 0, -1, - -1, 128, -1, 898, 899, -1, -1, -1, 135, -1, + 532, 129, 629, -1, -1, 275, -1, 924, 136, 759, + -1, 928, -1, 967, -1, -1, -1, 934, 59, 629, + 770, 975, -1, -1, 5, -1, -1, -1, -1, -1, + 11, 12, -1, 987, -1, 785, -1, 532, 570, -1, + -1, 22, 23, 24, -1, 26, 31, 32, 33, 30, + 967, -1, -1, -1, -1, -1, -1, -1, 975, -1, + -1, 42, -1, 44, 49, 50, 47, 48, -1, -1, + 987, 52, 53, 58, -1, 570, -1, 704, -1, -1, + 61, -1, -1, -1, -1, -1, -1, -1, 129, -1, + 840, -1, 842, -1, 704, 136, -1, 629, -1, -1, + -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 739, 94, -1, -1, -1, 98, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 739, + -1, -1, 759, -1, 629, -1, 886, 118, 119, -1, + 890, -1, -1, 770, -1, 895, 896, -1, -1, 759, + -1, -1, -1, -1, 904, 905, -1, -1, 785, -1, + 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 704, -1, 924, 785, -1, -1, 928, -1, + -1, -1, -1, -1, 934, -1, -1, -1, -1, -1, + 460, 69, -1, 71, 72, -1, 74, -1, 76, -1, + 78, 471, 80, -1, 82, -1, 84, 739, 86, 704, + 88, 89, 90, 840, -1, 842, 94, 967, -1, 97, + -1, -1, 100, -1, 102, 975, -1, 759, -1, -1, + 840, -1, 842, -1, -1, -1, -1, 987, 770, 460, + 118, -1, 120, -1, 739, -1, -1, -1, -1, -1, + 471, -1, -1, 785, -1, -1, -1, -1, -1, 886, + -1, -1, 532, 890, 759, -1, -1, -1, 895, 896, + -1, -1, -1, -1, -1, 770, 886, 904, 905, -1, + 890, -1, -1, -1, -1, 895, 896, -1, -1, -1, + 785, -1, -1, -1, 904, 905, -1, 924, -1, -1, + 570, 928, -1, -1, -1, -1, -1, 934, 840, -1, + 842, 532, -1, -1, 924, -1, -1, -1, 928, -1, + -1, -1, -1, -1, 934, -1, -1, -1, -1, -1, + -1, -1, 460, -1, -1, -1, -1, -1, -1, -1, + 967, -1, -1, 471, -1, 840, -1, 842, 975, -1, + -1, -1, -1, -1, 886, -1, -1, 967, 890, 629, + 987, -1, -1, 895, 896, 975, -1, -1, -1, -1, + -1, -1, 904, 905, -1, -1, -1, 987, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 128, 919, -1, -1, -1, 923, -1, - 135, -1, -1, -1, 929, 5, -1, -1, -1, -1, - 456, 11, 12, -1, -1, -1, 697, -1, 832, -1, - 834, 467, 22, 23, 24, -1, 26, 59, -1, -1, - 30, -1, -1, -1, -1, -1, -1, 962, -1, -1, - -1, -1, 42, 0, 44, 970, -1, 47, 48, -1, - -1, 732, 52, 53, -1, -1, -1, 982, -1, -1, - -1, 61, -1, -1, -1, -1, 880, -1, -1, 750, - 884, -1, -1, -1, -1, 889, 890, -1, -1, -1, - 761, -1, 528, 83, 898, 899, -1, -1, -1, -1, - -1, 697, -1, -1, 94, 776, 128, -1, -1, 99, - -1, -1, 59, 135, -1, 919, -1, -1, -1, 923, - -1, -1, -1, -1, -1, 929, -1, 274, 118, -1, - 566, -1, 456, -1, -1, -1, 732, -1, -1, -1, - -1, -1, -1, 467, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 750, -1, -1, -1, 962, -1, - -1, 832, -1, 834, -1, 761, 970, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 982, -1, - 776, 128, -1, -1, -1, -1, -1, -1, 135, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, - -1, -1, -1, -1, 528, -1, -1, -1, -1, 880, - -1, -1, -1, 884, -1, -1, -1, -1, 889, 890, - -1, -1, -1, -1, 34, 35, 36, 898, 899, -1, - -1, -1, -1, -1, -1, -1, 832, -1, 834, -1, - -1, -1, 566, -1, 54, 55, 56, 57, 919, 59, - 60, -1, 923, -1, -1, -1, -1, -1, 929, -1, - -1, 697, -1, 73, 74, 75, 76, 77, 78, 79, - 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, - 90, 91, 92, 93, 880, -1, -1, -1, 884, -1, - -1, 962, -1, 889, 890, -1, 732, -1, -1, 970, - -1, -1, 898, 899, -1, -1, -1, -1, -1, 456, - -1, 982, 122, -1, 750, -1, 126, -1, 128, -1, - 467, -1, -1, 919, -1, 761, -1, 923, 5, -1, - -1, 456, -1, 929, 11, 12, -1, -1, -1, -1, - 776, -1, 467, -1, -1, 22, 23, 24, -1, 26, - -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 42, 962, 44, -1, -1, - 47, 48, -1, 697, 970, 52, 53, -1, -1, -1, - -1, 528, -1, -1, 61, -1, 982, 27, 28, -1, - -1, 31, 32, 33, -1, -1, 832, -1, 834, -1, - -1, -1, -1, 528, -1, -1, 83, -1, 732, 49, - 50, -1, -1, -1, -1, -1, -1, 94, 58, 566, - -1, -1, 99, -1, -1, -1, 750, -1, -1, -1, - -1, -1, -1, -1, 456, -1, -1, 761, -1, -1, - -1, -1, 119, 120, 880, 467, -1, -1, 884, -1, - -1, -1, 776, 889, 890, -1, -1, -1, -1, -1, - -1, -1, 898, 899, -1, -1, 106, 107, 108, 109, - 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, - -1, 121, -1, 919, -1, -1, -1, 923, -1, -1, - 0, 1, -1, 929, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 528, 27, 832, 456, - 834, 31, 32, 33, -1, -1, -1, -1, -1, -1, - 467, -1, -1, -1, -1, -1, 962, -1, -1, 49, - 50, -1, -1, -1, 970, -1, 27, 28, 58, -1, - 31, 32, 33, -1, -1, -1, 982, -1, -1, 59, - 697, -1, -1, -1, -1, -1, 880, -1, 49, 50, - 884, -1, -1, -1, -1, 889, 890, 58, -1, -1, - -1, -1, 697, -1, 898, 899, -1, -1, -1, -1, - -1, 528, -1, -1, -1, 732, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 919, -1, -1, -1, 923, - -1, -1, -1, 750, -1, 929, -1, 732, -1, -1, - -1, -1, -1, 104, 761, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 5, 750, -1, -1, -1, 776, - 11, 12, -1, -1, 144, -1, 761, -1, 962, -1, - -1, 22, 23, 24, -1, 26, 970, -1, -1, 30, - -1, 776, -1, -1, -1, -1, -1, -1, 982, -1, - -1, 42, -1, 44, -1, -1, 47, 48, -1, -1, - -1, 52, 53, -1, -1, 697, -1, -1, -1, -1, - 61, -1, -1, -1, -1, 832, -1, 834, -1, -1, - -1, 201, -1, 203, -1, -1, -1, -1, -1, 209, - -1, -1, 83, -1, -1, -1, -1, 832, -1, 834, - 732, -1, -1, 94, -1, -1, -1, -1, 99, -1, - -1, -1, 103, -1, -1, -1, -1, -1, 750, -1, - 240, -1, -1, 880, -1, -1, -1, 884, 248, 761, - -1, 251, 889, 890, -1, -1, -1, -1, -1, -1, - 697, 898, 899, -1, 776, 880, 266, -1, -1, 884, - -1, -1, -1, -1, 889, 890, -1, -1, -1, -1, - -1, -1, 919, 898, 899, -1, 923, 287, -1, -1, - -1, -1, 929, -1, -1, 732, -1, -1, -1, -1, - -1, -1, -1, -1, 919, -1, -1, -1, 923, -1, - -1, -1, -1, 750, 929, -1, -1, -1, -1, -1, - 832, -1, 834, -1, 761, 962, -1, -1, -1, -1, - -1, -1, -1, 970, -1, -1, -1, -1, -1, 776, - -1, -1, -1, -1, -1, 982, -1, 962, -1, -1, - -1, -1, -1, -1, 9, 970, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 982, 880, -1, - -1, -1, 884, -1, -1, -1, -1, 889, 890, 34, - 35, 36, -1, -1, -1, -1, 898, 899, -1, -1, - -1, -1, -1, -1, -1, 832, -1, 834, -1, 54, - 55, 56, 57, -1, 59, 60, -1, 919, -1, -1, - -1, 923, -1, -1, -1, -1, -1, 929, 73, 74, - 75, 76, 77, 78, 79, 80, 81, -1, -1, -1, - -1, 86, 87, 88, 89, 90, 91, 92, 93, -1, - 440, -1, -1, 880, -1, -1, -1, 884, -1, -1, - 962, -1, 889, 890, -1, -1, -1, -1, 970, -1, - -1, 898, 899, -1, -1, -1, 466, -1, -1, -1, - 982, 126, 472, 128, -1, 475, -1, 477, -1, -1, - -1, -1, 919, -1, -1, -1, 923, -1, -1, 14, - 15, 16, 929, -1, -1, -1, -1, -1, -1, -1, - -1, 26, -1, -1, -1, -1, 506, -1, 508, -1, - -1, -1, -1, -1, -1, 40, -1, 42, 43, 519, - -1, -1, 47, -1, -1, 962, 526, -1, -1, 529, - -1, 531, 57, 970, -1, -1, -1, -1, -1, -1, - -1, -1, 67, -1, 69, 982, 71, 72, -1, 74, - -1, 76, -1, 78, -1, 80, -1, 82, 558, 84, - -1, 86, -1, 88, 89, 90, -1, 567, -1, 94, - -1, -1, 97, -1, -1, 100, 69, 102, 71, 72, - -1, 74, -1, 76, -1, 78, -1, 80, -1, 82, - -1, 84, 117, 86, 119, 88, 89, 90, -1, -1, - -1, 94, -1, -1, 97, -1, -1, 100, -1, 102, - -1, -1, -1, 5, -1, 7, 8, -1, 10, 11, - 12, 13, 147, 148, 117, -1, 119, 19, 20, 21, - 22, 23, 24, -1, 26, -1, 636, 29, 30, -1, - -1, 166, 34, 35, -1, -1, -1, -1, -1, -1, - 42, -1, 44, -1, -1, 47, 48, -1, -1, 51, - 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, - -1, -1, -1, -1, -1, -1, -1, 69, -1, 71, - 72, 206, -1, -1, -1, 210, 686, -1, -1, -1, - -1, 83, -1, -1, 694, -1, 696, -1, -1, -1, - -1, -1, 94, 95, -1, 705, -1, 99, -1, -1, - 102, 103, 237, 238, 239, -1, -1, -1, 110, 111, - -1, -1, -1, -1, -1, 117, 118, -1, -1, 254, - 122, -1, 124, -1, 126, -1, -1, -1, -1, 739, - -1, 741, -1, -1, 269, -1, -1, -1, -1, 274, - -1, 751, -1, -1, 754, 755, 756, -1, -1, -1, - 760, -1, -1, 763, -1, -1, -1, -1, 293, 294, - -1, -1, -1, -1, -1, 5, -1, 7, 8, -1, - 10, 11, 12, 13, -1, -1, -1, -1, 788, 19, - 20, 21, 22, 23, 24, -1, 26, -1, -1, 29, - 30, -1, -1, -1, 34, 35, -1, -1, -1, -1, - -1, -1, 42, -1, 44, -1, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, 826, -1, -1, -1, - -1, 61, -1, 833, -1, -1, 836, -1, -1, 69, - -1, 71, 72, -1, 27, 28, -1, -1, 31, 32, - 33, 851, 852, 83, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 863, 94, 95, 49, 50, -1, 99, - -1, -1, 102, 103, 104, 58, -1, 402, -1, -1, - 110, 111, -1, -1, -1, -1, -1, 117, 118, -1, - -1, 891, 122, 418, 124, -1, 126, -1, -1, -1, - -1, -1, -1, -1, 904, -1, -1, -1, -1, -1, - -1, -1, -1, 913, 914, -1, -1, 917, -1, -1, - 920, 921, -1, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, -1, -1, -1, 936, -1, 73, 74, - 75, 76, 77, 78, 79, 80, 81, -1, -1, -1, - -1, 86, 87, 88, 89, 90, 91, 92, 93, -1, - 960, 65, 66, -1, 68, -1, 70, -1, -1, 73, - -1, 75, -1, 77, -1, -1, -1, 81, -1, 83, - -1, -1, -1, 87, 509, -1, 511, 91, 92, -1, - -1, -1, 96, 128, 98, -1, -1, 101, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 533, -1, - -1, 115, 116, 538, 118, -1, -1, -1, -1, -1, - -1, -1, 547, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 563, -1, - -1, 566, -1, -1, 10, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 20, 21, -1, -1, -1, -1, - -1, -1, -1, 167, 168, 169, 170, 171, 172, 173, - -1, 175, 176, -1, 178, 179, 180, -1, 182, -1, - 184, 185, -1, -1, 50, -1, -1, -1, -1, 55, - 56, -1, -1, 197, 198, 199, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 632, 633, 213, - 214, 215, 216, 217, 218, 219, -1, 221, 222, -1, - 224, 225, 226, -1, 228, 229, 230, 652, -1, 233, - 234, 235, 73, 74, 75, 76, 77, 78, 79, 80, - 81, -1, -1, -1, -1, 86, 87, 88, 89, 90, - 91, 92, 93, -1, 258, 259, -1, 261, 262, -1, - 685, -1, -1, 688, -1, 131, -1, 692, 693, -1, - -1, -1, -1, -1, -1, -1, 142, -1, 703, -1, - 705, 122, -1, 149, -1, 710, 711, -1, -1, -1, - 156, 716, 717, -1, -1, -1, -1, -1, 164, 165, - -1, 726, -1, -1, -1, -1, 5, -1, 7, 8, - -1, 10, 11, 12, 13, -1, -1, -1, -1, -1, - 19, 20, 21, 22, 23, 24, -1, 26, -1, -1, - 29, 30, -1, -1, -1, 34, 35, -1, -1, -1, - -1, -1, -1, 42, -1, 44, -1, -1, 47, 48, - -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, - -1, -1, 61, 367, 789, 790, -1, -1, -1, -1, - 69, -1, 71, 72, -1, 241, -1, -1, -1, -1, - -1, -1, -1, 808, 83, -1, -1, -1, -1, -1, - 815, -1, 817, -1, -1, 94, 95, -1, -1, 265, - 99, 267, 827, 102, 829, -1, -1, -1, -1, -1, - -1, 110, 111, -1, -1, -1, -1, -1, 117, 118, - -1, -1, 121, 122, 849, 124, -1, 126, -1, 854, - -1, 297, 298, -1, 859, 301, -1, 862, -1, -1, - -1, -1, 308, -1, -1, -1, 312, -1, -1, -1, - -1, 317, -1, -1, -1, 321, -1, -1, -1, 325, - -1, -1, -1, 329, -1, -1, 332, -1, -1, -1, - 336, -1, -1, -1, 340, -1, -1, -1, -1, -1, - 905, 347, -1, 908, -1, -1, 5, -1, -1, -1, - 915, -1, 11, 12, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 22, 23, 24, -1, 26, -1, -1, - -1, 30, -1, -1, -1, -1, -1, -1, -1, 385, - -1, 387, 947, 42, 390, 44, -1, 393, 47, 48, - -1, -1, 398, 52, 53, 27, 28, -1, 404, 31, - 32, 33, 61, -1, -1, 411, 412, 413, 414, 415, - 416, 417, 71, 72, -1, -1, -1, 49, 50, 425, - 985, 986, 428, -1, 83, -1, 58, -1, 434, -1, - -1, 575, -1, -1, 578, 94, -1, -1, -1, -1, - 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 117, -1, - -1, -1, -1, 122, -1, -1, -1, -1, -1, -1, - -1, -1, 104, -1, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + -1, 886, 924, -1, -1, 890, 928, -1, -1, -1, + 895, 896, 934, -1, 532, -1, -1, -1, 629, 904, + 905, -1, -1, -1, -1, -1, -1, -1, -1, 460, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 924, + 471, -1, -1, 928, 704, 967, -1, -1, -1, 934, + -1, -1, -1, 975, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 987, -1, -1, -1, -1, + -1, -1, 9, -1, -1, -1, -1, -1, -1, 739, + -1, -1, 967, -1, -1, -1, -1, -1, -1, -1, + 975, -1, -1, 704, -1, -1, -1, 34, 35, 759, + -1, 532, 987, -1, -1, -1, -1, -1, -1, -1, + 770, 629, -1, -1, -1, -1, -1, 54, 55, 56, + 57, -1, 59, 60, -1, 785, -1, -1, 739, -1, + -1, -1, 0, 1, -1, -1, 73, 74, 75, 76, + 77, 78, 79, 80, 81, -1, -1, -1, 759, 86, + 87, 88, 89, 90, 91, 92, 93, -1, -1, 770, + 5, -1, -1, -1, -1, -1, 11, 12, -1, -1, + -1, -1, -1, -1, 785, -1, -1, 22, 23, 24, + 840, 26, 842, -1, -1, 30, 704, -1, 125, -1, + 127, 59, -1, -1, -1, -1, -1, 42, 629, 44, + -1, -1, 47, 48, -1, -1, -1, 52, 53, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, + -1, 739, -1, -1, -1, -1, 886, -1, -1, 840, + 890, 842, -1, -1, -1, 895, 896, -1, 83, -1, + -1, 759, -1, -1, 904, 905, -1, 115, -1, 94, + -1, -1, 770, 98, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 924, 27, 28, 785, 928, 31, + 32, 33, 117, 704, 934, 886, -1, 145, -1, 890, + -1, -1, -1, -1, 895, 896, -1, 49, 50, -1, + -1, -1, -1, 904, 905, -1, 58, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 967, 739, -1, + -1, -1, -1, 924, -1, 975, -1, 928, -1, -1, + -1, -1, 840, 934, 842, -1, -1, 987, 759, -1, + -1, -1, -1, -1, 202, -1, 204, -1, -1, 770, + -1, -1, 210, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, -1, 785, -1, 967, -1, 120, -1, + -1, -1, -1, -1, 975, -1, -1, -1, 886, -1, + -1, -1, 890, 241, -1, -1, 987, 895, 896, -1, + -1, 249, -1, -1, 252, -1, 904, 905, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, + -1, -1, -1, -1, -1, -1, 924, -1, -1, 840, + 928, 842, -1, -1, -1, -1, 934, -1, -1, -1, + 288, -1, -1, -1, 73, 74, 75, 76, 77, 78, + 79, 80, 81, -1, 14, 15, 16, 86, 87, 88, + 89, 90, 91, 92, 93, -1, 26, -1, 27, 967, + -1, -1, 31, 32, 33, 886, -1, 975, -1, 890, + 40, -1, 42, 43, 895, 896, -1, 47, -1, 987, + 49, 50, -1, 904, 905, -1, -1, 57, 127, 58, + -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, + -1, 71, 72, 924, 74, -1, 76, 928, 78, -1, + 80, -1, 82, 934, 84, -1, 86, -1, 88, 89, + 90, -1, -1, -1, 94, -1, -1, 97, -1, -1, + 100, -1, 102, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 967, -1, 118, -1, + 120, 5, -1, -1, 975, -1, -1, 11, 12, -1, + -1, -1, -1, -1, -1, -1, 987, -1, 22, 23, + 24, -1, 26, -1, -1, -1, 30, -1, 148, 149, + -1, -1, -1, -1, -1, -1, 444, -1, 42, -1, + 44, -1, -1, 47, 48, -1, -1, 167, 52, 53, + -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, -1, 470, -1, -1, -1, -1, -1, 476, -1, + -1, 479, -1, 481, -1, -1, -1, -1, -1, 83, + -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, + 94, 211, -1, -1, 98, -1, -1, -1, -1, -1, + -1, -1, 510, -1, 512, -1, -1, -1, -1, -1, + -1, -1, -1, 117, -1, 523, -1, -1, 238, 239, + 240, -1, 530, -1, -1, 533, -1, 535, -1, -1, + -1, -1, -1, -1, -1, 255, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 270, -1, -1, -1, 562, 275, -1, -1, -1, -1, + -1, -1, 5, 571, 7, 8, -1, 10, 11, 12, + 13, -1, -1, -1, 294, 295, 19, 20, 21, 22, + 23, 24, -1, 26, -1, -1, 29, 30, -1, -1, + -1, 34, 35, -1, -1, -1, -1, -1, -1, 42, + -1, 44, -1, -1, 47, 48, -1, -1, 51, 52, + 53, -1, -1, -1, -1, -1, -1, -1, 61, -1, + -1, -1, -1, -1, -1, -1, 69, -1, 71, 72, + -1, -1, -1, -1, -1, 643, -1, -1, -1, -1, + 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 94, 95, -1, -1, 98, -1, -1, 101, 102, + 103, -1, -1, -1, 9, -1, 109, 110, -1, -1, + -1, -1, -1, 116, 117, -1, -1, -1, 121, -1, + 123, -1, 125, 403, -1, 693, -1, -1, -1, 34, + 35, 36, -1, 701, -1, 703, -1, -1, -1, 419, + -1, -1, -1, -1, 712, -1, -1, -1, -1, 54, + 55, 56, 57, -1, 59, 60, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 73, 74, + 75, 76, 77, 78, 79, 80, 81, -1, 746, -1, + 748, 86, 87, 88, 89, 90, 91, 92, 93, -1, + -1, -1, 760, -1, -1, 763, 764, 765, -1, -1, + -1, 769, -1, -1, 772, -1, -1, -1, -1, -1, + -1, -1, -1, 118, 119, 120, -1, -1, -1, -1, + 125, -1, 127, -1, -1, -1, -1, -1, -1, 797, + -1, -1, -1, 513, -1, 515, -1, -1, 27, 28, + -1, -1, 31, 32, 33, -1, -1, -1, 10, -1, + -1, -1, -1, -1, -1, -1, -1, 537, 20, 21, + 49, 50, 542, -1, -1, -1, 834, -1, -1, 58, + -1, 551, -1, 841, -1, -1, 844, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 567, 50, 5, + 570, 859, 860, 55, 56, 11, 12, -1, -1, -1, + -1, -1, -1, 871, -1, -1, 22, 23, 24, -1, + 26, -1, -1, -1, 30, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 42, -1, 44, 897, + -1, 47, 48, -1, -1, -1, 52, 53, -1, -1, + -1, -1, 910, 27, 28, 61, -1, 31, 32, 33, + 918, 919, -1, 115, 922, 71, 72, 925, 926, 639, + 640, -1, -1, -1, -1, 49, 50, 83, -1, -1, + 132, -1, -1, 941, 58, -1, -1, -1, 94, 659, + -1, 143, 98, -1, -1, -1, -1, -1, 150, -1, + -1, -1, -1, -1, -1, 157, -1, 965, -1, -1, + 116, -1, -1, 165, 166, 121, -1, -1, -1, -1, + -1, -1, 692, -1, -1, 695, -1, -1, -1, 699, + 700, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 710, -1, 712, -1, 118, 119, -1, 717, 718, -1, + -1, -1, -1, 723, 724, 9, -1, -1, -1, -1, + -1, -1, -1, 733, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 34, 35, 36, -1, -1, -1, -1, -1, -1, -1, + 242, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 54, 55, 56, 57, -1, 59, 60, -1, -1, -1, + -1, -1, -1, -1, 266, -1, 268, -1, -1, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 798, 799, + -1, -1, 86, 87, 88, 89, 90, 91, 92, 93, + -1, -1, -1, -1, -1, 815, 298, 299, -1, -1, + 302, -1, 822, -1, 824, -1, -1, 309, -1, -1, + -1, 313, -1, -1, -1, 835, 318, 837, -1, -1, + 322, 125, -1, 127, 326, -1, -1, -1, 330, -1, + -1, 333, -1, -1, -1, 337, -1, 857, -1, 341, + -1, -1, 862, -1, -1, -1, 348, 867, -1, -1, + 870, 73, 74, 75, 76, 77, 78, 79, 80, 81, + -1, -1, -1, -1, 86, 87, 88, 89, 90, 91, + 92, 93, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 386, -1, 388, -1, -1, 391, + -1, 911, 394, -1, 914, -1, 9, 399, -1, 121, + 920, -1, -1, 405, -1, -1, -1, -1, -1, -1, + 412, 413, 414, 415, 416, 417, 418, -1, -1, -1, + -1, 34, 35, 36, -1, -1, -1, 429, -1, -1, + 432, -1, 952, -1, -1, -1, 438, -1, -1, -1, + -1, 54, 55, 56, 57, -1, 59, 60, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 73, 74, 75, 76, 77, 78, 79, 80, 81, -1, + 990, 991, -1, 86, 87, 88, 89, 90, 91, 92, + 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 121, -1, + 5, -1, 125, -1, 127, -1, 11, 12, -1, -1, + -1, -1, -1, -1, 526, -1, -1, 22, 23, 24, + -1, 26, -1, -1, -1, 30, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 42, -1, 44, + -1, -1, 47, 48, -1, -1, -1, 52, 53, -1, + -1, -1, -1, -1, -1, 567, 61, 569, -1, -1, + -1, -1, 574, -1, -1, 65, 66, -1, 68, -1, + 70, 583, -1, 73, -1, 75, -1, 77, 83, -1, + -1, 81, -1, 83, 596, -1, -1, 87, -1, 94, + -1, 91, 92, 98, -1, -1, 96, -1, 98, -1, + -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 117, -1, -1, 627, 116, 117, -1, 119, + -1, -1, 634, 27, 28, -1, -1, 31, 32, 33, + 642, -1, -1, -1, -1, -1, -1, -1, 650, -1, + -1, -1, -1, 655, 48, 49, 50, -1, -1, -1, + -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 168, 169, + 170, 171, 172, 173, 174, -1, 176, 177, -1, 179, + 180, 181, -1, 183, -1, 185, 186, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 198, 199, + 200, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, -1, 724, -1, 214, 215, 216, 217, 218, 219, + 220, -1, 222, 223, -1, 225, 226, 227, -1, 229, + 230, 231, -1, -1, 234, 235, 236, -1, -1, -1, + -1, 753, -1, -1, -1, -1, -1, -1, -1, 761, + -1, -1, -1, -1, -1, 767, -1, -1, -1, 259, + 260, 773, 262, 263, -1, -1, -1, -1, -1, 781, + -1, -1, -1, -1, 786, -1, -1, 73, 74, 75, + 76, 77, 78, 79, 80, 81, -1, -1, -1, -1, + 86, 87, 88, 89, 90, 91, 92, 93, -1, -1, + -1, -1, -1, 815, -1, 817, -1, -1, -1, -1, 0, 1, -1, 3, 4, 5, 6, 7, 8, -1, - 10, 11, 12, 13, 14, -1, 522, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, - 30, -1, -1, -1, 34, 35, -1, 37, -1, -1, + 10, 11, 12, 13, 14, 121, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, 849, -1, -1, + 30, -1, 854, -1, 34, 35, -1, 37, -1, -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, 563, -1, 565, - -1, 61, 62, 63, 570, -1, -1, 67, -1, 69, - 70, 71, 72, 579, -1, -1, -1, -1, -1, 723, - -1, -1, 82, 83, 84, 85, 592, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, 97, 98, 99, - 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, -1, 119, - 120, 627, 122, -1, 124, -1, 126, -1, -1, 635, - -1, -1, -1, -1, -1, -1, -1, 643, 5, -1, - 7, 8, 648, 10, 11, 12, 13, -1, -1, -1, - -1, -1, 19, 20, 21, 22, 23, 24, -1, 26, - -1, -1, 29, 30, -1, -1, -1, 34, 35, -1, - -1, -1, -1, -1, -1, 42, -1, 44, -1, -1, - 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, - -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, - -1, -1, 69, -1, 71, 72, -1, -1, -1, 715, - -1, 717, -1, -1, -1, -1, 83, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 94, 95, -1, - -1, -1, 99, -1, -1, 102, 103, -1, -1, -1, - 746, -1, -1, 110, 111, -1, 752, -1, 9, -1, - 117, 118, 758, -1, -1, 122, -1, 124, 764, 126, - -1, -1, -1, -1, -1, -1, 772, -1, -1, -1, - -1, 777, -1, 34, 35, 36, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 54, 55, 56, 57, -1, 59, 60, - -1, -1, 808, -1, 810, -1, -1, -1, -1, -1, - -1, -1, 73, 74, 75, 76, 77, 78, 79, 80, - 81, -1, -1, -1, -1, 86, 87, 88, 89, 90, - 91, 92, 93, -1, -1, 841, -1, -1, -1, -1, - 846, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, 1, -1, 3, 4, 5, 6, 7, 8, 865, - 10, 11, 12, 13, 14, 126, -1, 128, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, - 30, -1, -1, -1, 34, 35, 892, 37, -1, -1, - -1, -1, 42, 43, 44, 45, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, + -1, 51, 52, 53, -1, -1, -1, -1, 368, -1, -1, 61, 62, 63, -1, -1, -1, 67, -1, 69, - 70, 71, 72, -1, -1, -1, 932, -1, -1, -1, + 70, 71, 72, -1, -1, -1, 898, -1, -1, -1, -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, 97, 98, 99, - 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, -1, 119, - 120, -1, 122, -1, 124, 1, 126, 3, 4, 5, - 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, -1, -1, -1, 30, -1, -1, -1, 34, 35, - -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, -1, -1, 51, 52, 53, -1, -1, - -1, -1, -1, -1, -1, 61, 62, 63, 64, 65, - 66, 67, -1, 69, 70, 71, 72, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, - -1, -1, -1, -1, -1, -1, -1, -1, 94, 95, - -1, 97, 98, 99, 100, 101, 102, -1, -1, -1, + -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, + 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 937, 116, -1, 118, 119, + -1, 121, -1, 123, -1, 125, 0, 1, -1, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, + 14, -1, -1, -1, -1, 19, 20, 21, 22, 23, + 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, + 34, 35, -1, 37, -1, -1, -1, -1, 42, 43, + 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, + -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, + -1, -1, -1, 67, -1, 69, 70, 71, 72, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, + 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, + 94, 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 117, -1, 119, 120, -1, 122, -1, 124, 1, - 126, 3, 4, 5, 6, 7, 8, -1, 10, 11, - 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, - 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, - -1, -1, 34, 35, -1, 37, 38, 39, 40, -1, - 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, - 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, - 62, 63, -1, -1, -1, 67, -1, 69, 70, 71, - 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, - -1, -1, 94, 95, -1, 97, 98, 99, 100, 101, - 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 117, -1, 119, 120, -1, - 122, -1, 124, 1, 126, 3, 4, 5, 6, 7, + -1, -1, 116, -1, 118, 119, -1, 121, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 579, + -1, 1, 582, 3, 4, 5, 6, 7, 8, -1, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, + 30, -1, -1, -1, 34, 35, -1, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, + -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, + -1, 61, 62, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, + -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, + 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 116, -1, 118, 119, + -1, 121, -1, 123, 124, 125, -1, -1, -1, -1, + -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 730, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, 37, 38, 39, 40, -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, 67, -1, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, -1, -1, - -1, -1, -1, -1, -1, -1, 94, 95, -1, 97, - 98, 99, 100, 101, 102, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, - -1, 119, 120, -1, 122, -1, 124, 1, 126, 3, - 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, - 14, -1, -1, 17, -1, 19, 20, 21, 22, 23, - 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, - 34, 35, -1, 37, -1, -1, -1, -1, 42, 43, - 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, - -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, - 64, 65, 66, 67, -1, 69, 70, 71, 72, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, - 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, - 94, 95, -1, 97, 98, 99, 100, 101, 102, -1, + -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, + 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, + 118, 119, -1, 121, -1, 123, 1, 125, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, + -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, + 35, -1, 37, 38, 39, 40, -1, 42, 43, 44, + 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, + -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, + -1, -1, 67, -1, 69, 70, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, + 85, -1, -1, -1, -1, -1, -1, -1, -1, 94, + 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 117, -1, 119, 120, -1, 122, -1, - 124, 1, 126, 3, 4, 5, 6, 7, 8, -1, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, - 30, -1, -1, -1, 34, 35, -1, 37, -1, -1, - -1, -1, 42, 43, 44, 45, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, -1, -1, -1, 67, -1, 69, - 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, 97, 98, 99, - 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, -1, 119, - 120, -1, 122, -1, 124, 1, 126, 3, 4, 5, + -1, 116, -1, 118, 119, -1, 121, -1, 123, 1, + 125, 3, 4, 5, 6, 7, 8, -1, 10, 11, + 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, + 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, + -1, -1, 34, 35, -1, 37, -1, -1, -1, -1, + 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, + 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, + -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 116, -1, 118, 119, -1, 121, + -1, 123, 1, 125, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, + -1, 30, -1, -1, -1, 34, 35, -1, 37, -1, + -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, + -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, + -1, -1, 61, 62, 63, -1, -1, -1, 67, -1, + 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 82, 83, 84, 85, -1, -1, -1, + -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, + 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 116, -1, 118, + 119, -1, 121, -1, 123, 1, 125, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, 35, @@ -2976,47 +2993,22 @@ static const yytype_int16 yycheck[] = -1, 67, -1, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, 94, 95, - -1, 97, 98, 99, 100, 101, 102, -1, -1, -1, + 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 117, -1, 119, 120, -1, 122, -1, 124, 1, - 126, 3, 4, 5, 6, 7, 8, -1, 10, 11, - 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, - 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, - -1, -1, 34, 35, -1, 37, 38, 39, -1, -1, - 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, - 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, - 62, 63, -1, -1, -1, 67, -1, 69, 70, 71, - 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, - -1, -1, 94, 95, -1, 97, 98, 99, 100, 101, - 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 117, -1, 119, 120, -1, - 122, -1, 124, 1, 126, 3, 4, 5, 6, 7, - 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - -1, -1, 30, -1, -1, -1, 34, 35, -1, 37, - 38, 39, -1, -1, 42, 43, 44, 45, -1, 47, - 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, - -1, -1, -1, 61, 62, 63, -1, -1, -1, 67, - -1, 69, 70, 71, 72, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, 83, 84, 85, -1, -1, - -1, -1, -1, -1, -1, -1, 94, 95, -1, 97, - 98, 99, 100, 101, 102, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, - -1, 119, 120, -1, 122, -1, 124, 1, 126, 3, - 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, - 14, -1, -1, 17, -1, 19, 20, 21, 22, 23, - 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, - 34, 35, -1, 37, -1, 39, 40, -1, 42, 43, - 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, - -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, - -1, -1, -1, 67, -1, 69, 70, 71, 72, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, - 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, - 94, 95, -1, 97, 98, 99, 100, 101, 102, -1, + 116, -1, 118, 119, -1, 121, -1, 123, 1, 125, + 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, + 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, + -1, 34, 35, -1, 37, 38, 39, -1, -1, 42, + 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, + 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, + 63, -1, -1, -1, 67, -1, 69, 70, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, + -1, 94, 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 117, -1, 119, 120, -1, 122, -1, - 124, 1, 126, 3, 4, 5, 6, 7, 8, -1, + -1, -1, -1, 116, -1, 118, 119, -1, 121, -1, + 123, 1, 125, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, 37, 38, 39, @@ -3025,224 +3017,285 @@ static const yytype_int16 yycheck[] = -1, 61, 62, 63, -1, -1, -1, 67, -1, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, 97, 98, 99, - 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, -1, 119, - 120, -1, 122, -1, 124, 1, 126, 3, 4, 5, - 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, - -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, -1, -1, -1, 30, -1, -1, -1, 34, 35, - -1, 37, -1, -1, -1, -1, 42, 43, 44, 45, - -1, 47, 48, -1, -1, 51, 52, 53, -1, -1, - -1, -1, -1, -1, -1, 61, 62, 63, -1, -1, - -1, 67, -1, 69, 70, 71, 72, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, - -1, -1, -1, -1, -1, -1, -1, -1, 94, 95, - -1, 97, 98, 99, 100, 101, 102, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 117, -1, 119, 120, -1, 122, -1, 124, 1, - 126, 3, 4, 5, 6, 7, 8, -1, 10, 11, - 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, - 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, - -1, -1, 34, 35, -1, 37, -1, -1, -1, 41, - 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, - 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, - 62, 63, -1, -1, -1, 67, -1, 69, 70, 71, - 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, - -1, -1, 94, 95, -1, 97, 98, 99, 100, 101, - 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 117, -1, 119, 120, -1, - 122, -1, 124, 1, 126, 3, 4, 5, 6, 7, - 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - -1, -1, 30, -1, -1, -1, 34, 35, -1, 37, - -1, -1, -1, -1, 42, 43, 44, 45, -1, 47, - 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, - -1, -1, -1, 61, 62, 63, -1, -1, 66, 67, - -1, 69, 70, 71, 72, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, 83, 84, 85, -1, -1, - -1, -1, -1, -1, -1, -1, 94, 95, -1, 97, - 98, 99, 100, 101, 102, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, - -1, 119, 120, -1, 122, -1, 124, 1, 126, 3, + -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, + 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 116, -1, 118, 119, + -1, 121, -1, 123, 1, 125, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, + 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, + -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, + 37, -1, 39, 40, -1, 42, 43, 44, 45, -1, + 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, + -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, + 67, -1, 69, 70, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 82, 83, 84, 85, -1, + -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, + 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, + -1, 118, 119, -1, 121, -1, 123, 1, 125, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, - 34, 35, -1, 37, -1, -1, -1, -1, 42, 43, - 44, 45, 46, 47, 48, -1, -1, 51, 52, 53, + 34, 35, -1, 37, 38, 39, -1, -1, 42, 43, + 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, 67, -1, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, - 94, 95, -1, 97, 98, 99, 100, 101, 102, -1, + 94, 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 117, -1, 119, 120, -1, 122, -1, - 124, 1, 126, 3, 4, 5, 6, 7, 8, -1, - 10, 11, 12, 13, 14, -1, -1, 17, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, - 30, -1, -1, -1, 34, 35, -1, 37, -1, -1, - -1, -1, 42, 43, 44, 45, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, -1, -1, -1, 67, -1, 69, - 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, 97, 98, 99, - 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, -1, 119, - 120, -1, 122, -1, 124, 5, 126, 7, 8, -1, - 10, 11, 12, 13, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, -1, 26, -1, -1, 29, - 30, -1, -1, -1, 34, 35, -1, -1, -1, -1, - -1, -1, 42, -1, 44, -1, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, -1, -1, 69, - -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, -1, -1, 99, - -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, - 110, 111, -1, -1, -1, -1, -1, 117, 118, -1, - -1, -1, 122, -1, 124, 5, 126, 7, 8, -1, - 10, 11, 12, 13, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, -1, 26, -1, -1, 29, - 30, -1, -1, -1, 34, 35, -1, -1, -1, -1, - -1, -1, 42, -1, 44, -1, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, -1, -1, 69, - -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, -1, -1, 99, - -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, - 110, 111, -1, -1, -1, -1, -1, 117, 118, -1, - -1, -1, 122, -1, 124, 5, 126, 7, 8, -1, - 10, 11, 12, 13, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, -1, 26, -1, -1, 29, - 30, -1, -1, -1, 34, 35, -1, -1, -1, -1, - -1, -1, 42, -1, 44, -1, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, -1, -1, 69, - -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, -1, -1, 99, - -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, - 110, 111, -1, -1, -1, -1, -1, 117, 118, -1, - -1, -1, 122, -1, 124, 5, 126, 7, 8, -1, - 10, 11, 12, 13, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, -1, 26, -1, -1, 29, - 30, -1, -1, -1, 34, 35, -1, -1, -1, -1, - -1, -1, 42, -1, 44, -1, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, -1, -1, 69, - -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, -1, -1, 99, - -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, - 110, 111, -1, -1, -1, -1, -1, 117, 118, -1, - -1, -1, 122, -1, 124, 5, 126, 7, 8, -1, - 10, 11, 12, 13, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, -1, 26, -1, -1, -1, - 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 42, -1, 44, -1, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, -1, -1, 69, - -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 94, 95, -1, -1, -1, 99, - -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5, -1, 7, 8, 117, 10, 11, - 12, 13, 122, -1, 124, -1, 126, 19, 20, 21, - 22, 23, 24, -1, 26, -1, -1, -1, 30, -1, + -1, -1, 116, -1, 118, 119, -1, 121, -1, 123, + 1, 125, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, 13, 14, -1, -1, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, + -1, -1, -1, 34, 35, -1, 37, -1, -1, -1, + -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, + 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, + 61, 62, 63, -1, -1, -1, 67, -1, 69, 70, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 82, 83, 84, 85, -1, -1, -1, -1, -1, + -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, + 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 116, -1, 118, 119, -1, + 121, -1, 123, 1, 125, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, + -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + -1, -1, 30, -1, -1, -1, 34, 35, -1, 37, + -1, -1, -1, 41, 42, 43, 44, 45, -1, 47, + 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, + -1, -1, -1, 61, 62, 63, -1, -1, -1, 67, + -1, 69, 70, 71, 72, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 82, 83, 84, 85, -1, -1, + -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, + 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, + 118, 119, -1, 121, -1, 123, 1, 125, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, + -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, + 35, -1, 37, -1, -1, -1, -1, 42, 43, 44, + 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, + -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, + -1, 66, 67, -1, 69, 70, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, + 85, -1, -1, -1, -1, -1, -1, -1, -1, 94, + 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 42, -1, 44, -1, -1, 47, 48, -1, -1, -1, + -1, 116, -1, 118, 119, -1, 121, -1, 123, 1, + 125, 3, 4, 5, 6, 7, 8, -1, 10, 11, + 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, + 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, + -1, -1, 34, 35, -1, 37, -1, -1, -1, -1, + 42, 43, 44, 45, 46, 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, - 9, -1, -1, -1, -1, -1, -1, 69, -1, 71, - 72, -1, 27, 28, -1, -1, 31, 32, 33, -1, - -1, 83, -1, -1, -1, 34, 35, 36, -1, -1, - -1, -1, 94, 95, 49, 50, -1, 99, -1, -1, - -1, -1, -1, 58, -1, 54, 55, 56, 57, -1, - 59, 60, -1, -1, -1, 117, -1, -1, -1, -1, - 122, -1, 124, -1, 73, 74, 75, 76, 77, 78, - 79, 80, 81, -1, -1, 9, -1, 86, 87, 88, - 89, 90, 91, 92, 93, -1, -1, -1, -1, -1, - -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 34, 35, 36, -1, 119, 120, -1, -1, -1, -1, - 119, 120, 121, -1, -1, -1, -1, 126, -1, 128, - 54, 55, 56, 57, -1, 59, 60, -1, -1, -1, - -1, -1, -1, -1, -1, 9, -1, -1, -1, 73, - 74, 75, 76, 77, 78, 79, 80, 81, -1, -1, - -1, -1, 86, 87, 88, 89, 90, 91, 92, 93, - 34, 35, 36, -1, -1, -1, -1, -1, -1, -1, + 62, 63, -1, -1, -1, 67, -1, 69, 70, 71, + 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, + -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 54, 55, 56, 57, -1, 59, 60, -1, -1, -1, - -1, -1, 126, -1, 128, 9, -1, -1, -1, 73, - 74, 75, 76, 77, 78, 79, 80, 81, -1, -1, - -1, -1, 86, 87, 88, 89, 90, 91, 92, 93, - 34, 35, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 116, -1, 118, 119, -1, 121, + -1, 123, 1, 125, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, + 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, + -1, 30, -1, -1, -1, 34, 35, -1, 37, -1, + -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, + -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, + -1, -1, 61, 62, 63, -1, -1, -1, 67, -1, + 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 82, 83, 84, 85, -1, -1, -1, + -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, + 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 116, -1, 118, + 119, -1, 121, -1, 123, 124, 125, 1, -1, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, + 14, -1, -1, 17, -1, 19, 20, 21, 22, 23, + 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, + 34, 35, -1, 37, -1, -1, -1, -1, 42, 43, + 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, + -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, + -1, -1, -1, 67, -1, 69, 70, 71, 72, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, + 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, + 94, 95, 96, 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 54, 55, 56, 57, -1, 59, 60, -1, -1, -1, - -1, -1, 126, -1, 128, -1, -1, -1, -1, 73, - 74, 75, 76, 77, 78, 79, 80, 81, -1, -1, - -1, -1, 86, 87, 88, 89, 90, 91, 92, 93, - 5, -1, -1, -1, -1, -1, 11, 12, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, - -1, 26, -1, -1, -1, 30, -1, -1, -1, -1, - -1, -1, 126, -1, 128, -1, -1, 42, -1, 44, - -1, -1, 47, 48, 5, -1, -1, 52, 53, -1, - 11, 12, -1, -1, -1, -1, 61, -1, -1, -1, - -1, 22, 23, 24, -1, 26, -1, -1, -1, 30, + -1, -1, 116, -1, 118, 119, -1, 121, -1, 123, + 5, 125, 7, 8, -1, 10, 11, 12, 13, -1, + -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, + -1, 26, -1, -1, 29, 30, -1, -1, -1, 34, + 35, -1, -1, -1, -1, -1, -1, 42, -1, 44, + -1, -1, 47, 48, -1, -1, 51, 52, 53, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, + -1, -1, -1, -1, 69, -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, - -1, 42, -1, 44, -1, -1, 47, 48, -1, 94, - -1, 52, 53, -1, 99, -1, -1, -1, 5, -1, - 61, -1, -1, -1, 11, 12, -1, -1, -1, -1, - -1, -1, -1, 118, -1, 22, 23, 24, -1, 26, - -1, -1, 83, 30, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 94, -1, 42, -1, 44, 99, -1, - 47, 48, 5, -1, -1, 52, 53, -1, 11, 12, - -1, -1, -1, -1, 61, -1, -1, 118, -1, 22, - 23, 24, -1, 26, -1, -1, -1, 30, -1, -1, - -1, -1, -1, -1, -1, -1, 83, -1, -1, 42, - -1, 44, -1, -1, 47, 48, -1, 94, -1, 52, - 53, -1, 99, -1, -1, -1, 5, -1, 61, -1, - -1, -1, 11, 12, -1, -1, -1, -1, 71, 72, - -1, 118, -1, 22, 23, 24, -1, 26, -1, -1, - 83, 30, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 94, -1, 42, -1, 44, 99, -1, 47, 48, - 5, -1, -1, 52, 53, -1, 11, 12, -1, -1, - -1, -1, 61, -1, 117, -1, -1, 22, 23, 24, - -1, 26, -1, -1, -1, 30, -1, -1, -1, -1, - -1, -1, -1, -1, 83, -1, -1, 42, -1, 44, - -1, -1, 47, 48, -1, 94, -1, 52, 53, -1, - 99, -1, -1, -1, 103, -1, 61, -1, 5, -1, - -1, -1, -1, -1, 11, 12, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 22, 23, 24, 83, 26, - -1, -1, -1, 30, -1, -1, -1, -1, -1, 94, - -1, -1, -1, -1, 99, 42, -1, 44, 103, -1, - 47, 48, 5, -1, -1, 52, 53, -1, 11, 12, - -1, -1, -1, -1, 61, -1, -1, -1, -1, 22, - 23, 24, -1, 26, -1, -1, -1, 30, -1, -1, - -1, -1, -1, -1, -1, -1, 83, -1, -1, 42, - -1, 44, -1, -1, 47, 48, -1, 94, -1, 52, - 53, -1, 99, -1, -1, -1, 103, -1, 61, -1, - 5, -1, -1, -1, -1, -1, 11, 12, 71, 72, - -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, - 83, 26, -1, 27, 28, 30, -1, 31, 32, 33, - -1, 94, -1, -1, -1, -1, 99, 42, -1, 44, - -1, -1, 47, 48, 48, 49, 50, 52, 53, -1, - -1, -1, -1, -1, 58, -1, 61, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 73, 74, 75, 76, - 77, 78, 79, 80, 81, -1, -1, -1, 83, 86, - 87, 88, 89, 90, 91, 92, 93, -1, -1, 94, - -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, - -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, - 114, -1, -1, -1, -1, 122, 73, 74, 75, 76, - 77, 78, 79, 80, 81, -1, -1, -1, -1, 86, - 87, 88, 89, 90, 91, 92, 93, 73, 74, 75, - 76, 77, 78, 79, 80, 81, -1, -1, -1, -1, - 86, 87, 88, 89, 90, 91, 92, 93, -1, -1, - -1, -1, -1, -1, -1, 122, -1, -1, -1, -1, - -1, -1, -1, -1, 73, 74, 75, 76, 77, 78, - 79, 80, 81, -1, -1, -1, 122, 86, 87, 88, - 89, 90, 91, 92, 93 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, + 95, -1, -1, 98, -1, -1, 101, -1, -1, -1, + -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, + -1, 116, 117, 118, 119, -1, 121, -1, 123, 5, + 125, 7, 8, -1, 10, 11, 12, 13, -1, -1, + -1, -1, -1, 19, 20, 21, 22, 23, 24, -1, + 26, -1, -1, 29, 30, -1, -1, -1, 34, 35, + -1, -1, -1, -1, -1, -1, 42, -1, 44, -1, + -1, 47, 48, -1, -1, 51, 52, 53, -1, -1, + -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, + -1, -1, -1, 69, -1, 71, 72, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 94, 95, + -1, -1, 98, -1, -1, 101, 102, -1, -1, -1, + -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, + 116, 117, -1, -1, -1, 121, -1, 123, 5, 125, + 7, 8, -1, 10, 11, 12, 13, -1, -1, -1, + -1, -1, 19, 20, 21, 22, 23, 24, -1, 26, + -1, -1, 29, 30, -1, -1, -1, 34, 35, -1, + -1, -1, -1, -1, -1, 42, -1, 44, -1, -1, + 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, 69, -1, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 94, 95, -1, + -1, 98, -1, -1, 101, -1, -1, -1, -1, -1, + -1, -1, 109, 110, -1, -1, -1, -1, -1, 116, + 117, -1, -1, 120, 121, -1, 123, 5, 125, 7, + 8, -1, 10, 11, 12, 13, -1, -1, -1, -1, + -1, 19, 20, 21, 22, 23, 24, -1, 26, -1, + -1, 29, 30, -1, -1, -1, 34, 35, -1, -1, + -1, -1, -1, -1, 42, -1, 44, -1, -1, 47, + 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, + -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, + -1, 69, -1, 71, 72, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 94, 95, -1, -1, + 98, -1, -1, 101, 102, -1, -1, -1, -1, -1, + -1, 109, 110, -1, -1, -1, -1, -1, 116, 117, + -1, -1, -1, 121, -1, 123, 5, 125, 7, 8, + -1, 10, 11, 12, 13, -1, -1, -1, -1, -1, + 19, 20, 21, 22, 23, 24, -1, 26, -1, -1, + 29, 30, -1, -1, -1, 34, 35, -1, -1, -1, + -1, -1, -1, 42, -1, 44, -1, -1, 47, 48, + -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, + -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, + 69, -1, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 94, 95, -1, -1, 98, + -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, + 109, 110, -1, -1, -1, -1, -1, 116, 117, -1, + -1, -1, 121, -1, 123, 5, 125, 7, 8, -1, + 10, 11, 12, 13, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, -1, 26, -1, -1, 29, + 30, -1, -1, -1, 34, 35, -1, -1, -1, -1, + -1, -1, 42, -1, 44, -1, -1, 47, 48, -1, + -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, + -1, 61, -1, -1, -1, -1, -1, -1, -1, 69, + -1, 71, 72, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 94, 95, -1, -1, 98, -1, + -1, 101, -1, -1, -1, -1, -1, -1, -1, 109, + 110, -1, -1, -1, -1, -1, 116, 117, -1, -1, + -1, 121, -1, 123, 5, 125, 7, 8, -1, 10, + 11, 12, 13, -1, -1, -1, -1, -1, 19, 20, + 21, 22, 23, 24, -1, 26, -1, -1, 29, 30, + -1, -1, -1, 34, 35, -1, -1, -1, -1, -1, + -1, 42, -1, 44, -1, -1, 47, 48, -1, -1, + 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, + 61, -1, -1, -1, -1, -1, -1, -1, 69, -1, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 94, 95, -1, -1, 98, -1, -1, + 101, -1, -1, -1, -1, -1, -1, -1, 109, 110, + -1, -1, -1, -1, -1, 116, 117, -1, -1, -1, + 121, -1, 123, 5, 125, 7, 8, -1, 10, 11, + 12, 13, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, -1, 26, -1, -1, 29, 30, -1, + -1, -1, 34, 35, -1, -1, -1, -1, -1, -1, + 42, -1, 44, -1, -1, 47, 48, -1, -1, 51, + 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, + -1, -1, -1, -1, -1, -1, -1, 69, -1, 71, + 72, -1, 27, 28, -1, -1, 31, 32, 33, -1, + -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 94, 95, 49, 50, 98, -1, -1, 101, + -1, -1, -1, 58, -1, -1, -1, 109, 110, -1, + -1, -1, -1, -1, 116, 117, -1, -1, -1, 121, + -1, 123, 5, 125, 7, 8, -1, 10, 11, 12, + 13, -1, -1, -1, -1, -1, 19, 20, 21, 22, + 23, 24, -1, 26, -1, -1, -1, 30, 103, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 42, + -1, 44, -1, -1, 47, 48, -1, -1, 51, 52, + 53, -1, -1, -1, -1, -1, -1, -1, 61, 27, + 28, -1, -1, 31, 32, 33, 69, -1, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 83, 49, 50, -1, -1, -1, -1, -1, -1, -1, + 58, 94, 95, -1, -1, 98, -1, -1, 101, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, + -1, 7, 8, 116, 10, 11, 12, 13, 121, -1, + 123, -1, 125, 19, 20, 21, 22, 23, 24, -1, + 26, -1, -1, -1, 30, 103, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 42, -1, 44, -1, + -1, 47, 48, -1, -1, -1, 52, 53, -1, -1, + -1, -1, -1, -1, 9, 61, -1, -1, -1, -1, + -1, -1, -1, 69, -1, 71, 72, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 83, -1, 34, + 35, 36, -1, -1, -1, -1, -1, -1, 94, 95, + -1, -1, 98, -1, -1, -1, -1, -1, -1, 54, + 55, 56, 57, -1, 59, 60, -1, -1, -1, -1, + 116, -1, -1, -1, 9, 121, -1, 123, 73, 74, + 75, 76, 77, 78, 79, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, 90, 91, 92, 93, 34, + 35, 36, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, + 55, 56, 57, -1, 59, 60, -1, -1, -1, -1, + 125, -1, 127, -1, 9, -1, -1, -1, 73, 74, + 75, 76, 77, 78, 79, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, 90, 91, 92, 93, 34, + 35, 36, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, + 55, 56, 57, -1, 59, 60, -1, -1, -1, -1, + 125, -1, 127, -1, -1, -1, -1, -1, 73, 74, + 75, 76, 77, 78, 79, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, 90, 91, 92, 93, 5, + -1, -1, -1, -1, -1, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 22, 23, 24, -1, + 26, -1, -1, -1, 30, -1, -1, -1, -1, -1, + 125, -1, 127, -1, -1, -1, 42, -1, 44, -1, + -1, 47, 48, 5, -1, -1, 52, 53, -1, 11, + 12, -1, -1, -1, -1, 61, -1, -1, -1, -1, + 22, 23, 24, -1, 26, -1, -1, -1, 30, -1, + -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, + 42, -1, 44, -1, -1, 47, 48, 5, 94, -1, + 52, 53, 98, 11, 12, -1, -1, -1, -1, 61, + -1, -1, -1, -1, 22, 23, 24, -1, 26, 71, + 72, 117, 30, -1, -1, -1, -1, -1, -1, -1, + -1, 83, -1, -1, 42, -1, 44, -1, -1, 47, + 48, 5, 94, -1, 52, 53, 98, 11, 12, -1, + -1, -1, -1, 61, -1, -1, -1, -1, 22, 23, + 24, -1, 26, -1, 116, -1, 30, -1, -1, -1, + -1, -1, -1, -1, -1, 83, -1, -1, 42, -1, + 44, -1, -1, 47, 48, 5, 94, -1, 52, 53, + 98, 11, 12, -1, 102, -1, -1, 61, -1, -1, + -1, -1, 22, 23, 24, -1, 26, -1, -1, -1, + 30, -1, -1, -1, -1, -1, -1, -1, -1, 83, + -1, -1, 42, -1, 44, -1, -1, 47, 48, 5, + 94, -1, 52, 53, 98, 11, 12, -1, 102, -1, + -1, 61, -1, -1, -1, -1, 22, 23, 24, -1, + 26, -1, -1, -1, 30, -1, -1, -1, -1, -1, + -1, -1, -1, 83, -1, -1, 42, -1, 44, -1, + -1, 47, 48, 5, 94, -1, 52, 53, 98, 11, + 12, -1, 102, -1, -1, 61, -1, -1, -1, -1, + 22, 23, 24, -1, 26, -1, -1, -1, 30, -1, + -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, + 42, -1, 44, -1, -1, 47, 48, 5, 94, -1, + 52, 53, 98, 11, 12, -1, 102, -1, -1, 61, + -1, -1, -1, -1, 22, 23, 24, -1, 26, 71, + 72, -1, 30, -1, -1, -1, -1, -1, -1, -1, + -1, 83, -1, -1, 42, -1, 44, -1, -1, 47, + 48, -1, 94, -1, 52, 53, 98, -1, -1, -1, + -1, -1, -1, 61, 73, 74, 75, 76, 77, 78, + 79, 80, 81, -1, -1, -1, -1, 86, 87, 88, + 89, 90, 91, 92, 93, 83, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, + 98, 73, 74, 75, 76, 77, 78, 79, 80, 81, + -1, -1, 121, -1, 86, 87, 88, 89, 90, 91, + 92, 93, 73, 74, 75, 76, 77, 78, 79, 80, + 81, -1, -1, -1, -1, 86, 87, 88, 89, 90, + 91, 92, 93, -1, -1, -1, -1, -1, -1, 121 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -3253,102 +3306,102 @@ static const yytype_uint16 yystos[] = 14, 19, 20, 21, 22, 23, 24, 25, 26, 30, 34, 35, 37, 42, 43, 44, 45, 47, 48, 51, 52, 53, 61, 62, 63, 67, 69, 70, 71, 72, - 82, 83, 84, 85, 94, 95, 97, 98, 99, 100, - 101, 102, 117, 119, 120, 122, 124, 126, 131, 132, - 133, 134, 139, 146, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 184, 185, 186, 187, 188, 189, 190, - 191, 193, 194, 195, 196, 197, 199, 203, 208, 210, - 211, 212, 214, 226, 228, 229, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 246, 252, 253, 254, 255, - 256, 269, 273, 276, 291, 292, 293, 304, 306, 308, - 318, 321, 323, 334, 339, 342, 344, 351, 362, 368, - 370, 370, 148, 155, 156, 36, 36, 257, 258, 122, - 11, 12, 22, 23, 24, 26, 29, 30, 42, 44, - 51, 53, 61, 94, 110, 111, 118, 165, 166, 168, - 170, 173, 175, 177, 179, 181, 184, 186, 188, 193, - 194, 195, 199, 202, 208, 212, 215, 220, 226, 228, - 229, 230, 231, 239, 240, 241, 242, 246, 252, 254, - 164, 162, 164, 163, 164, 155, 149, 220, 220, 307, - 274, 155, 164, 165, 166, 168, 170, 173, 175, 177, - 179, 181, 184, 186, 188, 193, 194, 195, 199, 208, - 212, 225, 226, 246, 252, 254, 36, 270, 259, 151, - 352, 147, 155, 186, 188, 361, 10, 164, 164, 124, - 164, 282, 19, 154, 247, 364, 164, 186, 188, 193, - 195, 208, 252, 330, 331, 343, 220, 122, 252, 118, - 220, 251, 103, 104, 118, 183, 205, 206, 207, 220, - 224, 245, 164, 186, 188, 209, 0, 1, 133, 134, - 146, 276, 370, 3, 4, 36, 122, 9, 128, 243, - 244, 9, 243, 164, 186, 188, 192, 252, 9, 36, - 243, 192, 9, 36, 243, 192, 192, 9, 36, 243, - 192, 9, 36, 243, 192, 9, 36, 243, 192, 9, - 36, 192, 9, 36, 243, 192, 9, 243, 192, 252, - 9, 36, 122, 155, 243, 192, 252, 9, 36, 122, - 155, 243, 192, 252, 8, 10, 164, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 185, 186, 187, 188, 189, 192, 246, - 252, 253, 254, 255, 192, 9, 243, 9, 155, 243, - 9, 36, 192, 9, 36, 155, 243, 192, 9, 36, - 122, 243, 126, 192, 9, 36, 155, 243, 192, 34, - 35, 54, 55, 56, 57, 59, 60, 106, 126, 227, - 155, 155, 155, 155, 155, 9, 36, 243, 9, 36, - 155, 243, 192, 252, 9, 36, 155, 243, 192, 155, - 15, 16, 17, 18, 296, 298, 303, 1, 12, 25, - 26, 133, 146, 157, 158, 159, 160, 276, 370, 17, - 38, 39, 40, 305, 309, 314, 220, 160, 17, 340, - 341, 155, 220, 370, 164, 260, 263, 260, 220, 220, - 220, 220, 164, 197, 216, 221, 217, 218, 219, 27, - 28, 31, 32, 33, 49, 50, 58, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 294, 222, 153, 121, - 370, 121, 370, 186, 261, 262, 263, 370, 164, 275, - 9, 106, 327, 190, 164, 271, 275, 261, 370, 220, - 363, 19, 122, 278, 370, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, - 92, 93, 141, 143, 144, 122, 370, 110, 123, 103, - 164, 249, 250, 68, 365, 52, 121, 220, 370, 164, - 121, 123, 125, 164, 186, 193, 195, 197, 208, 121, - 125, 104, 121, 125, 370, 164, 164, 198, 220, 103, - 220, 223, 121, 127, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 200, 220, 201, 220, 220, 220, - 220, 220, 213, 209, 220, 220, 220, 220, 220, 220, - 220, 220, 209, 220, 220, 220, 370, 299, 303, 16, - 296, 303, 3, 4, 157, 310, 315, 38, 305, 314, - 39, 305, 370, 38, 39, 345, 348, 370, 128, 141, - 267, 268, 121, 370, 370, 121, 143, 143, 143, 143, - 143, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 370, 143, - 370, 164, 164, 141, 267, 121, 150, 141, 121, 370, - 220, 141, 52, 121, 272, 370, 152, 160, 161, 370, - 365, 118, 370, 277, 164, 281, 282, 284, 164, 164, - 279, 283, 19, 370, 141, 129, 121, 121, 164, 202, - 206, 215, 220, 252, 366, 367, 118, 220, 332, 333, - 330, 370, 369, 123, 220, 220, 220, 224, 207, 135, - 137, 136, 138, 204, 207, 223, 128, 204, 204, 204, - 297, 220, 301, 303, 164, 164, 220, 370, 312, 305, - 317, 319, 220, 349, 38, 341, 348, 220, 264, 265, - 142, 144, 121, 127, 263, 205, 295, 9, 142, 262, - 370, 164, 324, 164, 164, 370, 370, 353, 19, 83, - 118, 164, 286, 289, 290, 285, 282, 284, 370, 164, - 280, 284, 286, 220, 248, 103, 164, 367, 121, 164, - 121, 335, 161, 104, 370, 122, 370, 122, 121, 123, - 223, 123, 123, 123, 161, 370, 220, 122, 370, 122, - 370, 370, 316, 220, 370, 161, 346, 370, 220, 9, - 220, 128, 121, 161, 220, 141, 47, 141, 64, 65, - 358, 359, 360, 370, 118, 164, 164, 141, 123, 121, - 121, 141, 121, 125, 123, 121, 125, 141, 367, 332, - 99, 338, 17, 224, 103, 140, 145, 164, 140, 207, - 300, 370, 140, 140, 311, 161, 370, 161, 320, 370, - 350, 347, 266, 220, 205, 220, 164, 354, 370, 370, - 164, 141, 122, 141, 141, 118, 164, 290, 83, 284, - 370, 141, 220, 336, 123, 121, 141, 123, 161, 302, - 123, 123, 161, 313, 17, 41, 322, 161, 161, 370, - 220, 123, 48, 328, 66, 356, 357, 161, 161, 122, - 141, 224, 287, 288, 370, 164, 141, 118, 164, 370, - 370, 103, 164, 370, 161, 370, 370, 161, 161, 220, - 325, 355, 370, 287, 121, 123, 122, 141, 164, 141, - 337, 141, 370, 17, 161, 123, 288, 287, 122, 141, - 161, 329, 326, 123, 287, 17, 46, 329, 123, 164, - 164 + 82, 83, 84, 85, 94, 95, 96, 97, 98, 99, + 100, 101, 116, 118, 119, 121, 123, 125, 130, 131, + 132, 133, 138, 145, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 183, 184, 185, 186, 187, 188, 189, + 190, 192, 193, 194, 195, 196, 198, 202, 207, 209, + 210, 211, 213, 225, 227, 228, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 245, 250, 253, 254, 255, + 256, 257, 270, 274, 277, 292, 293, 294, 305, 307, + 309, 319, 322, 324, 335, 340, 343, 345, 352, 363, + 369, 371, 371, 147, 154, 155, 36, 36, 258, 259, + 121, 11, 12, 22, 23, 24, 26, 29, 30, 42, + 44, 51, 53, 61, 94, 109, 110, 117, 164, 165, + 167, 169, 172, 174, 176, 178, 180, 183, 185, 187, + 192, 193, 194, 198, 201, 207, 211, 214, 219, 225, + 227, 228, 229, 230, 238, 239, 240, 241, 250, 253, + 255, 163, 161, 163, 162, 163, 154, 148, 219, 219, + 308, 275, 154, 163, 164, 165, 167, 169, 172, 174, + 176, 178, 180, 183, 185, 187, 192, 193, 194, 198, + 207, 211, 224, 225, 250, 253, 255, 36, 271, 260, + 150, 353, 146, 154, 185, 187, 362, 10, 163, 163, + 123, 163, 283, 19, 153, 246, 365, 163, 185, 187, + 192, 194, 207, 253, 331, 332, 344, 219, 121, 253, + 117, 219, 252, 102, 103, 117, 182, 204, 205, 206, + 219, 223, 244, 163, 185, 187, 208, 0, 1, 132, + 133, 145, 277, 371, 3, 4, 36, 121, 9, 127, + 242, 243, 9, 242, 163, 185, 187, 191, 253, 9, + 36, 242, 191, 9, 36, 242, 191, 191, 9, 36, + 242, 191, 9, 36, 242, 191, 9, 36, 242, 191, + 9, 36, 191, 9, 36, 242, 191, 9, 242, 191, + 253, 9, 36, 121, 154, 242, 191, 253, 9, 36, + 121, 154, 242, 191, 253, 8, 10, 163, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 184, 185, 186, 187, 188, 191, + 250, 253, 254, 255, 256, 191, 9, 242, 9, 154, + 242, 9, 36, 191, 9, 36, 154, 242, 191, 9, + 36, 121, 242, 125, 191, 9, 36, 154, 242, 191, + 34, 35, 54, 55, 56, 57, 59, 60, 105, 125, + 226, 154, 154, 154, 154, 154, 219, 249, 371, 9, + 36, 242, 9, 36, 154, 242, 191, 253, 9, 36, + 154, 242, 191, 154, 15, 16, 17, 18, 297, 299, + 304, 1, 12, 25, 26, 132, 145, 156, 157, 158, + 159, 277, 371, 17, 38, 39, 40, 306, 310, 315, + 219, 159, 17, 341, 342, 154, 219, 371, 163, 261, + 264, 261, 219, 219, 219, 219, 163, 196, 215, 220, + 216, 217, 218, 27, 28, 31, 32, 33, 49, 50, + 58, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 295, 221, 152, 120, 371, 120, 371, 185, 262, 263, + 264, 371, 163, 276, 9, 105, 328, 189, 163, 272, + 276, 262, 371, 219, 364, 19, 121, 279, 371, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, + 88, 89, 90, 91, 92, 93, 140, 142, 143, 121, + 371, 109, 122, 102, 163, 247, 248, 68, 366, 52, + 120, 219, 371, 163, 120, 122, 124, 163, 185, 192, + 194, 196, 207, 120, 124, 103, 120, 124, 371, 163, + 163, 197, 219, 102, 219, 222, 120, 126, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 199, 219, + 200, 219, 219, 219, 219, 219, 212, 208, 219, 219, + 219, 219, 219, 219, 219, 219, 208, 120, 124, 251, + 219, 219, 219, 371, 300, 304, 16, 297, 304, 3, + 4, 156, 311, 316, 38, 306, 315, 39, 306, 371, + 38, 39, 346, 349, 371, 127, 140, 268, 269, 120, + 371, 371, 120, 142, 142, 142, 142, 142, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 371, 142, 371, 163, 163, + 140, 268, 120, 149, 140, 120, 371, 219, 140, 52, + 120, 273, 371, 151, 159, 160, 371, 366, 117, 371, + 278, 163, 282, 283, 285, 163, 163, 280, 284, 19, + 371, 140, 128, 120, 120, 163, 201, 205, 214, 219, + 253, 367, 368, 117, 219, 333, 334, 331, 371, 370, + 122, 219, 219, 219, 223, 206, 134, 136, 135, 137, + 203, 206, 222, 127, 203, 203, 203, 219, 160, 298, + 219, 302, 304, 163, 163, 219, 371, 313, 306, 318, + 320, 219, 350, 38, 342, 349, 219, 265, 266, 141, + 143, 120, 126, 264, 204, 296, 9, 141, 263, 371, + 163, 325, 163, 163, 371, 371, 354, 19, 83, 117, + 163, 287, 290, 291, 286, 283, 285, 371, 163, 281, + 285, 287, 102, 163, 368, 120, 163, 120, 336, 160, + 103, 371, 121, 371, 121, 120, 122, 222, 122, 122, + 122, 124, 160, 371, 219, 121, 371, 121, 371, 371, + 317, 219, 371, 160, 347, 371, 219, 9, 219, 127, + 120, 160, 219, 140, 47, 140, 64, 65, 359, 360, + 361, 371, 117, 163, 163, 140, 122, 120, 120, 140, + 120, 124, 122, 140, 368, 333, 98, 339, 17, 223, + 102, 139, 144, 163, 139, 206, 301, 371, 139, 139, + 312, 160, 371, 160, 321, 371, 351, 348, 267, 219, + 204, 219, 163, 355, 371, 371, 163, 140, 121, 140, + 140, 117, 163, 291, 83, 285, 371, 140, 337, 122, + 120, 140, 122, 160, 303, 122, 122, 160, 314, 17, + 41, 323, 160, 160, 371, 219, 122, 48, 329, 66, + 357, 358, 160, 160, 121, 140, 223, 288, 289, 371, + 163, 140, 117, 163, 371, 371, 102, 163, 371, 160, + 371, 371, 160, 160, 219, 326, 356, 371, 288, 120, + 122, 121, 140, 163, 140, 338, 140, 371, 17, 160, + 122, 289, 288, 121, 140, 160, 330, 327, 122, 288, + 17, 46, 330, 122, 163, 163 }; #define yyerrok (yyerrstatus = 0) @@ -3866,12 +3919,12 @@ yydestruct (yymsg, yytype, yyvaluep, pComp) case 19: /* "LITERAL" */ #line 261 "harbour.y" { if( (yyvaluep->valChar).dealloc ) hb_xfree( (yyvaluep->valChar).string ); }; -#line 3870 "harboury.c" +#line 3923 "harboury.c" break; case 95: /* "CBSTART" */ #line 260 "harbour.y" { if( (yyvaluep->asCodeblock).string ) hb_xfree( (yyvaluep->asCodeblock).string ); }; -#line 3875 "harboury.c" +#line 3928 "harboury.c" break; default: @@ -4505,7 +4558,11 @@ yyreduce: } /* TODO: check if return value agree with declared value */ HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); - hb_compGenPCode2( HB_P_RETVALUE, HB_P_ENDPROC, HB_COMP_PARAM ); + if( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) + /* extended clodeblock, use HB_P_ENDBLOCK to return value and stop execution */ + hb_compGenPCode1( HB_P_ENDBLOCK, HB_COMP_PARAM ); + else + hb_compGenPCode2( HB_P_RETVALUE, HB_P_ENDPROC, HB_COMP_PARAM ); if( HB_COMP_PARAM->functions.pLast->bFlags & FUN_PROCEDURE ) { /* procedure returns a value */ hb_compGenWarning( HB_COMP_PARAM, hb_comp_szWarnings, 'W', HB_COMP_WARN_PROC_RETURN_VALUE, NULL, NULL ); @@ -4515,12 +4572,12 @@ yyreduce: break; case 80: -#line 418 "harbour.y" +#line 422 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_PARAM->iVarScope = VS_PUBLIC; ;} break; case 81: -#line 420 "harbour.y" +#line 424 "harbour.y" { hb_compRTVariableGen( HB_COMP_PARAM, "__MVPUBLIC" ); HB_COMP_PARAM->cVarType = ' '; HB_COMP_PARAM->iVarScope = VS_NONE; HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; @@ -4528,12 +4585,12 @@ yyreduce: break; case 83: -#line 424 "harbour.y" +#line 428 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_PARAM->iVarScope = VS_PRIVATE; ;} break; case 84: -#line 426 "harbour.y" +#line 430 "harbour.y" { hb_compRTVariableGen( HB_COMP_PARAM, "__MVPRIVATE" ); HB_COMP_PARAM->cVarType = ' '; HB_COMP_PARAM->iVarScope = VS_NONE; HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; @@ -4541,7 +4598,7 @@ yyreduce: break; case 91: -#line 435 "harbour.y" +#line 439 "harbour.y" { if( HB_COMP_PARAM->szAnnounce == NULL ) { @@ -4559,12 +4616,12 @@ yyreduce: break; case 93: -#line 449 "harbour.y" +#line 453 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; case 94: -#line 452 "harbour.y" +#line 456 "harbour.y" { if( (yyvsp[(1) - (1)].valChar).dealloc ) { @@ -4576,7 +4633,7 @@ yyreduce: break; case 95: -#line 460 "harbour.y" +#line 464 "harbour.y" { { char szFileName[ _POSIX_PATH_MAX + 1 ]; @@ -4591,37 +4648,37 @@ yyreduce: break; case 96: -#line 473 "harbour.y" +#line 477 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 98: -#line 476 "harbour.y" +#line 480 "harbour.y" { (yyval.lNumber) = 0; ;} break; case 99: -#line 477 "harbour.y" +#line 481 "harbour.y" { (yyval.lNumber) = 1; ;} break; case 100: -#line 478 "harbour.y" +#line 482 "harbour.y" { (yyval.lNumber) = 1; ;} break; case 101: -#line 479 "harbour.y" +#line 483 "harbour.y" { (yyval.lNumber) = 0; ;} break; case 102: -#line 480 "harbour.y" +#line 484 "harbour.y" { (yyval.lNumber) = 0; hb_compCheckUnclosedStru( HB_COMP_PARAM ); ;} break; case 103: -#line 481 "harbour.y" +#line 485 "harbour.y" { if( HB_COMP_PARAM->ilastLineErr && HB_COMP_PARAM->ilastLineErr == HB_COMP_PARAM->currLine ) { yyclearin; @@ -4635,132 +4692,132 @@ yyreduce: break; case 113: -#line 506 "harbour.y" +#line 510 "harbour.y" { (yyval.lNumber) += (yyvsp[(2) - (2)].lNumber); ;} break; case 114: -#line 509 "harbour.y" +#line 513 "harbour.y" { (yyval.lNumber) = 0; ;} break; case 116: -#line 513 "harbour.y" +#line 517 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(1) - (1)].string), 0 ); ;} break; case 117: -#line 514 "harbour.y" +#line 518 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), 0 ); ;} break; case 118: -#line 517 "harbour.y" +#line 521 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(1) - (1)].string), HB_FS_DEFERRED ); ;} break; case 119: -#line 518 "harbour.y" +#line 522 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), HB_FS_DEFERRED ); ;} break; case 121: -#line 522 "harbour.y" +#line 526 "harbour.y" { (yyval.string) = "STEP"; ;} break; case 122: -#line 523 "harbour.y" +#line 527 "harbour.y" { (yyval.string) = "TO"; ;} break; case 123: -#line 524 "harbour.y" +#line 528 "harbour.y" { (yyval.string) = "LOOP"; ;} break; case 124: -#line 525 "harbour.y" +#line 529 "harbour.y" { (yyval.string) = "EXIT"; ;} break; case 125: -#line 526 "harbour.y" +#line 530 "harbour.y" { (yyval.string) = "IN"; ;} break; case 126: -#line 527 "harbour.y" - { (yyval.string) = (yyvsp[(1) - (1)].string); ;} - break; - - case 127: -#line 528 "harbour.y" - { (yyval.string) = (yyvsp[(1) - (1)].string); ;} - break; - - case 128: -#line 529 "harbour.y" - { (yyval.string) = (yyvsp[(1) - (1)].string); ;} - break; - - case 129: -#line 530 "harbour.y" - { (yyval.string) = (yyvsp[(1) - (1)].string); ;} - break; - - case 130: #line 531 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 131: + case 127: #line 532 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 132: + case 128: #line 533 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 133: + case 129: #line 534 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 134: + case 130: #line 535 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 135: + case 131: #line 536 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 136: + case 132: #line 537 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 137: + case 133: #line 538 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; + case 134: +#line 539 "harbour.y" + { (yyval.string) = (yyvsp[(1) - (1)].string); ;} + break; + + case 135: +#line 540 "harbour.y" + { (yyval.string) = (yyvsp[(1) - (1)].string); ;} + break; + + case 136: +#line 541 "harbour.y" + { (yyval.string) = (yyvsp[(1) - (1)].string); ;} + break; + + case 137: +#line 542 "harbour.y" + { (yyval.string) = (yyvsp[(1) - (1)].string); ;} + break; + case 138: -#line 543 "harbour.y" +#line 547 "harbour.y" { (yyval.asExpr) = hb_compExprNewDouble( (yyvsp[(1) - (1)].valDouble).dNumber, (yyvsp[(1) - (1)].valDouble).bWidth, (yyvsp[(1) - (1)].valDouble).bDec, HB_COMP_PARAM ); ;} break; case 139: -#line 544 "harbour.y" +#line 548 "harbour.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 140: -#line 547 "harbour.y" +#line 551 "harbour.y" { (yyval.asExpr) = hb_compExprNewDate( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); if( (yyvsp[(1) - (1)].valLong).lNumber == 0 ) { @@ -4770,22 +4827,22 @@ yyreduce: break; case 141: -#line 555 "harbour.y" +#line 559 "harbour.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (2)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 142: -#line 556 "harbour.y" +#line 560 "harbour.y" { (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, hb_compExprNewDouble( (yyvsp[(1) - (2)].valDouble).dNumber, (yyvsp[(1) - (2)].valDouble).bWidth, (yyvsp[(1) - (2)].valDouble).bDec, HB_COMP_PARAM ) ); ;} break; case 143: -#line 561 "harbour.y" +#line 565 "harbour.y" { (yyval.asExpr) = hb_compExprNewNil( HB_COMP_PARAM ); ;} break; case 145: -#line 569 "harbour.y" +#line 573 "harbour.y" { (yyval.asExpr) = hb_compExprNewString( (yyvsp[(1) - (1)].valChar).string, (yyvsp[(1) - (1)].valChar).length, (yyvsp[(1) - (1)].valChar).dealloc, HB_COMP_PARAM ); (yyvsp[(1) - (1)].valChar).dealloc = FALSE; @@ -4793,467 +4850,467 @@ yyreduce: break; case 148: -#line 585 "harbour.y" +#line 589 "harbour.y" { (yyval.asExpr) = hb_compExprNewLogical( TRUE, HB_COMP_PARAM ); ;} break; case 149: -#line 586 "harbour.y" +#line 590 "harbour.y" { (yyval.asExpr) = hb_compExprNewLogical( FALSE, HB_COMP_PARAM ); ;} break; case 151: -#line 594 "harbour.y" +#line 598 "harbour.y" { (yyval.asExpr) = hb_compExprNewSelf( HB_COMP_PARAM ); ;} break; case 153: -#line 608 "harbour.y" +#line 612 "harbour.y" { (yyval.asExpr) = hb_compExprNewArray( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 155: -#line 616 "harbour.y" +#line 620 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 157: -#line 622 "harbour.y" +#line 626 "harbour.y" { (yyval.asExpr) = hb_compExprNewHash( NULL, HB_COMP_PARAM ); ;} break; case 158: -#line 623 "harbour.y" +#line 627 "harbour.y" { (yyval.asExpr) = hb_compExprNewHash( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 160: -#line 629 "harbour.y" +#line 633 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 161: -#line 630 "harbour.y" +#line 634 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprAddListExpr( (yyvsp[(1) - (5)].asExpr), (yyvsp[(3) - (5)].asExpr) ), (yyvsp[(5) - (5)].asExpr) ); ;} break; case 162: -#line 635 "harbour.y" +#line 639 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 163: -#line 638 "harbour.y" +#line 642 "harbour.y" { (yyval.asExpr) = hb_compExprNewAlias( (yyvsp[(1) - (2)].string), HB_COMP_PARAM ); ;} break; case 164: -#line 643 "harbour.y" +#line 647 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, '&', (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 165: -#line 644 "harbour.y" +#line 648 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, 0, (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 167: -#line 652 "harbour.y" +#line 656 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( (yyvsp[(2) - (2)].asExpr), 0, NULL, HB_COMP_PARAM ); ;} break; case 169: -#line 662 "harbour.y" +#line 666 "harbour.y" { (yyval.asExpr) = hb_compExprNewAlias( "FIELD", HB_COMP_PARAM ); ;} break; case 170: -#line 663 "harbour.y" +#line 667 "harbour.y" { (yyval.asExpr) = (yyvsp[(3) - (3)].asExpr); ;} break; case 171: -#line 668 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 172: -#line 669 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 173: -#line 670 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 174: -#line 671 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 175: #line 672 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 176: + case 172: #line 673 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 177: + case 173: #line 674 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 178: + case 174: #line 675 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 179: + case 175: #line 676 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 180: + case 176: #line 677 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 181: + case 177: #line 678 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 182: + case 178: #line 679 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 183: + case 179: #line 680 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 184: + case 180: #line 681 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 185: + case 181: +#line 682 "harbour.y" + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + break; + + case 182: +#line 683 "harbour.y" + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + break; + + case 183: #line 684 "harbour.y" + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + break; + + case 184: +#line 685 "harbour.y" + { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + break; + + case 185: +#line 688 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 188: -#line 689 "harbour.y" +#line 693 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 189: -#line 690 "harbour.y" +#line 694 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 190: -#line 691 "harbour.y" +#line 695 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 191: -#line 692 "harbour.y" +#line 696 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 192: -#line 693 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} - break; - - case 193: -#line 694 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} - break; - - case 194: -#line 695 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} - break; - - case 195: -#line 696 "harbour.y" - { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} - break; - - case 196: #line 697 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 197: + case 193: #line 698 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 198: + case 194: #line 699 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 199: + case 195: #line 700 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 200: + case 196: #line 701 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 201: + case 197: #line 702 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 202: + case 198: #line 703 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 203: + case 199: #line 704 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 204: + case 200: #line 705 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 205: + case 201: #line 706 "harbour.y" + { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} + break; + + case 202: +#line 707 "harbour.y" + { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} + break; + + case 203: +#line 708 "harbour.y" + { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} + break; + + case 204: +#line 709 "harbour.y" + { HB_COMP_EXPR_DELETE( (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} + break; + + case 205: +#line 710 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 206: -#line 707 "harbour.y" +#line 711 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 207: -#line 708 "harbour.y" +#line 712 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 208: -#line 717 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 209: -#line 718 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 210: -#line 719 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 211: -#line 720 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 212: #line 721 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 213: + case 209: #line 722 "harbour.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 210: +#line 723 "harbour.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 211: +#line 724 "harbour.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 212: +#line 725 "harbour.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 213: +#line 726 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 214: -#line 727 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 215: -#line 728 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 216: -#line 729 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 217: -#line 730 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 218: #line 731 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 219: + case 215: #line 732 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 220: + case 216: #line 733 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 221: + case 217: #line 734 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 222: + case 218: #line 735 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 223: + case 219: #line 736 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 224: + case 220: #line 737 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 225: + case 221: #line 738 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 226: + case 222: #line 739 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 227: + case 223: #line 740 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 228: + case 224: #line 741 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 229: + case 225: #line 742 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 230: + case 226: #line 743 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 231: + case 227: #line 744 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 228: +#line 745 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + + case 229: +#line 746 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + + case 230: +#line 747 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + + case 231: +#line 748 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 233: -#line 750 "harbour.y" +#line 754 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 234: -#line 750 "harbour.y" +#line 754 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( hb_compExprNewFunName( (yyvsp[(1) - (5)].string), HB_COMP_PARAM ), (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (5)].bTrue); ;} break; case 236: -#line 754 "harbour.y" +#line 758 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 237: -#line 754 "harbour.y" +#line 758 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(1) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (5)].bTrue); ;} break; case 238: -#line 755 "harbour.y" +#line 759 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 239: -#line 755 "harbour.y" +#line 759 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(1) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (5)].bTrue); ;} break; case 240: -#line 759 "harbour.y" +#line 763 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 242: -#line 765 "harbour.y" +#line 769 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 243: -#line 766 "harbour.y" +#line 770 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 246: -#line 773 "harbour.y" +#line 777 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ) ); ;} break; case 247: -#line 774 "harbour.y" +#line 778 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; case 248: -#line 775 "harbour.y" +#line 779 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; case 249: -#line 776 "harbour.y" +#line 780 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; case 250: -#line 777 "harbour.y" +#line 781 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr)->value.asList.reference = TRUE; ;} break; case 251: -#line 780 "harbour.y" +#line 784 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 253: -#line 786 "harbour.y" +#line 790 "harbour.y" { (yyval.asExpr) = ((yyvsp[(3) - (3)].asMessage).bMacro ? hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asMessage).value.macro, HB_COMP_PARAM ) : hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asMessage).value.string, NULL, HB_COMP_PARAM )); ;} break; case 254: -#line 787 "harbour.y" +#line 791 "harbour.y" { (yyval.asExpr) = ((yyvsp[(3) - (3)].asMessage).bMacro ? hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asMessage).value.macro, HB_COMP_PARAM ) : hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asMessage).value.string, NULL, HB_COMP_PARAM )); ;} break; case 255: -#line 788 "harbour.y" +#line 792 "harbour.y" { if( HB_COMP_PARAM->wWithObjectCnt == 0 ) hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_WITHOBJECT, NULL, NULL ); (yyval.asExpr) = ((yyvsp[(2) - (2)].asMessage).bMacro ? hb_compExprNewSend( NULL, NULL, (yyvsp[(2) - (2)].asMessage).value.macro, HB_COMP_PARAM ) : hb_compExprNewSend( NULL, (yyvsp[(2) - (2)].asMessage).value.string, NULL, HB_COMP_PARAM )); @@ -5261,497 +5318,537 @@ yyreduce: break; case 256: -#line 794 "harbour.y" +#line 798 "harbour.y" { (yyval.asMessage).value.string = (yyvsp[(1) - (1)].string); (yyval.asMessage).bMacro=FALSE; ;} break; case 257: -#line 795 "harbour.y" +#line 799 "harbour.y" { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} break; case 258: -#line 796 "harbour.y" +#line 800 "harbour.y" { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} break; case 259: -#line 799 "harbour.y" +#line 803 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(3) - (4)].string), HB_COMP_PARAM ); ;} break; case 261: -#line 807 "harbour.y" +#line 811 "harbour.y" {(yyval.bTrue)=HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 262: -#line 807 "harbour.y" +#line 811 "harbour.y" { (yyval.asExpr) = hb_compExprNewMethodCall( (yyvsp[(1) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr) ); HB_COMP_PARAM->iPassByRef=(yyvsp[(3) - (5)].bTrue); ;} break; case 271: -#line 826 "harbour.y" +#line 830 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 272: -#line 826 "harbour.y" +#line 830 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 282: -#line 836 "harbour.y" +#line 840 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 283: -#line 836 "harbour.y" +#line 840 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 286: -#line 839 "harbour.y" +#line 843 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 287: -#line 839 "harbour.y" +#line 843 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 289: -#line 841 "harbour.y" +#line 845 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; case 290: -#line 841 "harbour.y" +#line 845 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 302: -#line 855 "harbour.y" +#line 859 "harbour.y" { HB_COMP_PARAM->cVarType = ' ';;} break; case 303: -#line 855 "harbour.y" +#line 859 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 304: -#line 856 "harbour.y" +#line 860 "harbour.y" { HB_COMP_PARAM->cVarType = ' ';;} break; case 305: -#line 856 "harbour.y" +#line 860 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 307: -#line 860 "harbour.y" +#line 864 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 309: -#line 864 "harbour.y" +#line 868 "harbour.y" { (yyval.asExpr) = hb_compExprNewEmpty( HB_COMP_PARAM ); ;} break; case 311: -#line 868 "harbour.y" +#line 872 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 317: -#line 874 "harbour.y" +#line 878 "harbour.y" { (yyval.asExpr) = hb_compExprListStrip( (yyvsp[(1) - (1)].asExpr), NULL ); ;} break; case 339: -#line 907 "harbour.y" +#line 911 "harbour.y" { (yyval.asExpr) = hb_compExprNewPostInc( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 340: -#line 908 "harbour.y" +#line 912 "harbour.y" { (yyval.asExpr) = hb_compExprNewPostDec( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 341: -#line 911 "harbour.y" +#line 915 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 342: -#line 914 "harbour.y" +#line 918 "harbour.y" { (yyval.asExpr) = hb_compExprNewPreInc( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 343: -#line 915 "harbour.y" +#line 919 "harbour.y" { (yyval.asExpr) = hb_compExprNewPreDec( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 344: -#line 918 "harbour.y" +#line 922 "harbour.y" { (yyval.asExpr) = hb_compExprNewNot( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 345: -#line 919 "harbour.y" +#line 923 "harbour.y" { (yyval.asExpr) = hb_compExprNewNegate( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 346: -#line 920 "harbour.y" +#line 924 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 347: -#line 923 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 348: -#line 924 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 349: -#line 925 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 350: -#line 926 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 351: #line 927 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 352: + case 348: #line 928 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 353: + case 349: #line 929 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 354: + case 350: #line 930 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 355: + case 351: #line 931 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 356: + case 352: #line 932 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 357: + case 353: #line 933 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 358: + case 354: #line 934 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 359: + case 355: #line 935 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 360: + case 356: #line 936 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 361: + case 357: #line 937 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 362: + case 358: #line 938 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 363: + case 359: #line 939 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 364: + case 360: #line 940 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 365: + case 361: #line 941 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} break; - case 366: + case 362: #line 942 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} break; - case 367: + case 363: #line 943 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 368: + case 364: +#line 944 "harbour.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 365: +#line 945 "harbour.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 366: #line 946 "harbour.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} + break; + + case 367: +#line 947 "harbour.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 368: +#line 950 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 369: -#line 949 "harbour.y" +#line 953 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 370: -#line 952 "harbour.y" +#line 956 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 371: -#line 955 "harbour.y" +#line 959 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMultEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 372: -#line 958 "harbour.y" +#line 962 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDivEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 373: -#line 961 "harbour.y" +#line 965 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewModEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 374: -#line 964 "harbour.y" +#line 968 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewExpEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 381: -#line 975 "harbour.y" +#line 979 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 382: -#line 976 "harbour.y" +#line 980 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 383: -#line 977 "harbour.y" +#line 981 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMult( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 384: -#line 978 "harbour.y" +#line 982 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDiv( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 385: -#line 979 "harbour.y" +#line 983 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMod( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 386: -#line 980 "harbour.y" +#line 984 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPower( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 387: -#line 983 "harbour.y" +#line 987 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewAnd( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 388: -#line 984 "harbour.y" +#line 988 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewOr( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 389: -#line 987 "harbour.y" +#line 991 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEQ( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 390: -#line 988 "harbour.y" +#line 992 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 391: -#line 989 "harbour.y" +#line 993 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 392: -#line 990 "harbour.y" +#line 994 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 393: -#line 991 "harbour.y" +#line 995 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 394: -#line 992 "harbour.y" +#line 996 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 395: -#line 993 "harbour.y" +#line 997 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 396: -#line 994 "harbour.y" +#line 998 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 397: -#line 995 "harbour.y" +#line 999 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEqual( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 399: -#line 1004 "harbour.y" +#line 1008 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(0) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 400: -#line 1005 "harbour.y" +#line 1009 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 401: -#line 1006 "harbour.y" +#line 1010 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} break; case 402: -#line 1009 "harbour.y" +#line 1013 "harbour.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 403: -#line 1010 "harbour.y" +#line 1014 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 404: -#line 1013 "harbour.y" +#line 1017 "harbour.y" { (yyval.asExpr) = hb_compExprNewCodeBlock( (yyvsp[(1) - (1)].asCodeblock).string, (yyvsp[(1) - (1)].asCodeblock).length, (yyvsp[(1) - (1)].asCodeblock).flags, HB_COMP_PARAM ); (yyvsp[(1) - (1)].asCodeblock).string = NULL; ;} break; case 405: -#line 1014 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (6)].asExpr); ;} +#line 1018 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (4)].asExpr); ;} break; case 406: -#line 1019 "harbour.y" - { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} +#line 1023 "harbour.y" + { (yyval.asExpr) = NULL; ;} break; case 407: -#line 1020 "harbour.y" - { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} +#line 1024 "harbour.y" + { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 408: #line 1025 "harbour.y" - { (yyval.asExpr) = NULL; ;} + { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} break; case 409: #line 1026 "harbour.y" - { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} - break; - - case 410: -#line 1027 "harbour.y" - { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} - break; - - case 411: -#line 1028 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; - case 412: -#line 1031 "harbour.y" + case 410: +#line 1029 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (2)].asExpr), (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType, HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; ;} break; - case 413: -#line 1032 "harbour.y" + case 411: +#line 1030 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (4)].asExpr), (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType, HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; ;} break; - case 414: -#line 1035 "harbour.y" - { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} + case 412: +#line 1033 "harbour.y" + { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(0) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} + break; + + case 413: +#line 1034 "harbour.y" + { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(0) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 415: -#line 1036 "harbour.y" - { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} +#line 1039 "harbour.y" + { /* 3 */ + HB_CBVAR_PTR pVar; + (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; + hb_compCodeBlockStart( HB_COMP_PARAM, TRUE ); + HB_COMP_PARAM->functions.pLast->bFlags |= FUN_EXTBLOCK; + HB_COMP_PARAM->functions.pLast->fVParams = + ( (yyvsp[(1) - (2)].asExpr)->value.asCodeblock.flags & HB_BLOCK_VPARAMS ) != 0; + + (yyvsp[(1) - (2)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_EXT; + if( (yyvsp[(1) - (2)].asExpr)->value.asCodeblock.string ) + { + hb_xfree( (yyvsp[(1) - (2)].asExpr)->value.asCodeblock.string ); + (yyvsp[(1) - (2)].asExpr)->value.asCodeblock.string = NULL; + (yyvsp[(1) - (2)].asExpr)->ulLength = 0; + } + + HB_COMP_PARAM->iVarScope = VS_PARAMETER; + pVar = (yyvsp[(1) - (2)].asExpr)->value.asCodeblock.pLocals; + while( pVar ) + { + hb_compVariableAdd( HB_COMP_PARAM, pVar->szName, pVar->bType ); + pVar =pVar->pNext; + } + ;} break; case 416: -#line 1038 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (3)].asExpr) ;} +#line 1064 "harbour.y" + { /* 6 */ + hb_compCodeBlockEnd( HB_COMP_PARAM ); + (yyval.asExpr) = hb_compExprSetCodeblockBody( (yyvsp[(1) - (5)].asExpr), + HB_COMP_PARAM->functions.pLast->pCode + ( ULONG ) (yyvsp[(3) - (5)].lNumber), + HB_COMP_PARAM->functions.pLast->lPCodePos - (yyvsp[(3) - (5)].lNumber) ); + HB_COMP_PARAM->functions.pLast->lPCodePos = (yyvsp[(3) - (5)].lNumber); + HB_COMP_PARAM->lastLinePos = 0; + ;} + break; + + case 417: +#line 1074 "harbour.y" + { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 418: -#line 1051 "harbour.y" - { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(3) - (8)].asExpr), HB_COMP_PARAM ), (yyvsp[(5) - (8)].asExpr) ), (yyvsp[(7) - (8)].asExpr) ) ); ;} +#line 1075 "harbour.y" + { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 420: -#line 1057 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_LOCAL; hb_compLinePush( HB_COMP_PARAM ); ;} + case 419: +#line 1077 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (3)].asExpr) ;} break; case 421: -#line 1058 "harbour.y" - { HB_COMP_PARAM->cVarType = ' '; ;} - break; - - case 422: -#line 1059 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_STATIC; hb_compLinePush( HB_COMP_PARAM ); ;} +#line 1090 "harbour.y" + { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(3) - (8)].asExpr), HB_COMP_PARAM ), (yyvsp[(5) - (8)].asExpr) ), (yyvsp[(7) - (8)].asExpr) ) ); ;} break; case 423: -#line 1060 "harbour.y" - { HB_COMP_PARAM->cVarType = ' '; ;} +#line 1096 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_LOCAL; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 424: -#line 1061 "harbour.y" +#line 1097 "harbour.y" + { HB_COMP_PARAM->cVarType = ' '; ;} + break; + + case 425: +#line 1098 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_STATIC; hb_compLinePush( HB_COMP_PARAM ); ;} + break; + + case 426: +#line 1099 "harbour.y" + { HB_COMP_PARAM->cVarType = ' '; ;} + break; + + case 427: +#line 1100 "harbour.y" { if( HB_COMP_PARAM->functions.pLast->bFlags & FUN_USES_LOCAL_PARAMS ) hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_PARAMETERS_NOT_ALLOWED, NULL, NULL ); else @@ -5762,45 +5859,45 @@ yyreduce: ;} break; - case 425: -#line 1068 "harbour.y" + case 428: +#line 1107 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 426: -#line 1071 "harbour.y" - { (yyval.iNumber) = 1; ;} - break; - - case 427: -#line 1072 "harbour.y" - { (yyval.iNumber)++; ;} - break; - - case 428: -#line 1075 "harbour.y" - { (yyval.iNumber) = 1; ;} - break; - case 429: -#line 1076 "harbour.y" +#line 1110 "harbour.y" + { (yyval.iNumber) = 1; ;} + break; + + case 430: +#line 1111 "harbour.y" { (yyval.iNumber)++; ;} break; case 431: -#line 1086 "harbour.y" - { hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), FALSE ); ;} +#line 1114 "harbour.y" + { (yyval.iNumber) = 1; ;} break; case 432: -#line 1088 "harbour.y" +#line 1115 "harbour.y" + { (yyval.iNumber)++; ;} + break; + + case 434: +#line 1125 "harbour.y" + { hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), FALSE ); ;} + break; + + case 435: +#line 1127 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ) ); hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ), TRUE ); ;} break; - case 433: -#line 1092 "harbour.y" + case 436: +#line 1131 "harbour.y" { USHORT uCount = (USHORT) hb_compExprListLen( (yyvsp[(2) - (3)].asExpr) ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); @@ -5809,13 +5906,13 @@ yyreduce: ;} break; - case 434: -#line 1100 "harbour.y" + case 437: +#line 1139 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; - case 435: -#line 1101 "harbour.y" + case 438: +#line 1140 "harbour.y" { if( HB_COMP_PARAM->iVarScope == VS_STATIC ) { @@ -5826,23 +5923,28 @@ yyreduce: { hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( (yyvsp[(1) - (3)].string), NULL, HB_COMP_PARAM ), FALSE ); } + else if( HB_COMP_PARAM->iVarScope == VS_LOCAL && + ( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) + { + HB_COMP_EXPR_DELETE( hb_compExprGenPush( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ) ); + } ;} break; - case 436: -#line 1112 "harbour.y" + case 439: +#line 1156 "harbour.y" { (yyval.iNumber) = HB_COMP_PARAM->iVarScope; hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; - case 437: -#line 1115 "harbour.y" + case 440: +#line 1159 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; - case 438: -#line 1116 "harbour.y" + case 441: +#line 1160 "harbour.y" { HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' '; @@ -5859,6 +5961,11 @@ yyreduce: HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(6) - (6)].asExpr), HB_COMP_PARAM ) ); hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( (yyvsp[(1) - (6)].string), NULL, HB_COMP_PARAM ), TRUE ); } + else if( HB_COMP_PARAM->iVarScope == VS_LOCAL && + ( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) + { + HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(6) - (6)].asExpr), HB_COMP_PARAM ) ); + } else { HB_COMP_EXPR_DELETE( hb_compExprGenStatement( hb_compExprAssign( hb_compExprNewVar( (yyvsp[(1) - (6)].string), HB_COMP_PARAM ), (yyvsp[(6) - (6)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ) ); @@ -5867,86 +5974,86 @@ yyreduce: ;} break; - case 439: -#line 1139 "harbour.y" + case 442: +#line 1188 "harbour.y" { hb_compVariableDim( (yyvsp[(1) - (3)].string), (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 441: -#line 1148 "harbour.y" + case 444: +#line 1197 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 442: -#line 1149 "harbour.y" + case 445: +#line 1198 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 443: -#line 1150 "harbour.y" + case 446: +#line 1199 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr) ); ;} break; - case 444: -#line 1153 "harbour.y" + case 447: +#line 1202 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_FIELD; ;} break; - case 445: -#line 1155 "harbour.y" + case 448: +#line 1204 "harbour.y" { if( (yyvsp[(4) - (5)].string) ) hb_compFieldSetAlias( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), (yyvsp[(3) - (5)].iNumber) ); HB_COMP_PARAM->cVarType = ' '; ;} break; - case 446: -#line 1161 "harbour.y" + case 449: +#line 1210 "harbour.y" { (yyval.iNumber)=hb_compFieldsCount( HB_COMP_PARAM ); hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; - case 447: -#line 1162 "harbour.y" - { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} - break; - - case 448: -#line 1165 "harbour.y" - { (yyval.string) = NULL; ;} - break; - - case 449: -#line 1166 "harbour.y" - { (yyval.string) = (yyvsp[(2) - (2)].string); ;} - break; - case 450: -#line 1169 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_MEMVAR; ;} +#line 1211 "harbour.y" + { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; case 451: -#line 1169 "harbour.y" - { HB_COMP_PARAM->cVarType = ' '; ;} +#line 1214 "harbour.y" + { (yyval.string) = NULL; ;} break; case 452: -#line 1172 "harbour.y" - { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} +#line 1215 "harbour.y" + { (yyval.string) = (yyvsp[(2) - (2)].string); ;} break; case 453: -#line 1173 "harbour.y" - { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} +#line 1218 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_MEMVAR; ;} break; case 454: -#line 1176 "harbour.y" - { hb_compDeclaredAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->szDeclaredFun = (yyvsp[(2) - (3)].string); ;} +#line 1218 "harbour.y" + { HB_COMP_PARAM->cVarType = ' '; ;} break; case 455: -#line 1177 "harbour.y" +#line 1221 "harbour.y" + { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} + break; + + case 456: +#line 1222 "harbour.y" + { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} + break; + + case 457: +#line 1225 "harbour.y" + { hb_compDeclaredAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->szDeclaredFun = (yyvsp[(2) - (3)].string); ;} + break; + + case 458: +#line 1226 "harbour.y" { if( HB_COMP_PARAM->pLastDeclared ) { @@ -5971,43 +6078,43 @@ yyreduce: ;} break; - case 456: -#line 1199 "harbour.y" + case 459: +#line 1248 "harbour.y" { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].string) ); ;} break; - case 457: -#line 1199 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_NONE; ;} - break; - - case 458: -#line 1200 "harbour.y" - { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->iVarScope = VS_NONE; ;} - break; - - case 459: -#line 1201 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_NONE; ;} - break; - case 460: -#line 1202 "harbour.y" - { HB_COMP_PARAM->cDataListType = HB_COMP_PARAM->cVarType; ;} +#line 1248 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 461: -#line 1202 "harbour.y" +#line 1249 "harbour.y" + { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->iVarScope = VS_NONE; ;} + break; + + case 462: +#line 1250 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_NONE; ;} + break; + + case 463: +#line 1251 "harbour.y" + { HB_COMP_PARAM->cDataListType = HB_COMP_PARAM->cVarType; ;} + break; + + case 464: +#line 1251 "harbour.y" { HB_COMP_PARAM->cDataListType = 0; HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 468: -#line 1215 "harbour.y" + case 471: +#line 1264 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (2)].string) ); ;} break; - case 469: -#line 1216 "harbour.y" + case 472: +#line 1265 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6029,13 +6136,13 @@ yyreduce: ;} break; - case 470: -#line 1237 "harbour.y" + case 473: +#line 1286 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (1)].string) ); ;} break; - case 471: -#line 1238 "harbour.y" + case 474: +#line 1287 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6091,196 +6198,196 @@ yyreduce: ;} break; - case 478: -#line 1303 "harbour.y" + case 481: +#line 1352 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (1)].asExpr) ); ;} break; - case 479: -#line 1306 "harbour.y" + case 482: +#line 1355 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; - case 480: -#line 1307 "harbour.y" + case 483: +#line 1356 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} break; - case 481: -#line 1308 "harbour.y" + case 484: +#line 1357 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (5)].string), 'F' ); ;} break; - case 482: -#line 1309 "harbour.y" + case 485: +#line 1358 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; - case 483: -#line 1310 "harbour.y" + case 486: +#line 1359 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} break; - case 484: -#line 1311 "harbour.y" + case 487: +#line 1360 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (7)].string), 'F' ); ;} break; - case 485: -#line 1314 "harbour.y" + case 488: +#line 1363 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} break; - case 486: -#line 1315 "harbour.y" + case 489: +#line 1364 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; - case 487: -#line 1316 "harbour.y" + case 490: +#line 1365 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (6)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; - case 488: -#line 1317 "harbour.y" + case 491: +#line 1366 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} break; - case 489: -#line 1318 "harbour.y" + case 492: +#line 1367 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(5) - (6)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; - case 490: -#line 1319 "harbour.y" + case 493: +#line 1368 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(5) - (8)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; - case 499: -#line 1332 "harbour.y" + case 502: +#line 1381 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (2)].iNumber), HB_COMP_PARAM ); ;} break; - case 500: -#line 1333 "harbour.y" + case 503: +#line 1382 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); ;} break; - case 501: -#line 1334 "harbour.y" + case 504: +#line 1383 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; - case 502: -#line 1335 "harbour.y" + case 505: +#line 1384 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (4)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} break; - case 503: -#line 1339 "harbour.y" + case 506: +#line 1388 "harbour.y" { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 504: -#line 1341 "harbour.y" + case 507: +#line 1390 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 505: -#line 1343 "harbour.y" + case 508: +#line 1392 "harbour.y" { (yyval.iNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} break; - case 506: -#line 1346 "harbour.y" + case 509: +#line 1395 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 508: -#line 1350 "harbour.y" + case 511: +#line 1399 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 509: -#line 1352 "harbour.y" + case 512: +#line 1401 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 510: -#line 1356 "harbour.y" + case 513: +#line 1405 "harbour.y" { (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, NULL, hb_compGenJump( 0, HB_COMP_PARAM ) ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} break; - case 511: -#line 1360 "harbour.y" + case 514: +#line 1409 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 512: -#line 1362 "harbour.y" + case 515: +#line 1411 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 513: -#line 1366 "harbour.y" + case 516: +#line 1415 "harbour.y" { (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, (yyvsp[(1) - (7)].pVoid), hb_compGenJump( 0, HB_COMP_PARAM ) ); hb_compGenJumpHere( (yyvsp[(6) - (7)].iNumber), HB_COMP_PARAM ); ;} break; - case 514: -#line 1371 "harbour.y" + case 517: +#line 1420 "harbour.y" { if( HB_COMP_PARAM->wIfCounter ) --HB_COMP_PARAM->wIfCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); ;} break; - case 515: -#line 1374 "harbour.y" + case 518: +#line 1423 "harbour.y" { if( HB_COMP_PARAM->wIfCounter ) --HB_COMP_PARAM->wIfCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); ;} break; - case 516: -#line 1381 "harbour.y" - { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} - break; - case 519: -#line 1393 "harbour.y" - { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} - break; - - case 520: -#line 1397 "harbour.y" - { if( HB_COMP_PARAM->wCaseCounter ) - --HB_COMP_PARAM->wCaseCounter; - HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); - ;} - break; - - case 521: -#line 1402 "harbour.y" - { if( HB_COMP_PARAM->wCaseCounter ) - --HB_COMP_PARAM->wCaseCounter; - HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); - ;} +#line 1430 "harbour.y" + { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; case 522: -#line 1408 "harbour.y" - { ++HB_COMP_PARAM->wCaseCounter; hb_compLinePushIfDebugger( HB_COMP_PARAM );;} +#line 1442 "harbour.y" + { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} + break; + + case 523: +#line 1446 "harbour.y" + { if( HB_COMP_PARAM->wCaseCounter ) + --HB_COMP_PARAM->wCaseCounter; + HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); + ;} + break; + + case 524: +#line 1451 "harbour.y" + { if( HB_COMP_PARAM->wCaseCounter ) + --HB_COMP_PARAM->wCaseCounter; + HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); + ;} break; case 525: -#line 1412 "harbour.y" +#line 1457 "harbour.y" + { ++HB_COMP_PARAM->wCaseCounter; hb_compLinePushIfDebugger( HB_COMP_PARAM );;} + break; + + case 528: +#line 1461 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6289,21 +6396,21 @@ yyreduce: ;} break; - case 526: -#line 1420 "harbour.y" + case 529: +#line 1469 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 527: -#line 1421 "harbour.y" + case 530: +#line 1470 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 528: -#line 1426 "harbour.y" + case 531: +#line 1475 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, NULL, hb_compGenJump( 0, HB_COMP_PARAM ) ); @@ -6311,21 +6418,21 @@ yyreduce: ;} break; - case 529: -#line 1432 "harbour.y" + case 532: +#line 1481 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 530: -#line 1433 "harbour.y" + case 533: +#line 1482 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 531: -#line 1438 "harbour.y" + case 534: +#line 1487 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, (yyvsp[(1) - (7)].pVoid), hb_compGenJump( 0, HB_COMP_PARAM ) ); @@ -6333,39 +6440,39 @@ yyreduce: ;} break; - case 532: -#line 1445 "harbour.y" + case 535: +#line 1494 "harbour.y" {hb_compLinePushIfDebugger( HB_COMP_PARAM ); ;} break; - case 533: -#line 1445 "harbour.y" + case 536: +#line 1494 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 535: -#line 1447 "harbour.y" + case 538: +#line 1496 "harbour.y" { hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_MAYHEM_IN_CASE, NULL, NULL ); ;} break; - case 537: -#line 1452 "harbour.y" + case 540: +#line 1501 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); (yyval.lNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 538: -#line 1457 "harbour.y" + case 541: +#line 1506 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compGenJump( (yyvsp[(1) - (5)].lNumber) - HB_COMP_PARAM->functions.pLast->lPCodePos, HB_COMP_PARAM ); ;} break; - case 539: -#line 1462 "harbour.y" + case 542: +#line 1511 "harbour.y" { hb_compGenJumpHere( (yyvsp[(4) - (7)].lNumber), HB_COMP_PARAM ); if( HB_COMP_PARAM->wWhileCounter ) @@ -6375,23 +6482,23 @@ yyreduce: ;} break; - case 540: -#line 1471 "harbour.y" + case 543: +#line 1520 "harbour.y" { (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; hb_compLinePushIfInside( HB_COMP_PARAM ); ++HB_COMP_PARAM->wWhileCounter; hb_compLoopStart( HB_COMP_PARAM ); ;} break; - case 541: -#line 1474 "harbour.y" + case 544: +#line 1523 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 542: -#line 1475 "harbour.y" + case 545: +#line 1524 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 543: -#line 1479 "harbour.y" + case 546: +#line 1528 "harbour.y" { /* 5 */ hb_compLinePushIfInside( HB_COMP_PARAM ); (yyvsp[(1) - (4)].lNumber) = HB_COMP_PARAM->currLine; @@ -6405,23 +6512,23 @@ yyreduce: ;} break; - case 544: -#line 1491 "harbour.y" + case 547: +#line 1540 "harbour.y" { /* 9 */ hb_compLoopStart( HB_COMP_PARAM ); (yyval.lNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); ;} break; - case 545: -#line 1496 "harbour.y" + case 548: +#line 1545 "harbour.y" { /* 11 */ (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; ;} break; - case 546: -#line 1500 "harbour.y" + case 549: +#line 1549 "harbour.y" { int iSign, iLine; @@ -6458,81 +6565,81 @@ yyreduce: ;} break; - case 549: -#line 1540 "harbour.y" + case 552: +#line 1589 "harbour.y" { (yyval.asExpr) = NULL; ;} break; - case 550: -#line 1541 "harbour.y" + case 553: +#line 1590 "harbour.y" { (yyval.asExpr) = hb_compExprReduce( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 551: -#line 1544 "harbour.y" - { hb_compLinePush( HB_COMP_PARAM ); - if( HB_COMP_PARAM->wForCounter ) - --HB_COMP_PARAM->wForCounter; ;} - break; - - case 552: -#line 1547 "harbour.y" - { hb_compLinePush( HB_COMP_PARAM ); - if( HB_COMP_PARAM->wForCounter ) - --HB_COMP_PARAM->wForCounter; ;} - break; - - case 553: -#line 1550 "harbour.y" - { hb_compLinePush( HB_COMP_PARAM ); - if( HB_COMP_PARAM->wForCounter ) - --HB_COMP_PARAM->wForCounter; ;} - break; - case 554: -#line 1553 "harbour.y" +#line 1593 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; case 555: -#line 1558 "harbour.y" - { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} +#line 1596 "harbour.y" + { hb_compLinePush( HB_COMP_PARAM ); + if( HB_COMP_PARAM->wForCounter ) + --HB_COMP_PARAM->wForCounter; ;} break; case 556: -#line 1559 "harbour.y" - { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} +#line 1599 "harbour.y" + { hb_compLinePush( HB_COMP_PARAM ); + if( HB_COMP_PARAM->wForCounter ) + --HB_COMP_PARAM->wForCounter; ;} break; case 557: -#line 1562 "harbour.y" - { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} +#line 1602 "harbour.y" + { hb_compLinePush( HB_COMP_PARAM ); + if( HB_COMP_PARAM->wForCounter ) + --HB_COMP_PARAM->wForCounter; ;} break; case 558: -#line 1563 "harbour.y" - { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} +#line 1607 "harbour.y" + { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 559: -#line 1566 "harbour.y" - { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} +#line 1608 "harbour.y" + { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 561: -#line 1570 "harbour.y" + case 560: +#line 1611 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 562: -#line 1571 "harbour.y" + case 561: +#line 1612 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 563: -#line 1576 "harbour.y" + case 562: +#line 1615 "harbour.y" + { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} + break; + + case 564: +#line 1619 "harbour.y" + { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 565: +#line 1620 "harbour.y" + { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} + break; + + case 566: +#line 1625 "harbour.y" { ++HB_COMP_PARAM->wForCounter; /* 5 */ hb_compLinePushIfInside( HB_COMP_PARAM ); @@ -6540,8 +6647,8 @@ yyreduce: ;} break; - case 564: -#line 1582 "harbour.y" + case 567: +#line 1631 "harbour.y" { /* 7 */ @@ -6552,8 +6659,8 @@ yyreduce: ;} break; - case 565: -#line 1591 "harbour.y" + case 568: +#line 1640 "harbour.y" { /* 9 */ @@ -6561,8 +6668,8 @@ yyreduce: ;} break; - case 566: -#line 1597 "harbour.y" + case 569: +#line 1646 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compEnumNext( HB_COMP_PARAM, (yyvsp[(2) - (10)].asExpr), (yyvsp[(6) - (10)].iNumber) ); @@ -6577,18 +6684,18 @@ yyreduce: ;} break; - case 567: -#line 1611 "harbour.y" + case 570: +#line 1660 "harbour.y" { (yyval.iNumber) = 1; ;} break; - case 568: -#line 1612 "harbour.y" + case 571: +#line 1661 "harbour.y" { (yyval.iNumber) = -1; ;} break; - case 569: -#line 1616 "harbour.y" + case 572: +#line 1665 "harbour.y" { hb_compLoopStart( HB_COMP_PARAM ); hb_compSwitchStart( HB_COMP_PARAM ); @@ -6596,45 +6703,45 @@ yyreduce: ;} break; - case 570: -#line 1623 "harbour.y" + case 573: +#line 1672 "harbour.y" { hb_compSwitchEnd( HB_COMP_PARAM ); hb_compLoopEnd( HB_COMP_PARAM ); ;} break; - case 571: -#line 1630 "harbour.y" + case 574: +#line 1679 "harbour.y" { hb_compGenPCode1( HB_P_POP, HB_COMP_PARAM ); ;} break; - case 572: -#line 1636 "harbour.y" + case 575: +#line 1685 "harbour.y" { if( HB_COMP_PARAM->wSwitchCounter ) --HB_COMP_PARAM->wSwitchCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); ;} break; - case 573: -#line 1643 "harbour.y" + case 576: +#line 1692 "harbour.y" { ++HB_COMP_PARAM->wSwitchCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 574: -#line 1647 "harbour.y" + case 577: +#line 1696 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); ;} break; - case 576: -#line 1653 "harbour.y" + case 579: +#line 1702 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6643,28 +6750,28 @@ yyreduce: ;} break; - case 577: -#line 1661 "harbour.y" + case 580: +#line 1710 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 579: -#line 1664 "harbour.y" + case 582: +#line 1713 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 583: -#line 1672 "harbour.y" + case 586: +#line 1721 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, NULL ); hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 584: -#line 1672 "harbour.y" + case 587: +#line 1721 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 586: -#line 1677 "harbour.y" + case 589: +#line 1726 "harbour.y" { /* 2 */ hb_compLinePushIfInside( HB_COMP_PARAM ); ++HB_COMP_PARAM->wSeqCounter; @@ -6672,8 +6779,8 @@ yyreduce: ;} break; - case 587: -#line 1684 "harbour.y" + case 590: +#line 1733 "harbour.y" { /* 5 */ /* Set jump address for HB_P_SEQBEGIN opcode - this address * will be used in BREAK code if there is no RECOVER clause @@ -6683,8 +6790,8 @@ yyreduce: ;} break; - case 588: -#line 1692 "harbour.y" + case 591: +#line 1741 "harbour.y" { /* 7 */ /* Replace END address with RECOVER address in * HB_P_SEQBEGIN opcode if there is RECOVER clause @@ -6696,8 +6803,8 @@ yyreduce: ;} break; - case 589: -#line 1702 "harbour.y" + case 592: +#line 1751 "harbour.y" { /* 9 */ HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); if( (yyvsp[(8) - (8)].lNumber) ) @@ -6721,13 +6828,13 @@ yyreduce: ;} break; - case 591: -#line 1726 "harbour.y" + case 594: +#line 1775 "harbour.y" { (yyval.lNumber) = 0; ;} break; - case 593: -#line 1731 "harbour.y" + case 596: +#line 1780 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6735,13 +6842,13 @@ yyreduce: ;} break; - case 594: -#line 1738 "harbour.y" + case 597: +#line 1787 "harbour.y" { (yyval.lNumber) = 0; HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 597: -#line 1744 "harbour.y" + case 600: +#line 1793 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6752,8 +6859,8 @@ yyreduce: ;} break; - case 598: -#line 1755 "harbour.y" + case 601: +#line 1804 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6765,26 +6872,26 @@ yyreduce: ;} break; - case 601: -#line 1777 "harbour.y" + case 604: +#line 1826 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; ;} break; - case 602: -#line 1779 "harbour.y" + case 605: +#line 1828 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(2) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (4)].bTrue); ;} break; - case 603: -#line 1784 "harbour.y" + case 606: +#line 1833 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; ;} break; - case 604: -#line 1786 "harbour.y" + case 607: +#line 1835 "harbour.y" { hb_compAutoOpenAdd( HB_COMP_PARAM, (yyvsp[(1) - (3)].string) ); /* DOIDENT is the only one identifier which can be returned in lower letters */ @@ -6793,48 +6900,48 @@ yyreduce: ;} break; - case 605: -#line 1794 "harbour.y" + case 608: +#line 1843 "harbour.y" { (yyval.asExpr) = NULL; ;} break; - case 606: -#line 1795 "harbour.y" + case 609: +#line 1844 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 607: -#line 1798 "harbour.y" + case 610: +#line 1847 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; - case 608: -#line 1799 "harbour.y" + case 611: +#line 1848 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 609: -#line 1800 "harbour.y" + case 612: +#line 1849 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 610: -#line 1801 "harbour.y" + case 613: +#line 1850 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (2)].asExpr), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; - case 611: -#line 1802 "harbour.y" + case 614: +#line 1851 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 612: -#line 1805 "harbour.y" + case 615: +#line 1854 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; - case 617: -#line 1813 "harbour.y" + case 620: +#line 1862 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); @@ -6844,8 +6951,8 @@ yyreduce: ;} break; - case 618: -#line 1822 "harbour.y" + case 621: +#line 1871 "harbour.y" { if( HB_COMP_PARAM->wWithObjectCnt ) --HB_COMP_PARAM->wWithObjectCnt; if( (yyvsp[(5) - (6)].lNumber) ) @@ -6859,14 +6966,14 @@ yyreduce: ;} break; - case 619: -#line 1835 "harbour.y" + case 622: +#line 1884 "harbour.y" { HB_COMP_PARAM->fError = FALSE; ;} break; /* Line 1268 of yacc.c. */ -#line 6870 "harboury.c" +#line 6977 "harboury.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -7083,7 +7190,7 @@ yyreturn: } -#line 1839 "harbour.y" +#line 1888 "harbour.y" /* @@ -7460,7 +7567,12 @@ static void hb_compVariableDim( char * szName, HB_EXPR_PTR pInitValue, HB_COMP_D hb_compVariableAdd( HB_COMP_PARAM, szName, 'A' ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( pInitValue, HB_COMP_PARAM ) ); hb_compGenPCode3( HB_P_ARRAYDIM, HB_LOBYTE( uCount ), HB_HIBYTE( uCount ), HB_COMP_PARAM ); - HB_COMP_EXPR_DELETE( hb_compExprGenPop( hb_compExprNewVar( szName, HB_COMP_PARAM ), HB_COMP_PARAM ) ); + + if( HB_COMP_PARAM->iVarScope != VS_LOCAL || + !( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) + { + HB_COMP_EXPR_DELETE( hb_compExprGenPop( hb_compExprNewVar( szName, HB_COMP_PARAM ), HB_COMP_PARAM ) ); + } } } @@ -7844,6 +7956,11 @@ BOOL hb_compCheckUnclosedStru( HB_COMP_DECL ) hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_UNCLOSED_STRU, "BEGIN SEQUENCE", NULL ); HB_COMP_PARAM->wSeqCounter = 0; } + else if( HB_COMP_PARAM->functions.pLast && + ( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) + { + hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_UNCLOSED_STRU, "<||...>", NULL ); + } else fUnclosed = FALSE; diff --git a/harbour/source/compiler/harbour.yyh b/harbour/source/compiler/harbour.yyh index 96b06884c1..5138dfc878 100644 --- a/harbour/source/compiler/harbour.yyh +++ b/harbour/source/compiler/harbour.yyh @@ -132,18 +132,17 @@ AS_OBJECT_ARRAY = 348, PROCREQ = 349, CBSTART = 350, - BEGINCODE = 351, - DOIDENT = 352, - FOREACH = 353, - DESCEND = 354, - DOSWITCH = 355, - WITHOBJECT = 356, - NUM_DATE = 357, - EPSILON = 358, - HASHOP = 359, - POST = 360, - UNARY = 361, - PRE = 362 + DOIDENT = 351, + FOREACH = 352, + DESCEND = 353, + DOSWITCH = 354, + WITHOBJECT = 355, + NUM_DATE = 356, + EPSILON = 357, + HASHOP = 358, + POST = 359, + UNARY = 360, + PRE = 361 }; #endif /* Tokens. */ @@ -240,18 +239,17 @@ #define AS_OBJECT_ARRAY 348 #define PROCREQ 349 #define CBSTART 350 -#define BEGINCODE 351 -#define DOIDENT 352 -#define FOREACH 353 -#define DESCEND 354 -#define DOSWITCH 355 -#define WITHOBJECT 356 -#define NUM_DATE 357 -#define EPSILON 358 -#define HASHOP 359 -#define POST 360 -#define UNARY 361 -#define PRE 362 +#define DOIDENT 351 +#define FOREACH 352 +#define DESCEND 353 +#define DOSWITCH 354 +#define WITHOBJECT 355 +#define NUM_DATE 356 +#define EPSILON 357 +#define HASHOP 358 +#define POST 359 +#define UNARY 360 +#define PRE 361 @@ -301,7 +299,7 @@ typedef union YYSTYPE } asMessage; } /* Line 1533 of yacc.c. */ -#line 305 "harboury.h" +#line 303 "harboury.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/harbour/source/compiler/hbmain.c b/harbour/source/compiler/hbmain.c index 2ed7921afd..29d6e0ad1a 100644 --- a/harbour/source/compiler/hbmain.c +++ b/harbour/source/compiler/hbmain.c @@ -485,6 +485,12 @@ void hb_compVariableAdd( HB_COMP_DECL, char * szVarName, BYTE cValueType ) HB_COMP_PARAM->iVarScope == VS_PUBLIC ) ) hb_compCheckDuplVars( HB_COMP_PARAM, pFunc->pMemvars, szVarName ); } + else if( pFunc->bFlags & FUN_EXTBLOCK ) + { + /* variable defined in an extended codeblock */ + hb_compCheckDuplVars( HB_COMP_PARAM, pFunc->pFields, szVarName ); + hb_compCheckDuplVars( HB_COMP_PARAM, pFunc->pStatics, szVarName ); + } else if( HB_COMP_PARAM->iVarScope != VS_PARAMETER ) { fprintf( hb_comp_errFile, "Wrong type of codeblock parameter, is: %d, should be: %d\r\n", HB_COMP_PARAM->iVarScope, VS_PARAMETER ); @@ -845,6 +851,30 @@ PVAR hb_compVariableFind( HB_COMP_DECL, char * szVarName, int * piPos, int * piS hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_OUTER_VAR, szVarName, NULL ); } } + else if( pFunc->bFlags & FUN_EXTBLOCK ) + { /* extended codeblock */ + /* check static variables */ + pVar = hb_compVariableGet( pFunc->pStatics, szVarName, piPos ); + if( pVar ) + { + *piScope = HB_VS_STATIC_VAR; + *piPos += pFunc->iStaticsBase; + } + else + { + /* check FIELDs */ + pVar = hb_compVariableGet( pFunc->pFields, szVarName, piPos ); + if( pVar ) + *piScope = HB_VS_LOCAL_FIELD; + else + { + /* check MEMVARs */ + pVar = hb_compVariableGet( pFunc->pMemvars, szVarName, piPos ); + if( pVar ) + *piScope = HB_VS_LOCAL_MEMVAR; + } + } + } } if( pVar ) @@ -3007,7 +3037,8 @@ void hb_compGenPopVar( char * szVarName, HB_COMP_DECL ) /* generates the pcode t * if PARAMETERS statement will be used then it is safe to * use 2 bytes for LOCALNEAR */ - if( HB_LIM_INT8( iVar ) && !HB_COMP_PARAM->functions.pLast->szName ) + if( HB_LIM_INT8( iVar ) && !HB_COMP_PARAM->functions.pLast->szName && + !( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) hb_compGenPCode2( HB_P_POPLOCALNEAR, ( BYTE ) iVar, HB_COMP_PARAM ); else hb_compGenPCode3( HB_P_POPLOCAL, HB_LOBYTE( iVar ), HB_HIBYTE( iVar ), HB_COMP_PARAM ); @@ -3082,7 +3113,8 @@ void hb_compGenPushVar( char * szVarName, BOOL bMacroVar, HB_COMP_DECL ) * if PARAMETERS statement will be used then it is safe to * use 2 bytes for LOCALNEAR */ - if( HB_LIM_INT8( iVar ) && !HB_COMP_PARAM->functions.pLast->szName ) + if( HB_LIM_INT8( iVar ) && !HB_COMP_PARAM->functions.pLast->szName && + !( HB_COMP_PARAM->functions.pLast->bFlags & FUN_EXTBLOCK ) ) hb_compGenPCode2( HB_P_PUSHLOCALNEAR, ( BYTE ) iVar, HB_COMP_PARAM ); else hb_compGenPCode3( HB_P_PUSHLOCAL, HB_LOBYTE( iVar ), HB_HIBYTE( iVar ), HB_COMP_PARAM ); @@ -3791,6 +3823,17 @@ void hb_compCodeBlockEnd( HB_COMP_DECL ) pCodeblock = HB_COMP_PARAM->functions.pLast; + /* Check if the extended codeblock has return statement */ + if( ( pCodeblock->bFlags & FUN_EXTBLOCK ) && + !( pCodeblock->bFlags & FUN_WITH_RETURN ) ) + { + if( HB_COMP_PARAM->iWarnings >= 1 ) + hb_compGenWarning( HB_COMP_PARAM, hb_comp_szWarnings, 'W', HB_COMP_WARN_FUN_WITH_NO_RETURN, + "<||...>", NULL ); + /* finish the codeblock without popping the return value from HVM stack */ + hb_compGenPCode1( HB_P_ENDPROC, HB_COMP_PARAM ); + } + hb_compGenPCode1( HB_P_ENDBLOCK, HB_COMP_PARAM ); /* finish the codeblock */ if( !pCodeblock->bError ) diff --git a/harbour/source/pp/ppcore.c b/harbour/source/pp/ppcore.c index ca0b76222c..b135932df9 100644 --- a/harbour/source/pp/ppcore.c +++ b/harbour/source/pp/ppcore.c @@ -529,6 +529,12 @@ static void hb_pp_tokenAddCmdSep( PHB_PP_STATE pState ) pState->pFile->iTokens++; pState->fNewStatement = TRUE; pState->fCanNextLine = FALSE; + if( pState->iBlockState ) + { + if( pState->iBlockState == 5 ) + pState->iNestedBlock++; + pState->iBlockState = 0; + } } static void hb_pp_tokenAddNext( PHB_PP_STATE pState, const char * value, ULONG ulLen, @@ -537,12 +543,44 @@ static void hb_pp_tokenAddNext( PHB_PP_STATE pState, const char * value, ULONG u if( pState->fCanNextLine ) hb_pp_tokenAddCmdSep( pState ); - if( !pState->fDirective && pState->fNewStatement && - ulLen == 1 && * value == '#' ) + if( !pState->fDirective ) { - pState->fDirective = TRUE; - value = "#"; - type = HB_PP_TOKEN_DIRECTIVE | HB_PP_TOKEN_STATIC; + if( pState->iNestedBlock && pState->fNewStatement && + HB_PP_TOKEN_TYPE( type ) == HB_PP_TOKEN_RIGHT_CB ) + { + pState->iBlockState = 0; + pState->iNestedBlock--; + } + else if( pState->iLastType == HB_PP_TOKEN_LEFT_CB && + HB_PP_TOKEN_TYPE( type ) == HB_PP_TOKEN_PIPE ) + { + pState->iBlockState = 1; + } + else if( pState->iBlockState ) + { + if( ( pState->iBlockState == 1 || pState->iBlockState == 2 || + pState->iBlockState == 4 ) && + HB_PP_TOKEN_TYPE( type ) == HB_PP_TOKEN_PIPE ) + pState->iBlockState = 5; + else if( pState->iBlockState == 1 && + HB_PP_TOKEN_TYPE( type ) == HB_PP_TOKEN_KEYWORD ) + pState->iBlockState = 2; + else if( pState->iBlockState == 1 && + HB_PP_TOKEN_TYPE( type ) == HB_PP_TOKEN_EPSILON ) + pState->iBlockState = 4; + else if( pState->iBlockState == 2 && + HB_PP_TOKEN_TYPE( type ) == HB_PP_TOKEN_COMMA ) + pState->iBlockState = 1; + else + pState->iBlockState = 0; + } + + if( pState->fNewStatement && ulLen == 1 && * value == '#' ) + { + pState->fDirective = TRUE; + value = "#"; + type = HB_PP_TOKEN_DIRECTIVE | HB_PP_TOKEN_STATIC; + } } #ifndef HB_C52_STRICT @@ -788,6 +826,7 @@ static void hb_pp_getLine( PHB_PP_STATE pState ) pState->iLastType = HB_PP_TOKEN_NUL; pState->iInLineState = HB_PP_INLINE_OFF; pState->iInLineBraces = 0; + pState->iBlockState = pState->iNestedBlock = 0; do { @@ -1286,10 +1325,25 @@ static void hb_pp_getLine( PHB_PP_STATE pState ) ulLen -= ul; ul = 0; } + + if( !pState->fCanNextLine && + ( pState->iNestedBlock || pState->iBlockState == 5 ) ) + { + pState->pFile->iCurrentLine--; + hb_pp_tokenAdd( &pState->pNextTokenPtr, "\n", 1, 0, HB_PP_TOKEN_EOL | HB_PP_TOKEN_STATIC ); + pState->pFile->iTokens++; + pState->fNewStatement = TRUE; + if( pState->iBlockState ) + { + if( pState->iBlockState == 5 ) + pState->iNestedBlock++; + pState->iBlockState = 0; + } + } } while( ( pState->pFile->pLineBuf ? pState->pFile->ulLineBufLen != 0 : !pState->pFile->fEof ) && - ( pState->fCanNextLine || + ( pState->fCanNextLine || pState->iNestedBlock || ( pState->iStreamDump && pState->iStreamDump != HB_PP_STREAM_CLIPPER ) ) ); if( pState->iStreamDump ) @@ -3074,11 +3128,56 @@ static void hb_pp_directiveNew( PHB_PP_STATE pState, PHB_PP_TOKEN pToken, hb_pp_tokenListFree( &pResult ); } +static BOOL hb_pp_tokenStartExtBlock( PHB_PP_TOKEN * pTokenPtr ) +{ + PHB_PP_TOKEN pToken = * pTokenPtr; + + if( pToken && HB_PP_TOKEN_TYPE( pToken->type ) == HB_PP_TOKEN_LEFT_CB && + pToken->pNext && HB_PP_TOKEN_TYPE( pToken->pNext->type ) == HB_PP_TOKEN_PIPE ) + { + USHORT prevtype = HB_PP_TOKEN_COMMA; + pToken = pToken->pNext->pNext; + while( pToken ) + { + USHORT type = HB_PP_TOKEN_TYPE( pToken->type ); + if( ( ( type == HB_PP_TOKEN_KEYWORD || type == HB_PP_TOKEN_EPSILON ) && + prevtype == HB_PP_TOKEN_COMMA ) || + ( type == HB_PP_TOKEN_COMMA && prevtype == HB_PP_TOKEN_KEYWORD ) ) + { + prevtype = type; + pToken = pToken->pNext; + } + else + break; + } + if( pToken && pToken->pNext && HB_PP_TOKEN_TYPE( pToken->type ) == HB_PP_TOKEN_PIPE && + HB_PP_TOKEN_ISEOC( pToken->pNext ) ) + { + *pTokenPtr = pToken->pNext; + return TRUE; + } + } + return FALSE; +} + +static BOOL hb_pp_tokenStopExtBlock( PHB_PP_TOKEN * pTokenPtr ) +{ + PHB_PP_TOKEN pToken = * pTokenPtr; + + if( HB_PP_TOKEN_ISEOC( pToken ) && pToken->pNext && + HB_PP_TOKEN_TYPE( pToken->pNext->type ) == HB_PP_TOKEN_RIGHT_CB ) + { + *pTokenPtr = pToken->pNext->pNext; + return TRUE; + } + return FALSE; +} + static BOOL hb_pp_tokenSkipExp( PHB_PP_TOKEN * pTokenPtr, PHB_PP_TOKEN pStop, USHORT mode, BOOL * pfStop ) { USHORT curtype, prevtype = 0, lbrtype = 0, rbrtype = 0; - PHB_PP_TOKEN pToken = * pTokenPtr; + PHB_PP_TOKEN pToken = * pTokenPtr, pPrev; int iBraces = 0; BOOL fMatch; @@ -3087,7 +3186,27 @@ static BOOL hb_pp_tokenSkipExp( PHB_PP_TOKEN * pTokenPtr, PHB_PP_TOKEN pStop, while( TRUE ) { - if( HB_PP_TOKEN_ISEOC( pToken ) ) + pPrev = pToken; + if( hb_pp_tokenStartExtBlock( &pToken ) ) + { + int iExtBlock = 1; + while( pToken ) + { + if( hb_pp_tokenStartExtBlock( &pToken ) ) + iExtBlock++; + else if( hb_pp_tokenStopExtBlock( &pToken ) ) + { + if( --iExtBlock == 0 ) + break; + } + else + pToken = pToken->pNext; + } + if( iExtBlock ) + pToken = pPrev; + } + + if( HB_PP_TOKEN_ISEOC( pToken ) && mode != HB_PP_CMP_ADDR ) { if( pfStop ) * pfStop = TRUE; @@ -4357,7 +4476,7 @@ static void hb_pp_genLineTokens( PHB_PP_STATE pState ) #endif } -static void hb_pp_preprocesToken( PHB_PP_STATE pState ) +static void hb_pp_preprocessToken( PHB_PP_STATE pState ) { while( !pState->pTokenOut && pState->pFile ) { @@ -4678,7 +4797,7 @@ PHB_PP_TOKEN hb_pp_tokenGet( PHB_PP_STATE pState ) } if( !pState->pTokenOut ) - hb_pp_preprocesToken( pState ); + hb_pp_preprocessToken( pState ); if( pState->fWritePreprocesed && pState->pTokenOut ) {